?? pay150_01.pas.svn-base
字號:
unit Pay150_01;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Bas100_01, Grids, ExtCtrls, Db, ComCtrls,
ToolWin, StdCtrls, DBCtrls, Buttons, Mask, dxExEdtr, dxCntner,
dxTL, dxDBCtrl, dxDBGrid, ActnList, ADODB, Menus, dxEditor, dxEdLib,
dxDBTLCl, dxGrClms;
type
TPay150_01Form = class(TBas100_01Form)
CoolBar1: TCoolBar;
ToolBar2: TToolBar;
tlbFirst: TToolButton;
tlbPrior: TToolButton;
tlbNext: TToolButton;
tlbLast: TToolButton;
ToolButton1: TToolButton;
tlbInsert: TToolButton;
tlbUpdate: TToolButton;
tlbDelete: TToolButton;
ToolButton2: TToolButton;
tlbSave: TToolButton;
tlbLocate: TToolButton;
ToolButton4: TToolButton;
tlbExit: TToolButton;
Panel1: TPanel;
Image1: TImage;
dsPay150: TDataSource;
ActionList1: TActionList;
ActFirst: TAction;
ActPrior: TAction;
ActNext: TAction;
ActLast: TAction;
ActInsert: TAction;
ActUpdate: TAction;
ActDelete: TAction;
ActSeq: TAction;
ActRefresh: TAction;
ActLocate: TAction;
ActSearch: TAction;
ActExit: TAction;
ToolButton5: TToolButton;
qryPay150: TADOQuery;
ScrollBox1: TScrollBox;
ToolButton3: TToolButton;
tlbRefresh: TToolButton;
dxDBGrid1: TdxDBGrid;
qryPay150P150_001: TAutoIncField;
qryPay150P150_002: TStringField;
qryPay150P150_003: TStringField;
qryPay150P150_004: TSmallintField;
qryPay150P150_005: TSmallintField;
qryPay150P150_007: TIntegerField;
qryPay150P150_008: TBooleanField;
dxDBGrid1P150_002: TdxDBGridMaskColumn;
dxDBGrid1P150_003: TdxDBGridMaskColumn;
dxDBGrid1P150_004: TdxDBGridMaskColumn;
dxDBGrid1P150_005: TdxDBGridMaskColumn;
dxDBGrid1P150_008: TdxDBGridCheckColumn;
ToolButton7: TToolButton;
ActFunction: TAction;
qryPay150P150_009: TSmallintField;
dxDBGrid1P150_009: TdxDBGridColumn;
qryPay150P150_006: TMemoField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ActFirstExecute(Sender: TObject);
procedure ActPriorExecute(Sender: TObject);
procedure ActNextExecute(Sender: TObject);
procedure ActLastExecute(Sender: TObject);
procedure ActInsertExecute(Sender: TObject);
procedure ActUpdateExecute(Sender: TObject);
procedure ActDeleteExecute(Sender: TObject);
procedure ActRefreshExecute(Sender: TObject);
procedure ActLocateExecute(Sender: TObject);
procedure ActSearchExecute(Sender: TObject);
procedure ActExitExecute(Sender: TObject);
procedure ActSeqExecute(Sender: TObject);
procedure qryPay150P150_004GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure qryPay150P150_005GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure ActFunctionExecute(Sender: TObject);
procedure qryPay150P150_009GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure qryPay150AfterPost(DataSet: TDataSet);
private
AMode:string;
AUnit:array[0..6] of string;
AType:array[0..1] of string;
AAdd:array[0..2] of string;
procedure SetButtonState(AInsUpd:Boolean);
procedure SetInterface;
{ Private declarations }
public
{ Public declarations }
end;
var
Pay150_01Form: TPay150_01Form;
implementation
uses CommFun, SYSDATA, Pay150_02, Pay150_03;
{$R *.DFM}
//設置按鈕狀態
procedure TPay150_01Form.SetButtonState(AInsUpd:Boolean);
begin
ActInsert.Enabled:=(ARights[2]='Y') and (not AInsUpd);
ActUpdate.Enabled:=(ARights[3]='Y') and (not AInsUpd);
ActDelete.Enabled:=(ARights[4]='Y') and (not AInsUpd);
end;
procedure TPay150_01Form.SetInterface;
begin
Image1.Picture.Bitmap.LoadFromResourceName(AImgHandle,'TOPTITL');
ActFirst.Caption:=GetDBString('COM00005001'); //最前
ActPrior.Caption:=GetDBString('COM00005002'); //上移
ActNext.Caption:=GetDBString('COM00005003'); //下移
ActLast.Caption:=GetDBString('COM00005004'); //最后
ActInsert.Caption:=GetDBString('COM00005005'); //新增
ActUpdate.Caption:=GetDBString('COM00005006'); //修改
ActDelete.Caption:=GetDBString('COM00005007'); //刪除
ActRefresh.Caption:=GetDBString('COM00005010'); //刷新
ActLocate.Caption:=GetDBString('COM00005011'); //查找
ActSearch.Caption:=GetDBString('COM00005012'); //查詢
ActExit.Caption:=GetDBString('COM00005015'); //退出
ActFirst.Hint:=GetDBString('COM00005001',2); //移到第一條記錄
ActPrior.Hint:=GetDBString('COM00005002',2); //移到上一條記錄
ActNext.Hint:=GetDBString('COM00005003',2); //移到下一條記錄
ActLast.Hint:=GetDBString('COM00005004',2); //移到最后一條記錄
ActInsert.Hint:=GetDBString('COM00005005',2); //新增一條記錄
ActUpdate.Hint:=GetDBString('COM00005006',2); //修改當前記錄
ActDelete.Hint:=GetDBString('COM00005007',2); //刪除當前記錄
ActRefresh.Hint:=GetDBString('COM00005010',2); //取得最新的數據
ActLocate.Hint:=GetDBString('COM00005011',2); //快速定位記錄
ActSearch.Hint:=GetDBString('COM00005012',2); //按條件查詢數據
ActExit.Hint:=GetDBString('COM00005015',2); //關閉當前窗口
Caption:=GetDBString('PAY15001001'); //薪資項目維護
qryPay150.FieldByName('P150_002').DisplayLabel:=GetDBString('PAY15001002'); //項目編號
qryPay150.FieldByName('P150_003').DisplayLabel:=GetDBString('PAY15001003'); //項目名稱
qryPay150.FieldByName('P150_004').DisplayLabel:=GetDBString('PAY15001004'); //項目類型
qryPay150.FieldByName('P150_005').DisplayLabel:=GetDBString('PAY15001005'); //計量單位
qryPay150.FieldByName('P150_006').DisplayLabel:=GetDBString('PAY15001006'); //計算公式
qryPay150.FieldByName('P150_007').DisplayLabel:=GetDBString('PAY15001007'); //計算順序
qryPay150.FieldByName('P150_008').DisplayLabel:=GetDBString('PAY15001008'); //是否使用
qryPay150.FieldByName('P150_009').DisplayLabel:=GetDBString('PAY15001020'); //加項減項
ActSeq.Caption:=GetDBString('PAY15001018'); //排序
ActSeq.Hint:=GetDBString('PAY15001018',2); //排列項目的計算順序
ActFunction.Caption:=GetDBString('PAY15001019'); //函數
ActFunction.Hint:=GetDBString('PAY15001019',2); //設置薪資項目函數
AUnit[0]:=GetDBString('PAY15001009'); //分鐘
AUnit[1]:=GetDBString('PAY15001010'); //小時
AUnit[2]:=GetDBString('PAY15001011'); //天
AUnit[3]:=GetDBString('PAY15001012'); //次
AUnit[4]:=GetDBString('PAY15001013'); //月
AUnit[5]:=GetDBString('PAY15001014'); //年
AUnit[6]:=GetDBString('PAY15001015'); //元
AType[0]:=GetDBString('PAY15001016'); //按考勤事務處理
AType[1]:=GetDBString('PAY15001017'); //按公式計算
AAdd[0]:=GetDBString('PAY15001021'); //加項
AAdd[1]:=GetDBString('PAY15001022'); //減項
AAdd[2]:=GetDBString('PAY15001023'); //合計
end;
procedure TPay150_01Form.FormCreate(Sender: TObject);
begin
inherited;
qryPay150.Open;
//設置界面信息
SetInterface;
SetButtonState(False);
end;
procedure TPay150_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
qryPay150.Close;
Action:=cafree;
end;
procedure TPay150_01Form.ActFirstExecute(Sender: TObject);
begin
inherited;
//最前
if qryPay150.IsEmpty then Exit;
qryPay150.First;
ActFirst.Enabled:=False;
ActPrior.Enabled:=False;
ActNext.Enabled:=True;
ActLast.Enabled:=True;
end;
procedure TPay150_01Form.ActPriorExecute(Sender: TObject);
begin
inherited;
//上移
if qryPay150.IsEmpty then Exit;
qryPay150.Prior;
ActNext.Enabled:=not qryPay150.Eof;
ActLast.Enabled:=not qryPay150.Eof;
ActFirst.Enabled:=not qryPay150.Bof;
ActPrior.Enabled:=not qryPay150.Bof;
end;
procedure TPay150_01Form.ActNextExecute(Sender: TObject);
begin
inherited;
//下移
if qryPay150.IsEmpty then Exit;
qryPay150.Next;
ActNext.Enabled:=not qryPay150.Eof;
ActLast.Enabled:=not qryPay150.Eof;
ActFirst.Enabled:=not qryPay150.Bof;
ActPrior.Enabled:=not qryPay150.Bof;
end;
procedure TPay150_01Form.ActLastExecute(Sender: TObject);
begin
inherited;
//最后
if qryPay150.IsEmpty then Exit;
qryPay150.Last;
ActNext.Enabled:=False;
ActLast.Enabled:=False;
ActFirst.Enabled:=True;
ActPrior.Enabled:=True;
end;
procedure TPay150_01Form.ActInsertExecute(Sender: TObject);
begin
inherited;
//新增
Pay150_02Form:=TPay150_02Form.Create(Application);
AMode:='ADD';
Pay150_02Form.AMode:='ADD';
Pay150_02Form.ADataSet:=qryPay150;
Pay150_02Form.ShowModal;
end;
procedure TPay150_01Form.ActUpdateExecute(Sender: TObject);
begin
inherited;
//修改
if qryPay150.IsEmpty then
begin
ShowMsg('UMS10000002'); //表記錄為空,操作無效
Exit;
end;
Pay150_02Form:=TPay150_02Form.Create(Application);
AMode:='UPD';
Pay150_02Form.AMode:='UPD';
Pay150_02Form.ADataSet:=qryPay150;
Pay150_02Form.edtCode.Text:=qryPay150.FieldByName('P150_002').Value;
Pay150_02Form.edtName.Text:=qryPay150.FieldByName('P150_003').Value;
Pay150_02Form.cbType.ItemIndex:=qryPay150.FieldByName('P150_004').Value;
Pay150_02Form.cbUnit.ItemIndex:=qryPay150.FieldByName('P150_005').Value;
Pay150_02Form.cbAdd.ItemIndex:=qryPay150.FieldByName('P150_009').Value;
Pay150_02Form.cbActive.Checked:=qryPay150.FieldByName('P150_008').Value;
Pay150_02Form.AOldCode:=Pay150_02Form.edtCode.Text;
Pay150_02Form.ShowModal;
end;
procedure TPay150_01Form.ActDeleteExecute(Sender: TObject);
var
AItemNo:Integer;
begin
inherited;
//刪除
if qryPay150.IsEmpty then
begin
ShowMsg('UMS10000002'); //表記錄為空,操作無效
Abort;
end;
if ShowDialog('UMS10000008')=IDYES then //確定要刪除此記錄嗎?
begin
AItemNo:=qryPay150.FieldByName('P150_001').Value;
//刪除“薪資項目”,同步更新“薪資類別”表[PAY160B]和“薪資結構”表[PAY510B]
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from PAY160B where P160B_002='+IntToStr(AItemNo));
SYSDM.qryQuery.ExecSQL;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from PAY510B where P510B_002='+IntToStr(AItemNo));
SYSDM.qryQuery.ExecSQL;
qryPay150.Delete;
end;
end;
procedure TPay150_01Form.ActRefreshExecute(Sender: TObject);
begin
inherited;
//刷新
qryPay150.Close;
qryPay150.Open;
end;
procedure TPay150_01Form.ActLocateExecute(Sender: TObject);
begin
inherited;
//查找
if qryPay150.IsEmpty then
begin
ShowMsg('UMS10000002'); //表記錄為空,操作無效
Exit;
end;
LocateDialog(dsPay150);
end;
procedure TPay150_01Form.ActSearchExecute(Sender: TObject);
begin
inherited;
//查詢
FilterDialog(dsPay150);
end;
procedure TPay150_01Form.ActExitExecute(Sender: TObject);
begin
inherited;
//退出
Close;
end;
procedure TPay150_01Form.ActSeqExecute(Sender: TObject);
begin
inherited;
//排序
Pay150_03Form:=TPay150_03Form.Create(Application);
if Pay150_03Form.ShowModal=1 then ActRefresh.Execute;
end;
procedure TPay150_01Form.qryPay150P150_004GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if qryPay150.IsEmpty then Exit;
case Sender.AsInteger of
0:Text:=AType[0]; //按考勤事務處理
1:Text:=AType[1]; //按公式計算
end;
end;
procedure TPay150_01Form.qryPay150P150_005GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if qryPay150.IsEmpty then Exit;
case Sender.AsInteger of
0:Text:=AUnit[0]; //分鐘
1:Text:=AUnit[1]; //小時
2:Text:=AUnit[2]; //天
3:Text:=AUnit[3]; //次
4:Text:=AUnit[4]; //月
5:Text:=AUnit[5]; //年
6:Text:=AUnit[6]; //年
end;
end;
procedure TPay150_01Form.ActFunctionExecute(Sender: TObject);
begin
inherited;
//函數
end;
procedure TPay150_01Form.qryPay150P150_009GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if qryPay150.IsEmpty then Exit;
case Sender.AsInteger of
0:Text:=AAdd[0]; //加項
1:Text:=AAdd[1]; //減項
2:Text:=AAdd[2]; //合計
end;
end;
procedure TPay150_01Form.qryPay150AfterPost(DataSet: TDataSet);
var
AItemNo:String;
begin
inherited;
qryPay150.Refresh;
AItemNo:=qryPay150.FieldByName('P150_001').AsString;
//新增“薪資項目”,同步更新“薪資類別”表[PAY160B]和“薪資結構”表[PAY510B]
if AMode='ADD' then
begin
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('insert into PAY160B(P160B_001,P160B_002,P160B_003,P160B_004)');
SYSDM.qryQuery.SQL.Add('select P160A_001,'+AItemNo+',0,0 from PAY160A');
SYSDM.qryQuery.ExecSQL;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('insert into PAY510B(P510B_001,P510B_002,P510B_003,P510B_004)');
SYSDM.qryQuery.SQL.Add('select P510A_001,'+AItemNo+',0,0 from PAY510A');
SYSDM.qryQuery.ExecSQL;
end;
end;
initialization
RegisterClass(TPay150_01Form);
finalization
UnRegisterClass(TPay150_01Form);
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -