📄 salesorderunit.pas
字号:
unit SalesOrderUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, DB, ADODB, StdCtrls, RzLabel, RzTabs, Menus, dxDBTLCl,
dxGrClms, dxDBGrid, dxDBCtrl, dxTL, dxCntner, cxLabel, cxGroupBox,
ExtCtrls, RzPanel, cxControls, cxContainer, cxEdit, cxDBLabel,
cxTextEdit, cxMaskEdit, cxButtonEdit, cxDBEdit, cxCheckListBox,
RzGroupBar, Buttons, cxListBox, ActnList, Grids, ValEdit, RzSplit;
type
TfrmSaleOrder = class(TForm)
RzPanel1: TRzPanel;
RzPanel2: TRzPanel;
DS_SO: TDataSource;
RzPanel3: TRzPanel;
RzPanel5: TRzPanel;
RzLabel5: TRzLabel;
DataSet_SO: TADODataSet;
cxLabel7: TcxLabel;
cxLabel8: TcxLabel;
SOID: TcxDBButtonEdit;
RzPanel6: TRzPanel;
cxLabel5: TcxLabel;
cxDBLabel2: TcxDBLabel;
cxLabel2: TcxLabel;
cxDBLabel1: TcxDBLabel;
cxDBLabel3: TcxDBLabel;
cxDBLabel4: TcxDBLabel;
cxDBLabel5: TcxDBLabel;
cxLabel1: TcxLabel;
Bt_Accept: TSpeedButton;
RzGroupBar1: TRzGroupBar;
RzGroup1: TRzGroup;
RzGroup2: TRzGroup;
RzGroup3: TRzGroup;
List_ForbidSaleProd: TcxCheckListBox;
List_AcceptSaleProd: TcxCheckListBox;
List_SelectSaleWX: TcxListBox;
RzGroup5: TRzGroup;
List_SelectSaleNK: TcxListBox;
TranMenu: TPopupMenu;
AddWX: TMenuItem;
ActionList1: TActionList;
QueryPlanStateWX: TAction;
RzGroup4: TRzGroup;
RzGroup6: TRzGroup;
List_CusPHWX: TcxListBox;
List_CusDHWX: TcxListBox;
List_CusPHNK: TcxListBox;
List_CusDHNK: TcxListBox;
RzGroup7: TRzGroup;
List_CustWX: TcxListBox;
List_CustYX: TcxListBox;
List_CustMX: TcxListBox;
List_CustALL: TcxListBox;
QueryPlanStateNK: TAction;
AddSaleOrderWX: TAction;
AddSaleOrderNK: TAction;
AddNK: TMenuItem;
N4: TMenuItem;
QueryWX: TMenuItem;
QueryNK: TMenuItem;
N1: TMenuItem;
DelSalePlanwx: TMenuItem;
DelSalePlannk: TMenuItem;
DelSalePlansWX: TAction;
DelSalePlansNK: TAction;
PopupMenu2: TPopupMenu;
N3: TMenuItem;
RzGroup8: TRzGroup;
List_SSProd: TcxCheckListBox;
DataSet_SODSDesigner: TWideStringField;
DataSet_SODSDesigner2: TWideStringField;
DataSet_SODSDesigner3: TWideStringField;
DataSet_SODSDesigner4: TWideStringField;
DataSet_SODSDesigner5: TWideStringField;
DataSet_SODSDesigner6: TWideStringField;
DataSet_SODSDesigner7: TBooleanField;
DataSet_SODSDesigner8: TWideStringField;
DataSet_SODSDesigner9: TFloatField;
DataSet_SODSDesigner10: TBCDField;
DataSet_SODSDesigner11: TBCDField;
DataSet_SODSDesigner12: TStringField;
DataSet_SODSDesigner13: TWideStringField;
DataSet_SODSDesigner14: TBCDField;
DataSet_SODSDesigner15: TWideStringField;
DataSet_SOID: TIntegerField;
DBG_Details: TdxDBGrid;
DBG_INV: TdxDBGrid;
DS_INV: TDataSource;
DataSet_INV: TADODataSet;
DS_Details: TDataSource;
DataSet_Details: TADODataSet;
RzPanel8: 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;
VLEdit: TValueListEditor;
RzSizePanel1: TRzSizePanel;
List_SO: TcxListBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cxDBButtonEdit1PropertiesButtonClick(Sender: TObject;AButtonIndex: Integer);
procedure Bt_AcceptClick(Sender: TObject);
procedure DataSet_SOAfterOpen(DataSet: TDataSet);
procedure QueryPlanStateWXExecute(Sender: TObject);
procedure PlanStateList(sInvCode,sPlanNo:string);
procedure QueryPlanStateNKExecute(Sender: TObject);
procedure AddSaleOrder(sInvCode:string);
procedure QuerySO(SO:string);
procedure DelSalePlan(sCusCode,sPlanNo:string);
procedure AddSaleOrderNKExecute(Sender: TObject);
procedure AddSaleOrderWXExecute(Sender: TObject);
procedure TranMenuPopup(Sender: TObject);
procedure DelSalePlansWXExecute(Sender: TObject);
procedure DelSalePlansNKExecute(Sender: TObject);
procedure List_SODblClick(Sender: TObject);
procedure FormShow(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 DelSalePlannkClick(Sender: TObject);
procedure List_SSProdClick(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure dxDBGrid1DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmSaleOrder: TfrmSaleOrder;
implementation
uses
dataUnit,PublicUnit, LoginUnit;
{$R *.dfm}
procedure TfrmSaleOrder.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmSaleOrder.cxDBButtonEdit1PropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
var
sqltext,soid:string;
begin
soid :=inputbox('查询订货单据','请输入订单编号:','');
IF (soid<>'') Then
Begin
QuerySO(soid);
List_SelectSaleWX.Items.Clear ;
List_SelectSaleNK.Items.Clear ;
List_CustALL.Items.Clear ;
List_CustYX.Items.Clear ;
List_CustWX.Items.Clear ;
List_CustMX.Items.Clear ;
RzGroup7.Caption := '计划状态: 0 [ 0 + 0 ] + 0' ;
with DataSet_SO do begin
if MessageDlg('选择: '+#13+'本张单是内裤单吗?'+#13,mtInformation,[mbYes,mbNo],0) = mrYes Then Begin
Sqltext :='execute _PM_P_CustInvState_Query 2,9,'''+ fieldByName('客户代码').AsString +''',''''';
List_SelectSaleNK.Items.Clear ;
List_SelectSaleNK.items.AddStrings(GetList(Sqltext));
Sqltext :='execute _PM_P_CustInvState_Query 2,1,'''+ fieldByName('客户代码').AsString +''',''''';
List_CusPHNK.Items.Clear ;
List_CusPHNK.items.AddStrings(GetList(Sqltext));
Sqltext :='execute _PM_P_CustInvState_Query 2,0,'''+ fieldByName('客户代码').AsString +''',''''';
List_CusDHNK.Items.Clear ;
List_CusDHNK.items.AddStrings(GetList(Sqltext));
RzGroup6.Caption := '内裤近期铺货 '+ IntToStr(List_CusPHNK.Items.Count)+' 款, 调货 '+
IntToStr(List_CusDHNK.Items.Count)+' 款';
RzGroup3.Visible := False ;
RzGroup4.Visible := RzGroup3.Visible ;
RzGroup5.Visible := True ;
RzGroup6.Visible := RzGroup5.Visible ;
end else begin
Sqltext :='execute _PM_P_CustInvState_Query 1,9,'''+ fieldByName('客户代码').AsString +''',''''';
List_SelectSaleWX.Items.Clear ;
List_SelectSaleWX.items.AddStrings(GetList(Sqltext));
Sqltext :='execute _PM_P_CustInvState_Query 1,1,'''+ fieldByName('客户代码').AsString +''',''''';
List_CusPHWX.Items.Clear ;
List_CusPHWX.items.AddStrings(GetList(Sqltext));
Sqltext :='execute _PM_P_CustInvState_Query 1,0,'''+ fieldByName('客户代码').AsString +''',''''';
List_CusDHWX.Items.Clear ;
List_CusDHWX.items.AddStrings(GetList(Sqltext));
RzGroup4.Caption := '文胸近期铺货 '+ IntToStr(List_CusPHWX.Items.Count)+' 款, 调货 '+
IntToStr(List_CusDHWX.Items.Count)+' 款';
RzGroup3.Visible := True ;
RzGroup4.Visible := RzGroup3.Visible ;
RzGroup5.Visible := False ;
RzGroup6.Visible := RzGroup5.Visible ;
end;
end;
End
Else
Begin
showmessage('订单编号不能为空!');
Exit;
End;
end;
procedure TfrmSaleOrder.Bt_AcceptClick(Sender: TObject);
var
i: integer;
sInvText,ssoid : string;
begin
if Not dm.tbPower.FieldValues['M302_1'] then begin
showmessage('无权执行,请咨询系统管理员!');
exit;
end;
ssoid := soid.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
sInvText := ''''+lefts(Items.Items[i].Text)+''''
else sInvText := sInvText+','''+ lefts(Items.Items[i].Text)+'''' ;
end;
end;
end;
with List_SSProd do begin
for i := 0 to Items.Count - 1 do begin
if Not Items.Items[i].Checked then begin
if sInvText = '' then
sInvText := ''''+lefts(Items.Items[i].Text)+''''
else sInvText := sInvText+','''+ lefts(Items.Items[i].Text)+'''' ;
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
sInvText := ''''+lefts(Items.Items[i].Text)+''''
else sInvText := sInvText+','''+ lefts(Items.Items[i].Text)+'''' ;
end;
end;
end;
if VLEdit.RowCount>=2 then
begin
VLEdit.InsertRow('','',False);
for i:=VLEdit.RowCount-1 downto 2 do
begin
IF (trim(VLEdit.keys[i])<>'') and (trim(VLEdit.Values[VLEdit.Keys[i]])<>'') then
begin
with dm.sql do begin
commandText := 'execute _PM_P_SaleOrder_Insert '+DataSet_SO.fieldbyName('ID').Asstring+ ','''+
trim(VLEdit.keys[i])+''','+trim(VLEdit.Values[VLEdit.Keys[i]]);
execute ;
End;
end;
VLEdit.DeleteRow(i);
end;
end;
Try
with dm.sql do begin
commandText := '_PM_P_SaleOrder_Check :a,:b,:c ';
Parameters.ParamByName('a').Value := SOID.Text;
Parameters.ParamByName('b').Value := FrmLogin.LandingUser;
Parameters.ParamByName('c').Value := sInvText;
execute ;
end;
showmessage('订单 '+SOID.Text+' 审核成功!');
QuerySO(ssoid);
except
showmessage('订单审核失败,请重新审核!');
exit ;
end;
end;
procedure TfrmSaleOrder.AddSaleOrderWXExecute(Sender: TObject);
var
sInvCode : String;
begin
if Not dm.tbPower.FieldValues['M302_2'] then begin
showmessage('无权执行,请咨询系统管理员!');
exit;
end;
if Not Bt_Accept.Enabled then begin
showmessage('本单已审核,不能加铺!') ;
exit ;
end;
sinvCode := rights(Rights(List_SelectSaleWX.Items.Strings[List_SelectSaleWX.ItemIndex])) ;
addSaleOrder(sInvCode);
end;
procedure TfrmSaleOrder.AddSaleOrderNKExecute(Sender: TObject);
var
sInvCode : String;
begin
if Not dm.tbPower.FieldValues['M302_2'] then begin
showmessage('无权执行,请咨询系统管理员!');
exit;
end;
if Not Bt_Accept.Enabled then begin
showmessage('本单已审核,不能加铺!') ;
exit ;
end;
sinvCode := rights(Rights(List_SelectSaleNK.Items.Strings[List_SelectSaleNK.ItemIndex])) ;
addSaleOrder(sInvCode);
// List_SelectSaleNK.DeleteSelected;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -