📄 pm_qry_analyzerpo1_c.pas
字号:
unit Pm_Qry_AnalyzerPo1_C;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Condition, Db, AdODB, StdCtrls, Mask, ExtEdit;
Type
TFrm_Pm_Qry_AnalyzerPo1_C = Class(TFrm_Base_Condition)
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
ExtEdit1: TExtEdit;
ExtEdit2: TExtEdit;
ExtEdit3: TExtEdit;
ExtEdit4: TExtEdit;
ExtEdit5: TExtEdit;
ExtEdit6: TExtEdit;
ExtEdit7: TExtEdit;
ExtEdit8: TExtEdit;
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
ExtEdit9: TExtEdit;
Label12: TLabel;
Label13: TLabel;
ExtEdit10: TExtEdit;
Label14: TLabel;
cmbPoSpecial: TComboBox;
procedure FormDestroy(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ExtEdit5KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_Pm_Qry_AnalyzerPo1_C: TFrm_Pm_Qry_AnalyzerPo1_C;
implementation
uses Pm_Qry_AnalyzerPo1,Sys_Global;
{$R *.DFM}
procedure TFrm_Pm_Qry_AnalyzerPo1_C.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Pm_Qry_AnalyzerPo1_C:=nil;
end;
procedure TFrm_Pm_Qry_AnalyzerPo1_C.btn_okClick(Sender: TObject);
var StrCondition:String;
StrSQLText,linestatus1,linestatus2:String;
Special:integer;
begin
inherited;
case cmbPoSpecial.Itemindex of
0: Special:=255;
1: Special:=1;
2: Special:=0;
end;
StrCondition:=' And ';
If (Maskedit1.Text<>' . . ') and (Maskedit2.Text<>' . . ') Then
StrCondition:=StrCondition+' Po.PoDate Between '+quotedstr(Maskedit1.text)+' and '+quotedstr(Maskedit2.Text+' 23:59:59')+' And ';
If (Trim(ExtEdit1.Text)<>'') and (Trim(ExtEdit2.Text)<>'') Then
StrCondition:=StrCondition+' Po.VendorCode Between '+Quotedstr(ExtEdit1.Text)+' and '+Quotedstr(ExtEdit2.Text)+' And ';
If (Trim(ExtEdit3.Text)<>'') and (Trim(ExtEdit4.Text)<>'') Then
StrCondition:=StrCondition+' POline.PoNo Between '+Quotedstr(ExtEdit3.text)+' and '+Quotedstr(ExtEdit4.Text)+' And ';
If (Trim(ExtEdit5.Text)<>'') and (Trim(ExtEdit6.Text)<>'') Then
StrCondition:=StrCondition+' PoLine.ItemCode Between '+Quotedstr(ExtEdit5.text)+' and '+Quotedstr(ExtEdit6.Text)+' And ';
If (Trim(ExtEdit7.Text)<>'') and (Trim(ExtEdit8.Text)<>'') Then
StrCondition:=StrCondition+' case poline.poqty when 0 then 0 else (round((Poline.PoQty-Poline.PonoFinishQty)/Poline.PoQty*100,0)) end Between '+ExtEdit7.text+' and '+ExtEdit8.Text+' And ';
with Frm_Pm_Qry_AnalyzerPo1.AdoQry_Main do
begin
Close;
SQl.clear;
StrSQLText:='Select Po.PoNo,Po.VendorCode,'+
' PoType=case po.poType '+
' when 0 then ''普通采购'''+
' when 1 then ''委外加工'''+
' end,'+
' PoLine.*,Item.ItemCode,Po.PoDate,'+
' Item.ItemName,Item.UomCode,Uom.UomName,Vendor.VendorName,Vendorflag=po.VendorCode+'' ''+Vendor.VendorName,'+
' Itemflag=Item.ItemCode+'' ''+Item.ItemName,'+
' Poline.PoQty-Poline.PonoFinishQty as FinishQty,'+
' case poline.poqty when 0 then ''0%'' else Convert(varchAr,round((Poline.PoQty-Poline.PonoFinishQty)*100/Poline.PoQty,0)) +''%'' end As FinishRate'+
' From PoLine'+
' left outer Join Item On PoLine.ItemCode=Item.ItemCode'+
' left outer Join Po On PoLine.PoNo=Po.PoNo'+
' and ((po.PoSpecial='+inttostr(Special)+') or ('+inttostr(Special)+'=''255''))'+
' Left outer Join Vendor On Po.VendorCode=Vendor.VendorCode'+
' Left Outer Join Uom On Item.UomCode=Uom.UomCode where PoLine.PoQty>0 and poline.polinestatus between '+Extedit9.text+' and '+Extedit10.text+' and 1=1 ' +StrCondition+' 1=1 '
+'Order by Po.VendorCode,po.pono,poline.polineno,poline.ItemCode ';
SQL.Add(StrSQLText);
// showmessage(strsqltext);
open;
if Frm_Pm_Qry_AnalyzerPo1.AdoQry_Main.RecordCount=0 then
begin
DispInfo('没有合符条件的数据!',3);
maskedit1.setfocus;
exit;
end;
if Extedit9.Text='5' then
linestatus1:='5 准备'
else if Extedit9.Text='6' then
linestatus1:='6 下达'
else if Extedit9.Text='7' then
linestatus1:='7 关闭';
if Extedit10.Text='5' then
linestatus2:='5 准备'
else if Extedit10.Text='6' then
linestatus2:='6 下达'
else if Extedit10.Text='7' then
linestatus2:='7 关闭';
ConditionHint:='下单日期从 '+maskedit1.Text+' 到 '+maskedit2.Text+' / 订单性质: '+cmbPoSpecial.Text+' / 供应商代码从 '+Extedit1.Text+' 到 '+Extedit2.Text+' / 物料代码从 '+Extedit5.Text+' 到 '+Extedit6.Text+#13+'采购单号从 '+Extedit3.Text+' 到 '+Extedit4.Text+' / 行状态从 '+linestatus1+' 到 '+linestatus2+' / 完成率从 '+Extedit7.Text+'%'+' 到 '+Extedit8.Text+'%';
self.ModalResult:=mrOk;
end;
end;
procedure TFrm_Pm_Qry_AnalyzerPo1_C.FormShow(Sender: TObject);
begin
inherited;
maskedit1.Text:=formatdatetime('yyyy.mm.dd',date-15);
maskedit2.Text:=formatdatetime('yyyy.mm.dd',date);
end;
procedure TFrm_Pm_Qry_AnalyzerPo1_C.FormCreate(Sender: TObject);
begin
inherited;
cmbPoSpecial.ItemIndex:=0;
end;
procedure TFrm_Pm_Qry_AnalyzerPo1_C.ExtEdit5KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
If key=120 Then
CommOnHint(Sender,AdoQry_Tmp,'ItemName','物料描述','ItemCode',
'物料代码',' Item ',' PmCode In (1,2,3) and ItemUsable=1 ');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -