📄 pay510_01.pas.svn-base
字号:
unit Pay510_01;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Bas100_01, FR_DSet, FR_DBSet, FR_Class, Db, Menus, ExtCtrls, ComCtrls,
ToolWin, Grids, StdCtrls, Mask, DBCtrls, wwdbdatetimepicker, Buttons,
dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, ActnList, ADODB, dxDBTLCl,
dxGrClms;
type
TPay510_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;
tlbCancel: TToolButton;
ToolButton3: TToolButton;
tlbLocate: TToolButton;
tlbPrint: TToolButton;
ToolButton4: TToolButton;
tlbExit: TToolButton;
Panel1: TPanel;
Image1: TImage;
PopupMenu1: TPopupMenu;
mmiPrint: TMenuItem;
mmiExport: TMenuItem;
dsHrm150: TDataSource;
dsPay510A: TDataSource;
tlbSet: TToolButton;
ToolButton6: TToolButton;
ActionList1: TActionList;
ActFirst: TAction;
ActPrior: TAction;
ActNext: TAction;
ActLast: TAction;
ActInsert: TAction;
ActUpdate: TAction;
ActDelete: TAction;
ActSave: TAction;
ActCancel: TAction;
ActRefresh: TAction;
ActLocate: TAction;
ActSearch: TAction;
ActPrint: TAction;
ActExport: TAction;
ActExit: TAction;
tlbSearch: TToolButton;
tlbRefresh: TToolButton;
ActSet: TAction;
SaveDialog1: TSaveDialog;
qryHrm150: TADOQuery;
qryHrm150H150_001: TAutoIncField;
qryHrm150H150_002: TStringField;
qryHrm150H150_003: TStringField;
qryPay510A: TADOQuery;
qryPay150: TADOQuery;
ScrollBox1: TScrollBox;
dxDBGrid1: TdxDBGrid;
Splitter1: TSplitter;
dxDBGrid1H150_002: TdxDBGridMaskColumn;
dxDBGrid1H150_003: TdxDBGridMaskColumn;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
ScrollBox2: TScrollBox;
dxDBGrid2: TdxDBGrid;
Splitter2: TSplitter;
ScrollBox3: TScrollBox;
dxDBGrid3: TdxDBGrid;
dsPay510B: TDataSource;
qryPay510B: TADOQuery;
qryPay510AP510A_001: TAutoIncField;
qryPay510AP510A_002: TIntegerField;
qryPay510AP510A_003: TIntegerField;
qryPay510AP510A_004: TDateTimeField;
qryPay160A: TADOQuery;
qryPay510AP160A_002: TStringField;
qryPay510AP160A_003: TStringField;
dxDBGrid3P510A_004: TdxDBGridDateColumn;
dxDBGrid3P160A_002: TdxDBGridLookupColumn;
dxDBGrid3P160A_003: TdxDBGridLookupColumn;
qryPay510BP510B_001: TIntegerField;
qryPay510BP510B_002: TIntegerField;
qryPay510BP510B_003: TFloatField;
qryPay510BP510B_004: TBooleanField;
qryPay510BP150_002: TStringField;
qryPay510BP150_003: TStringField;
qryPay510BP150_009: TSmallintField;
dxDBGrid2P150_009: TdxDBGridLookupColumn;
dxDBGrid2P150_002: TdxDBGridLookupColumn;
dxDBGrid2P150_003: TdxDBGridLookupColumn;
dxDBGrid2P510B_003: TdxDBGridMaskColumn;
dxDBGrid2P510B_004: TdxDBGridCheckColumn;
ScrollBox4: TScrollBox;
dxDBGrid4: TdxDBGrid;
ScrollBox5: TScrollBox;
lblEmpID: TLabel;
lblClass: TLabel;
lblDate: TLabel;
cbClass: TDBLookupComboBox;
dsPay160A: TDataSource;
edtDate: TwwDBDateTimePicker;
edtEmpNm: TDBEdit;
sbEmp: TSpeedButton;
edtEmpID: TEdit;
qryPay510AH150_002: TStringField;
qryPay510AH150_003: TStringField;
Splitter3: TSplitter;
qryPay150P150_001: TAutoIncField;
qryPay150P150_002: TStringField;
qryPay150P150_003: TStringField;
qryPay150P150_009: TSmallintField;
qryPay160AP160A_001: TAutoIncField;
qryPay160AP160A_002: TStringField;
qryPay160AP160A_003: TStringField;
dxDBGrid4P150_009: TdxDBGridLookupColumn;
dxDBGrid4P150_002: TdxDBGridLookupColumn;
dxDBGrid4P150_003: TdxDBGridLookupColumn;
dxDBGrid4P510B_003: TdxDBGridMaskColumn;
dxDBGrid4P510B_004: TdxDBGridCheckColumn;
adsPay510: TADODataSet;
dsPay510: TDataSource;
adsPay510P150_009: TSmallintField;
adsPay510P150_001: TIntegerField;
adsPay510P150_002: TStringField;
adsPay510P150_003: TStringField;
adsPay510P510B_003: TFloatField;
adsPay510P510B_004: TBooleanField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ReportGetValue(const ParName: String;
var ParValue: Variant);
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 ActSaveExecute(Sender: TObject);
procedure ActCancelExecute(Sender: TObject);
procedure ActRefreshExecute(Sender: TObject);
procedure ActLocateExecute(Sender: TObject);
procedure ActSearchExecute(Sender: TObject);
procedure ActPrintExecute(Sender: TObject);
procedure ActExportExecute(Sender: TObject);
procedure ActSetExecute(Sender: TObject);
procedure ActExitExecute(Sender: TObject);
procedure qryPay510BP150_009GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure qryHrm150AfterScroll(DataSet: TDataSet);
procedure qryPay510AAfterScroll(DataSet: TDataSet);
procedure sbEmpClick(Sender: TObject);
procedure edtEmpIDExit(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure qryPay510AP510A_003Change(Sender: TField);
procedure adsPay510P150_009GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
private
AType:array[0..2] of string;
AOldEmpNo:Integer;
AOldDate:TDateTime;
procedure SetButtonState(AInsUpd:Boolean);
procedure SetInterface;
procedure SetPayItem(AClassNo:Integer);
{ Private declarations }
public
{ Public declarations }
end;
var
Pay510_01Form: TPay510_01Form;
implementation
uses SYSDATA, HwSelData, CommFun, Pay510_02;
{$R *.DFM}
//设置按钮状态
procedure TPay510_01Form.SetButtonState(AInsUpd:Boolean);
begin
ActFirst.Enabled:=not AInsUpd;
ActPrior.Enabled:=not AInsUpd;
ActNext.Enabled:=not AInsUpd;
ActLast.Enabled:=not AInsUpd;
ActInsert.Enabled:=(ARights[2]='Y') and (not AInsUpd);
ActUpdate.Enabled:=(ARights[3]='Y') and (not AInsUpd);
ActDelete.Enabled:=(ARights[4]='Y') and (not AInsUpd);
ActSave.Enabled:=AInsUpd;
ActCancel.Enabled:=AInsUpd;
ActRefresh.Enabled:=not AInsUpd;
ActLocate.Enabled:=not AInsUpd;
ActSearch.Enabled:=not AInsUpd;
ActPrint.Enabled:=(ARights[5]='Y') and (not AInsUpd);
ActSet.Enabled:=(ARights[2]='Y') and (not AInsUpd);
ActExit.Enabled:=True;
ScrollBox1.Enabled:=not AInsUpd;
ScrollBox5.Enabled:=AInsUpd;
dxDBGrid4P510B_003.DisableEditor:=not AInsUpd;
if AInsUpd then PageControl1.ActivePageIndex:=1;
end;
procedure TPay510_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'); //删除
ActSave.Caption:=GetDBString('COM00005008'); //保存
ActCancel.Caption:=GetDBString('COM00005009'); //取消
ActRefresh.Caption:=GetDBString('COM00005010'); //刷新
ActLocate.Caption:=GetDBString('COM00005011'); //查找
ActSearch.Caption:=GetDBString('COM00005012'); //查询
ActPrint.Caption:=GetDBString('COM00005013'); //打印
ActExport.Caption:=GetDBString('COM00005014'); //导出数据
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); //删除当前记录
ActSave.Hint:=GetDBString('COM00005008',2); //保存编辑的记录
ActCancel.Hint:=GetDBString('COM00005009',2); //取消编辑的记录
ActRefresh.Hint:=GetDBString('COM00005010',2); //取得最新的数据
ActLocate.Hint:=GetDBString('COM00005011',2); //快速定位记录
ActSearch.Hint:=GetDBString('COM00005012',2); //按条件查询数据
ActPrint.Hint:=GetDBString('COM00005013',2); //将数据打印出来
ActExport.Hint:=GetDBString('COM00005014',2); //导出数据到文件中
ActExit.Hint:=GetDBString('COM00005015',2); //关闭当前窗口
Caption:=GetDBString('PAY51001001'); //员工薪资结构
ActSet.Caption:=GetDBString('PAY51001002'); //设置
TabSheet1.Caption:=GetDBString('PAY51001003'); //薪资结构
TabSheet2.Caption:=GetDBString('PAY51001004'); //结构维护
lblEmpID.Caption:=GetDBString('PAY51001005'); //员工编号
lblDate.Caption:=GetDBString('PAY51001006'); //生效日期
lblClass.Caption:=GetDBString('PAY51001007'); //薪资类别
qryPay510AP510A_004.DisplayLabel:=GetDBString('PAY51001008'); //生效日期
qryPay510AP160A_002.DisplayLabel:=GetDBString('PAY51001009'); //类别编号
qryPay510AP160A_003.DisplayLabel:=GetDBString('PAY51001010'); //类别名称
qryPay510BP150_009.DisplayLabel:=GetDBString('PAY51001011'); //加项减项
qryPay510BP150_002.DisplayLabel:=GetDBString('PAY51001012'); //项目编号
qryPay510BP150_003.DisplayLabel:=GetDBString('PAY51001013'); //项目名称
qryPay510BP510B_003.DisplayLabel:=GetDBString('PAY51001014'); //项目金额
qryPay510BP510B_004.DisplayLabel:=GetDBString('PAY51001015'); //选择
qryHrm150H150_002.DisplayLabel:=GetDBString('PAY51001005'); //员工编号
qryHrm150H150_003.DisplayLabel:=GetDBString('PAY51001016'); //员工姓名
qryPay150P150_002.DisplayLabel:=GetDBString('PAY51001012'); //项目编号
qryPay150P150_003.DisplayLabel:=GetDBString('PAY51001013'); //项目名称
qryPay150P150_009.DisplayLabel:=GetDBString('PAY51001011'); //加项减项
qryPay160AP160A_002.DisplayLabel:=GetDBString('PAY51001009'); //类别编号
qryPay160AP160A_003.DisplayLabel:=GetDBString('PAY51001010'); //类别名称
AType[0]:=GetDBString('PAY51001017'); //加项
AType[1]:=GetDBString('PAY51001018'); //减项
AType[2]:=GetDBString('PAY51001019'); //合计
PageControl1.ActivePageIndex:=0;
end;
procedure TPay510_01Form.SetPayItem(AClassNo:Integer);
var
AItemNo:Integer;
AAmount:Double;
ASelect:Boolean;
begin
adsPay510.DisableControls;
adsPay510.Close;
adsPay510.FieldDefs.Clear;
adsPay510.FieldDefs.Add('P150_009',ftSmallint,0);
adsPay510.FieldDefs.Add('P150_001',ftInteger,0);
adsPay510.FieldDefs.Add('P150_002',ftString,20);
adsPay510.FieldDefs.Add('P150_003',ftString,50);
adsPay510.FieldDefs.Add('P510B_003',ftFloat,0);
adsPay510.FieldDefs.Add('P510B_004',ftBoolean,0);
adsPay510.CreateDataSet;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select * from PAY160B where P160B_001='+IntToStr(AClassNo));
SYSDM.qryQuery.Open;
while not SYSDM.qryQuery.Eof do
begin
AItemNo:=SYSDM.qryQuery.FieldByName('P160B_002').Value;
AAmount:=SYSDM.qryQuery.FieldByName('P160B_003').Value;
ASelect:=SYSDM.qryQuery.FieldByName('P160B_004').Value;
if not qryPay150.Active then qryPay150.Open;
qryPay150.Locate('P150_001',AItemNo,[]);
adsPay510.Append;
adsPay510.FieldByName('P150_009').Value:=qryPay150.FieldByName('P150_009').Value;
adsPay510.FieldByName('P150_001').Value:=AItemNo;
adsPay510.FieldByName('P150_002').Value:=qryPay150.FieldByName('P150_002').Value;
adsPay510.FieldByName('P150_003').Value:=qryPay150.FieldByName('P150_003').Value;
adsPay510.FieldByName('P510B_003').Value:=AAmount;
adsPay510.FieldByName('P510B_004').Value:=ASelect;
adsPay510.Post;
SYSDM.qryQuery.Next;
end;
SYSDM.qryQuery.Close;
adsPay510.EnableControls;
adsPay510.First;
end;
procedure TPay510_01Form.FormCreate(Sender: TObject);
begin
inherited;
qryPay150.Open;
qryPay160A.Open;
qryHrm150.Open;
qryPay510A.Open;
qryPay510B.Open;
//设置界面信息
SetInterface;
SetButtonState(False);
end;
procedure TPay510_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if ActSave.Enabled then
begin
if ShowDialog('UMS10000007')=IDNO then //数据尚未保存,现在保存吗?
ActCancel.Execute
else
ActSave.Execute;
end;
qryHrm150.Close;
qryPay510A.Close;
qryPay510B.Close;
qryPay150.Close;
qryPay160A.Close;
Action:=caFree;
PageControl1.ActivePageIndex:=0;
inherited;
end;
procedure TPay510_01Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
inherited;
if ParName='USENM' then ParValue:=AUserName
else if ParName='PRNDT' then ParValue:=GetDBString('COM00006006') //列印日期
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -