⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pay150_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
字号:
unit Pay150_01;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Bas100_01, Grids, ExtCtrls, Db, ComCtrls,
  ToolWin, StdCtrls, DBCtrls, Buttons, Mask, dxExEdtr, dxCntner,
  dxTL, dxDBCtrl, dxDBGrid, ActnList, ADODB, Menus, dxEditor, dxEdLib,
  dxDBTLCl, dxGrClms;

type
  TPay150_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;
    tlbLocate: TToolButton;
    ToolButton4: TToolButton;
    tlbExit: TToolButton;
    Panel1: TPanel;
    Image1: TImage;
    dsPay150: TDataSource;
    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;
    ToolButton5: TToolButton;
    qryPay150: TADOQuery;
    ScrollBox1: TScrollBox;
    ToolButton3: TToolButton;
    tlbRefresh: TToolButton;
    dxDBGrid1: TdxDBGrid;
    qryPay150P150_001: TAutoIncField;
    qryPay150P150_002: TStringField;
    qryPay150P150_003: TStringField;
    qryPay150P150_004: TSmallintField;
    qryPay150P150_005: TSmallintField;
    qryPay150P150_007: TIntegerField;
    qryPay150P150_008: TBooleanField;
    dxDBGrid1P150_002: TdxDBGridMaskColumn;
    dxDBGrid1P150_003: TdxDBGridMaskColumn;
    dxDBGrid1P150_004: TdxDBGridMaskColumn;
    dxDBGrid1P150_005: TdxDBGridMaskColumn;
    dxDBGrid1P150_008: TdxDBGridCheckColumn;
    ToolButton7: TToolButton;
    ActFunction: TAction;
    qryPay150P150_009: TSmallintField;
    dxDBGrid1P150_009: TdxDBGridColumn;
    qryPay150P150_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 ActRefreshExecute(Sender: TObject);
    procedure ActLocateExecute(Sender: TObject);
    procedure ActSearchExecute(Sender: TObject);
    procedure ActExitExecute(Sender: TObject);
    procedure ActSeqExecute(Sender: TObject);
    procedure qryPay150P150_004GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure qryPay150P150_005GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure ActFunctionExecute(Sender: TObject);
    procedure qryPay150P150_009GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure qryPay150AfterPost(DataSet: TDataSet);
  private
    AMode:string;
    AUnit:array[0..6] of string;
    AType:array[0..1] of string;
    AAdd:array[0..2] of string;
    procedure SetButtonState(AInsUpd:Boolean);
    procedure SetInterface;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Pay150_01Form: TPay150_01Form;

implementation

uses CommFun, SYSDATA, Pay150_02, Pay150_03;

{$R *.DFM}

//设置按钮状态
procedure TPay150_01Form.SetButtonState(AInsUpd:Boolean);
begin
  ActInsert.Enabled:=(ARights[2]='Y') and (not AInsUpd);
  ActUpdate.Enabled:=(ARights[3]='Y') and (not AInsUpd);
  ActDelete.Enabled:=(ARights[4]='Y') and (not AInsUpd);
end;

