📄 pay500_01.pas.svn-base
字号:
unit Pay500_01;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Bas100_01, FR_DSet, FR_DBSet, FR_Class, Db, Menus,
Grids, StdCtrls, ExtCtrls, ComCtrls, ToolWin, Wwintl,
Mask, DBCtrls, Buttons, wwdbdatetimepicker,
dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, ActnList, ADODB,
dxDBTLCl, dxGrClms;
type
TPay500_01Form = class(TBas100_01Form)
CoolBar1: TCoolBar;
Panel1: TPanel;
Image1: TImage;
lblYear: TLabel;
lblMonth: TLabel;
lblTypeName: TLabel;
cbYear: TComboBox;
cbMonth: TComboBox;
cbType: TComboBox;
PopupMenu1: TPopupMenu;
mmiPrint: TMenuItem;
mmiExport: TMenuItem;
dsPay500: TDataSource;
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;
tlbCheck: TToolButton;
ToolButton4: TToolButton;
tlbExit: TToolButton;
tlbBatch: TToolButton;
ToolButton5: TToolButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
sbOk: TSpeedButton;
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;
SaveDialog1: TSaveDialog;
qryPay500: TADOQuery;
qryPay150: TADOQuery;
qryHrm150: TADOQuery;
qryCwa160: TADOQuery;
ActCheck: TAction;
ActBatch: TAction;
qryCwa160C160_001: TAutoIncField;
qryCwa160C160_002: TStringField;
qryCwa160C160_003: TStringField;
qryCwa160C160_004: TIntegerField;
qryCwa160C160_005: TFloatField;
qryHrm150H150_001: TAutoIncField;
qryHrm150H150_002: TStringField;
qryHrm150H150_003: TStringField;
ScrollBox1: TScrollBox;
lblDest: TLabel;
lblEmpID: TLabel;
lblDate: TLabel;
lblReason: TLabel;
lblType: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
lblAmount: TLabel;
edtDest: TDBEdit;
edtTypeID: TEdit;
DBEdit9: TDBEdit;
edtEmpID: TEdit;
DBEdit10: TDBEdit;
dtpDate: TwwDBDateTimePicker;
edtReasonID: TEdit;
DBEdit3: TDBEdit;
edtAmount: TDBEdit;
ScrollBox2: TScrollBox;
dxDBGrid1: TdxDBGrid;
qryPay500P500_001: TIntegerField;
qryPay500P500_002: TIntegerField;
qryPay500P500_003: TStringField;
qryPay500P500_004: TIntegerField;
qryPay500P500_005: TDateTimeField;
qryPay500P500_006: TFloatField;
qryPay500P500_007: TBooleanField;
qryPay500P150_002: TStringField;
qryPay500P150_003: TStringField;
qryPay150P150_001: TAutoIncField;
qryPay150P150_002: TStringField;
qryPay150P150_003: TStringField;
qryPay500H150_002: TStringField;
qryPay500H150_003: TStringField;
qryPay500C160_002: TStringField;
qryPay500C160_003: TStringField;
dxDBGrid1P150_002: TdxDBGridLookupColumn;
dxDBGrid1P150_003: TdxDBGridLookupColumn;
dxDBGrid1C160_002: TdxDBGridLookupColumn;
dxDBGrid1C160_003: TdxDBGridLookupColumn;
dxDBGrid1P500_003: TdxDBGridMaskColumn;
dxDBGrid1H150_003: TdxDBGridLookupColumn;
dxDBGrid1H150_002: TdxDBGridLookupColumn;
dxDBGrid1P500_005: TdxDBGridDateColumn;
dxDBGrid1P500_006: TdxDBGridMaskColumn;
dxDBGrid1P500_007: TdxDBGridCheckColumn;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cbYearChange(Sender: TObject);
procedure ReportGetValue(const ParName: String;
var ParValue: Variant);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure edtTypeIDExit(Sender: TObject);
procedure edtEmpIDExit(Sender: TObject);
procedure edtReasonIDExit(Sender: TObject);
procedure edtTypeIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtEmpIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtReasonIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cbMonthChange(Sender: TObject);
procedure cbTypeChange(Sender: TObject);
procedure sbOkClick(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure qryPay500AfterScroll(DataSet: TDataSet);
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 ActCheckExecute(Sender: TObject);
procedure ActBatchExecute(Sender: TObject);
procedure ActExitExecute(Sender: TObject);
procedure dxDBGrid1BackgroundDrawEvent(Sender: TObject;
ACanvas: TCanvas; ARect: TRect);
private
ATypeNo:Integer;
AStartDate,AEndDate:TDateTime;
APeriod:Integer;
procedure SetButtonState(AInsUpd:Boolean);
procedure SetInterface;
procedure MenuItemClick(Sender: TObject);
procedure CreatePopmeun(AGrid:TdxDBGrid);
{ Private declarations }
public
{ Public declarations }
end;
var
Pay500_01Form: TPay500_01Form;
implementation
uses SYSDATA, HwSelData, CommFun, Pay500_02, Pay500_03;
{$R *.DFM}
//设置按钮状态
procedure TPay500_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);
ActExport.Enabled:=(ARights[5]='Y') and (not AInsUpd);
ActCheck.Enabled:=(ARights[7]='Y') and (not AInsUpd);
ActBatch.Enabled:=(ARights[2]='Y') and (not AInsUpd);
ActExit.Enabled:=True;
Panel1.Enabled:=not AInsUpd;
ScrollBox1.Enabled:=AInsUpd;
if AInsUpd then PageControl1.ActivePageIndex:=1;
end;
procedure TPay500_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'); //退出
TabSheet1.Caption:=GetDBString('COM00005016'); //浏览数据
TabSheet2.Caption:=GetDBString('COM00005017'); //明细资料
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('PAY50001001'); //薪资事务处理
ActCheck.Caption:=GetDBString('PAY50001002'); //审核
ActBatch.Caption:=GetDBString('PAY50001003'); //成批
lblYear.Caption:=GetDBString('PAY50001004'); //年份
lblMonth.Caption:=GetDBString('PAY50001005'); //月份
lblTypeName.Caption:=GetDBString('PAY50001006'); //事务类型
lblType.Caption:=GetDBString('PAY50001006'); //事务类型
lblReason.Caption:=GetDBString('PAY50001007'); //事务说明
lblDest.Caption:=GetDBString('PAY50001008'); //事务说明
lblEmpID.Caption:=GetDBString('PAY50001009'); //员工编号
lblDate.Caption:=GetDBString('PAY50001010'); //事务日期
lblAmount.Caption:=GetDBString('PAY50001011'); //事务金额
sbOk.Caption:=GetDBString('PAY50001015'); //确定
qryPay500P500_003.DisplayLabel:=GetDBString('PAY50001007'); //事务说明
qryPay500P500_005.DisplayLabel:=GetDBString('PAY50001010'); //事务日期
qryPay500P500_006.DisplayLabel:=GetDBString('PAY50001011'); //事务金额
qryPay500P500_007.DisplayLabel:=GetDBString('PAY50001012'); //已审核否
qryPay500P150_002.DisplayLabel:=GetDBString('PAY50001017'); //类型编号
qryPay500P150_003.DisplayLabel:=GetDBString('PAY50001018'); //类型名称
qryPay500H150_002.DisplayLabel:=GetDBString('PAY50001019'); //员工编号
qryPay500H150_003.DisplayLabel:=GetDBString('PAY50001020'); //员工名称
qryPay500C160_002.DisplayLabel:=GetDBString('PAY50001021'); //原因编号
qryPay500C160_003.DisplayLabel:=GetDBString('PAY50001022'); //原因说明
qryPay150P150_002.DisplayLabel:=GetDBString('PAY50001017'); //类型编号
qryPay150P150_003.DisplayLabel:=GetDBString('PAY50001018'); //类型名称
qryHrm150H150_002.DisplayLabel:=GetDBString('PAY50001019'); //员工编号
qryHrm150H150_003.DisplayLabel:=GetDBString('PAY50001020'); //员工姓名
qryCwa160C160_002.DisplayLabel:=GetDBString('PAY50001021'); //原因编号
qryCwa160C160_003.DisplayLabel:=GetDBString('PAY50001022'); //原因说明
qryCwa160C160_005.DisplayLabel:=GetDBString('PAY50001023'); //金额
//取系统参数(事务处理必须审核否'PAY0006')
ActCheck.Visible:=GetSysParams('PAY0006')='Y';
end;
procedure TPay500_01Form.MenuItemClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:=not TMenuItem(Sender).Checked;
dxDBGrid1.ColumnByFieldName(TMenuItem(Sender).Name).Visible:=TMenuItem(Sender).Checked;
end;
procedure TPay500_01Form.CreatePopmeun(AGrid:TdxDBGrid);
var
ADataSet:TDataSet;
I:Integer;
AMenuItem:TMenuItem;
begin
if AGrid.DataSource=nil then Exit;
if AGrid.DataSource.DataSet=nil then Exit;
if AGrid.PopupMenu=nil then Exit;
ADataSet:=AGrid.DataSource.DataSet;
for I:=0 to ADataSet.FieldCount-1 do
begin
if ADataSet.Fields[I].Visible then
begin
AMenuItem:=TMenuItem.Create(nil);
AMenuItem.Name:=ADataSet.Fields[I].FieldName;
AMenuItem.Caption:=ADataSet.Fields[I].DisplayLabel;
AMenuItem.Checked:=AGrid.ColumnByFieldName(ADataSet.Fields[I].FieldName).Visible;
AMenuItem.OnClick:=MenuItemClick;
AGrid.PopupMenu.Items.Add(AMenuItem);
end;
end;
end;
procedure TPay500_01Form.FormCreate(Sender: TObject);
begin
qryPay150.Close;
qryPay150.SQL.Clear;
qryPay150.SQL.Add('select * from PAY150 where P150_008='+GetBoolean(True)+' and P150_004=0 order by P150_002');
qryPay150.Open;
inherited;
GetYears(cbYear);
GetMonths(StrToInt(cbYear.Text),cbMonth);
cbType.Items.Clear;
cbType.Items.Add(GetDBString('PAY50001024')); //所有事务
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select P150_003 from PAY150 where P150_008='+GetBoolean(True)+' and P150_004=0');
SYSDM.qryQuery.Open;
while not SYSDM.qryQuery.Eof do
begin
cbType.Items.Add(SYSDM.qryQuery.Fields[0].AsString);
SYSDM.qryQuery.Next;
end;
cbType.ItemIndex:=0;
if cbType.Text<>'' then cbType.OnChange(Self);
sbOk.Click;
SetButtonState(False);
//设置界面信息
SetInterface;
PageControl1.ActivePageIndex:=0;
LoadFromReg(Self); //这行一定放在打开数据集后面,否则无效
CreatePopmeun(dxDBGrid1);
end;
procedure TPay500_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
qryPay500.close;
end;
procedure TPay500_01Form.cbYearChange(Sender: TObject);
begin
inherited;
GetMonths(StrToInt(cbYear.Text),cbMonth);
end;
procedure TPay500_01Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
inherited;
if ParName='USENM' then ParValue:=AUserName
else if ParName='PRNDT' then ParValue:=GetDBString('COM00006006') //列印日期
else if ParName='PRNNM' then ParValue:=GetDBString('COM00006007') //列印人員
else if ParName='REPNM' then ParValue:=AReportTitle
else if ParName='P150_002' then ParValue:=GetDBString('PAY50001017') //类型编号
else if ParName='P150_003' then ParValue:=GetDBString('PAY50001018') //类型名称
else if ParName='P500_003' then ParValue:=GetDBString('PAY50001007') //事务说明
else if ParName='C160_002' then ParValue:=GetDBString('PAY50001021') //原因编号
else if ParName='C160_003' then ParValue:=GetDBString('PAY50001022') //原因说明
else if ParName='H150_002' then ParValue:=GetDBString('PAY50001019') //员工编号
else if ParName='H150_003' then ParValue:=GetDBString('PAY50001020') //员工名称
else if ParName='P500_005' then ParValue:=GetDBString('PAY50001010') //事务日期
else if ParName='P500_006' then ParValue:=GetDBString('PAY50001011') //事务金额
else if ParName='P500_007' then ParValue:=GetDBString('PAY50001012') //已审核否
end;
procedure TPay500_01Form.SpeedButton1Click(Sender: TObject);
begin
inherited;
//事务类型查询
if not edtTypeID.Focused then edtTypeID.SetFocus;
if not ActSave.Enabled then Exit;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryPay150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtTypeID.Text:=qryPay150.FieldByName('P150_002').AsString;
qryPay500P500_001.AsString:=qryPay150.FieldByName('P150_001').AsString;
qryPay500P500_003.AsString:=qryPay150.FieldByName('P150_003').AsString;
end;
end;
procedure TPay500_01Form.SpeedButton2Click(Sender: TObject);
begin
inherited;
//员工编号查询
if not edtEmpID.Focused then edtEmpID.SetFocus;
if ActSave.Enabled then
begin
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryHrm150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtEmpID.Text:=qryHrm150.FieldByName('H150_002').AsString;
qryPay500P500_004.Value:=qryHrm150.FieldByName('H150_001').Value;
end;
end;
end;
procedure TPay500_01Form.SpeedButton3Click(Sender: TObject);
begin
inherited;
//原因编号查询
if not edtReasonID.Focused then edtReasonID.SetFocus;
if not ActSave.Enabled then Exit;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryCwa160,nil);
if HwSelDataForm.ShowModal=1 then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -