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

📄 unitsulfname.~pas

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

interface

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

type
  TFrmSulfName = class(TForm)
    Panel1: TPanel;
    DataSource2: TDataSource;
    Query2: TQuery;
    Table1: TTable;
    DataSource1: TDataSource;
    Panel5: TPanel;
    Table1Name: TStringField;
    Table1TDate: TDateField;
    Table1QcNum: TIntegerField;
    Table1LackNum: TSmallintField;
    Table1ImpuNum: TSmallintField;
    Table1PoleNum: TSmallintField;
    Table1RipNum: TSmallintField;
    Table1ElseNum: TSmallintField;
    Table1TMonth: TStringField;
    Table1Qcper: TFloatField;
    Table1WasterPer: TFloatField;
    Table1Wasternum: TIntegerField;
    Table1Wastermoney: TFloatField;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    GroupBox1: TGroupBox;
    Panel6: TPanel;
    RBdate: TRadioButton;
    RBMonth: TRadioButton;
    bbSerch: TBitBtn;
    bbcancal: TBitBtn;
    Panel3: TPanel;
    Panel4: TPanel;
    bbprior: TBitBtn;
    bbnext: TBitBtn;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    BBprint: TBitBtn;
    BBpic: TBitBtn;
    Panel7: TPanel;
    Panel2: TPanel;
    ename: TEdit;
    Panel8: TPanel;
    CheckBoxname: TCheckBox;
    DBGrid1: TDBGrid;
    GroupBox2: TGroupBox;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    Panel9: TPanel;
    Panel10: TPanel;
    bbSerchAllName: TBitBtn;
    bballprint: TBitBtn;
    bballchart: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    DBGrid2: TDBGrid;
    DataSource3: TDataSource;
    QueryAllName: TQuery;
    TableAllName: TTable;
    DataSource4: TDataSource;
    Queryindexqcper: TQuery;
    DataSource5: TDataSource;
    Table1Prodname: TStringField;
    Table1Figid: TStringField;
    Queryindexqcpername: TStringField;
    QueryindexqcperSumQcNum: TFloatField;
    Queryindexqcpersumwasternum: TFloatField;
    Queryindexqcpersumper: TFloatField;
    Queryindexqcpersumwmoney: TFloatField;
    Queryindexqcperavgqcper: TFloatField;
    QueryindexqcperSumLackNum: TFloatField;
    QueryindexqcperSumImpuNum: TFloatField;
    QueryindexqcperSumPoleNum: TFloatField;
    QueryindexqcperSumRipNum: TFloatField;
    QueryindexqcperSumElseNum: TFloatField;
    Query1: TQuery;
    Query3: TQuery;
    Queryindexqcpersumshl: TFloatField;
    Table1Shl: TFloatField;
    Table1Hgj: TFloatField;
    procedure bbSerchClick(Sender: TObject);
    procedure bbpriorClick(Sender: TObject);
    procedure bbnextClick(Sender: TObject);
    procedure bbcancalClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BBprintClick(Sender: TObject);
    procedure BBpicClick(Sender: TObject);
    procedure RBdateClick(Sender: TObject);
    procedure RBMonthClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure enameenter(Sender: TObject);
    procedure bbSerchAllNameClick(Sender: TObject);
    procedure bballprintClick(Sender: TObject);
    procedure bballchartClick(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure TabSheet1Show(Sender: TObject);
  private
    { Private declarations }

  public
    { Public declarations }

  end;

var
  FrmSulfName: TFrmSulfName;
   i,j: integer;
implementation

uses UnitSulfNamePrint, UnitSulfNamePrintM, UnitSulfNameChart,
  UnitSulfNameChartM, UnitQueryID, UnitSulfNameAllPrint,
  UnitSulfNameAllChart, UnitDM;



{$R *.DFM}
//=====================以下是查询按钮事件==============================
procedure TFrmSulfName.bbSerchClick(Sender: TObject);
var int0,int1,int2,int3,int4,int5,int6:integer;
    flt1,flt2,flt3,flt4,flt5,flt6:real;
    clmodhu:real;
    ru,str1:string;
begin
  flt4:=0;
  if (i=1) and (ename.text<>'') then
  begin
   j:=1;
//=============初始化,清空记录===================
 with query3 do
      begin
        close;
        sql.Clear;
        sql.Add('delete from SulfCardName ');
        execsql;
      end;

//============SQL分组查询开始===========================
if rbdate.Checked=true then  //==判断显示日=========
begin
  with query2 do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select tdate,name,Figid,prodname,prodnameid,qcnum as SumQcNum,DrawWeight as sumDW,');
      sql.Add ('lacknum as SumLackNum,impunum as SumImpuNum,polenum as SumPoleNum,');
      sql.Add ('ripnum as SumRipNum,elsenum as SumElseNum from SulfCard');
      sql.Add (' where name=:index and  tdate between :fromdate and :todate ');//and SulfCard.prodnameid=ProdDictionary.prodid');
      parambyname('fromdate').asdate:=DateTimePicker1.date;
      parambyname('todate').asdate:=DateTimePicker2.date;
      parambyname('index').asstring:=eName.text;
      open;
      if query2.FieldByName('name').asstring='' then  begin
        showmessage('无记录!');
        exit;
      end;
    end;
//===========以下是向Table1中抄写记录================
//Table1TMonth.Visible:=false;
//Table1TDate.Visible:=true;
table1.open;
query2.First;
while  not query2.eof do
 begin
  table1.append;
  table1.FieldByName('tdate').asdatetime:=query2.fieldbyname('tdate').asdatetime;
  table1.FieldByName('name').asstring:=query2.fieldbyname('name').asstring;
  table1.FieldByName('figid').asstring:=query2.fieldbyname('figid').asstring;
  table1.FieldByName('prodname').asstring:=query2.fieldbyname('prodname').asstring;
  table1.FieldByName('qcnum').asinteger:=query2.fieldbyname('sumqcnum').asinteger;
  table1.FieldByName('lacknum').asinteger:=query2.fieldbyname('sumlacknum').asinteger;
  table1.FieldByName('impunum').asinteger:=query2.fieldbyname('sumimpunum').asinteger;
  table1.FieldByName('ripnum').asinteger:=query2.fieldbyname('sumripnum').asinteger;
  table1.FieldByName('polenum').asinteger:=query2.fieldbyname('sumpolenum').asinteger;
  table1.FieldByName('elsenum').asinteger:=query2.fieldbyname('sumelsenum').asinteger;
  //==============计算废品数和合格率/胶料损耗/金额损耗=====================
  int0:=table1.FieldByName('qcnum').asinteger;
  int1:=table1.FieldByName('lacknum').asinteger;
  int2:=table1.FieldByName('impunum').asinteger;
  int3:=table1.FieldByName('polenum').asinteger;
  int4:=table1.FieldByName('ripnum').asinteger;
  int5:=table1.FieldByName('elsenum').asinteger;
  table1.FieldByName('wasternum').asinteger:=int1+int2+int3+int4+int5;//废品数
  if int0+int1+int2+int3+int4+int5=0 then
   table1.FieldByName('qcper').asfloat:=0
  else
  begin
   flt4:=int0/(int0+int1+int2+int3+int4+int5);
   flt4:=strtofloat(formatfloat('0.00',flt4*100));
   table1.FieldByName('qcper').asfloat:=flt4; //合格率
  end;
  flt1:=query2.fieldbyname('sumDW').asfloat; //领料重
   with query1 do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select * from ProdDictionary');
      sql.Add (' where prodid=:index ');
      parambyname('index').asstring:=query2.fieldbyname('prodnameid').asstring;
      open;
      ru:=fieldbyname('RubbName').asstring;
      str1:=fieldbyname('gjxh').asstring;
      flt2:=fieldbyname('Weight').asfloat; //净重
      int6:=fieldbyname('gujia').asinteger;
      flt3:=flt1-flt2*int0;
      flt3:=strtofloat(formatfloat('0.0',flt3));
      table1.FieldByName('Wasterper').asfloat:=flt3;//胶料损耗
      close;
      SQL.Clear ;
      sql.Add (' select 单价,制成品名称 from 炼胶工艺卡');
      sql.Add (' where 制成品名称=:index ');
      parambyname('index').asstring:=ru;
      open;
      flt5:=fieldbyname('单价').asfloat; //胶料单价
      close;
      SQL.Clear ;
      sql.Add (' select 单价,材料名称 from 原材料台帐');
      sql.Add (' where 材料名称=:index ');
      parambyname('index').asstring:=str1;
      open;
      flt6:=fieldbyname('单价').asfloat;//骨架单价
      flt6:=flt6*int6*(int1+int2+int3+int4+int5);
//修改小数点
      clmodhu:=strtofloat(formatfloat('0.00',(flt3*flt5/1000+flt6)));
      table1.FieldByName('wastermoney').asfloat:=clmodhu;//金额损耗
       flt4:=flt3/(flt2*int0);
       flt4:=strtofloat(formatfloat('0.00',flt4*100));
      table1.FieldByName('shl').asfloat:=flt4;
      table1.post;
      end;
  query2.next;
 end;//while
  DBGrid1.Columns[2].Visible:=false;
  DBGrid1.Columns[1].Visible:=true;
  DBGrid1.Columns[3].Visible:=true;
  DBGrid1.Columns[4].Visible:=true;
 //table1.First;
 end;//======显示日结束===============

if rbmonth.Checked=true then  //==判断显示月=========
begin
   with query2 do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select tdate,tmonth,name,Figid,prodname,prodnameid,qcnum as SumQcNum,DrawWeight as sumDW,');
      sql.Add ('lacknum as SumLackNum,impunum as SumImpuNum,polenum as SumPoleNum,');
      sql.Add ('ripnum as SumRipNum,elsenum as SumElseNum from SulfCard');
      sql.Add (' where name=:index and  tdate between :fromdate and :todate ');//and SulfCard.prodnameid=ProdDictionary.prodid');
      //sql.Add ('group by tdate,name,figid,prodname'  );
      //sql.Add ('order by tdate'  );
      parambyname('fromdate').asdate:=DateTimePicker1.date;
      parambyname('todate').asdate:=DateTimePicker2.date;
      parambyname('index').asstring:=eName.text;
      open;
      if query2.FieldByName('name').asstring='' then  begin
        showmessage('无记录!');
        exit;
      end;
    end;
//===========以下是向Table1中抄写记录================

//Table1TMonth.Visible:=false;
//Table1TDate.Visible:=true;
table1.open;
query2.First;
while  not query2.eof do
 begin
  table1.append;
  //showmessage(copy(datetostr(query2.fieldbyname('tmonth').asdatetime),3,5));
  table1.FieldByName('tmonth').asstring:=query2.fieldbyname('tmonth').asstring;//query2.fieldbyname('tmonth').asdatetime;
  table1.FieldByName('name').asstring:=query2.fieldbyname('name').asstring;
  table1.FieldByName('figid').asstring:=query2.fieldbyname('figid').asstring;
  table1.FieldByName('prodname').asstring:=query2.fieldbyname('prodname').asstring;
  table1.FieldByName('qcnum').asinteger:=query2.fieldbyname('sumqcnum').asinteger;
  table1.FieldByName('lacknum').asinteger:=query2.fieldbyname('sumlacknum').asinteger;
  table1.FieldByName('impunum').asinteger:=query2.fieldbyname('sumimpunum').asinteger;
  table1.FieldByName('ripnum').asinteger:=query2.fieldbyname('sumripnum').asinteger;
  table1.FieldByName('polenum').asinteger:=query2.fieldbyname('sumpolenum').asinteger;
  table1.FieldByName('elsenum').asinteger:=query2.fieldbyname('sumelsenum').asinteger;
  //==============计算废品数和合格率/胶料损耗/金额损耗=====================
  int0:=table1.FieldByName('qcnum').asinteger;
  int1:=table1.FieldByName('lacknum').asinteger;
  int2:=table1.FieldByName('impunum').asinteger;
  int3:=table1.FieldByName('polenum').asinteger;
  int4:=table1.FieldByName('ripnum').asinteger;
  int5:=table1.FieldByName('elsenum').asinteger;
  table1.FieldByName('wasternum').asinteger:=int1+int2+int3+int4+int5;//废品数
  if int0+int1+int2+int3+int4+int5=0 then
   table1.FieldByName('qcper').asfloat:=0
  else
   begin
   flt4:=int0/(int0+int1+int2+int3+int4+int5);
   flt4:=strtofloat(formatfloat('0.00',flt4*100));
   table1.FieldByName('qcper').asfloat:=flt4; //合格率
   end;
  flt1:=query2.fieldbyname('sumDW').asfloat; //领料重
   with query1 do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select * from ProdDictionary');
      sql.Add (' where prodid=:index ');
      parambyname('index').asstring:=query2.fieldbyname('prodnameid').asstring;
      open;
      ru:=fieldbyname('RubbName').asstring;
      str1:=fieldbyname('gjxh').asstring;
      flt2:=fieldbyname('Weight').asfloat; //净重
      int6:=fieldbyname('gujia').asinteger;
      flt3:=flt1-flt2*int0;
      flt3:=strtofloat(formatfloat('0.0',flt3));
      table1.FieldByName('Wasterper').asfloat:=flt3;//胶料损耗
      table1.FieldByName('hgj').asfloat:=flt2*int0;
      close;
      SQL.Clear ;
      sql.Add (' select 单价,制成品名称 from 炼胶工艺卡');
      sql.Add (' where 制成品名称=:index ');
      parambyname('index').asstring:=ru;
      open;
      flt5:=fieldbyname('单价').asfloat; //胶料单价
       close;
      SQL.Clear ;
      sql.Add (' select 单价,材料名称 from 原材料台帐');
      sql.Add (' where 材料名称=:index ');
      parambyname('index').asstring:=str1;
      open;
      flt6:=fieldbyname('单价').asfloat; //骨架单价
      flt6:=flt6*int6*(int1+int2+int3+int4+int5);
//修改小数点
      clmodhu:=strtofloat(formatfloat('0.00',(flt3*flt5/1000+flt6)));
      table1.FieldByName('wastermoney').asfloat:=clmodhu;//金额损耗
       table1.post;
      end;
      query2.next;
  //showmessage('无记!');
   //Table1.open;
 end;//while
   with query1 do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select tmonth, sum(qcnum) as QcNum,sum(wasternum) as wasternum,sum(hgj) as hgj,');
      sql.Add ('sum(Wasterper) as Wasterper,sum(lacknum) as lackNum,sum(impunum) as ImpuNum,avg(qcper) as qcper,');
      sql.Add ('sum(Wastermoney) as Wastermoney,sum(polenum) as PoleNum,sum(ripnum) as RipNum,sum(elsenum) as ElseNum from SulfCardName');
      sql.Add ('group by tmonth'  );
      open;
//       showmessage(inttostr(recordcount));
     end;


 //===========以下是向Table1中抄写记录================
  with query3 do
      begin
        close;
        sql.Clear;
        sql.Add('delete from SulfCardName ');
        execsql;
      end;

//Table1TMonth.Visible:=true;
//Table1TDate.Visible:=false;
query1.First;
while  not query1.eof do
 begin                                   

  table1.append;
  table1.FieldByName('tmonth').asstring:=query1.fieldbyname('tmonth').asstring;
  table1.FieldByName('name').asstring:=eName.text;
  //table1.FieldByName('figid').asstring:=query1.fieldbyname('figid').asstring;

  table1.FieldByName('qcnum').asinteger:=query1.fieldbyname('qcnum').asinteger;
  table1.FieldByName('lacknum').asinteger:=query1.fieldbyname('lacknum').asinteger;
  table1.FieldByName('impunum').asinteger:=query1.fieldbyname('impunum').asinteger;
  table1.FieldByName('ripnum').asinteger:=query1.fieldbyname('ripnum').asinteger;
  table1.FieldByName('polenum').asinteger:=query1.fieldbyname('polenum').asinteger;
  table1.FieldByName('elsenum').asinteger:=query1.fieldbyname('elsenum').asinteger;
   //==============计算废品数和合格率/损耗=====================

  table1.FieldByName('wasternum').asinteger:=query1.fieldbyname('wasternum').asinteger;//废品数
   flt4:=query1.fieldbyname('qcper').asfloat;
   flt4:=strtofloat(formatfloat('0.00',flt4));
   table1.FieldByName('qcper').asfloat:=flt4; //合格率
  flt3:=query1.fieldbyname('Wasterper').asfloat;

⌨️ 快捷键说明

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