📄 inv_purchaseinbilllistqry_c.pas
字号:
unit Inv_PurchaseInBillListQry_C;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Condition, StdCtrls, Db, AdODB, CheckLst, ExtEdit, Mask;
Type
TFrm_Inv_PurchaseInBillListQry_C = Class(TFrm_Base_Condition)
ChLstBx_WhSelect: TCheckListBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
MEdt_StArtDate: TMaskEdit;
MEdt_EndDate: TMaskEdit;
Edt_StArtNo: TEdit;
Edt_EndNo: TEdit;
ExtEdt_VendorCode: TExtEdit;
Lbl_DeptName: TLabel;
ExtEdt_ItemCode: TExtEdit;
Lbl_ItemName: TLabel;
Edt_PoNo: TEdit;
Edt_PoLineNo: TEdit;
Edt_StArtAmount: TEdit;
Edt_EndAmount: TEdit;
ChBx_PrintTimes: TCheckBox;
ChBx_SelectAll: TCheckBox;
Label15: TLabel;
Extedt_Employee: TExtEdit;
lbl_Employee: TLabel;
chbx_Check0: TCheckBox;
chbx_Check01: TCheckBox;
chbx_Check01red: TCheckBox;
chbx_Checkend1: TCheckBox;
chbx_Checkend0: TCheckBox;
Label14: TLabel;
procedure btn_okClick(Sender: TObject);
procedure ChLstBx_WhSelectClickCheck(Sender: TObject);
procedure MEdt_EndDateExit(Sender: TObject);
procedure Edt_PoNoExit(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edt_EndNoExit(Sender: TObject);
procedure Edt_EndAmountExit(Sender: TObject);
procedure ChBx_SelectAllClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure InitForm(AdOConnection:TAdOConnection;UserCode:String;Select_Price:boolean);
end;
var
Frm_Inv_PurchaseInBillListQry_C: TFrm_Inv_PurchaseInBillListQry_C;
implementation
uses Sys_Global;
{$R *.DFM}
procedure TFrm_Inv_PurchaseInBillListQry_C.InitForm(AdOConnection:TAdOConnection;UserCode:String;select_Price:boolean);
begin
inherited;
SetDBConnect(AdOConnection);
with AdoQry_Tmp do
begin
Close;
SQL.Text:='Select Warehouse.WHCode+'' ''+Warehouse.WHName As CodeName '+
'From Warehouse Join WHAccessCtrl On Warehouse.WHCode=WHAccessCtrl.WHCode '+
'Where WHAccessCtrl.EmployeeCode='''+UserCode+'''';
Open;
ChLstBx_WhSelect.clear;
First;
while not Eof do
begin
ChLstBx_WhSelect.Items.Add(fieldbyname('CodeName').AsString);
AdoQry_Tmp.Next;
end;
end;
if select_Price then
begin
chbx_Check0.Visible :=True;
chbx_Check01.Visible:=True;
chbx_Check01red.Visible:=True;
chbx_Checkend1.Visible:=True;
chbx_Checkend0.Visible:=True;
end
else
begin
chbx_Check0.Visible :=False;
chbx_Check01.Visible:=False;
chbx_Check01red.Visible:=False;
chbx_Checkend1.Visible:=False;
chbx_Checkend0.Visible:=False;
end;
end;
procedure TFrm_Inv_PurchaseInBillListQry_C.btn_okClick(Sender: TObject);
var
i:integer;
checksql:string;
begin
inherited;
Condition:='';
for i:=0 to ChLstBx_WhSelect.Items.Count-1 do
begin
if ChLstBx_WhSelect.Checked[i] then
begin
if Condition='' then
begin
Condition:='('''+GetCode(ChLstBx_WhSelect.Items.Strings[i])+'''';
ConditionHint:='仓库:'+GetName(ChLstBx_WhSelect.Items.Strings[i]);
end
else
begin
Condition:=Condition+','''+GetCode(ChLstBx_WhSelect.Items.Strings[i])+'''';
ConditionHint:=ConditionHint+','+GetName(ChLstBx_WhSelect.Items.Strings[i]);
end;
end;
end;
Condition:=Condition+')';
Condition:=' InvInBill.WHCode In'+Condition;
Condition:=Condition+' And InvInBill.InvBillDate>='''+MEdt_StArtDate.Text+'''';
Condition:=Condition+' And InvInBill.InvBillDate<='''+MEdt_EndDate.Text+'''';
ConditionHint:=ConditionHint+' 日期:从 '+MEdt_StArtDate.Text+' 到 '+MEdt_EndDate.Text;
if (Edt_StArtNo.Text<>'') and (Edt_EndNo.Text='') then
begin
Condition:=Condition+' And InvInBill.InvBillNo='''+Edt_StArtNo.Text+'''';
ConditionHint:=ConditionHint+' 单号:等于 '+Edt_StArtNo.Text;
end
Else if(Edt_EndNo.Text<>'')then
begin
ConditionHint:=ConditionHint+' 单号从 '+Edt_StArtNo.Text+' 到 '+Edt_EndNo.Text;
Condition:=Condition+' And InvInBill.InvBillNo<='''+Edt_EndNo.Text+''''+
' And InvInBill.InvBillNo>='''+Edt_StArtNo.Text+'''';
end;
if(ExtEdt_VendorCode.Text<>'')then
begin
Condition:=Condition+' And InvInBill.VendorCode like '''+ExtEdt_VendorCode.text+'%''';
ConditionHint:=ConditionHint+' 供应商: '+ExtEdt_VendorCode.Text;
end;
if(ExtEdt_ItemCode.Text<>'')then
begin
Condition:=Condition+' And InvInBillLine.ItemCode like '''+ExtEdt_ItemCode.Text+'%''';
ConditionHint:=ConditionHint+' 物料代码: '+ExtEdt_ItemCode.Text;
end;
if(Edt_PoNo.Text<>'')then
begin
Condition:=Condition+' And InvInBill.PoNo='''+Edt_PoNo.Text+'''';
ConditionHint:=ConditionHint+' 采购订单号: '+Edt_PoNo.Text;
end;
if(Extedt_Employee.Text<>'')then
begin
Condition:=Condition+' And InvInBill.wh_EmployeeCode='''+Extedt_Employee.Text+'''';
ConditionHint:=ConditionHint+' 仓管员: '+Extedt_Employee.Text;
end;
if (Edt_PoLineNo.Text<>'')then
begin
Condition:=Condition+' And InvInBillLine.PoLineNo='''+Edt_PoLineNo.Text+'''';
ConditionHint:=ConditionHint+' 订单行号: '+Edt_PoLineNo.Text;
end;
if (Edt_StArtAmount.Text<>'') and (Edt_EndAmount.Text='')then
begin
Condition:=Condition+' And InvInBillLine.InvBillQty='+Edt_StArtAmount.Text;
ConditionHint:=ConditionHint+' 数量:等于 '+Edt_StArtAmount.Text;
end
Else if (Edt_EndAmount.Text<>'') then
begin
Condition:=Condition+' And InvInBillLine.InvBillQty<='+Edt_EndAmount.Text+
' And InvInBillLine.InvBillQty>='+Edt_StArtAmount.Text;
ConditionHint:=ConditionHint+'数量从'+Edt_StArtAmount.Text+' 到 '+Edt_EndAmount.Text
end;
if ChBx_PrintTimes.Checked then
Condition:=Condition+' And InvInBill.PrintTimes=0 ' ;
checksql:='';
if chbx_Check0.Checked then
checksql:=' (Sourceno='''' and InvBillStkchck=0 and realBillflag=1) ';
if chbx_Check01.Checked then
begin
if checksql='' then
checksql:=' (Sourceno='''' and InvBillStkchck=1 ) '
else
checksql:=checksql+' or (Sourceno='''' and InvBillStkchck=1 ) ';
end;
if chbx_Check01red.Checked then
begin
if checksql='' then
checksql:=' (InvInBill.whCode+InvInBill.InvBillno in '
+' ( select a.whCode+a.minInvBillno from '
+' (select min(InvBillno) as minInvBillno ,whCode,Sourceno from InvInBill '
+' where bluered=''R'' and Sourceno<>'''' '
+' group by Sourceno,whCode ) a )) '
else
checksql:=checksql+' or (InvInBill.whCode+InvInBill.InvBillno in '
+' ( select a.whCode+a.minInvBillno from '
+' (select min(InvBillno) as minInvBillno ,whCode,Sourceno from InvInBill '
+' where bluered=''R'' and Sourceno<>'''' '
+' group by Sourceno,whCode ) a )) ';
end;
if chbx_Checkend0.Checked then
begin
if checksql='' then
checksql:=' (Sourceno='''' and InvBillStkchck=1 and realBillflag=1 and InvBillValuation=1) or '
+' (InvInBill.whCode+InvInBill.InvBillno in '
+' ( select b.whCode+maxInvBillno from '
+' (select max(InvBillno) as maxInvBillno ,whCode,Sourceno from InvInBill '
+' where bluered=''B'' and Sourceno<>'''' and InvBillValuation=1 '
+' group by whCode,Sourceno ) b) ) '
else
checksql:=checksql+' or (Sourceno='''' and InvBillStkchck=1 and realBillflag=1 and InvBillValuation=1) or '
+' (InvInBill.whCode+InvInBill.InvBillno in '
+' ( select b.whCode+maxInvBillno from '
+' (select max(InvBillno) as maxInvBillno ,whCode,Sourceno from InvInBill '
+' where bluered=''B'' and Sourceno<>'''' and InvBillValuation=1 '
+' group by whCode,Sourceno ) b) ) ';
end;
if chbx_Checkend1.Checked then
begin
if checksql='' then
checksql:=' (Sourceno='''' and InvBillStkchck=1 and realBillflag=1 and InvBillValuation=0) or '
+' (InvInBill.whCode+InvInBill.InvBillno in '
+' ( select c.whCode+maxInvBillno from '
+' (select max(InvBillno) as maxInvBillno ,whCode,Sourceno from InvInBill '
+' where bluered=''B'' and Sourceno<>'''' and InvBillValuation=0 '
+' group by whCode,Sourceno ) c) ) '
else
checksql:=checksql+' or (Sourceno='''' and InvBillStkchck=1 and realBillflag=1 and InvBillValuation=0) or '
+' (InvInBill.whCode+InvInBill.InvBillno in '
+' ( select c.whCode+maxInvBillno from '
+' (select max(InvBillno) as maxInvBillno ,whCode,Sourceno from InvInBill '
+' where bluered=''B'' and Sourceno<>'''' and InvBillValuation=0 '
+' group by whCode,Sourceno ) c) ) ';
end;
if checksql<>'' then
Condition:=Condition+' and '+'('+checksql+')';
{
if chbx_Price.Checked then
//原始单据+最小红单+最大蓝单
// Condition:=Condition+' And InvInBill.RealBillFlag=1 ' ;
Condition:=Condition+' and ( Sourceno='''' or (InvInBill.whCode+InvInBill.InvBillno in ( select a.whCode+minInvBillno from (select min(InvBillno) as minInvBillno ,whCode,Sourceno from InvInBill '
+' where bluered=''R'' and Sourceno<>'''' '
+' group by Sourceno,whCode ) as a) )'
+' or '
+' (InvInBill.whCode+InvInBill.InvBillno in ( select b.whCode+maxInvBillno from (select max(InvBillno) as maxInvBillno ,whCode,Sourceno from InvInBill '
+' where bluered=''B'' and Sourceno<>'''' '
+' group by whCode,Sourceno ) as b) ))';
}
ModalResult:=mrOk;
end;
procedure TFrm_Inv_PurchaseInBillListQry_C.ChLstBx_WhSelectClickCheck(
Sender: TObject);
var
i:Integer;
begin
inherited;
btn_ok.Enabled:=False;
for i:=0 to ChLstBx_WhSelect.Items.Count-1 do
begin
if ChLstBx_WhSelect.Checked[i] then
btn_ok.Enabled:=True;
end;
end;
procedure TFrm_Inv_PurchaseInBillListQry_C.MEdt_EndDateExit(Sender: TObject);
begin
inherited;
if ActiveControl.Name='btn_Cancel' then
Exit;
DateCheck(Sender);
if StrToDateTime(MEdt_EndDate.Text)<StrToDateTime(MEdt_StArtDate.Text) then
begin
DispInfo('结束时间不能小于开始时间',3);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
procedure TFrm_Inv_PurchaseInBillListQry_C.Edt_PoNoExit(Sender: TObject);
begin
inherited;
if Edt_PoNo.Text='' then
Edt_PoLineNo.Text:='';
end;
procedure TFrm_Inv_PurchaseInBillListQry_C.FormCreate(Sender: TObject);
begin
inherited;
MEdt_StArtDate.Text:=FormatDateTime('yyyy.mm.dd',incMonth(now,-1));
MEdt_EndDate.Text:=FormatDateTime('yyyy.mm.dd',Now);
end;
procedure TFrm_Inv_PurchaseInBillListQry_C.Edt_EndNoExit(Sender: TObject);
begin
inherited;
If ActiveControl.Name='Btn_Cancel' then
Exit;
If (Edt_StArtNo.Text='') and (Edt_EndNo.text<>'') then
begin
DispInfo('请先填入起始单据号!',1);
Edt_StArtNo.SetFocus;
end;
end;
procedure TFrm_Inv_PurchaseInBillListQry_C.Edt_EndAmountExit(
Sender: TObject);
begin
inherited;
ConditionFloatCheck(sender);
If ActiveControl.Name='Btn_Cancel' then
Exit;
If (Edt_StArtAmount.Text='') and (Edt_EndAmount.text<>'') then
begin
DispInfo('请先填入起始数量!',1);
Edt_StArtAmount.SetFocus;
end;
end;
procedure TFrm_Inv_PurchaseInBillListQry_C.ChBx_SelectAllClick(
Sender: TObject);
var
i:integer;
begin
inherited;
if ChBx_SelectAll.Checked then
begin
for i:=0 to ChLstBx_WhSelect.Items.Count-1 do
begin
ChLstBx_WhSelect.Checked[i]:=True;
end;
btn_ok.Enabled:=True;
end
else
begin
for i:=0 to ChLstBx_WhSelect.Items.Count-1 do
begin
ChLstBx_WhSelect.Checked[i]:=False;
end;
btn_ok.Enabled:=False;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -