purchaseorderunit.pas
来自「用友系统二次开发 存货管理 客户管理 订货审核 退货审核 铺货计划 」· PAS 代码 · 共 366 行
PAS
366 行
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 + =
减小字号Ctrl + -
显示快捷键?