saldata.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 1,174 行 · 第 1/3 页

PAS
1,174
字号
    BCDField5: TBCDField;
    BCDField6: TBCDField;
    IntegerField1: TIntegerField;
    BCDField7: TBCDField;
    IntegerField2: TIntegerField;
    BCDField8: TBCDField;
    BCDField9: TBCDField;
    BCDField10: TBCDField;
    BCDField11: TBCDField;
    BCDField12: TBCDField;
    BCDField13: TBCDField;
    BCDField14: TBCDField;
    BCDField15: TBCDField;
    BCDField16: TBCDField;
    BCDField17: TBCDField;
    BCDField18: TBCDField;
    BCDField19: TBCDField;
    BCDField20: TBCDField;
    BCDField21: TBCDField;
    BCDField22: TBCDField;
    BCDField23: TBCDField;
    BCDField24: TBCDField;
    BCDField25: TBCDField;
    BCDField26: TBCDField;
    BCDField27: TBCDField;
    BCDField28: TBCDField;
    BCDField29: TBCDField;
    BCDField30: TBCDField;
    BCDField31: TBCDField;
    BCDField32: TBCDField;
    BCDField33: TBCDField;
    BCDField34: TBCDField;
    BCDField35: TBCDField;
    BCDField36: TBCDField;
    BCDField37: TBCDField;
    BCDField38: TBCDField;
    BCDField39: TBCDField;
    BCDField40: TBCDField;
    BCDField41: TBCDField;
    BCDField42: TBCDField;
    BCDField43: TBCDField;
    BCDField44: TBCDField;
    BCDField45: TBCDField;
    BCDField46: TBCDField;
    BCDField47: TBCDField;
    BCDField48: TBCDField;
    BCDField49: TBCDField;
    StringField9: TStringField;
    DateTimeField2: TDateTimeField;
    ADOvsalnoname11: TBCDField;
    ADOvsalnoname22: TBCDField;
    ADOvsalnoname33: TBCDField;
    ADOvsalnoname44: TBCDField;
    ADOvsalnoname55: TBCDField;
    ADOvsalnoname66: TBCDField;
    ADOvsalnoname77: TBCDField;
    ADOvsalaccout: TStringField;
    ToolButton2: TToolButton;
    Panel5: TPanel;
    Label4: TLabel;
    Label11: TLabel;
    Animate1: TAnimate;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    MaskEdit2: TMaskEdit;
    ADOQuery1: TADOQuery;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure ToolButton10Click(Sender: TObject);
    procedure MaskEdit1Exit(Sender: TObject);
    procedure shistoryClick(Sender: TObject);
    procedure formkeyup(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure tbnfindClick(Sender: TObject);
    procedure ppReport1BeforePrint(Sender: TObject);
    procedure ppReport1PreviewFormCreate(Sender: TObject);
    procedure ppReport4BeforePrint(Sender: TObject);
    procedure tbnprintClick(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure tbnsortClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure DBGrid5TitleClick(Column: TColumn);
    procedure DBGrid6TitleClick(Column: TColumn);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure tbrefrushClick(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    manyfield:boolean;
    findex:array[1..5] of integer;
    fsort:array[1..5] of string;
    fcount:0..5;
    f:string;   //排序的字段
  end;

var
  Formsaldata: TFormsaldata;
  ins_sql:string;
implementation

uses main,datamol,publicfunction, insrecord, canfind,salcal, saldatabrow;
{$R *.DFM}

procedure TFormsaldata.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
     with datamod do
     begin
         adosaldata.filtered:=false;
         adosaldata.filter:='';
         adosaldata.close;
     end;
     condi:='';  //防止下次再进入时还用此条件
     formsaldata:=nil;
     action:=Cafree;
end;

procedure TFormsaldata.FormCreate(Sender: TObject);
begin  with datamod do
  begin
     maskedit1.text:=formatdatetime('yyyy/mm',now);
     combobox1.items.clear;
     adosaldata.close;
     if formmain.sal_all.enabled then
        combobox1.items.add('全部')
     else
     begin
        if formmain.sal_day.enabled then
        begin
           combobox1.items.add('日薪');
           adosaldata.commandtext:='Select * from sal21010 where dayormon=1';
           tbnfind.enabled:=false;
        end;
        if formmain.sal_month.enabled then
        begin
           combobox1.items.add('月薪');
           adosaldata.commandtext:='Select * from sal21010 where dayormon=0';
           tbnfind.enabled:=false;
        end;
        if formmain.sal_remove.Enabled then
        begin
           combobox1.items.add('免卡');
           adosaldata.commandtext:='Select * from sal21010 where brushcard=0';
           tbnfind.enabled:=false;
        end;
     end;
     adosaldata.filter:=' monthy='''+formatdatetime('yyyy/mm',now)+''' ';
     adosaldata.filtered:=true;
     adosaldata.open;
{     adosalset.Open;
     if ADOsalsetfacevalue.asboolean  then  //需要显示面值数
     begin
        adofacevalue.close;
        adofacevalue.commandtext:='Select * from sal22010 where monthy='''+formatdatetime('yyyy/mm',now)+''' ';
        adofacevalue.open;
     end
     else
}        pagecontrol1.Pages[4].Destroy;   //
              
//     adosalset.close;
  end;
  pagecontrol1.ActivePageindex:=3;
end;

procedure TFormsaldata.DBGrid1DblClick(Sender: TObject);
begin
//        writerecorder(Datamod.ADOsaldata,false);
        formsaldatabrow:=TFormsaldatabrow.create(self);
        formsaldatabrow.showmodal;
        formsaldatabrow.free;
end;

procedure TFormsaldata.PageControl1Change(Sender: TObject);
begin
  (sender as Tpagecontrol).activepage.highlighted:=true;
  case pagecontrol1.activepageindex of
    0,1,2,3:
      DBNavigator1.datasource:=datamod.dssaldata;
    4:DBNavigator1.datasource:=dsfacevalue;
    5:DBNavigator1.datasource:=datasource1;
  end;
end;

procedure TFormsaldata.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  (sender as Tpagecontrol).activepage.highlighted:=false;
end;

procedure TFormsaldata.ToolButton10Click(Sender: TObject);
begin
  close;
end;

procedure TFormsaldata.MaskEdit1Exit(Sender: TObject);
var s:string;
begin
  With Datamod Do
  Begin
    if trim(maskedit1.text)<>'/' then
    begin
       s:=' monthy='''+maskedit1.text+''' ';
       if trim(edit1.text)<>'' then
          s:=s+' and workno='''+edit1.text+''' ';
    End else
    if trim(edit1.text) <>'' then
       s:=' workno='''+edit1.text+''' ';
    adosaldata.Close;
    adosaldata.Filtered:=false;
    adosaldata.filter:=s;
    adosaldata.filtered:=true;
    adosaldata.open;
  end;
end;

procedure TFormsaldata.shistoryClick(Sender: TObject);
var table:string;
begin
    With Datamod Do
    Begin
     if shistory.Down then  //处於历史状态
        table:='sal21010bk'
     else table:='sal21010';
     adosaldata.close;
     if formmain.sal_all.enabled then
        adosaldata.commandtext:='Select * from '+table
     else
     begin
        if formmain.sal_day.enabled then
           adosaldata.commandtext:='Select * from '+table+' where dayormon=1';
        if formmain.sal_month.enabled then
           adosaldata.commandtext:='Select * from '+table+' where dayormon=0';
        if formmain.sal_remove.Enabled then
           adosaldata.commandtext:='Select * from '+table+' where brushcard=0';
     end;
     adosaldata.open;
    End;
end;

procedure TFormsaldata.formkeyup(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=vk_f1 then
  begin
   Application.helpfile :=extractfilepath(application.exename) +'help\pasahelp.hlp';
   application.HelpJump('shm_contents0032');
  end;
end;

procedure TFormsaldata.tbnfindClick(Sender: TObject);
begin
  if assigned(formcanfind) then  formcanfind.close;
  case pagecontrol1.ActivePageIndex of
  0,1,2,3:findrecorder(datamod.ADOsaldata,'Adosaldate','sal21010');
  4:findrecorder(adofacevalue,'Adofacevalue','sal22010');
  5:findrecorder(adodataset1,'Adodataset1','sal20010');
  end;
end;

procedure TFormsaldata.ppReport1BeforePrint(Sender: TObject);
begin
   pplabel31.caption:=companyname1;
   pplabel32.caption:=maskedit1.text;
   pplabel29.caption:='制表人:'+pubworkname;
end;

procedure TFormsaldata.ppReport1PreviewFormCreate(Sender: TObject);
begin
  tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
  TppViewer(tppReport(Sender).PreviewForm.Viewer).ZoomSetting := zsWholePage;
end;

procedure TFormsaldata.ppReport4BeforePrint(Sender: TObject);
begin
   pplabel86.caption:=companyname1;
   pplabel85.caption:=maskedit1.text;
   pplabel89.caption:='制表人:'+pubworkname;
end;

procedure TFormsaldata.tbnprintClick(Sender: TObject);
begin
   case pagecontrol1.activepageindex of
     0: begin
           ppreport1.DeviceType:='Screen';
           ppreport1.print;
        end;
     4: begin
           ppreport4.DeviceType:='Screen';
           ppreport4.print;
        end;
     5: begin
           ppreport2.DeviceType:='Screen';
           ppreport2.print;
        end;
   end;
end;

procedure TFormsaldata.DBGrid1TitleClick(Column: TColumn);
begin
    if f='DESC' then
     f:='ASC'
   else
     f:='DESC';
   datamod.Adosaldata.Sort :=column.FieldName+' '+f;
end;

procedure TFormsaldata.tbnsortClick(Sender: TObject);
var i:1..5;
begin
  if manyfield then
   begin
     manyfield:=false;
     tbnsort.hint:='设定多字段排序';
     popupmenu1.Items[0].Enabled :=false;
     popupmenu1.Items[1].Enabled :=false;
     popupmenu1.Items[2].Enabled :=false;
     popupmenu1.Items[3].Enabled :=false;
   end
  else begin
    manyfield:=true;
    tbnsort.hint:='取消多字段排序'; //说明现在dbgrid1正处于多字段排序中
    f:='';
    popupmenu1.Items[0].Enabled :=true;
    popupmenu1.Items[1].Enabled :=true;
    popupmenu1.Items[2].Enabled :=true;
    popupmenu1.Items[3].Enabled :=true;
    fcount:=0;
    for i:=1 to 5 do
     begin
      findex[i]:=0;
      fsort[i]:='';
     end;
   end;
end;

procedure TFormsaldata.N1Click(Sender: TObject);
var i:integer;
begin
case pagecontrol1.ActivePageIndex of
  0:
  begin
  for i:=1 to fcount do
   if dbgrid1.SelectedIndex =findex[i] then
    begin
     fsort[i]:='ASC';
     exit;
    end;
  if fcount<5 then
   begin
    fcount:=fcount+1;
    findex[fcount]:=dbgrid1.selectedindex;
    fsort[fcount]:='ASC';
    dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
   end;
  end;
  1:
  begin
  for i:=1 to fcount do
   if dbgrid2.SelectedIndex =findex[i] then
    begin
     fsort[i]:='ASC';
     exit;
    end;
  if fcount<5 then
   begin
    fcount:=fcount+1;
    findex[fcount]:=dbgrid2.selectedindex;
    fsort[fcount]:='ASC';
    dbgrid2.Columns[dbgrid2.selectedindex].Color :=clgray;
   end;
  end;
  2:
  begin
  for i:=1 to fcount do
   if dbgrid3.SelectedIndex =findex[i] then
    begin
     fsort[i]:='ASC';

⌨️ 快捷键说明

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