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

📄 returnorderunit.pas

📁 用友系统二次开发 存货管理 客户管理 订货审核 退货审核 铺货计划 调货计划
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit ReturnOrderUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dxExEdtr, Menus, ActnList, DB, ADODB, cxListBox, cxCheckListBox,
  RzGroupBar, cxTextEdit, cxMaskEdit, cxButtonEdit, cxDBEdit, Buttons,
  StdCtrls, RzLabel, cxDBLabel, cxControls, cxContainer, cxEdit, cxLabel,
  dxDBTLCl, dxGrClms, dxDBCtrl, dxDBGrid, dxTL, dxCntner, ExtCtrls, RzPanel,
  RzSplit, RzButton, CheckLst;

type
  TfrmReturnOrder = class(TForm)
    RzPanel3: TRzPanel;
    RzPanel1: TRzPanel;
    RzPanel2: TRzPanel;
    dxDBGrid1: TdxDBGrid;
    dxDBGrid1Column6: TdxDBGridCheckColumn;
    dxDBGrid1Column7: TdxDBGridColumn;
    dxDBGrid1Column1: TdxDBGridColumn;
    dxDBGrid1Column2: TdxDBGridColumn;
    dxDBGrid1Column3: TdxDBGridColumn;
    dxDBGrid1Column4: TdxDBGridColumn;
    dxDBGrid1Column5: TdxDBGridColumn;
    dxDBGrid1Column8: TdxDBGridMaskColumn;
    dxDBGrid1Column9: TdxDBGridCurrencyColumn;
    dxDBGrid1Column10: TdxDBGridCurrencyColumn;
    dxDBGrid1Column11: TdxDBGridMaskColumn;
    dxDBGrid1Column12: TdxDBGridColumn;
    dxDBGrid1Column13: TdxDBGridMaskColumn;
    dxDBGrid1ID: TdxDBGridMaskColumn;
    RzPanel6: TRzPanel;
    cxLabel5: TcxLabel;
    cxDBLabel2: TcxDBLabel;
    cxLabel2: TcxLabel;
    cxDBLabel4: TcxDBLabel;
    cxDBLabel5: TcxDBLabel;
    cxLabel1: TcxLabel;
    RzPanel5: TRzPanel;
    RzLabel5: TRzLabel;
    cxLabel7: TcxLabel;
    cxLabel8: TcxLabel;
    ROID: TcxDBButtonEdit;
    cxDBLabel1: TcxDBLabel;
    cxDBLabel3: TcxDBLabel;
    DS_SO: TDataSource;
    DataSet_RO: TADODataSet;
    ActionList1: TActionList;
    Action1: TAction;
    PopupMenu1: TPopupMenu;
    UpdateList: TMenuItem;
    cxDBLabel6: TcxDBLabel;
    cxDBLabel7: TcxDBLabel;
    RzSizePanel1: TRzSizePanel;
    RzGroupBar2: TRzGroupBar;
    List_RO: TcxListBox;
    RzGroupBar1: TRzGroupBar;
    RzGroup1: TRzGroup;
    RzGroup2: TRzGroup;
    List_AcceptSaleProd: TcxCheckListBox;
    RzToolbar1: TRzToolbar;
    Bt_Accept: TRzToolButton;
    Bt_Add: TRzToolButton;
    RzGroup3: TRzGroup;
    DLList: TCheckListBox;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    List_DL: TListBox;
    RzGroup4: TRzGroup;
    List_ForbidSaleProd: TcxCheckListBox;
    List_superpowerReturn: TcxCheckListBox;
    cxLabel3: TcxLabel;
    cxLabel4: TcxLabel;
    procedure QueryRO(RO:string);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ROIDPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure Bt_AcceptClick(Sender: TObject);
    procedure DataSet_ROAfterClose(DataSet: TDataSet);
    procedure DataSet_ROAfterOpen(DataSet: TDataSet);
    procedure List_RODblClick(Sender: TObject);
    procedure dxDBGrid1CustomDrawCell(Sender: TObject; ACanvas: TCanvas;
      ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn;
      ASelected, AFocused, ANewItemRow: Boolean; var AText: String;
      var AColor: TColor; AFont: TFont; var AAlignment: TAlignment;
      var ADone: Boolean);
    procedure List_ForbidSaleProdClick(Sender: TObject);
    procedure UpdateListClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Bt_AddClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure List_DLDblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmReturnOrder: TfrmReturnOrder;

