📄 salesorderunit.pas
字号:
procedure TfrmSaleOrder.QueryPlanStateWXExecute(Sender: TObject);
var
sInvCode,sPlanNo : String;
begin
sInvCode := rights(Rights(List_SelectSaleWX.Items.Strings[List_SelectSaleWX.ItemIndex]));
sPlanNo := lefts(List_SelectSaleWX.Items.Strings[List_SelectSaleWX.ItemIndex]);
PlanStateList (sInvCode,sPlanNo);
end;
procedure TfrmSaleOrder.QueryPlanStateNKExecute(Sender: TObject);
var
sInvCode,sPlanNo : String;
begin
sInvCode := rights(Rights(List_SelectSaleNK.Items.Strings[List_SelectSaleNK.ItemIndex]));
sPlanNo := lefts(List_SelectSaleNK.Items.Strings[List_SelectSaleNK.ItemIndex]);
PlanStateList (sInvCode,sPlanNo);
end;
procedure TfrmSaleOrder.DataSet_SOAfterOpen(DataSet: TDataSet);
begin
if DataSet_SO.fieldbyName('审核').Asstring <> '' then begin
Bt_Accept.enabled := False ;
Bt_Accept.Caption := '审核人: ' + DataSet_SO.fieldbyName('审核').Asstring ;
end else begin
Bt_Accept.enabled := True ;
Bt_Accept.Caption := '审 核' ;
end;
end;
procedure TfrmSaleOrder.PlanStateList(sInvCode,sPlanNo:string);
var
sqltext : String;
begin
Sqltext :='exec _PM_P_PlanCusState '''+ sInvCode +''','''+ sPlanNo +''',0';
List_CustALL.Items.Clear ;
List_CustALL.Items.Add('所有计划客户: ') ;
List_CustALL.items.AddStrings(GetList(Sqltext));
Sqltext :='exec _PM_P_PlanCusState '''+ sInvCode +''','''+ sPlanNo +''',1';
List_CustYX.Items.Clear ;
List_CustYX.Items.Add('计划内已销客户: ') ;
List_CustYX.items.AddStrings(GetList(Sqltext));
Sqltext :='exec _PM_P_PlanCusState '''+ sInvCode +''','''+ sPlanNo +''',2';
List_CustWX.Items.Clear ;
List_CustWX.Items.Add('未计划已销客户: ') ;
List_CustWX.items.AddStrings(GetList(Sqltext));
Sqltext :='exec _PM_P_PlanCusState '''+ sInvCode +''','''+ sPlanNo +''',3';
List_CustMX.Items.Clear ;
List_CustMX.Items.Add('计划内未销客户: ') ;
List_CustMX.items.AddStrings(GetList(Sqltext));
RzGroup7.Caption := '计划状态: '+ sInvCode +' '+ sPlanNo +' '+
inttostr(List_CustAll.Items.count - 1 )+' [ '+
inttostr(List_CustYX.Items.count - 1 )+' + '+
inttostr(List_CustMX.Items.count - 1 )+' ] '+
inttostr(List_CustWX.Items.count - 1 );
end;
procedure TfrmSaleOrder.AddSaleOrder(sInvCode:string);
var
iQty ,i: integer;
ssoid: String;
begin
ssoid := soid.Text ;
if DataSet_SO.Locate('商品代码',sInvCode,[]) then begin
showmessage('本单中已有此款,不能加铺!') ;
exit ;
end;
for i:=1 to VLedit.RowCount-1 do
begin
if VLEDit.Keys[i] = sInvCode then
begin
showmessage('已加此款,不能重复!') ;
exit;
end;
end;
try
iQty :=strtoint(inputbox('加铺新款','请输入齐色齐码各包数: ','3'));
except
showmessage('铺货数量输入错误,请重新输入!') ;
exit ;
end;
try
VLEdit.InsertRow(sInvCode,inttostr(iQty),True);
except
showmessage('加铺失败,请重新加铺!') ;
exit ;
end;
end;
procedure TfrmSaleOrder.TranMenuPopup(Sender: TObject);
begin
if RzGroup3.Opened then begin
AddWX.Visible := True ;
QueryWX.Visible := AddWX.Visible ;
delsaleplanWX.Visible := AddWX.Visible ;
AddNK.Visible := False ;
QueryNK.Visible := AddNK.Visible ;
delsaleplanNK.Visible := AddNK.Visible ;
end else if RzGroup5.Opened then begin
AddWX.Visible := False ;
QueryWX.Visible := AddWX.Visible ;
delsaleplanWX.Visible := AddWX.Visible ;
AddNK.Visible := True ;
QueryNK.Visible := AddNK.Visible ;
delsaleplanNK.Visible := AddNK.Visible ;
end;
end;
procedure TfrmSaleOrder.DelSalePlan(sCusCode,sPlanNo:string);
begin
Try
with dm.sql do begin
commandtext := 'execute _PM_P_DelCusPlan '''+sCusCode+''','''+
sPlanNO +'''';
execute ;
showmessage('清除成功!')
end;
except
showmessage('清除失败!')
end;
end;
procedure TfrmSaleOrder.DelSalePlansWXExecute(Sender: TObject);
var
sCusCode,sPlanNo : String;
begin
if Not dm.tbPower.FieldValues['M302_3'] then begin
showmessage('无权执行,请咨询系统管理员!');
exit;
end;
sCusCode := DataSet_SO.fieldbyName('客户代码').Asstring;
sPlanNo := lefts(List_SelectSalewx.Items.Strings[List_SelectSalewx.ItemIndex]);
DelSalePlan (sCusCode,sPlanNo);
List_SelectSalewx.DeleteSelected;
end;
procedure TfrmSaleOrder.DelSalePlansNKExecute(Sender: TObject);
var
sCusCode,sPlanNo : String;
begin
sCusCode := DataSet_SO.fieldbyName('客户代码').Asstring;
sPlanNo := lefts(List_SelectSalenk.Items.Strings[List_SelectSalenk.ItemIndex]);
DelSalePlan (sCusCode,sPlanNo);
List_SelectSalenk.DeleteSelected;
end;
procedure TfrmSaleOrder.QuerySO(SO:string);
var
sitem:string;
i:integer;
begin
Try
with DataSet_SO do begin
close ;
commandText := 'execute _PM_V_SaleOrder_Query '''+SO+'''';
open ;
if RecordCount = 0 then begin
showmessage('查询无结果,无此单据或此单已审核!');
exit;
end;
if VLEdit.RowCount>=2 then
begin
VLEdit.InsertRow('','',False);
for i:=VLEdit.RowCount-1 downto 2 do
begin
VLEdit.DeleteRow(i);
end;
end;
List_ForbidSaleProd.Clear ;
List_SSProd.Clear;
List_AcceptSaleProd.Clear ;
while not eof do begin
sitem:= fieldByName('商品代码').AsString+' - '+
fieldByName('商品名称').AsString+' - '+
fieldByName('销售状态').AsString;
if FieldByName('销').AsBoolean then List_AcceptSaleProd.AddItem(sitem)
else begin if fieldByName('销售状态').AsString= '11.限销限退[无记录状态]' then
List_ForbidSaleProd.AddItem(sitem)
else List_SSProd.AddItem(sitem);
end;
next ;
end;
first ;
end;
except
showmessage('订单查询失败!');
Exit;
end;
end;
procedure TfrmSaleOrder.List_SODblClick(Sender: TObject);
var
sqltext:string;
begin
QuerySO(Lefts(List_SO.Items.Strings[List_SO.ItemIndex]));
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;
procedure TfrmSaleOrder.FormShow(Sender: TObject);
begin
List_SO.Items := GetList('execute _PM_P_LoadItem '''',9');
end;
procedure TfrmSaleOrder.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);
begin
if (dxDBGrid1.DataSource.DataSet.Active) AND
(dxDBGrid1.DataSource.DataSet.Fields.Fields[9].AsString <>
dxDBGrid1.DataSource.DataSet.Fields.Fields[13].AsString) then begin
dxDBGrid1.Canvas.Font.Color := clRED;
end;
end;
procedure TfrmSaleOrder.DelSalePlannkClick(Sender: TObject);
begin
if Not dm.tbPower.FieldValues['M302_3'] then begin
showmessage('无权执行,请咨询系统管理员!');
exit;
end;
end;
procedure TfrmSaleOrder.List_SSProdClick(Sender: TObject);
begin
if (Not dm.tbPower.FieldValues['M302_4']) then begin
showmessage('无权执行,请咨询系统管理员!');
exit;
end;
end;
procedure TfrmSaleOrder.N3Click(Sender: TObject);
begin
List_SO.Items := GetList('execute _PM_P_LoadItem '''',9');
end;
procedure TfrmSaleOrder.dxDBGrid1DblClick(Sender: TObject);
var
cinvcode : string ;
i : integer;
begin
if ((DataSet_SO.IsEmpty) OR (Not DataSet_SO.FieldByName('商品代码').IsNull)) then
begin
dxDBGrid1.Cursor := crHourGlass;
cinvcode := DataSet_SO.fieldByName('商品代码').AsString;
DataSet_Details.close ;
DataSet_Details.CommandText :='_GetPlanar ''SO'','''+cInvCode+''','''+SOID.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;
dxDBGrid1.cursor := crHandPoint;
end else
begin
DataSet_Details.close ;
DataSet_INV.close ;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -