u_tc.pas

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

PAS
215
字号
unit u_tc;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, DBGrids, Db, ADODB, StdCtrls, wwdblook, ExtCtrls, DBCtrls,
  ComCtrls, ToolWin, Mask;

type
  Ttc_from = class(TForm)
    DBGrid1: TDBGrid;
    ToolBar1: TToolBar;
    tbnsort: TToolButton;
    tbnfind: TToolButton;
    tbnprint: TToolButton;
    ToolButton4: TToolButton;
    DBNavigator1: TDBNavigator;
    Panel1: TPanel;
    Label1: TLabel;
    Combo1: TwwDBLookupCombo;
    Label2: TLabel;
    wwDBLookupCombo2: TwwDBLookupCombo;
    ADOprof: TADODataSet;
    Label3: TLabel;
    DBEdit1: TDBEdit;
    Label4: TLabel;
    DBEdit2: TDBEdit;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    DBEdit5: TDBEdit;
    Label8: TLabel;
    Label9: TLabel;
    DBText1: TDBText;
    DBText2: TDBText;
    ToolButton1: TToolButton;
    DataSource1: TDataSource;
    ADODataSet1: TADODataSet;
    ADODataSet1dept: TStringField;
    ADODataSet1prof: TStringField;
    ADODataSet1monthy: TStringField;
    ADODataSet1fact: TBCDField;
    ADODataSet1must: TBCDField;
    ADODataSet1rat: TBCDField;
    ADODataSet1money: TBCDField;
    ADODataSet1operator: TStringField;
    ADODataSet1cdate: TDateTimeField;
    ComboBox1: TDBComboBox;
    ComboBox2: TDBComboBox;
    ADODataSet2: TADODataSet;
    procedure Combo1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure t(DataSet: TDataSet);
    procedure ADODataSet1BeforePost(DataSet: TDataSet);
    procedure ADODataSet1AfterInsert(DataSet: TDataSet);
    procedure ToolButton4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit1Exit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  tc_from: Ttc_from;

implementation

uses datamol, main,publicfunction;

{$R *.DFM}