procedure TPay150_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');  //删除
  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);  //关闭当前窗口

  Caption:=GetDBString('PAY15001001');  //薪资项目维护
  qryPay150.FieldByName('P150_002').DisplayLabel:=GetDBString('PAY15001002');  //项目编号
  qryPay150.FieldByName('P150_003').DisplayLabel:=GetDBString('PAY15001003');  //项目名称
  qryPay150.FieldByName('P150_004').DisplayLabel:=GetDBString('PAY15001004');  //项目类型
  qryPay150.FieldByName('P150_005').DisplayLabel:=GetDBString('PAY15001005');  //计量单位
  qryPay150.FieldByName('P150_006').DisplayLabel:=GetDBString('PAY15001006');  //计算公式
  qryPay150.FieldByName('P150_007').DisplayLabel:=GetDBString('PAY15001007');  //计算顺序
  qryPay150.FieldByName('P150_008').DisplayLabel:=GetDBString('PAY15001008');  //是否使用
  qryPay150.FieldByName('P150_009').DisplayLabel:=GetDBString('PAY15001020');  //加项减项

  ActSeq.Caption:=GetDBString('PAY15001018');  //排序
  ActSeq.Hint:=GetDBString('PAY15001018',2);  //排列项目的计算顺序
  ActFunction.Caption:=GetDBString('PAY15001019');  //函数
  ActFunction.Hint:=GetDBString('PAY15001019',2);  //设置薪资项目函数

  AUnit[0]:=GetDBString('PAY15001009');  //分钟
  AUnit[1]:=GetDBString('PAY15001010');  //小时
  AUnit[2]:=GetDBString('PAY15001011');  //天
  AUnit[3]:=GetDBString('PAY15001012');  //次
  AUnit[4]:=GetDBString('PAY15001013');  //月
  AUnit[5]:=GetDBString('PAY15001014');  //年
  AUnit[6]:=GetDBString('PAY15001015');  //元
  AType[0]:=GetDBString('PAY15001016');  //按考勤事务处理
  AType[1]:=GetDBString('PAY15001017');  //按公式计算
  AAdd[0]:=GetDBString('PAY15001021');  //加项
  AAdd[1]:=GetDBString('PAY15001022');  //减项
  AAdd[2]:=GetDBString('PAY15001023');  //合计
end;

procedure TPay150_01Form.FormCreate(Sender: TObject);
begin
  inherited;
  qryPay150.Open;
  //设置界面信息
  SetInterface;
  SetButtonState(False);
end;

procedure TPay150_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  qryPay150.Close;
  Action:=cafree;
end;

procedure TPay150_01Form.ActFirstExecute(Sender: TObject);
begin
  inherited;
//最前
  if qryPay150.IsEmpty then Exit;
  qryPay150.First;
  ActFirst.Enabled:=False;
  ActPrior.Enabled:=False;
  ActNext.Enabled:=True;
  ActLast.Enabled:=True;
end;

procedure TPay150_01Form.ActPriorExecute(Sender: TObject);
begin
  inherited;
//上移
  if qryPay150.IsEmpty then Exit;
  qryPay150.Prior;
  ActNext.Enabled:=not qryPay150.Eof;
  ActLast.Enabled:=not qryPay150.Eof;
  ActFirst.Enabled:=not qryPay150.Bof;
  ActPrior.Enabled:=not qryPay150.Bof;
end;

procedure TPay150_01Form.ActNextExecute(Sender: TObject);
begin
  inherited;
//下移
  if qryPay150.IsEmpty then Exit;
  qryPay150.Next;
  ActNext.Enabled:=not qryPay150.Eof;
  ActLast.Enabled:=not qryPay150.Eof;
  ActFirst.Enabled:=not qryPay150.Bof;
  ActPrior.Enabled:=not qryPay150.Bof;
end;

procedure TPay150_01Form.ActLastExecute(Sender: TObject);
begin
  inherited;
//最后
  if qryPay150.IsEmpty then Exit;
  qryPay150.Last;
  ActNext.Enabled:=False;
  ActLast.Enabled:=False;
  ActFirst.Enabled:=True;
  ActPrior.Enabled:=True;
end;

procedure TPay150_01Form.ActInsertExecute(Sender: TObject);
begin
  inherited;
//新增
  Pay150_02Form:=TPay150_02Form.Create(Application);
  AMode:='ADD';
  Pay150_02Form.AMode:='ADD';
  Pay150_02Form.ADataSet:=qryPay150;
  Pay150_02Form.ShowModal;
end;

procedure TPay150_01Form.ActUpdateExecute(Sender: TObject);
begin
  inherited;
//修改
  if qryPay150.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Exit;
  end;
  Pay150_02Form:=TPay150_02Form.Create(Application);
  AMode:='UPD';
  Pay150_02Form.AMode:='UPD';
  Pay150_02Form.ADataSet:=qryPay150;
  Pay150_02Form.edtCode.Text:=qryPay150.FieldByName('P150_002').Value;
  Pay150_02Form.edtName.Text:=qryPay150.FieldByName('P150_003').Value;
  Pay150_02Form.cbType.ItemIndex:=qryPay150.FieldByName('P150_004').Value;
  Pay150_02Form.cbUnit.ItemIndex:=qryPay150.FieldByName('P150_005').Value;
  Pay150_02Form.cbAdd.ItemIndex:=qryPay150.FieldByName('P150_009').Value;
  Pay150_02Form.cbActive.Checked:=qryPay150.FieldByName('P150_008').Value;
  Pay150_02Form.AOldCode:=Pay150_02Form.edtCode.Text;
  Pay150_02Form.ShowModal;
