zeromoney.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 334 行

PAS
334
字号
unit zeromoney;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Gauges, ImgList, Menus, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls,
  ComCtrls, ToolWin, Buttons, Mask, ppDB, ppDBPipe, ppDBBDE, ppCtrls,
  ppBands, ppVar, ppPrnabl, ppClass, ppCache, ppComm, ppRelatv, ppProd,
  ppReport;

type
  TFormzeromoney = class(TForm)
    Panel1: TPanel;
    Label2: TLabel;
    DBGrid1: TDBGrid;
    Label1: TLabel;
    Edit1: TEdit;
    ToolBar2: TToolBar;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton6: TToolButton;
    tbnsort: TToolButton;
    tbnfind: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    Label12: TLabel;
    Edit2: TEdit;
    MaskEdit1: TMaskEdit;
    ImageList1: TImageList;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    N3: TMenuItem;
    DBNavigator1: TDBNavigator;
    ppBDEPipeline1: TppBDEPipeline;
    ppBDEPipeline1ppField1: TppField;
    ppBDEPipeline1ppField2: TppField;
    ppBDEPipeline1ppField3: TppField;
    ppBDEPipeline1ppField4: TppField;
    ppBDEPipeline1ppField5: TppField;
    ppBDEPipeline1ppField6: TppField;
    ppBDEPipeline1ppField7: TppField;
    ppReport2: TppReport;
    ppHeaderBand2: TppHeaderBand;
    ppLabel13: TppLabel;
    ppLabel14: TppLabel;
    ppLabel15: TppLabel;
    ppLabel16: TppLabel;
    ppLabel17: TppLabel;
    ppLabel18: TppLabel;
    ppLabel20: TppLabel;
    ppLine3: TppLine;
    ppLabel1: TppLabel;
    ppLabel24: TppLabel;
    ppLabel25: TppLabel;
    ppSystemVariable1: TppSystemVariable;
    ppLabel26: TppLabel;
    ppLabel35: TppLabel;
    ppSystemVariable4: TppSystemVariable;
    ppLabel2: TppLabel;
    ppLabel4: TppLabel;
    ppDetailBand2: TppDetailBand;
    ppDBText8: TppDBText;
    ppDBText9: TppDBText;
    ppDBText10: TppDBText;
    ppDBText12: TppDBText;
    ppDBText13: TppDBText;
    ppDBText14: TppDBText;
    ppLine4: TppLine;
    ppDBText1: TppDBText;
    ppSummaryBand1: TppSummaryBand;
    ppLabel27: TppLabel;
    ppDBCalc7: TppDBCalc;
    ppLabel3: TppLabel;
    ppDBCalc1: TppDBCalc;
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure tbnfindClick(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 MaskEdit1Exit(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
    procedure formkeyup(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ToolButton7Click(Sender: TObject);
    procedure ppReport2BeforePrint(Sender: TObject);
    procedure ppReport2PreviewFormCreate(Sender: TObject);
  private
    { Private declarations }
    manyfield:boolean;
    findex:array[1..5] of integer;
    fsort:array[1..5] of string;
    fcount:0..5;
    f:string;
  public
    { Public declarations }
  end;

var
  Formzeromoney: TFormzeromoney;

implementation

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

procedure TFormzeromoney.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
   dbgrid_keypress(sender,key);
end;

procedure TFormzeromoney.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  action:=cafree;
  formzeromoney:=nil;
end;

procedure TFormzeromoney.FormCreate(Sender: TObject);
begin
  datamod.ADOsmoney.Open;
  maskedit1.Text:=datetostr(date);
  datamod.adosmoney.filtered:=true;
  datamod.adosmoney.filter:='rq='''+maskedit1.text+''' ';
  datamod.adosmoney.filtered:=true;
end;

procedure TFormzeromoney.ToolButton8Click(Sender: TObject);
begin
  close;
end;

procedure TFormzeromoney.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if activecontrol=dbgrid1 then
    exit;
  if key=#13 then   //窗体内的回车键的控制
    begin
      key:=#0;
      perform(cm_dialogkey,vk_tab,0);
    end;
end;

procedure TFormzeromoney.tbnfindClick(Sender: TObject);
begin
  if assigned(formcanfind) then  formcanfind.close;
  findrecorder(datamod.adosmoney,'Adosmoney','sal14010');   //调用publicfuction中的查询功能
end;

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

procedure TFormzeromoney.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 TFormzeromoney.N1Click(Sender: TObject);
var i:integer;
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;

procedure TFormzeromoney.N2Click(Sender: TObject);
var i:integer;
begin
  for i:=1 to fcount do
   if dbgrid1.SelectedIndex =findex[i] then
    begin
     fsort[i]:='DESC';
     exit;
    end;
  if fcount<5 then
   begin
    fcount:=fcount+1;
    findex[fcount]:=dbgrid1.selectedindex;
    fsort[fcount]:='DESC';
    dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
   end;
end;

procedure TFormzeromoney.N4Click(Sender: TObject);
var i:1..5;
begin
  datamod.ADOsmoney.Sort:='';
  for i:=1 to fcount do
  begin
   if dbgrid1.Columns[findex[i]].Color=clgray then
    begin
     datamod.ADOsmoney.Sort :=datamod.ADOsmoney.Sort+dbgrid1.Columns[findex[i]].FieldName+' '+fsort[i];
     if i<fcount then datamod.ADOsmoney.Sort:=datamod.ADOsmoney.Sort+',';
    end;
  end;
end;

procedure TFormzeromoney.N3Click(Sender: TObject);
var i:1..5;
begin
  for i:=1 to fcount do
    dbgrid1.Columns[findex[i]].Color :=clwindow;
  fcount:=0;
end;

procedure TFormzeromoney.MaskEdit1Exit(Sender: TObject);
begin
  if maskedit1.Text <>'    /  ' then
   with datamod do
   begin
     adosmoney.filtered:=true;
     adosmoney.filter:='rq='''+maskedit1.text+''' ';
     adosmoney.filtered:=true;
   end;
end;

procedure TFormzeromoney.ToolButton6Click(Sender: TObject);
begin
      with datamod do
      begin
         adosmoney.close;
         adosmoney.filter:='';
         adosmoney.filtered:=false;
         adosmoney.open;
         maskedit1.Text:='    /  /  ';
      end;
end;

procedure TFormzeromoney.Edit1Exit(Sender: TObject);
begin
  if trim(edit1.text)<>'' then
    begin
     datamod.ADOsmoney.Filtered :=false;
     datamod.Adosmoney.Filter :='workno='''+edit1.text+''' ';
     datamod.ADOsmoney.Filtered :=true;
    end;  
end;

procedure TFormzeromoney.Edit2Exit(Sender: TObject);
begin
  if trim(edit2.text)<>'' then
    begin
     datamod.ADOsmoney.Filtered :=false;
     datamod.Adosmoney.Filter :='name='''+edit2.text+''' ';
     datamod.ADOsmoney.Filtered :=true;
    end;
end;

procedure TFormzeromoney.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_contents0034');
  end;
end;

procedure TFormzeromoney.ToolButton7Click(Sender: TObject);
begin
{  if not assigned(zeromoneyQRList) then
     zeromoneyQRList:=tzeromoneyQRList.create(self);
     zeromoneyQRList.quickrep1.preview;}
     ppreport2.devicetype:='Screen';
     ppreport2.print;
end;

procedure TFormzeromoney.ppReport2BeforePrint(Sender: TObject);
begin
   pplabel1.caption:=companyname1;
   pplabel26.caption:='制表人:'+pubworkname;
   if maskedit1.text<>'    /  ' then
      pplabel4.caption:='月份'+maskedit1.text
   else
      pplabel4.Visible:=false;
end;

procedure TFormzeromoney.ppReport2PreviewFormCreate(Sender: TObject);
begin
  tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;

end.

⌨️ 快捷键说明

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