📄 cwa150_01.pas.svn-base
字号:
unit Cwa150_01;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Bas100_01, Db, StdCtrls, Buttons, Grids, ExtCtrls, ComCtrls, ToolWin,
dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, ADODB, ActnList, Menus,
dxEditor, dxEdLib, dxDBTLCl, dxGrClms;
type
TCwa150_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;
tlbSeq: TToolButton;
tlbLocate: TToolButton;
ToolButton4: TToolButton;
tlbExit: TToolButton;
Panel1: TPanel;
Image1: TImage;
dsCwa150: TDataSource;
qryCwa150: TADOQuery;
ScrollBox1: TScrollBox;
dxDBGrid1: TdxDBGrid;
ToolButton3: TToolButton;
tlbRefresh: TToolButton;
ToolButton6: TToolButton;
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;
qryCwa150C150_001: TAutoIncField;
qryCwa150C150_002: TStringField;
qryCwa150C150_003: TStringField;
qryCwa150C150_004: TSmallintField;
qryCwa150C150_005: TSmallintField;
qryCwa150C150_007: TIntegerField;
qryCwa150C150_008: TBooleanField;
dxDBGrid1C150_002: TdxDBGridMaskColumn;
dxDBGrid1C150_003: TdxDBGridMaskColumn;
dxDBGrid1C150_004: TdxDBGridMaskColumn;
dxDBGrid1C150_005: TdxDBGridMaskColumn;
dxDBGrid1C150_008: TdxDBGridCheckColumn;
tlbFunction: TToolButton;
ActFunction: TAction;
qryCwa150C150_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 ActSeqExecute(Sender: TObject);
procedure ActLocateExecute(Sender: TObject);
procedure ActExitExecute(Sender: TObject);
procedure qryCwa150C150_004GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure qryCwa150C150_005GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure ActRefreshExecute(Sender: TObject);
procedure ActSearchExecute(Sender: TObject);
procedure ActFunctionExecute(Sender: TObject);
private
AUnit:array[0..5] of string;
AType:array[0..1] of string;
procedure SetButtonState(AInsUpd:Boolean);
procedure SetInterface;
{ Private declarations }
public
{ Public declarations }
end;
var
Cwa150_01Form: TCwa150_01Form;
implementation
uses CommFun, SYSDATA, HwFormula, Cwa150_02, Cwa150_03, Cwa150_04;
{$R *.DFM}
//设置按钮状态
procedure TCwa150_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);
ActSeq.Enabled:=(ARights[2]='Y') and (not AInsUpd);
ActLocate.Enabled:=not AInsUpd;
ActExit.Enabled:=True;
end;
procedure TCwa150_01Form.SetInterface;
begin
Font.Name:=AFontName;
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); //关闭当前窗口
ActSeq.Caption:=GetDBString('CWA15001017'); //排序
ActSeq.Hint:=GetDBString('CWA15001017',2); //排列项目的计算顺序
ActFunction.Caption:=GetDBString('CWA15001018'); //函数
ActFunction.Hint:=GetDBString('CWA15001018',2); //设置考勤项目函数
Caption:=GetDBString('CWA15001001'); //考勤项目维护
qryCwa150.FieldByName('C150_002').DisplayLabel:=GetDBString('CWA15001002'); //项目编号
qryCwa150.FieldByName('C150_003').DisplayLabel:=GetDBString('CWA15001003'); //项目名称
qryCwa150.FieldByName('C150_004').DisplayLabel:=GetDBString('CWA15001004'); //项目类型
qryCwa150.FieldByName('C150_005').DisplayLabel:=GetDBString('CWA15001005'); //计量单位
qryCwa150.FieldByName('C150_006').DisplayLabel:=GetDBString('CWA15001006'); //计算公式
qryCwa150.FieldByName('C150_007').DisplayLabel:=GetDBString('CWA15001007'); //计算顺序
qryCwa150.FieldByName('C150_008').DisplayLabel:=GetDBString('CWA15001008'); //是否使用
AUnit[0]:=GetDBString('COM00004009'); //分钟
AUnit[1]:=GetDBString('COM00004010'); //小时
AUnit[2]:=GetDBString('COM00004011'); //天
AUnit[3]:=GetDBString('COM00004012'); //次
AUnit[4]:=GetDBString('COM00004031'); //月
AUnit[5]:=GetDBString('COM00004032'); //年
AType[0]:=GetDBString('CWA15001015'); //按考勤事务处理
AType[1]:=GetDBString('CWA15001016'); //按公式计算
end;
procedure TCwa150_01Form.FormCreate(Sender: TObject);
begin
inherited;
qryCwa150.Open;
//设置界面信息
SetInterface;
SetButtonState(False);
end;
procedure TCwa150_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
qryCwa150.Close;
Action:=cafree;
inherited;
end;
procedure TCwa150_01Form.ActFirstExecute(Sender: TObject);
begin
inherited;
//最前
if qryCwa150.IsEmpty then Exit;
qryCwa150.First;
ActFirst.Enabled:=False;
ActPrior.Enabled:=False;
ActNext.Enabled:=True;
ActLast.Enabled:=True;
end;
procedure TCwa150_01Form.ActPriorExecute(Sender: TObject);
begin
inherited;
//上移
if qryCwa150.IsEmpty then Exit;
qryCwa150.Prior;
ActNext.Enabled:=not qryCwa150.Eof;
ActLast.Enabled:=not qryCwa150.Eof;
ActFirst.Enabled:=not qryCwa150.Bof;
ActPrior.Enabled:=not qryCwa150.Bof;
end;
procedure TCwa150_01Form.ActNextExecute(Sender: TObject);
begin
inherited;
//下移
if qryCwa150.IsEmpty then Exit;
qryCwa150.Next;
ActNext.Enabled:=not qryCwa150.Eof;
ActLast.Enabled:=not qryCwa150.Eof;
ActFirst.Enabled:=not qryCwa150.Bof;
ActPrior.Enabled:=not qryCwa150.Bof;
end;
procedure TCwa150_01Form.ActLastExecute(Sender: TObject);
begin
inherited;
//最后
if qryCwa150.IsEmpty then Exit;
qryCwa150.Last;
ActNext.Enabled:=False;
ActLast.Enabled:=False;
ActFirst.Enabled:=True;
ActPrior.Enabled:=True;
end;
procedure TCwa150_01Form.ActInsertExecute(Sender: TObject);
begin
inherited;
//新增
Cwa150_02Form:=TCwa150_02Form.Create(Application);
Cwa150_02Form.AMode:='ADD';
Cwa150_02Form.ADataSet:=qryCwa150;
Cwa150_02Form.ShowModal;
end;
procedure TCwa150_01Form.ActUpdateExecute(Sender: TObject);
begin
inherited;
//修改
if qryCwa150.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
//系统保留考勤项目不能修改(1=迟到,2=早退,3=旷工,4=请假,5=加班)
if qryCwa150.FieldByName('C150_001').AsInteger in [1,2,3,4,5] then
begin
ShowMsg('UMS10000214'); //系统保留考勤项目不能修改
Abort;
end;
Cwa150_02Form:=TCwa150_02Form.Create(Application);
Cwa150_02Form.AMode:='UPD';
Cwa150_02Form.ADataSet:=qryCwa150;
Cwa150_02Form.edtCode.Text:=qryCwa150.FieldByName('C150_002').Value;
Cwa150_02Form.edtName.Text:=qryCwa150.FieldByName('C150_003').Value;
Cwa150_02Form.cbType.ItemIndex:=qryCwa150.FieldByName('C150_004').Value;
Cwa150_02Form.cbUnit.ItemIndex:=qryCwa150.FieldByName('C150_005').Value;
Cwa150_02Form.cbActive.Checked:=qryCwa150.FieldByName('C150_008').Value;
Cwa150_02Form.AOldCode:=Cwa150_02Form.edtCode.Text;
Cwa150_02Form.ShowModal;
end;
procedure TCwa150_01Form.ActDeleteExecute(Sender: TObject);
begin
inherited;
//删除
if qryCwa150.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
//系统保留考勤项目不能删除(1=迟到,2=早退,3=旷工,4=请假,5=加班)
if qryCwa150.FieldByName('C150_001').AsInteger in [1,2,3,4,5] then
begin
ShowMsg('UMS10000065'); //系统保留考勤项目不能删除
Abort;
end;
if ShowDialog('UMS10000008')=IDYES then //确定要删除此记录吗?
begin
qryCwa150.Delete;
end;
end;
procedure TCwa150_01Form.ActSeqExecute(Sender: TObject);
begin
inherited;
//排序
Cwa150_03Form:=TCwa150_03Form.Create(Application);
if Cwa150_03Form.ShowModal=1 then ActRefresh.Execute;
end;
procedure TCwa150_01Form.ActLocateExecute(Sender: TObject);
begin
inherited;
//查找
if qryCwa150.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;;
end;
LocateDialog(dsCwa150);
end;
procedure TCwa150_01Form.ActExitExecute(Sender: TObject);
begin
inherited;
//退出
Close;
end;
procedure TCwa150_01Form.qryCwa150C150_004GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if qryCwa150.IsEmpty then Exit;
case Sender.AsInteger of
0:Text:=AType[0]; //按考勤事务处理
1:Text:=AType[1]; //按公式计算
end;
end;
procedure TCwa150_01Form.qryCwa150C150_005GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if qryCwa150.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]; //年
end;
end;
procedure TCwa150_01Form.ActRefreshExecute(Sender: TObject);
begin
inherited;
//刷新
qryCwa150.Close;
qryCwa150.Open;
end;
procedure TCwa150_01Form.ActSearchExecute(Sender: TObject);
begin
inherited;
//查询
FilterDialog(dsCwa150);
end;
procedure TCwa150_01Form.ActFunctionExecute(Sender: TObject);
begin
inherited;
//函数
Cwa150_04Form:=TCwa150_04Form.Create(Application);
Cwa150_04Form.ShowModal;
end;
initialization
RegisterClass(TCwa150_01Form);
finalization
UnRegisterClass(TCwa150_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -