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 + -
显示快捷键?