📄 cwa500_04.pas.svn-base
字号:
unit Cwa500_04;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Bas100_01, ComCtrls, ToolWin, StdCtrls, Buttons, ExtCtrls, Grids,
Db, dxExEdtr, dxCntner, dxTL, dxDBCtrl,
dxDBGrid, ActnList, Menus, ADODB, FR_DSet, FR_DBSet, FR_Class,
wwdbdatetimepicker;
type
TCwa500_04Form = class(TBas100_01Form)
Panel1: TPanel;
Image1: TImage;
lblYear: TLabel;
lblMonth: TLabel;
cbYear: TComboBox;
cbMonth: TComboBox;
CoolBar1: TCoolBar;
ToolBar2: TToolBar;
tlbFirst: TToolButton;
tlbPrior: TToolButton;
tlbNext: TToolButton;
tlbLast: TToolButton;
ToolButton1: TToolButton;
tlbSave: TToolButton;
tlbCancel: TToolButton;
ToolButton3: TToolButton;
tlbLocate: TToolButton;
ToolButton5: TToolButton;
tlbExit: TToolButton;
dsCwa500: TDataSource;
lblDept: TLabel;
cbDepart: TComboBox;
ActionList1: TActionList;
ActFirst: TAction;
ActPrior: TAction;
ActNext: TAction;
ActLast: TAction;
ActSave: TAction;
ActCancel: TAction;
ActLocate: TAction;
ActSearch: TAction;
ActPrint: TAction;
ActExport: TAction;
ActExit: TAction;
tlbSearch: TToolButton;
tlbPrint: TToolButton;
PopupMenu1: TPopupMenu;
mmiPrint: TMenuItem;
mmiExport: TMenuItem;
SaveDialog1: TSaveDialog;
qryCwa500: TADODataSet;
qryCwa150: TADOQuery;
ScrollBox1: TScrollBox;
dxDBGrid1: TdxDBGrid;
lblType: TLabel;
cbType: TComboBox;
lblEmp: TLabel;
lblDate: TLabel;
dtDate: TwwDBDateTimePicker;
edtEmp: TEdit;
sbEmp: TSpeedButton;
qryHrm150: TADOQuery;
qryHrm150H150_001: TAutoIncField;
qryHrm150H150_002: TStringField;
qryHrm150H150_003: TStringField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cbYearChange(Sender: TObject);
procedure cbMonthChange(Sender: TObject);
procedure cbDepartChange(Sender: TObject);
procedure ActFirstExecute(Sender: TObject);
procedure ActPriorExecute(Sender: TObject);
procedure ActNextExecute(Sender: TObject);
procedure ActLastExecute(Sender: TObject);
procedure ActSaveExecute(Sender: TObject);
procedure ActCancelExecute(Sender: TObject);
procedure ActLocateExecute(Sender: TObject);
procedure ActSearchExecute(Sender: TObject);
procedure ActPrintExecute(Sender: TObject);
procedure ActExportExecute(Sender: TObject);
procedure ActExitExecute(Sender: TObject);
procedure dsCwa500StateChange(Sender: TObject);
procedure qryCwa500FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
procedure cbTypeChange(Sender: TObject);
procedure sbEmpClick(Sender: TObject);
procedure edtEmpExit(Sender: TObject);
procedure edtEmpKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
ADeptNo:Integer;
AStartDate,AEndDate:TDateTime;
APeriod:Integer;
procedure SetInterface;
procedure SaveByDate;
procedure SaveByEmp;
{ Private declarations }
public
{ Public declarations }
end;
var
Cwa500_04Form: TCwa500_04Form;
implementation
uses CommFun, SYSDATA, HwSelData, HwPrint, Wait;
{$R *.DFM}
procedure TCwa500_04Form.SetInterface;
begin
Image1.Picture.Bitmap.LoadFromResourceName(AImgHandle,'TOPTITL');
ActFirst.Caption:=GetDBString('COM00005001'); //最前
ActPrior.Caption:=GetDBString('COM00005002'); //上移
ActNext.Caption:=GetDBString('COM00005003'); //下移
ActLast.Caption:=GetDBString('COM00005004'); //最后
ActSave.Caption:=GetDBString('COM00005008'); //保存
ActCancel.Caption:=GetDBString('COM00005009'); //取消
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); //移到最后一条记录
ActSave.Hint:=GetDBString('COM00005008',2); //保存编辑的记录
ActCancel.Hint:=GetDBString('COM00005009',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('CWA50004001'); //快速录入
lblType.Caption:=GetDBString('CWA50004002'); //类型
lblYear.Caption:=GetDBString('CWA50004003'); //年份
lblMonth.Caption:=GetDBString('CWA50004004'); //月份
lblEmp.Caption:=GetDBString('CWA50004005'); //员工
lblDate.Caption:=GetDBString('CWA50004006'); //日期
lblDept.Caption:=GetDBString('CWA50004007'); //部门
end;
procedure TCwa500_04Form.FormCreate(Sender: TObject);
var
ADate:TDateTime;
begin
qryCwa150.Open;
inherited;
GetYears(cbYear);
GetMonths(StrToInt(cbYear.Text),cbMonth);
GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, ASystemDate, SizeOf(ASystemDate));
ADate:=StrToDate(FormatDateTime(ASystemDate,GetServerDate));
dtDate.Date:=ADate;
qryHrm150.Open;
edtEmp.Text:=qryHrm150H150_002.AsString;
cbType.Clear;
cbType.Items.Add(GetDBString('CWA50004009')); //按日期
cbType.Items.Add(GetDBString('CWA50004010')); //按员工
cbType.ItemIndex:=0;
cbTypeChange(cbType);
cbDepart.Items.Clear;
cbDepart.Items.Add(GetDBString('COM00004007')); //所有部门
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select H100_002 from HRM100 where H100_004='+GetBoolean(True));
SYSDM.qryQuery.Open;
while not SYSDM.qryQuery.Eof do
begin
cbDepart.Items.Add(SYSDM.qryQuery.Fields[0].AsString);
SYSDM.qryQuery.Next;
end;
cbDepart.ItemIndex:=0;
//设置界面信息
SetInterface;
end;
procedure TCwa500_04Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
if ActSave.Enabled then
begin
if ShowDialog('UMS10000007')=IDNO then //数据尚未保存,现在保存吗?
ActCancel.Execute
else
ActSave.Execute;
Action:=cafree;
end;
qryCwa150.Close;
qryCwa500.Close;
Action:=cafree;
end;
procedure TCwa500_04Form.cbYearChange(Sender: TObject);
begin
inherited;
GetMonths(StrToInt(cbYear.Text),cbMonth);
cbMonthChange(cbMonth);
end;
procedure TCwa500_04Form.cbMonthChange(Sender: TObject);
begin
inherited;
//取得期段的起始结束日期
GetPeriodDate(cbYear.Text,cbMonth.Text,AStartDate,AEndDate,APeriod);
if not qryCwa500.Active then Exit;
while not qryCwa500.IsEmpty do qryCwa500.Delete;
while AStartDate<=AEndDate do
begin
qryCwa500.Append;
qryCwa500.Fields[0].Value:=AStartDate;
qryCwa500.Post;
AStartDate:=AStartDate+1;
end;
qryCwa500.First;
end;
procedure TCwa500_04Form.cbDepartChange(Sender: TObject);
begin
inherited;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select H100_001 from HRM100 where H100_002='+''''+cbDepart.Text+'''');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.IsEmpty then
ADeptNo:=0
else
ADeptNo:=SYSDM.qryQuery.Fields[0].Value;
end;
procedure TCwa500_04Form.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_04Form.ActPriorExecute(Sender: TObject);
begin
inherited;
//上移
if qryCwa500.IsEmpty then Exit;
qryCwa500.Prior;
ActNext.Enabled:=not qryCwa500.Eof;
ActLast.Enabled:=not qryCwa500.Eof;
ActFirst.Enabled:=not qryCwa500.Bof;
ActPrior.Enabled:=not qryCwa500.Bof;
end;
procedure TCwa500_04Form.ActNextExecute(Sender: TObject);
begin
inherited;
//下移
if qryCwa500.IsEmpty then Exit;
qryCwa500.Next;
ActNext.Enabled:=not qryCwa500.Eof;
ActLast.Enabled:=not qryCwa500.Eof;
ActFirst.Enabled:=not qryCwa500.Bof;
ActPrior.Enabled:=not qryCwa500.Bof;
end;
procedure TCwa500_04Form.ActLastExecute(Sender: TObject);
begin
inherited;
//最后
if qryCwa500.IsEmpty then Exit;
qryCwa500.Last;
ActNext.Enabled:=False;
ActLast.Enabled:=False;
ActFirst.Enabled:=True;
ActPrior.Enabled:=True;
end;
procedure TCwa500_04Form.SaveByDate;
var
ATypeNo,AUnitNo,AEmpNo:Integer;
AFieldName,ATypeName:String;
ADate:TDateTime;
AFromTime,AToTime:String;
ATime:Double;
I:Integer;
begin
AEmpNo:=GetValue('select H150_001 from HRM150 where H150_002='+''''+trim(edtEmp.Text)+'''');
AFromTime:='00:00';
AToTime:='00:00';
qryCwa500.First;
while not qryCwa500.Eof do
begin
ADate:=qryCwa500.Fields[0].Value;
for I:=1 to qryCwa500.FieldCount-1 do
begin
if qryCwa500.Fields[I].IsNull then Exit;
ATime:=qryCwa500.Fields[I].Value;
if ATime<>0 then
begin
AFieldName:=qryCwa500.Fields[I].FieldName;
ATypeNo:=GetValue('select C150_001 from CWA150 where C150_002='+''''+AFieldName+'''');
ATypeName:=GetValue('select C150_003 from CWA150 where C150_002='+''''+AFieldName+'''');
AUnitNo:=GetValue('select C150_005 from CWA150 where C150_002='+''''+AFieldName+'''');;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from CWA500 where C500_001='+IntToStr(ATypeNo)+' and C500_004='+IntToStr(AEmpNo)+' and C500_005='+GetDateString(ADate)+' and C500_006='+''''+AFromTime+''''+' and C500_007='+''''+AToTime+'''');
SYSDM.qryQuery.ExecSQL;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('insert into CWA500(C500_001,C500_002,C500_003,C500_004,C500_005,C500_006,C500_007,C500_008,C500_009,C500_010)');
SYSDM.qryQuery.SQL.Add('select '+IntToStr(ATypeNo)+',null,'+''''+ATypeName+''''+','+IntToStr(AEmpNo)+','+GetDateString(ADate)+','+''''+AFromTime+''''+','+''''+AToTime+''''+','+FloatToStr(ATime)+','+IntToStr(AUnitNo)+',0');
SYSDM.qryQuery.ExecSQL;
end;
end;
qryCwa500.Next;
end;
end;
procedure TCwa500_04Form.SaveByEmp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -