📄 inv_vendorinsumqry_d.pas
字号:
unit Inv_VendorInSumQry_D;
//供应商到货查询明细单元
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Qry, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
StdCtrls, ExtCtrls, ComCtrls, ToolWin;
Type
TFrm_Inv_VendorInSumQry_D = Class(TFrm_Base_Qry)
AdoQry_MainInvBillDate: TDateTimeField;
AdoQry_MainwhFlag: TStringField;
AdoQry_MainInvBillNo: TStringField;
AdoQry_MainPoNo: TStringField;
AdoQry_MainPoLineNo: TIntegerField;
AdoQry_MainInvBillQty: TFloatField;
AdoQry_MainEmployee: TStringField;
AdoQry_MainWhPosition: TStringField;
AdoQry_MainInvBillPrice: TFloatField;
AdoQry_MainInvBillAmount: TFloatField;
AdoQry_MainwhCode: TStringField;
AdoQry_MaInBillTypeCode: TStringField;
AdoQry_MainRealBillFlag: TIntegerField;
procedure Act_PrintExecute(Sender: TObject);
private
FUserCode,FVendorCode,FVendorName,FItemCode,FItemName:string;
FConditionHint,FCondition:string;
{ Private declarations }
public
procedure InitForm(AdOConnect:TAdOConnection;ShowExtendColumn:Boolean);Override;
procedure SetParam(Param1,Param2,Param3,Param4,Param5,Param6,Param7:string);
{ Public declarations }
end;
var
Frm_Inv_VendorInSumQry_D: TFrm_Inv_VendorInSumQry_D;
implementation
uses Inv_Global,Sys_Global,Inv_BillListPrint_C;
{$R *.DFM}
{ TFrm_Inv_VendorInSumQry_D }
procedure TFrm_Inv_VendorInSumQry_D.InitForm(AdOConnect: TAdOConnection;
ShowExtendColumn: Boolean);
begin
inherited;
//窗体数据的初始化
if(not ShowExtendColumn)then
begin
DBGridEh.Columns.Delete(7);
DBGridEh.Columns.Delete(6);
end
else
begin
PriceFields:='InvBillPrice,';
AmountFields:='InvBillAmount,';
end;
SelectFromSQL:='select B.InvBillDate,B.whCode+ '' ''+w.whName whFlag,B.whCode,'+
' B.InvBillNo,B.PoNo,BL.PoLineNo,Bl.InvBillQty,'+
' BL.InvBillPrice,Bl.InvBillAmount,B.BillTypeCode,'+
' B.wh_EmployeeCode+'' ''+E.EmployeeName Employee,'+
' b.BillTypeCode,b.RealBillFlag,'+
' B.WhPositionCode+'' ''+Wp.WhPositionName WhPosition'+
' from InvInBill B'+
' join InvInBillLine Bl'+
' on B.InvBillid=Bl.InvBillId'+
' Join Vendor V'+
' On V.VendorCode=B.VendorCode'+
' Left Join Warehouse W'+
' On W.whCode=B.whCode'+
' Left Join WhPosition Wp'+
' on wp.WhPositionCode=B.WhPositionCode and wp.whCode=B.whCode '+
' Left Join Employee E'+
' On E.EmployeeCode=B.Wh_EmployeeCode';
condition:=' B.VendorCode='''+FVendorCode+''' and '+
' Bl.ItemCode='''+FItemCode+''' and ';
condition:=condition+Fcondition;
//条件提示显示
Lbl_Condition.Caption:=FconditionHint+'供应商:'+FVendorCode+' '+FVendorName+'|'+
'物料:'+FItemCode+' '+FItemName;
OrderByFields:=' InvBillDate,InvBillNo';
GetData;
end;
procedure TFrm_Inv_VendorInSumQry_D.SetParam(Param1, Param2,
Param3,Param4,Param5,Param6,Param7: string);
begin
FUserCode:=Param1;
FVendorCode:=Param2;
FVendorName:=Param3;
FItemCode:=Param4;
FItemName:=Param5;
FCondition:=Param6;
FConditionHint:=Param7;
end;
procedure TFrm_Inv_VendorInSumQry_D.Act_PrintExecute(Sender: TObject);
var
WHCode_InvBillNo:String;
begin
with TFrm_Inv_BillListPrint_C.Create(Self) do //新建的Form
begin
if ShowModal=mrOk then
begin
if RdBtn_PrintList.Checked then //打印列表时,用基类提供的打印功能
inherited
else //否则打印当前列表中的所有单据
begin
AdoQry_Main.First;
while not AdoQry_Main.Eof do
begin
if WHCode_InvBillNo<>AdoQry_Main.fieldbyname('whCode').AsString
+AdoQry_Main.fieldbyname('InvBillNo').AsString then //列表中列出的不是单据头,而是单据行
begin
WHCode_InvBillNo:=AdoQry_Main.fieldbyname('WHCode').AsString
+AdoQry_Main.fieldbyname('InvBillNo').AsString;
if ((AdoQry_Main.fieldbyname('BillTypeCode').asstring='0101')
or(AdoQry_Main.fieldbyname('BillTypeCode').asstring='0102')
or(AdoQry_Main.fieldbyname('BillTypeCode').asstring='0103'))
and(AdoQry_Main.fieldbyname('RealBillFlag').asinteger<>1)then
begin
end
else
begin
BillPrint(DBConnect,AdoQry_Main.fieldbyname('WHCode').AsString
,AdoQry_Main.fieldbyname('InvBillNo').AsString
,AdoQry_Main.fieldbyname('BillTypeCode').asstring,'Stk',False,False,True,'');
end;
//注意Param1是当前查询的单据类型,我们不要用参数,直接书写单据类型代码,例如“其它出库单据列表查询”,就是 0299
end;
AdoQry_Main.Next;
end;
end;
end;
Release;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -