⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_modesalary.~pas

📁 此代码为企业原料管理代码
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit_modesalary;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, Buttons, Grids, DBGrids, ExtCtrls, Db, DBTables;

type
  TForm_modesalary = class(TForm)
    Panel2: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    DBGrid2: TDBGrid;
    GroupBox1: TGroupBox;
    Panel3: TPanel;
    BBSerch: TBitBtn;
    BBClose: TBitBtn;
    BBPrint: TBitBtn;
    BBPic: TBitBtn;
    BBPrit: TBitBtn;
    BBNext: TBitBtn;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Panel4: TPanel;
    TabSheet2: TTabSheet;
    GroupBox2: TGroupBox;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    Panel6: TPanel;
    Panel7: TPanel;
    bbdayserch: TBitBtn;
    BitBtn2: TBitBtn;
    bbdaychart: TBitBtn;
    bbdayprior: TBitBtn;
    bbdaynext: TBitBtn;
    Panel8: TPanel;
    Panel5: TPanel;
    ename: TEdit;
    Panel9: TPanel;
    CheckBoxdicname: TCheckBox;
    DBGrid1: TDBGrid;
    Queryall: TQuery;
    query1all: TQuery;
    Tableall: TTable;
    Querydaysalary: TQuery;
    Tabledaysalary: TTable;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    TabledaysalaryTdate: TDateField;
    TabledaysalaryName: TStringField;
    TabledaysalaryQcNum: TIntegerField;
    TabledaysalaryWasternum: TIntegerField;
    TabledaysalarySubSalary: TFloatField;
    TabledaysalaryDisSalary: TFloatField;
    TabledaysalaryUnitSalary: TFloatField;
    TabledaysalaryDaySalary: TFloatField;
    TabledaysalaryJsrgz: TFloatField;
    Queryallname: TStringField;
    QueryallSUMOFqcnum: TFloatField;
    QueryallSUMOFwasternum: TFloatField;
    QueryallSUMOFsubsalary: TFloatField;
    QueryallSUMOFdissalary: TFloatField;
    QueryallSUMOFmonthsalary: TFloatField;
    QueryallSUMOFyuejishi: TFloatField;
    QueryallSUMOFzongji: TFloatField;
    BitBtn1: TBitBtn;
    TabledaysalaryHeji: TFloatField;
    Query1: TQuery;
    procedure BBSerchClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BBPrintClick(Sender: TObject);
    procedure BBPicClick(Sender: TObject);
    procedure BBCloseClick(Sender: TObject);
    procedure BBNextClick(Sender: TObject);
    procedure BBPritClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure bbdayserchClick(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure enameEnter(Sender: TObject);
    procedure bbdaychartClick(Sender: TObject);
    procedure bbdayprintClick(Sender: TObject);
    procedure bbdaynextClick(Sender: TObject);
    procedure bbdaypriorClick(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure TabSheet1Show(Sender: TObject);
    procedure TabSheet2Exit(Sender: TObject);
    procedure TabSheet1Exit(Sender: TObject);
    procedure DateTimePicker1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form_modesalary: TForm_modesalary;
  i,j,al: integer;
implementation

 uses
   UnitQueryID, UnitSulfSalaryPrint, UnitSulfSalaryChart,
  UnitSulfSalaryDaychart, UnitSulfSalaryDayPrint, Unit_mdoedaysalaryprt,
  Unit_modedaysalarychart, Unit_modeallsalaryprt, Unit_modeallsalarychart;
{$R *.DFM}
////====以下是查询按钮事件=============================================
procedure TForm_modesalary.BBSerchClick(Sender: TObject);
var int0,int1,int2,int3,int4,int5,int6:integer;
    f1,f2,f3,f4:real;
begin
 al:=1;
///======首先清除table1记录,为查询做准备=============
 with query1all do
      begin
        close;
        sql.Clear;
        sql.Add('delete from modeallSalary');
        execsql;
       end;

//======以下是第一次对query1分组查询过滤============
with query1all do begin
  close;
  sql.Clear;
  Unprepare;
  sql.Add('Select name,prodid,sum(hao)as SumQcNum,sum(xioufei)as SumLackNum,');
  sql.Add('sum(SubSalary)as sumsubsalary,');
  sql.Add('sum(DisSalary)as sumdissalary,avg(xioujia)as avgUS from zhenxiou,ProdDictionary');
  sql.Add (' where  riqi between :fromdate and  :todate and zhenxiou.prodid=ProdDictionary.prodid');
  sql.Add ('group by name,prodid');
      parambyname('fromdate').asdate:=DateTimePicker1.date;
      parambyname('todate').asdate:=DateTimePicker2.date;
  Prepare;
  open;
  if query1all.FieldByName('name').asstring='' then  begin
        showmessage('无记录!');
        exit;
      end;

  end;//with
//=========以上第一次查询结束=======================
//=========以下是向table1中誊写记录=================
 tableall.open;
query1all.First;
while  not query1all.eof do
 begin
  //table1.DisableControls;
  tableall.append;
  tableall.FieldByName('name').asstring:=query1all.fieldbyname('name').asstring;
  tableall.FieldByName('qcnum').asinteger:=query1all.fieldbyname('sumqcnum').asinteger;
  tableall.FieldByName('subsalary').asfloat:=query1all.fieldbyname('sumsubsalary').asfloat;
  tableall.FieldByName('dissalary').asfloat:=query1all.fieldbyname('sumdissalary').asfloat;
  tableall.FieldByName('unitsalary').asfloat:=query1all.fieldbyname('avgUS').asfloat;
    int0:=query1all.fieldbyname('sumqcnum').asinteger;
    int1:=query1all.fieldbyname('sumlacknum').asinteger;
   // int2:=query1all.fieldbyname('sumimpunum').asinteger;
    //int3:=query1all.fieldbyname('sumripnum').asinteger;
    //int4:=query1all.fieldbyname('sumpolenum').asinteger;
   // int5:=query1all.fieldbyname('sumelsenum').asinteger;
    int6:=int1;
  tableall.FieldByName('wasternum').asinteger:=int6;//计算总废品数

    f1:=query1all.fieldbyname('sumsubsalary').asfloat;
    f2:=query1all.fieldbyname('sumdissalary').asfloat;
    f3:=query1all.fieldbyname('avgUS').asfloat;
    f4:=f3*int0; //计件工资
    f4:=strtofloat(formatfloat('0.00',f4));
  tableall.FieldByName('monthsalary').asfloat:=f4;//计件月工资

  tableall.post;
  query1all.next;
  //table1.EnableConstraints;
 end;//while
//========以上抄写记录完成========================
//========以下是对Table1进行SQl在分组查询,得到用户界面==========

 with query1all do begin
  close;
  sql.Clear;
  Unprepare;
  sql.Add('Select ximi, sum(jishizi)as jishizi,sum(rizi)as jsgz ,sum(butie)as butie,sum(kou)as kou from zhengjishigozi');
  sql.Add (' where  jsrq between :fromdate and  :todate ');
  sql.Add ('group by ximi');
      parambyname('fromdate').asdate:=DateTimePicker1.date;
      parambyname('todate').asdate:=DateTimePicker2.date;
  Prepare;
  open;
   //showmessage(inttostr(recordcount));
  //if query1all.FieldByName('name').asstring='' then  begin
        //showmessage('无记录!');
       // exit;
      //end;
  end;//with
  query1all.First;
while  not query1all.eof do
 begin
  with query1 do
   begin
  close;
  sql.Clear;
  Unprepare;
  sql.Add('Select * from modeallSalary.DB');
  sql.Add (' where  name=:na');
  parambyname('na').asstring:=query1all.fieldbyname('ximi').asstring;
  Prepare;
  open;
  if recordcount=0 then
  begin
    tableall.append;
  tableall.FieldByName('name').asstring:=query1all.fieldbyname('ximi').asstring;
  tableall.FieldByName('subsalary').asfloat:=query1all.fieldbyname('butie').asfloat;
  tableall.FieldByName('dissalary').asfloat:=query1all.fieldbyname('kou').asfloat;
  tableall.FieldByName('yuejishi').asfloat:=query1all.fieldbyname('jishizi').asfloat;//计算计时工资
  tableall.FieldByName('zongji').asfloat:=query1all.fieldbyname('jsgz').asfloat;
  tableall.post;
  query1all.next;
 end
  else
  begin
  tableall.First;
  while  not tableall.eof do
  begin
  if query1all.fieldbyname('ximi').asstring=tableall.FieldByName('name').asstring then
    begin
    tableall.edit;
  f3:=tableall.FieldByName('Monthsalary').asfloat;
  f1:=tableall.FieldByName('subsalary').asfloat; //计件补贴
  f2:=tableall.FieldByName('dissalary').asfloat; //计件扣款
  tableall.FieldByName('subsalary').asfloat:=f1+query1all.fieldbyname('butie').asfloat;
  tableall.FieldByName('dissalary').asfloat:=f2+query1all.fieldbyname('kou').asfloat;
  f4:=query1all.fieldbyname('jishizi').asfloat;
  tableall.FieldByName('yuejishi').asfloat:=f4;//计算计时工资
  tableall.FieldByName('zongji').asfloat:=query1all.fieldbyname('butie').asfloat+f3+f1-f2+f4-query1all.fieldbyname('kou').asfloat;
  tableall.post;
   query1all.next;
   end;
   tableall.next;
   end;
  end;
  end;
  end;
  //table1.EnableConstraints;

  //=======无计时工资的在合计中加数据
  tableall.First;
  while  not tableall.eof do
  begin
  f3:=tableall.FieldByName('Monthsalary').asfloat;
  f1:=tableall.FieldByName('subsalary').asfloat;
  f2:=tableall.FieldByName('dissalary').asfloat;
  if tableall.FieldByName('zongji').asfloat=0 then
    begin
  tableall.edit;
  tableall.FieldByName('zongji').asfloat:=f3+f1-f2;
  tableall.post;
    end;
  tableall.Next;
   end;

 with queryall do begin
  close;
  sql.clear;
  sql.add('select name,sum(qcnum),sum(wasternum),sum(subsalary),sum(dissalary),');
  sql.add('sum(monthsalary),sum(yuejishi),sum(zongji) from modeallSalary group by name');
  open;
  end;

//=======以上是对Table1进行SQl在分组查询=========================
end;
//========================总查询结束==================================
procedure TForm_modesalary.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
//=========清除记录,为查询做准备===========
 with query1all do
      begin
        close;
        sql.Clear;
        sql.Add('delete from modeallSalary ');
        execsql;
       end;

        with query1all do
      begin
        close;
        sql.Clear;

⌨️ 快捷键说明

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