📄 unit_rubb_sumproccard.~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 + -