procedure Ttc_from.Combo1Change(Sender: TObject);
 begin
  adoprof.Close;
  adoprof.CommandText:='select distinct prof from per24010 where dept='''+combo1.Text+'''';
  adoprof.Open;
end;

procedure Ttc_from.FormCreate(Sender: TObject);
begin
 adodataset1.Close;
 adodataset1.CommandText:='select * From rattable';
 adodataset1.Open;
 datamod.adodept.Close;
 datamod.adodept.open;
 adoprof.Close;
 adoprof.open;
end;

procedure Ttc_from.ToolButton1Click(Sender: TObject);
begin
 adodataset1.Close;
 adodataset1.CommandText:='select * From rattable';
 adodataset1.Open;
end;

procedure Ttc_from.t(DataSet: TDataSet);
begin
 adodataset1.edit;
 adodataset1.FieldByName('money').AsFloat:=(adodataset1.fieldbyname('fact').AsFloat-adodataset1.fieldbyname('must').AsFloat)*adodataset1.fieldbyname('rat').AsFloat;

end;

procedure Ttc_from.ADODataSet1BeforePost(DataSet: TDataSet);
begin
adodataset1.FieldByName('operator').asstring:=pubworkname;
adodataset1.FieldByName('cdate').asstring:=datetostr(date);
adodataset1.fieldbyname('must').AsFloat:=strtofloat(combobox1.Text);
adodataset1.fieldbyname('rat').asfloat:=strtofloat(combobox2.text);

end;

procedure Ttc_from.ADODataSet1AfterInsert(DataSet: TDataSet);
begin
adodataset1.FieldByName('operator').asstring:=pubworkname;
adodataset1.FieldByName('cdate').asstring:=datetostr(date);

end;

procedure Ttc_from.ToolButton4Click(Sender: TObject);
begin
 close;
end;

procedure Ttc_from.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  datamod.adodept.Close;
  adodataset1.Close;
  adoprof.Close;
  Action:=caFree;
  tc_from:=nil;
end;

procedure Ttc_from.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if activecontrol=dbgrid1 then
    exit;
     if key=#13 then
     begin
       key:=#0;
       if activecontrol=combobox2 then
       begin
        if adodataset1.State =dsinsert then
         begin
          adodataset1.post;
          adodataset1.append;
         end;
         combo1.setfocus;
       end
       else
        selectnext(activecontrol,true,true);
     end;
end;

procedure Ttc_from.DBEdit1Exit(Sender: TObject);
begin
 if (trim(combo1.Text)='机电.') and (trim(wwDBLookupCombo2.Text)='机修') then
 begin
   adodataset2.Close;
   adodataset2.CommandText:='select b.* from (select prof, monthy,max(money) money from rattable where monthy='''+dbedit1.text+''' and prof=''组长'' group by prof,monthy) a,rattable b where  b.monthy='''+dbedit1.text+'''  and a.prof=b.prof and a.money=b.money';
   adodataset2.open;
   if not adodataset2.Eof then
   begin
  //  adodataset1.FieldByName('prof').asstring:='机修';
    // adodataset1.FieldByName('monthy').asstring:=formatdatetime('yyyy/mm',date);
     adodataset1.fieldbyname('fact').asfloat:=adodataset2.fieldbyname('fact').asfloat;
     adodataset1.fieldbyname('must').asfloat:=adodataset2.fieldbyname('must').asfloat;
     adodataset1.fieldbyname('rat').asfloat:=adodataset2.fieldbyname('rat').asfloat;
     adodataset1.fieldbyname('money').asfloat:=adodataset2.fieldbyname('money').asfloat;
   end;
 end;
 if trim(combo1.Text)='车间办公室.' then
 begin
   if trim(wwDBLookupCombo2.Text)='主任' then
   begin
     adodataset2.Close;
     adodataset2.CommandText:='select b.* from (select prof, monthy,max(money) money from rattable where monthy='''+dbedit1.text+''' and prof=''主任'' group by prof,monthy) a,rattable b where  b.monthy='''+dbedit1.text+'''  and a.prof=b.prof and a.money=b.money';
     adodataset2.open;
     if  adodataset2.RecordCount>0 then
     begin
       //adodataset1.FieldByName('prof').asstring:='';
       //adodataset1.FieldByName('monthy').asstring:=formatdatetime('yyyy/mm',date);
       adodataset1.fieldbyname('fact').asfloat:=adodataset2.fieldbyname('fact').asfloat;
       adodataset1.fieldbyname('must').asfloat:=adodataset2.fieldbyname('must').asfloat;
       adodataset1.fieldbyname('rat').asfloat:=adodataset2.fieldbyname('rat').asfloat;
       adodataset1.fieldbyname('money').asfloat:=adodataset2.fieldbyname('money').asfloat;
     end;
   end;
  if (trim(wwDBLookupCombo2.Text)='总管') or (trim(wwDBLookupCombo2.Text)='副总管') then
   begin
     adodataset2.Close;
     adodataset2.CommandText:='select sum(a.fact) fact from (select dept,monthy,min(fact) fact from rattable group by dept,monthy) a where  a.monthy='''+dbedit1.text+''' and dept<>''车间办公室.'' and dept<>''机电.''';
     adodataset2.open;
     if not adodataset2.Eof then
     begin
       //adodataset1.FieldByName('prof').asstring:='';
       //adodataset1.FieldByName('monthy').asstring:=formatdatetime('yyyy/mm',date);
       adodataset1.fieldbyname('fact').asfloat:=adodataset2.fieldbyname('fact').asfloat;
       //adodataset1.fieldbyname('must').asfloat:=adodataset2.fieldbyname('must').asfloat;
       //adodataset1.fieldbyname('rat').asfloat:=adodataset2.fieldbyname('rat').asfloat;
       //adodataset1.fieldbyname('money').asfloat:=adodataset2.fieldbyname('money').asfloat;
     end;
   end;

 end;

end;

end.

⌨️ 快捷键说明

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