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

📄 unit_modechan.~pas

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

interface

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

type
  TForm_modechan = class(TForm)
    Tableall: TTable;
    Query1: TQuery;
    Queryall: TQuery;
    DataSource1: TDataSource;
    TableallFigID: TStringField;
    TableallProdname: TStringField;
    TableallQcNum: TIntegerField;
    TableallWasternum: TIntegerField;
    TableallQcper: TFloatField;
    TableallWasterPer: TFloatField;
    TableallWastermoney: TFloatField;
    TableallLacknum: TSmallintField;
    TableallImpunum: TSmallintField;
    TableallPolenum: TSmallintField;
    TableallElsenum: TSmallintField;
    Panel5: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    DataSource2: TDataSource;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Panel1: TPanel;
    Panel2: TPanel;
    BitBtn2: TBitBtn;
    Button1: TButton;
    bbpint: TBitBtn;
    Bevel1: TBevel;
    bbprior: TBitBtn;
    bbnext: TBitBtn;
    BitBtn1: TBitBtn;
    GroupBox2: TGroupBox;
    Panel4: TPanel;
    Panel7: TPanel;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    Panel8: TPanel;
    RBDate: TRadioButton;
    RBMonth: TRadioButton;
    bbserchone: TBitBtn;
    BitBtn3: TBitBtn;
    bbchartone: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    Panel9: TPanel;
    Panel3: TPanel;
    ename: TEdit;
    Panel10: TPanel;
    CheckBoxdic: TCheckBox;
    BBPrinttwe: TBitBtn;
    Tableone: TTable;
    DataSource3: TDataSource;
    DataSourcequeryone: TDataSource;
    Queryone: TQuery;
    sulfQueryperdate: TQuery;
    SulfQuerypermonth: TQuery;
    DataSourcetableone: TDataSource;
    DataSourcedate: TDataSource;
    TableoneTDate: TDateField;
    TableoneFigID: TStringField;
    TableoneProdname: TStringField;
    TableoneQcnum: TIntegerField;
    TableoneWasternum: TIntegerField;
    TableoneQcper: TFloatField;
    TableoneWasterPer: TFloatField;
    TableoneWastermoney: TFloatField;
    TableoneProfitPer: TFloatField;
    TableoneRubbMixID: TStringField;
    TableoneBDEDesigner: TStringField;
    TableoneSourceID: TStringField;
    TableoneTMonth: TStringField;
    TableoneLacknum: TSmallintField;
    TableoneImpunum: TSmallintField;
    TableonePolenum: TSmallintField;
    TableoneRipnum: TSmallintField;
    TableoneElsenum: TSmallintField;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure bbpintClick(Sender: TObject);
    procedure bbpriorClick(Sender: TObject);
    procedure bbnextClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure bbserchoneClick(Sender: TObject);
    procedure enameEnter(Sender: TObject);
    procedure RBDateClick(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BBPrinttweClick(Sender: TObject);
    procedure TabSheet1Exit(Sender: TObject);
    procedure TabSheet2Exit(Sender: TObject);
    procedure bbchartoneClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form_modechan: TForm_modechan;
  i,j:integer;
implementation

uses Unit_modechanprt, Unit_chanchart, UnitDM, UnitQueryID,
  Unit_modechandate, Unit_modepermonth, Unit_modechandatechart,
  Unit_modechanmonchart;
{$R *.DFM}

procedure TForm_modechan.Button1Click(Sender: TObject);
 var int0,int1,int2,int3,int6,int7:integer;
    flt1,flt2,flt3,flt4,flt5,flt6,flt7,flt8,flt9,flt10:real;
    clmodhu:real;
    str1,str2,str3:string;
begin
   i:=1;
  //flt8:=0.0;
  //flt1:=0.0;
  with query1 do
      begin
        close;
        sql.Clear;
        sql.Add('delete from modeDate ');
        execsql;
      end;

//===========以下第一次Query2的分组SQL查询过滤============
  with queryall do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select prodId,figid,prodname,sum(hao)as SumQcNum,sum(lin)as sumDW,');
      sql.Add ('sum(xioufei)as SumLackNum,sum(huai)as SumImpuNum from zhenxiou');
     // sql.Add (' from zhenxiou');//avg(Weight)as avgPW,avg(SellPrice)as avgPP,');
      //sql.Add (' from SulfCard');
      sql.Add (' where riqi between :fromdate and :todate ');//and SulfCard.prodnameid=ProdDictionary.prodid ');
      //sql.Add ('and SulfCard.生产批号 = 炼胶工艺卡.生产批号');
      sql.Add ('group by prodId,figid,prodname');
      parambyname('fromdate').asdate:=DateTimePicker1.date;
      parambyname('todate').asdate:=DateTimePicker2.date;
      open;

      if queryall.FieldByName('prodId').asstring='' then  begin
        showmessage('无记录!');
        exit;
      end;
  
 ///==========以上第一次SQL查询结束====================

 end;

//=========以下把Query2中查询过滤结果向抄写到table1中====================
tableall.open;
queryall.First;
while  not queryall.eof do
 begin
  tableall.append;
  tableall.FieldByName('figid').asstring:=queryall.fieldbyname('figid').asstring;
  tableall.FieldByName('prodname').asstring:=queryall.fieldbyname('prodname').asstring;
  tableall.FieldByName('qcnum').asinteger:=queryall.fieldbyname('sumqcnum').asinteger;
  tableall.FieldByName('elsenum').asinteger:=queryall.fieldbyname('sumDW').asinteger;
  int0:=tableall.FieldByName('qcnum').asinteger; //总合格品数
  int1:=queryall.fieldbyname('sumlacknum').asinteger; //修废
  int2:=queryall.fieldbyname('sumimpunum').asinteger; //硫废
  //int3:=queryall.fieldbyname('sumripnum').asinteger;
  //int4:=queryall.fieldbyname('sumpolenum').asinteger;
  //int5:=queryall.fieldbyname('sumelsenum').asinteger;
  int3:=queryall.fieldbyname('sumDW').asinteger;// 领进总个数
 // flt7:=queryall.fieldbyname('SumMW').asfloat;//平均料重
     with Query1 do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select * from ProdDictionary');
      sql.Add (' where ProdID =:index');
      parambyname('index').asstring:=queryall.fieldbyname('prodId').asstring;
       open;
      int6:=fieldbyname('gujia').asinteger; //骨架数量
      int7:=fieldbyname('tanhuang').asinteger;
     flt3:=Query1.fieldbyname('Weight').asfloat; //单净重
     //flt4:=query1.fieldbyname('sellprice').asfloat; //出厂价
     flt5:=query1.fieldbyname('xioujia').asfloat; //加工费
     str1:=query1.fieldbyname('rubbname').asstring;
     str2:=query1.fieldbyname('gjxh').asstring;
     str3:=query1.fieldbyname('thxh').asstring;

      end;
    tableall.FieldByName('lacknum').asinteger:=int1;
    tableall.FieldByName('impunum').asinteger:=int2;
    //tableall.FieldByName('ripnum').asinteger:=int3;
    //tableall.FieldByName('polenum').asinteger:=int4;
    //tableall.FieldByName('elsenum').asinteger:=int5;
      with Query1 do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select * from 炼胶工艺卡');
      sql.Add (' where 制成品名称=:index');
      parambyname('index').asstring:=str1;
      open;
      flt6:=fieldbyname('单价').asfloat; //胶料价
     end;
       with Query1 do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select * from 原材料台帐');
      sql.Add (' where 材料名称=:index');
      parambyname('index').asstring:=str2;
      open;
      flt9:=fieldbyname('单价').asfloat; //骨架单价
     end;
         with Query1 do
    begin
      close;
      SQL.Clear ;
      sql.Add (' select * from 原材料台帐');
      sql.Add (' where 材料名称=:index');
      parambyname('index').asstring:=str3;
      open;
      flt10:=fieldbyname('单价').asfloat; //弹簧单价
     end;

   //=========以下求废品之和/胶料损耗/金额损耗/合格率/利润率============
   flt9:=flt9*int6;//骨架成本
  tableall.FieldByName('wasternum').asinteger:=int1+int2; //总废品
  tableall.FieldByName('WasterPer').asfloat:=strtofloat(formatfloat('0.0',flt3*(int1+int2)));//flt2-flt3*int0;//胶料损耗
// 修改小数点
  clmodhu:=strtofloat(formatfloat('0.00',(flt3*(int1+int2))*flt6/1000+flt9*(int1+int2)));
  tableall.FieldByName('Wastermoney').asfloat:=clmodhu;//金额损耗

  if int0+int1+int2=0 then
     tableall.FieldByName('qcper').asfloat:=0
  else
   begin
    flt1:=int0/(int0+int1+int2);
    flt1:=strtofloat(formatfloat('0.00',flt1*100));
  tableall.FieldByName('qcper').asfloat:=flt1;//合格率
  end;
  //if flt7*flt6+flt5=0 then
    // tableall.FieldByName('ProfitPer').asfloat:=0
  //else
  // begin
   // flt9:=flt9+flt10*int7;
   //flt8:=(flt4-(flt7+flt7*(int1+int2+int3+int4+int5)/int0)*flt6/1000-flt5-flt9-flt9*(int1+int2+int3+int4+int5)/int0)/(flt7*(1+(int1+int2+int3+int4+int5)/int0)*flt6/1000+flt5+flt9+flt9*(int1+int2+int3+int4+int5)/int0);
//    showmessage(FLOATTOSTR(flt4)+'   '+FLOATTOSTR(flt7*flt6/1000)+'   '+FLOATTOSTR(flt5));
    //flt8:=flt8*100;
   // tableall.FieldByName('ProfitPer').asfloat:=strtofloat(formatfloat('0.00',flt8));//利润率
  // end;
  tableall.post;
  queryall.next;
 end;//while
end;



procedure TForm_modechan.FormShow(Sender: TObject);
begin
 i:=0;
 j:=0;
 DateTimePicker1.Date:=date-30;
 DateTimePicker2.Date:=date;
 DateTimePicker3.Date:=date-30;
 DateTimePicker4.Date:=date;
end;

procedure TForm_modechan.bbpintClick(Sender: TObject);
begin
if i=1 then
begin
Form_modechanprt.QRLabel1.Caption :='从'+datetostr(DateTimePicker1.date)+'到 '+datetostr(DateTimePicker2.date)+' 产品整修质量统计表';
Form_modechanprt.qrlabeldate.Caption:=datetostr(date);
Form_modechanprt.QuickRep1.Preview ;
exit
end;
showmessage('请先按“查询”按键!');
end;

procedure TForm_modechan.bbpriorClick(Sender: TObject);
begin
 dbgrid1.SetFocus;
 tableall.Prior ;
end;

procedure TForm_modechan.bbnextClick(Sender: TObject);
begin
 dbgrid1.SetFocus;
 tableall.Next;
end;

procedure TForm_modechan.BitBtn1Click(Sender: TObject);
begin
 if i=1 then
 begin
  Form_modechanChart.DBChart1.Title.Text.Text:='从'+datetostr(DateTimePicker1.date)+'到 '+datetostr(DateTimePicker2.date)+' 产品整修质量统计图表';
  Form_modechanChart.show;
  exit;
end;
 showmessage('请先按“查询”按键!');
end;

procedure TForm_modechan.bbserchoneClick(Sender: TObject);
var int0,int1,int2,int3,int4,int5,int6,int7:integer;
    flt1,flt2,flt3,flt4,flt5,flt6,flt7,flt8,flt9,flt10:real;
    str1,str2,str3,str4,str5:string;
    clmodhu:real;
begin
  flt8:=0;
  flt1:=0;
  if (i=1) and (ename.text<>'') then
  begin
//===========初始化tableone,清空记录==========
  j:=1;
 with query1 do
      begin
        close;
        sql.Clear;
        sql.Add('delete from modePer ');
        execsql;
      end;

 //==过滤字典,求出厂价,净重,胶料价,加工费======
  dm.tabProdDictionary.Open;
  dm.tabProdDictionary.Filtered:=true;
  dm.tabProdDictionary.Filter:=format('prodid=''%s''',[Ename.text]);
  int6:=dm.tabProdDictionary.fieldbyname('gujia').asinteger;
  str2:=dm.tabProdDictionary.fieldbyname('figid').asstring; //图号
  str3:=dm.tabProdDictionary.fieldbyname('prodname').asstring; //产品名称
  flt3:=dm.tabProdDictionary.fieldbyname('Weight').asfloat; //单净重
  //flt4:=dm.tabProdDictionary.fieldbyname('SellPrice').asfloat; //出厂价
  flt5:=dm.tabProdDictionary.fieldbyname('xioujia').asfloat; //加工费
   str1:=dm.tabProdDictionary.fieldbyname('rubbname').asstring;
   str4:=dm.tabProdDictionary.fieldbyname('gjxh').asstring;//骨架型号
  str5:=dm.tabProdDictionary.fieldbyname('thxh').asstring;//骨架型号
    with Query1 do
    begin
      close;
      //unprepare;
      SQL.Clear ;
      sql.Add (' select 单价 from 炼胶工艺卡');
      sql.Add (' where 制成品名称=:index');
      parambyname('index').asstring:=str1;
      open;
      flt6:=fieldbyname('单价').asfloat; //胶料价
      end;
     with Query1 do
    begin
      close;
      //unprepare;
      SQL.Clear ;
      sql.Add (' select 单价 from 原材料台帐');
      sql.Add (' where 材料名称=:index');
      parambyname('index').asstring:=str4;

⌨️ 快捷键说明

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