📄 inv_billlistqry.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 + -