end;

procedure TPay150_01Form.ActDeleteExecute(Sender: TObject);
var
  AItemNo:Integer;
begin
  inherited;
//删除
  if qryPay150.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Abort;
  end;

  if ShowDialog('UMS10000008')=IDYES then  //确定要删除此记录吗?
  begin
    AItemNo:=qryPay150.FieldByName('P150_001').Value;
    //删除“薪资项目”,同步更新“薪资类别”表[PAY160B]和“薪资结构”表[PAY510B]
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('delete from PAY160B where P160B_002='+IntToStr(AItemNo));
    SYSDM.qryQuery.ExecSQL;
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('delete from PAY510B where P510B_002='+IntToStr(AItemNo));
    SYSDM.qryQuery.ExecSQL;
    qryPay150.Delete;
  end;
end;

procedure TPay150_01Form.ActRefreshExecute(Sender: TObject);
begin
  inherited;
//刷新
  qryPay150.Close;
  qryPay150.Open;
end;

procedure TPay150_01Form.ActLocateExecute(Sender: TObject);
begin
  inherited;
//查找
  if qryPay150.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Exit;
  end;
  LocateDialog(dsPay150);
end;

procedure TPay150_01Form.ActSearchExecute(Sender: TObject);
begin
  inherited;
//查询
  FilterDialog(dsPay150);
end;

procedure TPay150_01Form.ActExitExecute(Sender: TObject);
begin
  inherited;
//退出
  Close;
end;

procedure TPay150_01Form.ActSeqExecute(Sender: TObject);
begin
  inherited;
//排序
  Pay150_03Form:=TPay150_03Form.Create(Application);
  if Pay150_03Form.ShowModal=1 then ActRefresh.Execute;
end;

procedure TPay150_01Form.qryPay150P150_004GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if qryPay150.IsEmpty then Exit;
  case Sender.AsInteger of
    0:Text:=AType[0];  //按考勤事务处理
    1:Text:=AType[1];  //按公式计算
  end;
end;

procedure TPay150_01Form.qryPay150P150_005GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if qryPay150.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];  //年
    6:Text:=AUnit[6];  //年
  end;
end;

procedure TPay150_01Form.ActFunctionExecute(Sender: TObject);
begin
  inherited;
//函数
end;

procedure TPay150_01Form.qryPay150P150_009GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if qryPay150.IsEmpty then Exit;
  case Sender.AsInteger of
    0:Text:=AAdd[0];  //加项
    1:Text:=AAdd[1];  //减项
    2:Text:=AAdd[2];  //合计
  end;
end;

procedure TPay150_01Form.qryPay150AfterPost(DataSet: TDataSet);
var
  AItemNo:String;
begin
  inherited;
  qryPay150.Refresh;
  AItemNo:=qryPay150.FieldByName('P150_001').AsString;
  //新增“薪资项目”,同步更新“薪资类别”表[PAY160B]和“薪资结构”表[PAY510B]
  if AMode='ADD' then
  begin
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('insert into PAY160B(P160B_001,P160B_002,P160B_003,P160B_004)');
    SYSDM.qryQuery.SQL.Add('select P160A_001,'+AItemNo+',0,0 from PAY160A');
    SYSDM.qryQuery.ExecSQL;
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('insert into PAY510B(P510B_001,P510B_002,P510B_003,P510B_004)');
    SYSDM.qryQuery.SQL.Add('select P510A_001,'+AItemNo+',0,0 from PAY510A');
    SYSDM.qryQuery.ExecSQL;
  end;
end;

initialization
  RegisterClass(TPay150_01Form);

finalization
  UnRegisterClass(TPay150_01Form);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -