📄 returnorderunit.pas
字号:
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 + -