⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 purchaseorderunit.pas

📁 用友系统二次开发 存货管理 客户管理 订货审核 退货审核 铺货计划 调货计划
💻 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 + -