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

📄 unit_rubb_sumproccard.~pas

📁 此代码为企业原料管理代码
💻 ~PAS
字号:
unit Unit_Rubb_SumProcCard;

interface

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

type
  TForm_Rubb_SumProcCard = class(TForm)
    Bevel1: TBevel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Panel1: TPanel;
    DateTimePicker_From: TDateTimePicker;
    DateTimePicker_To: TDateTimePicker;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Qry_Sum: TQuery;
    Qry_exe: TQuery;
    Query1: TQuery;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form_Rubb_SumProcCard: TForm_Rubb_SumProcCard;

implementation

uses Unit_Rubb_PrtSumProcCard;



{$R *.DFM}

procedure TForm_Rubb_SumProcCard.BitBtn1Click(Sender: TObject);
var
  s_from,s_to :string;
  f_InTotal,f_MoneyTotal,f_OutTotal:real;
  f_MoneyPer,f_OutMoneyTotal,f_ThisLeft,f_WtLoss,f_MoneyLoss:real;
  n_id,i1,i2:integer;
begin
   f_ThisLeft:=0;
  s_from:=datetostr(DateTimePicker_From.date);
  s_to:=datetostr(DateTimePicker_to.date);
   with Query1 do
  begin
    close;
    sql.Clear;
    sql.Add('select min(标识号) from 炼胶工艺卡');
    sql.Add('where 混炼日期 >=:v_from ');
    parambyname('v_from').asdatetime:=strtodate(s_from);
    open;
    i1:=fields[0].asinteger;   //得到标识号1
     showmessage(inttostr(i1));
    end;

     with Query1 do
  begin
    close;
    sql.Clear;
    sql.Add('select max(标识号) from 炼胶工艺卡');
    sql.Add('where 混炼日期 <=:v_to');
    parambyname('v_to').asdatetime:=strtodate(s_to);
    open;
    i2:=fields[0].asinteger;   //得到标识号2
     showmessage(inttostr(i2));
    end;
  with Qry_Sum do
  begin
    close;
    sql.Clear;
    sql.Add('select Sum(用料数量),Sum(金额)from 炼胶用料单');
    sql.Add('where 主表标识号>=:v_from and 主表标识号<=:v_to ');
    parambyname('v_from').asinteger:=i1;
    parambyname('v_to').asinteger:=i2;
    open;
    f_InTotal:=fields[0].asfloat;   //得到领料总重量
    f_MoneyTotal:=fields[1].asfloat; //得到出库总金额

    close;
    sql.Clear;
    sql.Add('select Sum(合计) from 炼胶台帐 ');
    sql.Add('where 日期 between :v_from and :v_to ');
    parambyname('v_from').asdatetime:=strtodate(s_from);
    parambyname('v_to').asdatetime:=strtodate(s_to);
    open;
    f_OutTotal:=fields[0].asfloat;   //得到出库总重量
  end; //with

  with Qry_exe do
  begin
    close;
    sql.Clear;
    sql.Add('select max(标识号) from 炼胶台帐 ');
    sql.Add('group by 胶料名称  ');
    open;
    while not eof do
    begin
      n_id:=fields[0].asinteger;
      Qry_sum.Close;
      Qry_sum.sql.Clear;
      Qry_sum.sql.Add('select * from 炼胶台帐 where 标识号 = :v_id ');
      Qry_sum.parambyname('v_id').asinteger:=n_id;
      Qry_sum.open;
      f_ThisLeft:=f_ThisLeft+Qry_sum.fieldbyname('结存').asfloat; //得到总剩余库存
      next;
    end; //while
  end; //with
    if f_InTotal=0 then
    begin
      showmessage('无帐可结!');
      exit;
    end;
   f_MoneyPer:=f_MoneyTotal/f_InTotal;
//得到每车胶料单价
  f_MoneyPer:=strtofloat(formatfloat('0.00',f_MoneyPer));
//得到出库总金额
  f_OutMoneyTotal:=strtofloat(formatfloat('0.00',f_MoneyPer*f_OutTotal));
//得到总损失重量
  f_WtLoss:=f_InTotal-f_OutTotal-f_ThisLeft;
//得到总损失金额
  f_MoneyLoss:=strtofloat(formatfloat('0.00',f_MoneyPer*f_WtLoss));
   f_InTotal:=strtofloat(formatfloat('0.000',f_InTotal));
   f_MoneyTotal:=strtofloat(formatfloat('0.00',f_MoneyTotal));
   f_OutTotal:=strtofloat(formatfloat('0.000',f_OutTotal));
   f_ThisLeft:=strtofloat(formatfloat('0.000',f_ThisLeft));
   f_WtLoss:=strtofloat(formatfloat('0.000',f_WtLoss));
  Form_Rubb_PrtSumProcCard.QRLabel8.Caption:=floattostr(f_InTotal);
  Form_Rubb_PrtSumProcCard.QRLabel9.Caption:=floattostr(f_MoneyTotal);
  Form_Rubb_PrtSumProcCard.QRLabel10.Caption:=floattostr(f_OutTotal);
  Form_Rubb_PrtSumProcCard.QRLabel11.Caption:=floattostr(f_MoneyPer);
  Form_Rubb_PrtSumProcCard.QRLabel12.Caption:=floattostr(f_OutMoneyTotal);
  Form_Rubb_PrtSumProcCard.QRLabel29.Caption:=floattostr(f_ThisLeft);
  Form_Rubb_PrtSumProcCard.QRLabel13.Caption:=floattostr(f_WtLoss);
  Form_Rubb_PrtSumProcCard.QRLabel14.Caption:=floattostr(f_MoneyLoss);

  Form_Rubb_PrtSumProcCard.QRLabel_From.caption:=datetostr(DateTimePicker_from.date);
  Form_Rubb_PrtSumProcCard.QRLabel_To.caption:=datetostr(DateTimePicker_to.date);

  Form_Rubb_PrtSumProcCard.QuickRep1.Preview;


end;

procedure TForm_Rubb_SumProcCard.FormCreate(Sender: TObject);
var
  d:Tdate;
begin
  DateTimePicker_To.date:=strtodate(formatdatetime('yy-m',date)+'-28');
  d:=DateTimePicker_To.date;
  DateTimePicker_From.date:=d - 30;

end;

procedure TForm_Rubb_SumProcCard.FormShow(Sender: TObject);
begin
DateTimePicker_From.date:=date-30;
  DateTimePicker_to.date:=date;
end;

procedure TForm_Rubb_SumProcCard.BitBtn2Click(Sender: TObject);
begin
  Query1.active:=false;
  close;
end;

end.

⌨️ 快捷键说明

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