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

📄 inv_billlistqry.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Inv_BillListQry;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Qry, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
  StdCtrls, ExtCtrls, ComCtrls, ToolWin, DBCtrls;

Type
  TFrm_Inv_BillListQry = Class(TFrm_Base_Qry)
    Label1: TLabel;
    DBText1: TDBText;
    Label9: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBGridEhGetCellParams(Sender: TObject; Column: TColumnEh;
      AFont: TFont; var Background: TColor; State: TGridDrawState);
    procedure Act_LookExecute(Sender: TObject);
    procedure Act_PrintExecute(Sender: TObject);
    procedure AdoQueryAfterOpen(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure InitForm(AdOConnection:TAdOConnection;ShowExtendColumn:Boolean);Override;
  end;

var
  Frm_Inv_BillListQry: TFrm_Inv_BillListQry;

implementation

uses Inv_BillListQry_C, Inv_SaleBillQry, Inv_MnInBillQry,
  Inv_PurchaseInBillQry, Inv_OpOutBillQry, Inv_MnOutBillQry,
  Inv_OtherOutBillQry, Inv_OtherInBillQry, Inv_WhPMoveBillQry,
  Inv_CheckInBillQry,Inv_Global,Inv_BillListPrint_C;

{$R *.DFM}

procedure TFrm_Inv_BillListQry.InitForm(AdOConnection:TAdOConnection;ShowExtendColumn:Boolean);
begin
  inherited;
  if Param1<>'Stk' then
  begin
    DBGridEh.Columns.Delete(13);
    DBGridEh.Columns.Delete(12);
    DBGridEh.Columns.Delete(11);
    DBGridEh.Columns.Delete(10);
  end;
  PriceFields:='InvBillNoTaxPrice,InvBillPrice,';
  AmountFields:='InvBillNoTaxAmount,InvBillAmount,';
  try
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Drop TABLE #BillListQry';
    AdoQry_Tmp.ExecSQL;
  except
  end;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:='CREATE TABLE #BillListQry ('
    +' [DateSting] [varchAr] (10) NULL'
    +',[BillTypeCode] [varchAr] (4) NULL'
    +',[InvBillNo] [varchAr] (10) NULL'
    +',[MoPoNo] [varchAr] (30) NULL'
    +',[InvBillRemArk] [varchAr] (100) NULL'
    +',[InvBillQty] [float] NULL'
    +',[OInvBillQty] [float] NULL'
    +',[InvBillCreateTime] [datetime] NULL'
    +',[ItemCode] [varchAr] (16) NULL'
    +',[ItemName] [varchAr] (80) NULL'
    +',[ItemCodeName] [varchAr] (96) NULL'
    +',[WHCode] [varchAr] (4) NULL'
    +',[InvBillNoTaxPrice] [float] NULL'
    +',[InvBillNoTaxAmount] [float] NULL'
    +',[InvBillPrice] [float] NULL'
    +',[InvBillAmount] [float] NULL'
    +' )';
  AdoQry_Tmp.ExecSQL;
  SelectFromSQL:='Select #BillListQry.DateSting'
    +',#BillListQry.BillTypeCode'
    +',#BillListQry.InvBillNo'
    +',#BillListQry.MoPoNo'
    +',#BillListQry.InvBillRemArk'
    +',#BillListQry.InvBillQty'
    +',#BillListQry.OInvBillQty'
    +',#BillListQry.InvBillCreateTime'
    +',#BillListQry.ItemCode'
    +',#BillListQry.ItemName'
    +',#BillListQry.ItemCodeName'
    +',#BillListQry.WHCode'
    +',#BillListQry.WHCode+'' ''+Warehouse.WHName As WHCodeName'
    +',#BillListQry.InvBillNoTaxPrice'
    +',#BillListQry.InvBillNoTaxAmount'
    +',#BillListQry.InvBillPrice'
    +',#BillListQry.InvBillAmount'
    +' From #BillListQry'
    +' Join Warehouse On #BillListQry.WHCode=Warehouse.WHCode';
  OrderByFields:='DateSting,InvBillCreateTime';
  Frm_Sys_Condition:=TFrm_Inv_BillListQry_C.Create(Self);
  Act_Filter.Execute;
end;

procedure TFrm_Inv_BillListQry.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:='Drop TABLE #BillListQry';
  AdoQry_Tmp.ExecSQL;
end;

procedure TFrm_Inv_BillListQry.DBGridEhGetCellParams(Sender: TObject;
  Column: TColumnEh; AFont: TFont; var Background: TColor;
  State: TGridDrawState);
begin
  inherited;
  if (gdSelected in State)or(gdFocused in State) then
  begin
    Background:=clNavy;
    AFont.Color:=clWindow;
  end
  else
  begin
    if AdoQry_Main.fieldbyname('BillTypeCode').AsString='1102' then
    begin
      AFont.Color:=clBlue;
    end
    else
      AFont.Color:=clBlack;
  end;
end;

procedure TFrm_Inv_BillListQry.Act_LookExecute(Sender: TObject);
begin
  inherited;
  if(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0203')
    or(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0204')then
  begin
    Application.CreateForm(TFrm_Inv_SaleBillQry,Frm_Inv_SaleBillQry);
    Frm_Inv_SaleBillQry.Getvar(AdoQry_Main.fieldbyname('InvBillNo').AsString,
      AdoQry_Main.fieldbyname('WHCode').AsString,
      AdoQry_Main.fieldbyname('BillTypeCode').AsString,Param1);
    Frm_Inv_SaleBillQry.InitForm(DBConnect,True);
  end
  else if(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0105')
    or(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0104')then
  begin
    Application.CreateForm(TFrm_Inv_MnInBillQry,Frm_Inv_MnInBillQry);
    Frm_Inv_MnInBillQry.Getvar(AdoQry_Main.fieldbyname('InvBillNo').AsString,
      AdoQry_Main.fieldbyname('WHCode').AsString,
      AdoQry_Main.fieldbyname('BillTypeCode').AsString);
    Frm_Inv_MnInBillQry.InitForm(DBConnect,Param1='Stk');
  end
  else if(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0101')
    or(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0102')
    or(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0103')then
  begin
    Application.CreateForm(TFrm_Inv_PurchaseInBillQry,Frm_Inv_PurchaseInBillQry);
    Frm_Inv_PurchaseInBillQry.Getvar(AdoQry_Main.fieldbyname('InvBillNo').AsString,
      AdoQry_Main.fieldbyname('WHCode').AsString,
      AdoQry_Main.fieldbyname('BillTypeCode').AsString);
    Frm_Inv_PurchaseInBillQry.InitForm(DBConnect,Param1='Stk');
  end
  else if(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0202')then
  begin
    Application.CreateForm(TFrm_Inv_OpOutBillQry,Frm_Inv_OpOutBillQry);
    Frm_Inv_OpOutBillQry.Getvar(AdoQry_Main.fieldbyname('InvBillNo').AsString,
      AdoQry_Main.fieldbyname('WHCode').AsString,
      AdoQry_Main.fieldbyname('BillTypeCode').AsString);
    Frm_Inv_OpOutBillQry.InitForm(DBConnect,Param1='Stk');
  end
  else if(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0201')then
  begin
    Application.CreateForm(TFrm_Inv_MnOutBillQry,Frm_Inv_MnOutBillQry);
    Frm_Inv_MnOutBillQry.Getvar(AdoQry_Main.fieldbyname('InvBillNo').AsString,
      AdoQry_Main.fieldbyname('WHCode').AsString,
      AdoQry_Main.fieldbyname('BillTypeCode').AsString);
    Frm_Inv_MnOutBillQry.InitForm(DBConnect,Param1='Stk');
  end
  else if(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0299')then
  begin
    Application.CreateForm(TFrm_Inv_OtherOutBillQry,Frm_Inv_OtherOutBillQry);
    Frm_Inv_OtherOutBillQry.Getvar(AdoQry_Main.fieldbyname('InvBillNo').AsString,
      AdoQry_Main.fieldbyname('WHCode').AsString,
      AdoQry_Main.fieldbyname('BillTypeCode').AsString);
    Frm_Inv_OtherOutBillQry.InitForm(DBConnect,Param1='Stk');
  end
  else if(AdoQry_Main.fieldbyname('BillTypeCode').AsString='0199')then
  begin
    Application.CreateForm(TFrm_Inv_OtherInBillQry,Frm_Inv_OtherInBillQry);
    Frm_Inv_OtherInBillQry.Getvar(AdoQry_Main.fieldbyname('InvBillNo').AsString,
      AdoQry_Main.fieldbyname('WHCode').AsString,
      AdoQry_Main.fieldbyname('BillTypeCode').AsString,
      AdoQry_Main.fieldbyname('DateSting').AsString);
    Frm_Inv_OtherInBillQry.InitForm(DBConnect,Param1='Stk');
  end
  else if(AdoQry_Main.fieldbyname('BillTypeCode').AsString='1101')then
  begin
    Application.CreateForm(TFrm_Inv_WhPMoveBillQry,Frm_Inv_WhPMoveBillQry);
    Frm_Inv_WhPMoveBillQry.Getvar(AdoQry_Main.fieldbyname('InvBillNo').AsString,
      AdoQry_Main.fieldbyname('WHCode').AsString,
      AdoQry_Main.fieldbyname('BillTypeCode').AsString);
    Frm_Inv_WhPMoveBillQry.InitForm(DBConnect,True);
  end
  else if(AdoQry_Main.fieldbyname('BillTypeCode').AsString='1102')then
  begin
    Application.CreateForm(TFrm_Inv_CheckInBillQry,Frm_Inv_CheckInBillQry);
    Frm_Inv_CheckInBillQry.Getvar(AdoQry_Main.fieldbyname('InvBillNo').AsString,
      AdoQry_Main.fieldbyname('WHCode').AsString);
    Frm_Inv_CheckInBillQry.InitForm(DBConnect,'ReadOnly',AdoQry_Main);
    Frm_Inv_CheckInBillQry.ShowModal;
    Frm_Inv_CheckInBillQry.Release;
  end;
end;

procedure TFrm_Inv_BillListQry.Act_PrintExecute(Sender: TObject);
var
  WHCode_InvBillNo:String;
begin
  with TFrm_Inv_BillListPrint_C.Create(Self) do
  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') then
            begin
              AdoQry_Tmp.Connection:=DBConnect;
              AdoQry_Tmp.Close;
              AdoQry_Tmp.SQL.Text:='Select RealBillFlag From InvInBill'
                +' Where InvBillNo='''+AdoQry_Main.fieldbyname('InvBillNo').AsString+''''
                +' And WHCode='''+AdoQry_Main.fieldbyname('WHCode').AsString+'''';
              AdoQry_Tmp.Open;
              if AdoQry_Tmp.fieldbyname('RealBillFlag').AsString='1' then
                BillPrint(DBConnect,AdoQry_Main.fieldbyname('WHCode').AsString
                  ,AdoQry_Main.fieldbyname('InvBillNo').AsString
                  ,AdoQry_Main.fieldbyname('BillTypeCode').AsString
                  ,ModuleCode,False,False,True,'');
            end
            else
              BillPrint(DBConnect,AdoQry_Main.fieldbyname('WHCode').AsString
                ,AdoQry_Main.fieldbyname('InvBillNo').AsString
                ,AdoQry_Main.fieldbyname('BillTypeCode').AsString
                ,ModuleCode,False,False,True,'');
          end;
          AdoQry_Main.Next;
        end;
      end;
    end;
    Release;
  end;
end;

procedure TFrm_Inv_BillListQry.AdoQueryAfterOpen(DataSet: TDataSet);
var
  d1:Double;
begin
  inherited;
  if (Param1='Stk') then
   begin
     d1:=0;
     AdoQry_Main.First;
     while not AdoQry_Main.Eof do
     begin
       d1:=d1+AdoQry_Main.fieldbyname('InvBillNoTaxAmount').AsFloat;
       AdoQry_Main.Next;
     end;
     Label9.Caption:='未税金额:'+FormatFloat('#0.00',d1);
   end;
end;

end.

⌨️ 快捷键说明

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