implementation


uses
  dataUnit,PublicUnit, LoginUnit;

{$R *.dfm}

procedure TfrmReturnOrder.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   Action:=caFree;
end;

procedure TfrmReturnOrder.QueryRO(RO:string);
var
    sitem:string;
begin
    Try
        with DataSet_RO do begin
            close ;
            commandText := 'execute _PM_V_ReturnOrder_Query '''+RO+'''';
            open ;
            if RecordCount = 0 then begin
                showmessage('查询无结果,无此单据或此单已审核!');
                exit;
            end;
            first ;
            while not eof do begin
                sitem:= fieldByName('商品代码').AsString+' - '+fieldByName('商品名称').AsString;
                if (not FieldByName('退').AsBoolean) then
                    List_ForbidSaleProd.AddItem(sitem)
                else  if (FieldByName('可退量').AsInteger + 50 < ABS(FieldByName('数量').AsInteger)) then
                    List_ForbidSaleProd.AddItem(sitem+' ['+FieldByName('可退量').AsString +'] => ['+ inttostr(abs(FieldByName('数量').AsInteger))+']')
                else  if (FieldByName('可退量').AsInteger <= ABS(FieldByName('数量').AsInteger)) then
                    List_superpowerReturn.AddItem(sitem+' ['+FieldByName('可退量').AsString +'] => ['+ inttostr(abs(FieldByName('数量').AsInteger))+']')
                else List_AcceptSaleProd.AddItem(sitem) ;
                next ;
            end;
            first ;
          end;
    except
       showmessage('订单查询失败!');
       Exit;
    end;

end;


procedure TfrmReturnOrder.ROIDPropertiesButtonClick(Sender: TObject;
  AButtonIndex: Integer);
var
  roid:string;
begin
    roid :=inputbox('查询订货单据','请输入订单编号:','');
    IF (roid<>'') Then
    Begin
        QueryRO(roid);
    End
    Else
    Begin
        showmessage('订单编号不能为空!');
        Exit;
    End;

end;

procedure TfrmReturnOrder.Bt_AcceptClick(Sender: TObject);
var
  i:  integer;
  sInvText,sroid,sitem,sInvName : string;
begin
    if Not dm.tbPower.FieldValues['M303_1'] then begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;

    sroid := roid.Text ;
    with List_ForbidSaleProd do begin
        for i := 0 to Items.Count - 1 do begin
            if Not Items.Items[i].Checked then begin
                if sInvText = '' then begin
                    sInvText := ''''+lefts(Items.Items[i].Text)+'''' ;
                    sInvName := rights(Items.Items[i].Text);
                end else begin
                    sInvText := sInvText+','''+ lefts(Items.Items[i].Text)+'''' ;
                    sInvName := sInvname + #13 + rights(Items.Items[i].Text);
                end;
            end;
        end;
    end;

    with List_superpowerReturn do begin
        for i := 0 to Items.Count - 1 do begin
            if Not Items.Items[i].Checked then begin
                if sInvText = '' then begin
                    sInvText := ''''+lefts(Items.Items[i].Text)+'''' ;
                    sInvName := rights(Items.Items[i].Text);
                end else begin
                    sInvText := sInvText+','''+ lefts(Items.Items[i].Text)+'''' ;
                    sInvName := sInvname + #13 + rights(Items.Items[i].Text);
                end;
            end;
        end;
    end;

    with List_AcceptSaleProd do begin
        for i := 0 to Items.Count - 1 do begin
            if Items.Items[i].Checked then begin
                if sInvText = '' then begin
                    sInvText := ''''+lefts(Items.Items[i].Text)+'''' ;
                    sInvName := rights(Items.Items[i].Text);
                end else begin
                    sInvText := sInvText+','''+ lefts(Items.Items[i].Text)+'''' ;
                    sInvName := sInvname + #13 + rights(Items.Items[i].Text);
                end;
            end;
        end;
    end;

    if MessageDlg('提示: '+#13+#13+#13+sInvName+#13+#13+#13+'以上款不收吗?  请按 YES 审核',mtInformation,[mbYes,mbNo],0) = mrNo Then begin
          exit ;
    end;

    Try

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -