inv_wipwastercount.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 169 行
PAS
169 行
unit Inv_WipWasterCount;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Outer, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
StdCtrls, ExtCtrls, ComCtrls, ToolWin, DBCtrls, Base_Qry, jpeg, DBGrids;
Type
TFrm_Inv_WipWasterCount = Class(TFrm_Base_Qry)
AdoQry_tmp1: TAdoQuery;
procedure Act_FilterExecute(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
acondition,bcondition,condition_tmp:string;
aVendorCode:string;
procedure initform(AdOConnection:TAdOConnection;ReadOnly:boolean);Override;
procedure InitReport;Override;
{ Public declarations }
end;
var
Frm_Inv_WipWasterCount: TFrm_Inv_WipWasterCount;
implementation
uses Inv_WipWasterCount_C,Sys_Global;
{$R *.DFM}
procedure TFrm_Inv_WipWasterCount.InitReport;
begin
inherited;
end;
procedure TFrm_Inv_WipWasterCount.initform(AdOConnection:TAdOConnection;ReadOnly:boolean);
begin
inherited;
acondition:='';
bcondition:='';
Frm_Sys_Condition:=TFrm_Inv_WipWasterCount_C.Create(Self);
TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).InitForm(AdoQry_Main.Connection,UserCode,LoginDate);
//定额、损耗小数位不受限制
// AmountFields:='LMBlncQty,OutQty,BlncQty,';
// FreeFields:='Bomqty,BomScrAp,';
Act_Filter.Execute;
// AdoQry_Main.FindField('blncqty').displayformat:='#.##';
end;
procedure TFrm_Inv_WipWasterCount.Act_FilterExecute(Sender: TObject);
begin
if Frm_Sys_Condition.ShowModal=mrOk then
begin
Lbl_Condition.Caption:=Frm_Sys_Condition.ConditionHint;
acondition:=Frm_Sys_Condition.Condition ;
bcondition:=TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).WipWaster_Condition;
if TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).cmbx_WipWaster.ItemIndex=0 then
begin
dbgrideh.Columns[2].Title.Caption:='工废量';
dbgrideh.Columns[3].Title.Caption:='工废率%';
Pnl_Title.Caption:='车间工废统计';
end;
if TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).cmbx_WipWaster.ItemIndex=1 then
begin
dbgrideh.Columns[2].Title.Caption:='料废量';
dbgrideh.Columns[3].Title.Caption:='料废率%';
Pnl_Title.Caption:='车间料废统计';
end;
if TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).cmbx_WipWaster.ItemIndex=2 then
begin
dbgrideh.Columns[2].Title.Caption:='工料废量';
dbgrideh.Columns[3].Title.Caption:='工料废率%';
Pnl_Title.Caption:='车间工料废统计';
end;
lbl_Order.Caption :=' 物料标识';
if TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).condition_tmp='' then
condition_tmp:=''
else
condition_tmp:=' where '+TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).condition_tmp ;
AdoQry_tmp.Close;
AdoQry_tmp.sql.text:=' drop table #tmp ';
try
AdoQry_tmp.ExecSQL ;
except
end;
if TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).cmbx_WipWaster.ItemIndex=0 then
begin
AdoQry_tmp.Close;
AdoQry_tmp.sql.text:=' select tmp1.ItemCode,Isnull(tmp1.InvBillqty2,0) As InvBillQty2, '+
' ISNull(tmp2.InvBillqty1,0) As InvBillQty1 into #tmp'+
' from (select ItemCode,sum(wipqty) as InvBillqty2 from WipWaster i '+
' where '+bcondition+' group by ItemCode) tmp1 '+
' left join (select ItemCode,sum(InvBillqty) as InvBillqty1 from InvOutBill i,InvOutBillline il '
+condition_tmp+' and i.InvBillid=il.InvBillid group by ItemCode) tmp2 '+
' on tmp1.ItemCode=tmp2.ItemCode '+
' where tmp1.InvBillqty2<>0 ';
AdoQry_tmp.ExecSQL ;
end
else If TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).cmbx_WipWaster.ItemIndex=1 then
begin
AdoQry_tmp.Close;
AdoQry_tmp.sql.text:=' select tmp1.ItemCode,IsNull(tmp1.InvBillqty2,0) As InvBillQty2, '+
' IsNull(tmp2.InvBillqty1,0) As InvBillQty1 into #tmp'+
' from (select ItemCode,sum(InvBillqty) as InvBillqty2 from InvOutBill i,InvOutBillline il '+
' where '+acondition+' and i.InvBillid=il.InvBillid group by ItemCode) tmp1 '+
' left join (select ItemCode,sum(InvBillqty) as InvBillqty1 from InvOutBill i,InvOutBillline il '
+condition_tmp+' and i.InvBillid=il.InvBillid group by ItemCode) tmp2 '+
' on tmp1.ItemCode=tmp2.ItemCode '+
' where tmp1.InvBillqty2<>0 ';
AdoQry_tmp.ExecSQL ;
end
Else If TFrm_Inv_WipWasterCount_C(Frm_Sys_Condition).cmbx_WipWaster.ItemIndex=2 then
begin
AdoQry_tmp.Close;
AdoQry_tmp.sql.text:=' select tmp1.ItemCode,IsNull(tmp1.InvBillqty2,0) As InvBillqty2, '+
' IsNull(tmp2.InvBillqty1,0) As InvBillqty1 into #tmp'+
' from (select ItemCode,sum(wipqty) as InvBillqty2 from WipWaster i '+
' where I.WasterType=2 '+bcondition+' group by ItemCode) tmp1 '+
' left join (select ItemCode,sum(InvBillqty) as InvBillqty1 from InvOutBill i,InvOutBillline il '
+condition_tmp+' and i.InvBillid=il.InvBillid group by ItemCode) tmp2 '+
' on tmp1.ItemCode=tmp2.ItemCode '+
' where tmp1.InvBillqty2<>0 ';
AdoQry_tmp.ExecSQL ;
AdoQry_tmp.Close;
AdoQry_tmp.sql.text:=' Insert #tmp (ItemCode,InvBillqty2,InvBillqty1)'+
' Select tmp1.ItemCode,IsNull(tmp1.InvBillqty2,0) As InvBillqty2, '+
' IsNull(tmp2.InvBillqty1,0) As InvBillqty1 '+
' from (select ItemCode,sum(InvBillqty) as InvBillqty2 from InvOutBill i,InvOutBillline il '+
' where I.WipWaster=2 And '+acondition+' and i.InvBillid=il.InvBillid group by ItemCode) tmp1 '+
' left join (select ItemCode,sum(InvBillqty) as InvBillqty1 from InvOutBill i,InvOutBillline il '
+condition_tmp+' and i.InvBillid=il.InvBillid group by ItemCode) tmp2 '+
' on tmp1.ItemCode=tmp2.ItemCode '+
' where tmp1.InvBillqty2<>0 ';
AdoQry_tmp.ExecSQL ;
end;
AdoQry_Main.Close;
AdoQry_Main.SQL.Text:=' select tmp.ItemCode+'' ''+Item.ItemName ItemDESC,abs(Sum(tmp.InvBillqty2)) as InvBillqty2 ,' +
' Sum(tmp.InvBillqty1) As InvBillqty1,'+
' case Sum(tmp.InvBillqty1) when 0 then ''0%'' '+
' else Convert(varchAr,abs(Sum(tmp.InvBillqty2))/Sum(tmp.InvBillqty1)*100)+''%'' end InvBillper '+
' from #tmp tmp '+
' left join Item on tmp.ItemCode=Item.ItemCode '+
' Group By tmp.ItemCode,Item.ItemName,tmp.ItemCode+'' ''+Item.ItemName '+
' Order by tmp.ItemCode ';
AdoQry_Main.open;
end;
end;
procedure TFrm_Inv_WipWasterCount.FormDestroy(Sender: TObject);
begin
inherited;
with AdoQry_tmp do
begin
Close;
sql.clear;
sql.Add(' drop table #tmp ');
try
execsql;
except
end;
end;
Frm_Inv_WipWasterCount:=nil;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?