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

📄 inv_vendorinsumqry_d.pas

📁 一个MRPII系统源代码版本
💻 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 + -