labor.pas

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

PAS
864
字号
unit labor;

interface

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

type
  TFormlabor = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    ADOlabset: TADODataSet;
    ADOlabget: TADODataSet;
    ADOgettotal: TADODataSet;
    ImageList2: TImageList;
    DBGrid1: TDBGrid;
    ADOlabsetlabno: TStringField;
    ADOlabsetlabname: TStringField;
    ADOlabsetnum: TBCDField;
    ADOlabsetunit: TStringField;
    ADOlabsetprice: TBCDField;
    ADOlabsetcdate: TDateTimeField;
    ADOlabsetoperator: TStringField;
    Dslabset: TDataSource;
    Dslabget: TDataSource;
    Dsgettotal: TDataSource;
    ADOlabgetgetno: TStringField;
    ADOlabgetworkno: TStringField;
    ADOlabgetgetdate: TDateTimeField;
    ADOlabgetlabno: TStringField;
    ADOlabgetlabname: TStringField;
    ADOlabgetnum: TBCDField;
    ADOlabgetunit: TStringField;
    ADOlabgetcdate: TDateTimeField;
    ADOlabgetoperator: TStringField;
    ADOgettotalworkno: TStringField;
    ADOgettotallabno: TStringField;
    ADOgettotallabname: TStringField;
    ADOgettotaltotalnum: TBCDField;
    ADOgettotalunit: TStringField;
    ADOsubget: TADODataSet;
    Dssubget: TDataSource;
    DBGrid4: TDBGrid;
    DBGrid2: TDBGrid;
    DBGrid3: TDBGrid;
    ADOsubgetgetno: TStringField;
    ADOsubgetgetdate: TDateTimeField;
    ADOsubgetworkno: TStringField;
    ADOsubgetlabno: TStringField;
    ADOsubgetlabname: TStringField;
    ADOsubgetnum: TBCDField;
    ADOsubgetunit: TStringField;
    ADOsubgetcdate: TDateTimeField;
    ADOsubgetoperator: TStringField;
    Panel1: TPanel;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    DBText1: TDBText;
    DBText2: TDBText;
    DBText3: TDBText;
    DBText4: TDBText;
    ADOQuery1: TADOQuery;
    Panel2: TPanel;
    Label10: TLabel;
    DBEdit5: TDBEdit;
    Label11: TLabel;
    DBEdit7: TDBEdit;
    Label12: TLabel;
    DBEdit8: TDBEdit;
    Label13: TLabel;
    Label14: TLabel;
    DBEdit10: TDBEdit;
    Label15: TLabel;
    Label16: TLabel;
    DBText5: TDBText;
    DBText6: TDBText;
    DBComboBox1: TDBComboBox;
    DBComboBox2: TDBComboBox;
    Panel3: TPanel;
    ToolBar1: TToolBar;
    all: TToolButton;
    ToolButton6: TToolButton;
    tbnsort: TToolButton;
    tbnfind: TToolButton;
    tbnprint: TToolButton;
    ToolButton4: TToolButton;
    DBNavigator1: TDBNavigator;
    Label17: TLabel;
    Label18: TLabel;
    DateTimePicker1: TDateTimePicker;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    N3: TMenuItem;
    ADOlabsetsize: TStringField;
    Label19: TLabel;
    Label20: TLabel;
    DBText7: TDBText;
    ADOlabgetsize: TStringField;
    ADOgettotalsize: TStringField;
    ADOsubgetsize: TStringField;
    DBComboBox3: TDBComboBox;
    ppReport1: TppReport;
    ppBDEPipeline1: TppBDEPipeline;
    ppHeaderBand1: TppHeaderBand;
    ppDetailBand1: TppDetailBand;
    ppTitleBand1: TppTitleBand;
    ppLabel1: TppLabel;
    ppDBText1: TppDBText;
    ppLabel2: TppLabel;
    ppDBText2: TppDBText;
    ppLabel3: TppLabel;
    ppDBText3: TppDBText;
    ppLabel4: TppLabel;
    ppDBText4: TppDBText;
    ppLabel5: TppLabel;
    ppDBText5: TppDBText;
    ppLabel6: TppLabel;
    ppDBText6: TppDBText;
    ppLabel7: TppLabel;
    ppDBText7: TppDBText;
    ppLabel8: TppLabel;
    ppDBText8: TppDBText;
    ppLabel9: TppLabel;
    ppLine1: TppLine;
    ppLabel32: TppLabel;
    ppLabel31: TppLabel;
    ppLabel27: TppLabel;
    ppLabel28: TppLabel;
    ppSystemVariable7: TppSystemVariable;
    ppLabel29: TppLabel;
    ppLabel30: TppLabel;
    ppSystemVariable8: TppSystemVariable;
    ppLine4: TppLine;
    ppDBCalc3: TppDBCalc;
    ppLabel33: TppLabel;
    Panel4: TPanel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    MaskEdit1: TMaskEdit;
    DateTimePicker2: TDateTimePicker;
    MaskEdit2: TMaskEdit;
    DateTimePicker3: TDateTimePicker;
    Edit1: TEdit;
    ppBDEPipeline2: TppBDEPipeline;
    ppReport2: TppReport;
    ppGroup1: TppGroup;
    ppGroupHeaderBand1: TppGroupHeaderBand;
    ppGroupFooterBand1: TppGroupFooterBand;
    ppSummaryBand1: TppSummaryBand;
    ppLabel34: TppLabel;
    ppDBCalc4: TppDBCalc;
    ppShape1: TppShape;
    ppHeaderBand2: TppHeaderBand;
    ppDetailBand2: TppDetailBand;
    ppTitleBand2: TppTitleBand;
    ppLabel10: TppLabel;
    ppDBText9: TppDBText;
    ppLabel11: TppLabel;
    ppDBText10: TppDBText;
    ppLabel12: TppLabel;
    ppDBText11: TppDBText;
    ppLabel13: TppLabel;
    ppDBText12: TppDBText;
    ppLabel14: TppLabel;
    ppDBText13: TppDBText;
    ppLabel15: TppLabel;
    ppDBText14: TppDBText;
    ppLabel16: TppLabel;
    ppLine2: TppLine;
    ppLabel17: TppLabel;
    ppLabel18: TppLabel;
    ppSystemVariable3: TppSystemVariable;
    ppLabel19: TppLabel;
    ppLabel20: TppLabel;
    ppSystemVariable4: TppSystemVariable;
    ppLabel21: TppLabel;
    ppReport3: TppReport;
    ppBDEPipeline3: TppBDEPipeline;
    ppHeaderBand3: TppHeaderBand;
    ppDetailBand3: TppDetailBand;
    ppTitleBand3: TppTitleBand;
    ppLabel22: TppLabel;
    ppDBText15: TppDBText;
    ppLabel23: TppLabel;
    ppDBText16: TppDBText;
    ppLabel24: TppLabel;
    ppDBText17: TppDBText;
    ppLabel25: TppLabel;
    ppDBText18: TppDBText;
    ppLabel26: TppLabel;
    ppDBText19: TppDBText;
    ppLabel35: TppLabel;
    ppDBText20: TppDBText;
    ppLabel36: TppLabel;
    ppLine3: TppLine;
    ppLabel39: TppLabel;
    ppLabel40: TppLabel;
    ppSystemVariable5: TppSystemVariable;
    ppLabel41: TppLabel;
    ppLabel42: TppLabel;
    ppSystemVariable6: TppSystemVariable;
    ppLabel43: TppLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure PageControl1Change(Sender: TObject);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure FormActivate(Sender: TObject);
    procedure DBNavigator1BeforeAction(Sender: TObject;
      Button: TNavigateBtn);
    procedure ToolButton4Click(Sender: TObject);
    procedure ADOlabgetlabnoChange(Sender: TField);
    procedure DBEdit6Exit(Sender: TObject);
    procedure ADOlabgetBeforePost(DataSet: TDataSet);
    procedure ADOlabgetBeforeDelete(DataSet: TDataSet);
    procedure ADOlabgetAfterPost(DataSet: TDataSet);
    procedure DateTimePicker1CloseUp(Sender: TObject);
    procedure ADOlabsetAfterInsert(DataSet: TDataSet);
    procedure tbnsortClick(Sender: TObject);
    procedure tbnfindClick(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid3TitleClick(Column: TColumn);
    procedure DBGrid2TitleClick(Column: TColumn);
    procedure DBGrid4TitleClick(Column: TColumn);
    procedure allClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DateTimePicker2CloseUp(Sender: TObject);
    procedure DateTimePicker3CloseUp(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure ppReport1BeforePrint(Sender: TObject);
    procedure MaskEdit2Exit(Sender: TObject);
    procedure ppReport2BeforePrint(Sender: TObject);
    procedure ppReport3BeforePrint(Sender: TObject);
    procedure tbnprintClick(Sender: TObject);
    procedure ppReport1PreviewFormCreate(Sender: TObject);
    procedure ppReport2PreviewFormCreate(Sender: TObject);
    procedure ppReport3PreviewFormCreate(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
  private
    { Private declarations }
    manyfield:boolean;
    findex:array[1..5] of integer;
    fsort:array[1..5] of string;
    fcount:0..5;
    db:0..3;
    f:string;   //排序的字段
  public
    { Public declarations }
    procedure iniunit;
  end;

var
  Formlabor: TFormlabor;

implementation

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

procedure TFormlabor.FormCreate(Sender: TObject);
begin
   adosubget.open;
   adolabset.open;
   pagecontrol1.activepageindex:=0;
   dbnavigator1.DataSource:=dslabget;
   datetimepicker1.date:=now;
   datetimepicker2.date:=now;
   datetimepicker3.date:=now;
   maskedit1.Text:=datetostr(date);
   maskedit2.text:=datetostr(date);
   adolabget.Filtered :=false;
   adolabget.Filter :='getdate<='''+maskedit2.Text+''' and getdate>='''+maskedit1.Text+''' ';
   adolabget.Filtered :=true;
end;

procedure TFormlabor.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   adolabget.close;
   adogettotal.close;
   adosubget.close;
   adolabset.close;
   action:=cafree;
   formlabor:=nil;
end;

procedure TFormlabor.FormKeyPress(Sender: TObject; var Key: Char);
begin
   if (activecontrol=dbgrid1) or (activecontrol=dbgrid2) or
      (activecontrol=dbgrid3) or (activecontrol=dbgrid4) then exit;
   if key=#13 then
   begin
      key:=#0;
      selectnext(activecontrol,true,true);
   end;
end;

procedure TFormlabor.PageControl1Change(Sender: TObject);
begin
 pagecontrol1.ActivePage.Highlighted:=true;
 with dbnavigator1 do
   case pagecontrol1.ActivePageIndex of
     0:
     begin
       formlabor.OnActivate(self);
       DataSource:=dslabget;
     end;
     1:
     begin
       adoquery1.close;
       adoquery1.SQL.clear;
       adoquery1.sql.Add('Delete from lab03010');
       adoquery1.sql.add('Insert into lab03010 Select min(b.workno) workno,min(b.labno) labno,min(b.labname) labname,sum(b.num) num,'+
                         ' min(b.unit) unit,min(b.size) size  from lab02010 b group by b.workno,b.labno ');
       Adoquery1.execsql;
       adogettotal.open;
       DataSource:=dsgettotal;
     end;
     2:
     begin
       adolabset.close;
       adolabset.open;
       iniunit;
       DataSource:=dslabset;
     end;
   end;
end;

procedure TFormlabor.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
 pagecontrol1.ActivePage.Highlighted:=false;
end;

procedure TFormlabor.FormActivate(Sender: TObject);
begin
   adolabget.close;
   adolabget.open;
   dbcombobox1.Items.Clear;
   adolabset.open;
   adolabset.First;
   while not adolabset.Eof do
   begin
      dbcombobox1.items.Add(adolabsetlabno.asstring);
      adolabset.next;
   end;
   iniunit;
end;

procedure TFormlabor.iniunit;
begin
   dbcombobox2.Items.clear;
   adoquery1.close;
   adoquery1.sql.text:='Select unit from lab01010 group by unit';
   adoquery1.open;
   while not adoquery1.Eof do
   begin
      dbcombobox2.Items.add(adoquery1.fieldbyname('unit').asstring);
      adoquery1.next;
   end;
   dbcombobox3.items.clear;
   adoquery1.close;
   adoquery1.sql.text:='Select size from lab01010 group by size';
   adoquery1.open;
   while not adoquery1.eof do
   begin
      dbcombobox3.items.add(adoquery1.fieldbyname('size').asstring);
      adoquery1.next;
   end;
end;

procedure TFormlabor.DBNavigator1BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
   if (button=nbinsert) or (button=nbedit) then
     case pagecontrol1.ActivePageIndex of
       0:Dbedit1.setfocus;
       2:Dbedit5.setfocus;
     end;
end;

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

procedure TFormlabor.ADOlabgetlabnoChange(Sender: TField);
begin
   if adolabset.Locate('labno',adolabgetlabno.asstring,[]) then
   begin
      adolabgetlabname.asstring:=adolabsetlabname.asstring;
      adolabgetunit.asstring:=adolabsetunit.asstring;
      adolabgetsize.asstring:=adolabsetsize.asstring;
      label18.Caption:=floattostr(adolabsetnum.asfloat);
   end;
end;

procedure TFormlabor.DBEdit6Exit(Sender: TObject);
begin
   case pagecontrol1.ActivePageIndex of
     0:
     begin
       if adolabget.State=dsinsert then
       begin

⌨️ 快捷键说明

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