📄 purchaseorderunit.pas
字号:
unit PurchaseOrderUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, cxDBLabel, cxTextEdit, cxMaskEdit, cxButtonEdit,
cxDBEdit, cxControls, cxContainer, cxEdit, cxLabel, StdCtrls, RzLabel,
dxDBTLCl, dxGrClms, dxDBCtrl, dxDBGrid, dxTL, dxCntner, RzPanel,
RzButton, ExtCtrls, DB, ADODB, RzTabs, cxListBox, Menus, ActnList,
cxRadioGroup, RzGroupBar, cxCheckListBox;
type
TfrmPurchaseOrder = class(TForm)
RzToolbar1: TRzToolbar;
BtnApprove: TRzToolButton;
BtnAudit: TRzToolButton;
RzPanel3: TRzPanel;
RzPanel1: TRzPanel;
RzPanel4: TRzPanel;
DataSet_INV: TADODataSet;
List_PO: TcxListBox;
ActionList1: TActionList;
QueryPlanStateWX: TAction;
QueryPlanStateNK: TAction;
AddSaleOrderWX: TAction;
AddSaleOrderNK: TAction;
DelSalePlansWX: TAction;
DelSalePlansNK: TAction;
PopupMenu2: TPopupMenu;
N3: TMenuItem;
DataSet_PO: TADODataSet;
DS_PO: TDataSource;
RzPanel6: TRzPanel;
DS_INV: TDataSource;
DBG_Details: TdxDBGrid;
RzPanel7: TRzPanel;
DataSet_Details: TADODataSet;
DS_Details: TDataSource;
DBG_INV: TdxDBGrid;
RzPanel2: TRzPanel;
RzPanel5: TRzPanel;
RzLabel5: TRzLabel;
cxLabel7: TcxLabel;
cxLabel8: TcxLabel;
POID: TcxDBButtonEdit;
cxDBLabel1: TcxDBLabel;
cxDBLabel3: TcxDBLabel;
dxDBGrid1: TdxDBGrid;
dxDBGrid1Column1: TdxDBGridColumn;
dxDBGrid1Column2: TdxDBGridColumn;
dxDBGrid1Column8: TdxDBGridColumn;
dxDBGrid1Column10: TdxDBGridColumn;
dxDBGrid1Column9: TdxDBGridColumn;
dxDBGrid1Column3: TdxDBGridMaskColumn;
dxDBGrid1Column4: TdxDBGridColumn;
dxDBGrid1Column5: TdxDBGridColumn;
dxDBGrid1Column6: TdxDBGridCurrencyColumn;
dxDBGrid1Column7: TdxDBGridCurrencyColumn;
dxDBGrid1Column11: TdxDBGridColumn;
dxDBGrid1Column12: TdxDBGridDateColumn;
dxDBGrid1Column13: TdxDBGridMaskColumn;
dxDBGrid1Column14: TdxDBGridColumn;
cxDBButtonEdit1: TcxDBButtonEdit;
DataSet_Sales: TADODataSet;
DS_Sales: TDataSource;
DataSet_NR: TADODataSet;
DS_NR: TDataSource;
RzPanel8: TRzPanel;
RzPanel9: TRzPanel;
cxLabel1: TcxLabel;
cxDBLabel5: TcxDBLabel;
cxLabel3: TcxLabel;
cxDBLabel6: TcxDBLabel;
cxDBButtonEdit2: TcxDBButtonEdit;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
DBG_Sales: TdxDBGrid;
TabSheet2: TRzTabSheet;
DBG_NR: TdxDBGrid;
RzGroupBar1: TRzGroupBar;
RzGroup1: TRzGroup;
RzGroup2: TRzGroup;
AllowSaleCustList: TcxCheckListBox;
ReturnCustlist: TcxCheckListBox;
TabSheet3: TRzTabSheet;
DBG_SRD: TdxDBGrid;
DataSet_SRD: TADODataSet;
DS_SRD: TDataSource;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure dxDBGrid1DblClick(Sender: TObject);
procedure List_PODblClick(Sender: TObject);
procedure QueryPO(PO:string);
procedure cxDBButtonEdit1PropertiesChange(Sender: TObject);
procedure POIDPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmPurchaseOrder: TfrmPurchaseOrder;
cInvCode:string;
implementation
uses DataUnit, PublicUnit, MainUnit;
{$R *.dfm}
procedure TfrmPurchaseOrder.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmPurchaseOrder.N3Click(Sender: TObject);
begin
List_PO.Items := GetList('execute _PM_P_LoadItem '''',12');
end;
procedure TfrmPurchaseOrder.FormShow(Sender: TObject);
begin
List_PO.Items := GetList('execute _PM_P_LoadItem '''',12');
end;
procedure TfrmPurchaseOrder.dxDBGrid1DblClick(Sender: TObject);
var
i : integer;
begin
if ((DataSet_PO.IsEmpty) OR (Not DataSet_PO.FieldByName('商品代码').IsNull)) then
begin
cInvCode := DataSet_PO.FieldByName('商品代码').AsString ;
DataSet_Details.close ;
DataSet_Details.CommandText :='_GetPlanar ''PO'','''+cInvCode+''','''+POID.text +'''';
DataSet_Details.Open ;
for i := 0 to DBG_Details.ColumnCount-1 do
begin
DBG_Details.Columns[i].Width := 48 ;
DBG_Details.Columns[i].HeaderAlignment := taCenter ;
DBG_Details.Columns[0].Width := 72 ;
end;
DataSet_INV.close ;
DataSet_INV.CommandText :='_GetPlanar ''KC'','''+cInvCode+''',''''';
DataSet_INV.Open ;
for i := 0 to DBG_INV.ColumnCount-1 do
begin
DBG_INV.Columns[i].Width := 48 ;
DBG_INV.Columns[i].HeaderAlignment := taCenter ;
DBG_INV.Columns[0].Width := 72 ;
end;
end else
begin
DataSet_Details.Close ;
DataSet_INV.close;
end;
end;
procedure TfrmPurchaseOrder.List_PODblClick(Sender: TObject);
begin
QueryPO(Lefts(List_PO.Items.Strings[List_PO.ItemIndex]));
end;
procedure TfrmPurchaseOrder.QueryPO(PO:string);
begin
Try
with DataSet_PO do
begin
close ;
commandText := 'execute _PM_V_PurchaseOrder_Query '''+PO+'''';
open ;
if RecordCount = 0 then
begin
showmessage('查询无结果,无此单据或此单已审核!');
exit;
end;
end;
except
showmessage('订单查询失败!');
Exit;
end;
end;
procedure TfrmPurchaseOrder.cxDBButtonEdit1PropertiesChange(
Sender: TObject);
var
i : integer;
tmpList : TStringList ;
begin
if ((DataSet_PO.IsEmpty) OR (Not DataSet_PO.FieldByName('商品代码').IsNull)) then
begin
cInvCode := DataSet_PO.FieldByName('商品代码').AsString ;
DataSet_Details.close ;
DataSet_Details.CommandText :='_GetPlanar ''PO'','''+cInvCode+''','''+POID.text +'''';
DataSet_Details.Open ;
for i := 0 to DBG_Details.ColumnCount-1 do
begin
DBG_Details.Columns[i].Width := 48 ;
DBG_Details.Columns[i].HeaderAlignment := taCenter ;
DBG_Details.Columns[0].Width := 72 ;
end;
DataSet_INV.close ;
DataSet_INV.CommandText :='_GetPlanar ''KC'','''+cInvCode+''',''''';
DataSet_INV.Open ;
for i := 0 to DBG_INV.ColumnCount-1 do
begin
DBG_INV.Columns[i].Width := 48 ;
DBG_INV.Columns[i].HeaderAlignment := taCenter ;
DBG_INV.Columns[0].Width := 72 ;
end;
if 1 = 1 then
begin
DataSet_Sales.close ;
DataSet_Sales.CommandText :='_GetPlanar ''SD'','''+cInvCode+''',''30''';
DataSet_Sales.Open ;
for i := 0 to DBG_Sales.ColumnCount-1 do
begin
DBG_Sales.Columns[i].Width := 48 ;
DBG_Sales.Columns[i].HeaderAlignment := taCenter ;
DBG_Sales.Columns[0].Width := 72 ;
DBG_Sales.Columns[1].Width := 72 ;
end;
end ;
if 2 = 2 then
begin
DataSet_NR.close ;
DataSet_NR.CommandText :='_GetPlanar ''NRD'','''+cInvCode+''',''60''';
DataSet_NR.Open ;
for i := 0 to DBG_NR.ColumnCount-1 do
begin
DBG_NR.Columns[i].Width := 48 ;
DBG_NR.Columns[i].HeaderAlignment := taCenter ;
DBG_NR.Columns[0].Width := 72 ;
DBG_NR.Columns[1].Width := 72 ;
end;
end;
if 3 = 3 then
begin
DataSet_SRD.close ;
DataSet_SRD.CommandText :='_GetPlanar ''SRD'','''+cInvCode+''',''30''';
DataSet_SRD.Open ;
for i := 0 to DBG_SRD.ColumnCount-1 do
begin
DBG_SRD.Columns[i].Width := 48 ;
DBG_SRD.Columns[i].HeaderAlignment := taCenter ;
DBG_SRD.Columns[0].Width := 72 ;
DBG_SRD.Columns[1].Width := 72 ;
end;
end;
Sqltext := ' execute _PM_P_InvCustState_Query 0,'''+cInvCode+''',''''';
tmpList := GetList(Sqltext) ;
AllowSaleCustList.Items.Clear ;
for i := 0 to tmpList.Count -1 do begin
AllowSaleCustList.AddItem(tmpList.Strings[i]);
end;
RzGroup1.Caption := '在销客户 (' + IntToStr(AllowSaleCustList.Items.count)+')' ;
Sqltext := ' execute _PM_P_InvCustState_Query 1,'''+cInvCode+''',''''';
tmpList := GetList(Sqltext) ;
ReturnCustList.Items.Clear ;
for i := 0 to tmpList.Count -1 do begin
ReturnCustList.AddItem(tmpList.Strings[i]);
end;
RzGroup2.Caption := '调货客户 (' + IntToStr(ReturnCustList.Items.count)+')' ;
end else
begin
DataSet_SRD.close ;
DataSet_NR.close ;
DataSet_Sales.Close ;
DataSet_Details.Close ;
DataSet_INV.close;
end;
end;
procedure TfrmPurchaseOrder.POIDPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
var
i : integer ;
cInvCode:string;
tmpList : TStringList ;
begin
cInvCode :=inputbox('查询单款各项数据','请输入商品编号:','');
IF (cInvCode<>'') Then
Begin
DataSet_INV.close ;
DataSet_INV.CommandText :='_GetPlanar ''KC'','''+cInvCode+''',''''';
DataSet_INV.Open ;
for i := 0 to DBG_INV.ColumnCount-1 do
begin
DBG_INV.Columns[i].Width := 48 ;
DBG_INV.Columns[i].HeaderAlignment := taCenter ;
DBG_INV.Columns[0].Width := 72 ;
end;
if 1 = 1 then
begin
DataSet_Sales.close ;
DataSet_Sales.CommandText :='_GetPlanar ''SD'','''+cInvCode+''',''30''';
DataSet_Sales.Open ;
for i := 0 to DBG_Sales.ColumnCount-1 do
begin
DBG_Sales.Columns[i].Width := 48 ;
DBG_Sales.Columns[i].HeaderAlignment := taCenter ;
DBG_Sales.Columns[0].Width := 72 ;
DBG_Sales.Columns[1].Width := 72 ;
end;
end ;
if 2 = 2 then
begin
DataSet_NR.close ;
DataSet_NR.CommandText :='_GetPlanar ''NRD'','''+cInvCode+''',''60''';
DataSet_NR.Open ;
for i := 0 to DBG_NR.ColumnCount-1 do
begin
DBG_NR.Columns[i].Width := 48 ;
DBG_NR.Columns[i].HeaderAlignment := taCenter ;
DBG_NR.Columns[0].Width := 72 ;
DBG_NR.Columns[1].Width := 72 ;
end;
end;
if 3 = 3 then
begin
DataSet_SRD.close ;
DataSet_SRD.CommandText :='_GetPlanar ''SRD'','''+cInvCode+''',''30''';
DataSet_SRD.Open ;
for i := 0 to DBG_SRD.ColumnCount-1 do
begin
DBG_SRD.Columns[i].Width := 48 ;
DBG_SRD.Columns[i].HeaderAlignment := taCenter ;
DBG_SRD.Columns[0].Width := 72 ;
DBG_SRD.Columns[1].Width := 72 ;
end;
end;
Sqltext := ' execute _PM_P_InvCustState_Query 0,'''+cInvCode+''',''''';
tmpList := GetList(Sqltext) ;
AllowSaleCustList.Items.Clear ;
for i := 0 to tmpList.Count -1 do begin
AllowSaleCustList.AddItem(tmpList.Strings[i]);
end;
RzGroup1.Caption := '在销客户 (' + IntToStr(AllowSaleCustList.Items.count)+')' ;
Sqltext := ' execute _PM_P_InvCustState_Query 1,'''+cInvCode+''',''''';
tmpList := GetList(Sqltext) ;
ReturnCustList.Items.Clear ;
for i := 0 to tmpList.Count -1 do begin
ReturnCustList.AddItem(tmpList.Strings[i]);
end;
RzGroup2.Caption := '调货客户 (' + IntToStr(ReturnCustList.Items.count)+')' ;
end else
begin
DataSet_SRD.close ;
DataSet_NR.close ;
DataSet_Sales.Close ;
DataSet_Details.Close ;
DataSet_INV.close;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -