📄 cwa500_01.pas.svn-base
字号:
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'); //明细资料
Caption:=GetDBString('CWA50001001'); //考勤事务处理
ActCheck.Caption:=GetDBString('CWA50001002'); //审核
ActBatch.Caption:=GetDBString('CWA50001003'); //成批
ActQuick.Caption:=GetDBString('CWA50001004'); //快速
lblYear.Caption:=GetDBString('CWA50001005'); //年份
lblMonth.Caption:=GetDBString('CWA50001006'); //月份
lblTypeName.Caption:=GetDBString('CWA50001007'); //事务类型
lblType.Caption:=GetDBString('CWA50001007'); //事务类型
lblReason.Caption:=GetDBString('CWA50001019'); //原因编号
lblDesc.Caption:=GetDBString('CWA50001009'); //事务说明
lblEmpID.Caption:=GetDBString('CWA50001008'); //员工编号
lblDate.Caption:=GetDBString('CWA50001010'); //事务日期
lblTime.Caption:=GetDBString('CWA50001011'); //起止时间
lblValue.Caption:=GetDBString('CWA50001014'); //事务数值
lblUnit.Caption:=GetDBString('CWA50001015'); //计量单位
sbOk.Caption:=GetDBString('CWA50001016'); //确定
qryCwa500C150_002.DisplayLabel:=GetDBString('CWA50001017'); //类型编号
qryCwa500C150_003.DisplayLabel:=GetDBString('CWA50001018'); //类型名称
qryCwa500C160_002.DisplayLabel:=GetDBString('CWA50001019'); //原因编号
qryCwa500C160_003.DisplayLabel:=GetDBString('CWA50001020'); //原因说明
qryCwa500C500_003.DisplayLabel:=GetDBString('CWA50001009'); //事务说明
qryCwa500H150_002.DisplayLabel:=GetDBString('CWA50001008'); //员工编号
qryCwa500H150_003.DisplayLabel:=GetDBString('CWA50001021'); //员工姓名
qryCwa500C500_005.DisplayLabel:=GetDBString('CWA50001010'); //事务日期
qryCwa500C500_006.DisplayLabel:=GetDBString('CWA50001012'); //起始时间
qryCwa500C500_007.DisplayLabel:=GetDBString('CWA50001013'); //结束时间
qryCwa500C500_008.DisplayLabel:=GetDBString('CWA50001014'); //事务数值
qryCwa500C500_009.DisplayLabel:=GetDBString('CWA50001015'); //计量单位
qryCwa500C500_010.DisplayLabel:=GetDBString('CWA50001022'); //已审核否
qryCwa150C150_002.DisplayLabel:=GetDBString('CWA50001017'); //类型编号
qryCwa150C150_002.DisplayLabel:=GetDBString('CWA50001018'); //类型名称
qryHrm150H150_002.DisplayLabel:=GetDBString('CWA50001008'); //员工编号
qryHrm150H150_003.DisplayLabel:=GetDBString('CWA50001021'); //员工姓名
qryCwa160C160_002.DisplayLabel:=GetDBString('CWA50001019'); //原因编号
qryCwa160C160_003.DisplayLabel:=GetDBString('CWA50001020'); //原因说明
AUnit[0]:=GetDBString('COM00004009'); //分钟
AUnit[1]:=GetDBString('COM00004010'); //小时
AUnit[2]:=GetDBString('COM00004011'); //天
AUnit[3]:=GetDBString('COM00004012'); //次
AUnit[4]:=GetDBString('COM00004031'); //月
AUnit[5]:=GetDBString('COM00004032'); //年
//取系统参数(事务处理必须审核否'PAY0006')
ActCheck.Visible:=GetSysParams('PAY0006')='Y';
end;
procedure TCwa500_01Form.MenuItemClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:=not TMenuItem(Sender).Checked;
dxDBGrid1.ColumnByFieldName(TMenuItem(Sender).Name).Visible:=TMenuItem(Sender).Checked;
end;
procedure TCwa500_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 TCwa500_01Form.FormCreate(Sender: TObject);
begin
qryCwa150.Close;
qryCwa150.SQL.Clear;
qryCwa150.SQL.Add('select * from CWA150 where C150_008='+GetBoolean(True)+' and C150_004=0 order by C150_002');
qryCwa150.Open;
inherited;
GetYears(cbYear);
GetMonths(StrToInt(cbYear.Text),cbMonth);
cbType.Items.Clear;
cbType.Items.Add(GetDBString('COM00004013')); //所有事务
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select C150_003 from CWA150 where C150_008='+GetBoolean(True)+' and C150_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 TCwa500_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if ActSave.Enabled then
begin
if ShowDialog('UMS10000007')=IDNO then //数据尚未保存,现在保存吗?
ActCancel.Execute
else
ActSave.Execute;
Action:=cafree;
end;
qryCwa500.Close;
Action:=cafree;
inherited;
end;
procedure TCwa500_01Form.cbYearChange(Sender: TObject);
begin
inherited;
GetMonths(StrToInt(cbYear.Text),cbMonth);
end;
procedure TCwa500_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='C150_002' then ParValue:=GetDBString('CWA50001017') //类型编号
else if ParName='C150_003' then ParValue:=GetDBString('CWA50001018') //类型名称
else if ParName='C160_002' then ParValue:=GetDBString('CWA50001019') //原因编号
else if ParName='C160_003' then ParValue:=GetDBString('CWA50001020') //原因说明
else if ParName='H150_002' then ParValue:=GetDBString('CWA50001008') //员工编号
else if ParName='H150_003' then ParValue:=GetDBString('CWA50001021') //员工姓名
else if ParName='C500_003' then ParValue:=GetDBString('CWA50001009') //事务说明
else if ParName='C500_005' then ParValue:=GetDBString('CWA50001010') //事务日期
else if ParName='C500_006' then ParValue:=GetDBString('CWA50001012') //起始时间
else if ParName='C500_007' then ParValue:=GetDBString('CWA50001013') //结束时间
else if ParName='C500_008' then ParValue:=GetDBString('CWA50001014') //事务数值
else if ParName='C500_009' then ParValue:=GetDBString('CWA50001015') //计量单位
else if ParName='C500_010' then ParValue:=GetDBString('CWA50001022') //已审核否
end;
procedure TCwa500_01Form.SpeedButton1Click(Sender: TObject);
begin
inherited;
//事务类型查询
if not edtTypeID.Focused then edtTypeID.SetFocus;
if not ActSave.Enabled then Exit;
edtTypeID.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryCwa150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtTypeID.Text:=qryCwa150.FieldByName('C150_002').AsString;
qryCwa500.FieldByName('C500_001').AsString:=qryCwa150.FieldByName('C150_001').AsString;
qryCwa500.FieldByName('C500_003').AsString:=qryCwa150.FieldByName('C150_003').AsString;
qryCwa500.FieldByName('C500_009').AsString:=qryCwa150.FieldByName('C150_005').AsString; //计量单位
end;
end;
procedure TCwa500_01Form.SpeedButton2Click(Sender: TObject);
begin
inherited;
//员工编号查询
if not edtEmpID.Focused then edtEmpID.SetFocus;
if not ActSave.Enabled then Exit;
edtEmpID.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryHrm150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtEmpID.Text:=qryHrm150.FieldByName('H150_002').AsString;
qryCwa500.FieldByName('C500_004').AsString:=qryHrm150.FieldByName('H150_001').AsString;
end;
end;
procedure TCwa500_01Form.SpeedButton3Click(Sender: TObject);
begin
inherited;
//原因编号查询
if not edtReasonID.Focused then edtReasonID.SetFocus;
if not ActSave.Enabled then Exit;
edtReasonID.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryCwa160,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtReasonID.Text:=qryCwa160C160_002.Value;
qryCwa500C500_002.Value:=qryCwa160C160_001.Value;
end;
end;
procedure TCwa500_01Form.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
inherited;
if qryCwa500.State in [dsInsert, dsEdit] then AllowChange:=False;
end;
procedure TCwa500_01Form.edtTypeIDExit(Sender: TObject);
begin
inherited;
if (ActSave.Enabled) and (trim(edtTypeID.Text)<>'') then
begin
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select C150_001,C150_002,C150_003,C150_005 from CWA150 where C150_002='+''''+edtTypeID.Text+'''');
SYSDM.qryQuery.Open;
if not SYSDM.qryQuery.IsEmpty then
begin
if not (qryCwa500.State in [dsInsert, dsEdit]) then qryCwa500.Edit;
edtTypeID.Text:=SYSDM.qryQuery.FieldByName('C150_002').AsString;
qryCwa500.FieldByName('C500_001').AsString:=SYSDM.qryQuery.FieldByName('C150_001').AsString;
qryCwa500.FieldByName('C500_003').AsString:=SYSDM.qryQuery.FieldByName('C150_003').AsString;
qryCwa500.FieldByName('C500_009').AsString:=SYSDM.qryQuery.FieldByName('C150_005').AsString; //计量单位
end else
begin
ShowMsg('UMS10000072'); //无效的事务类型
edtTypeID.SetFocus;
Abort;
end;
end;
end;
procedure TCwa500_01Form.edtEmpIDExit(Sender: TObject);
begin
inherited;
if (ActSave.Enabled) and (trim(edtEmpID.Text)<>'') then
begin
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select H150_001,H150_002,H150_003 from HRM150 where H150_002='+''''+edtEmpID.Text+'''');
SYSDM.qryQuery.Open;
if not SYSDM.qryQuery.IsEmpty then
begin
if not (qryCwa500.State in [dsInsert, dsEdit]) then qryCwa500.Edit;
edtEmpID.Text:=SYSDM.qryQuery.FieldByName('H150_002').AsString;
qryCwa500.FieldByName('C500_004').AsString:=SYSDM.qryQuery.FieldByName('H150_001').AsString;
end else
begin
ShowMsg('UMS10000042'); //无效的员工编号
edtEmpID.SetFocus;
Abort;
end;
end;
end;
procedure TCwa500_01Form.edtReasonIDExit(Sender: TObject);
begin
inherited;
//原因编号查询
if (ActSave.Enabled) and (trim(edtReasonID.Text)<>'') then
begin
if qryCwa160.Locate('C160_002',edtReasonID.Text,[loCaseInsensitive]) then
begin
edtReasonID.Text:=qryCwa160C160_002.Value;
qryCwa500C500_002.Value:=qryCwa160C160_001.Value;
end else
begin
ShowMsg('UMS10000074'); //无效的原因编号
edtReasonID.SetFocus;
Abort;
end;
end;
end;
procedure TCwa500_01Form.edtTypeIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key=vk_F4 then SpeedButton1.Click;
end;
procedure TCwa500_01Form.edtEmpIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key=vk_F4 then SpeedButton2.Click;
end;
procedure TCwa500_01Form.edtReasonIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if Key=vk_F4 then SpeedButton3.Click;
end;
procedure TCwa500_01Form.sbOkClick(Sender: TObject);
begin
inherited;
//确定
if (cbYear.Text='') or (cbMonth.Text='') or (cbType.Text='') then Exit;
//取得期段的起始结束日期
GetPeriodDate(cbYear.Text,cbMonth.Text,AStartDate,AEndDate,APeriod);
qryCwa500.Close;
qryCwa500.SQL.Clear;
if ATypeNo=0 then
qryCwa500.SQL.Add('select * from CWA500 where C500_005>='+GetDateString(AStartDate)+' and C500_005<='+GetDateString(AEndDate))
else
qryCwa500.SQL.Add('select * from CWA500 where C500_001='+IntToStr(ATypeNo)+' and C500_005>='+GetDateString(AStartDate)+' and C500_005<='+GetDateString(AEndDate));
qryCwa500.Open;
end;
procedure TCwa500_01Form.cbMonthChange(Sender: TObject);
begin
inherited;
//取得期段的起始结束日期
GetPeriodDate(cbYear.Text,cbMonth.Text,AStartDate,AEndDate,APeriod);
end;
procedure TCwa500_01Form.cbTypeChange(Sender: TObject);
begin
inherited;
if cbYear.Text='' then Exit;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select C150_001 from CWA150 where C150_003='+''''+cbType.Text+'''');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.IsEmpty then
ATypeNo:=0
else
ATypeNo:=SYSDM.qryQuery.Fields[0].Value; //事务类型
end;
procedure TCwa500_01Form.ActFirstExecute(Sender: TObject);
begin
inherited;
//最前
if qryCwa500.IsEmpty then Exit;
qryCwa500.First;
ActFirst.Enabled:=False;
ActPrior.Enabled:=False;
ActNext.Enabled:=True;
ActLast.Enabled:=True;
end;
procedure TCwa500_01Form.ActPriorExecute(Sender: TObject);
begin
inherited;
//上移
if qryCwa500.IsEmpty then Exit;
qryCwa500.Prior;
ActNext.Enabled:=not qryCwa500.Eof;
ActLast.Enabled:=not qryCwa500.Eof;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -