productunit.pas
来自「用友系统二次开发 存货管理 客户管理 订货审核 退货审核 铺货计划 」· PAS 代码 · 共 1,110 行 · 第 1/3 页
PAS
1,110 行
unit ProductUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, dxDBTLCl, dxGrClms, dxDBCtrl, dxDBGrid, dxTL, dxCntner,
cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, cxLabel,
cxDBLabel, cxGroupBox, cxRadioGroup, Menus, StdCtrls, Buttons, cxPC, DB,
ADODB, ExtCtrls, TeeProcs, TeEngine, Chart, DbChart, Grids, DBGrids,
ComCtrls, cxCheckBox, cxCheckComboBox, cxMemo, cxCheckListBox, cxListBox,
dxfOutlookBar, cxCalendar, RzPanel, RzTabs, ActnList, RzGroupBar, RzDTP,
cxCalc, cxLookAndFeelPainters, cxButtons, cxListView, RzSplit, CheckLst
;
type
TfrmProduct = class(TForm)
PC_Basic: TPageControl;
dsQueryInv: TDataSource;
DS_TranData: TDataSource;
RzPanel2: TRzPanel;
ActionList1: TActionList;
LoadProductlist: TAction;
QueryProduct: TAction;
QueryInv: TADODataSet;
Panel1: TPanel;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
RzPageControl2: TRzPageControl;
RzTabSheet1: TRzTabSheet;
RzTabSheet2: TRzTabSheet;
TabSheet3: TRzTabSheet;
TabSheet4: TRzTabSheet;
TabSheet2: TRzTabSheet;
pmTran: TPopupMenu;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
N25: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N30: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
N33: TMenuItem;
ChangeState: TAction;
AddSalePlan: TAction;
AddReturnPlan: TAction;
AA_SaleReturn: TAction;
AF_SaleReturn: TAction;
FA_SaleReturn: TAction;
FF_SaleReturn: TAction;
N28: TMenuItem;
N29: TMenuItem;
Plan: TPopupMenu;
N34: TMenuItem;
N35: TMenuItem;
N36: TMenuItem;
TabSheet5: TRzTabSheet;
DBGrid1: TDBGrid;
SALE: TADODataSet;
DSSALE: TDataSource;
RzSizePanel2: TRzSizePanel;
RzGroupBar2: TRzGroupBar;
ASClist: TCheckListBox;
RCList: TCheckListBox;
FSClist: TCheckListBox;
NSClist: TCheckListBox;
GroupBox1: TGroupBox;
PlanListBox: TListBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
bcbPrice: TcxCheckBox;
bStartDate: TcxCheckBox;
StartDate: TRzDateTimePicker;
lcbPrice: TcxLabel;
cbPrice: TcxCalcEdit;
xsPrice: TcxCalcEdit;
lxsPrice: TcxLabel;
bxsPrice: TcxCheckBox;
bwsPrice: TcxCheckBox;
lwsPrice: TcxLabel;
wsPrice: TcxCalcEdit;
lsPrice: TcxCalcEdit;
llsPrice: TcxLabel;
blsPrice: TcxCheckBox;
bstPrice: TcxCheckBox;
lstPrice: TcxLabel;
stPrice: TcxCalcEdit;
Source: TcxComboBox;
cxLabel17: TcxLabel;
tzPrice: TcxButton;
GroupBox5: TGroupBox;
GroupBox6: TGroupBox;
PLList: TListBox;
Panel5: TPanel;
RB_NK: TcxRadioButton;
RB_WX: TcxRadioButton;
RB_HK: TcxRadioButton;
Panel2: TPanel;
Panel3: TPanel;
RB_PF: TcxRadioButton;
RB_LS: TcxRadioButton;
ListProd: TListBox;
Panel4: TPanel;
CB_SD: TcxCheckBox;
SDate: TRzDateTimePicker;
cxLabel18: TcxLabel;
EDate: TRzDateTimePicker;
CB_LN: TcxCheckBox;
CB_LD: TcxCheckBox;
CB_LB: TcxCheckBox;
CB_LE: TcxCheckBox;
CB_LC: TcxCheckBox;
CB_LA: TcxCheckBox;
CB_SB: TcxCheckBox;
CB_NP: TcxCheckBox;
CB_SS: TcxCheckBox;
CB_ZG: TcxCheckBox;
bqtPrice: TcxCheckBox;
qtPrice: TcxCalcEdit;
PriceListBox: TListBox;
Panel6: TPanel;
cxLabel4: TcxLabel;
cxLabel23: TcxLabel;
cxLabel14: TcxLabel;
cxDBLabel12: TcxDBLabel;
LSPrice_Label: TcxDBLabel;
cxLabel12: TcxLabel;
cxDBLabel15: TcxDBLabel;
cxDBLabel5: TcxDBLabel;
cxDBLabel2: TcxDBLabel;
cxDBLabel6: TcxDBLabel;
cxLabel11: TcxLabel;
cxLabel8: TcxLabel;
cxLabel5: TcxLabel;
cxLabel1: TcxLabel;
ProdCode: TcxDBLabel;
cxDBLabel1: TcxDBLabel;
cxDBLabel3: TcxDBLabel;
cxDBLabel9: TcxDBLabel;
cxDBLabel8: TcxDBLabel;
cxLabel9: TcxLabel;
cxLabel6: TcxLabel;
cxLabel2: TcxLabel;
cxLabel13: TcxLabel;
cxLabel10: TcxLabel;
cxLabel7: TcxLabel;
cxLabel3: TcxLabel;
cxDBLabel4: TcxDBLabel;
cxDBLabel11: TcxDBLabel;
cxDBLabel10: TcxDBLabel;
cxDBLabel14: TcxDBLabel;
ColorListBox: TcxListBox;
cxLabel15: TcxLabel;
cxLabel16: TcxLabel;
SizeListBox: TcxListBox;
xsCustList: TCheckListBox;
wsCustList: TCheckListBox;
noCustList: TCheckListBox;
RB_QT: TcxRadioButton;
QueryText: TEdit;
procedure LoadProdList;
procedure FormCreate(Sender: TObject);
procedure LoadProductlistExecute(Sender: TObject);
procedure QueryProd(sInvCode:string);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ChangeStateExecute(Sender: TObject);
procedure AddSalePlanExecute(Sender: TObject);
procedure AddReturnPlanExecute(Sender: TObject);
procedure AA_SaleReturnExecute(Sender: TObject);
procedure AF_SaleReturnExecute(Sender: TObject);
procedure FA_SaleReturnExecute(Sender: TObject);
procedure FF_SaleReturnExecute(Sender: TObject);
procedure N29Click(Sender: TObject);
procedure PlanListBoxDblClick(Sender: TObject);
procedure N34Click(Sender: TObject);
procedure N36Click(Sender: TObject);
procedure bStartDateClick(Sender: TObject);
procedure bcbPriceClick(Sender: TObject);
procedure bxsPriceClick(Sender: TObject);
procedure bwsPriceClick(Sender: TObject);
procedure blsPriceClick(Sender: TObject);
procedure bstPriceClick(Sender: TObject);
procedure QueryInvAfterClose(DataSet: TDataSet);
procedure tzPriceClick(Sender: TObject);
procedure ListProdDblClick(Sender: TObject);
procedure bqtPriceClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmProduct: TfrmProduct;
implementation
uses
mainUnit,DataUnit, PublicUnit, LoginUnit;
{$R *.dfm}
procedure TfrmProduct.LoadProdList;
Var
SqlList : TStringList ;
Sqltext : String;
begin
SqlList := TStringlist.Create ;
Sqltext :='SELECT cInvCode '+'+'' - ''+'+'cInvName FROM Inventory WHERE ';
If RB_PF.Checked then Sqltext := Sqltext + RB_PF.Hint ;
If RB_LS.Checked then Sqltext := Sqltext + RB_LS.Hint ;
If RB_WX.Checked then Sqltext := Sqltext + ' AND ' + RB_WX.Hint ;
If RB_NK.Checked then Sqltext := Sqltext + ' AND ' + RB_NK.Hint ;
If RB_HK.Checked Then Sqltext := Sqltext + ' AND ' + RB_HK.Hint ;
If RB_QT.Checked Then Sqltext := Sqltext + ' AND ' + RB_QT.Hint ;
SqlList.Clear;
If CB_NP.Checked Then SqlList.Add(CB_NP.Hint) ;
If CB_ZG.Checked Then SqlList.Add(CB_ZG.Hint) ;
If CB_SB.Checked Then SqlList.Add(CB_SB.Hint) ;
If CB_SS.Checked Then SqlList.Add(CB_SS.Hint) ;
if ListToStr(SqlList,' OR ') <> '' Then Sqltext := Sqltext+ ' AND (' + ListToStr(SqlList,' OR ')+') ';
SqlList.Clear;
If CB_LA.Checked Then SqlList.Add(CB_LA.Hint) ;
If CB_LB.Checked Then SqlList.Add(CB_LB.Hint) ;
If CB_LC.Checked Then SqlList.Add(CB_LC.Hint) ;
If CB_LD.Checked Then SqlList.Add(CB_LD.Hint) ;
If CB_LE.Checked Then SqlList.Add(CB_LE.Hint) ;
If CB_LN.Checked Then SqlList.Add(CB_LN.Hint) ;
if ListToStr(SqlList,' OR ') <> '' Then Sqltext := Sqltext+ ' AND (' + ListToStr(SqlList,' OR ')+') ';
If CB_SD.Checked Then Sqltext := Sqltext+ ' AND CONVERT(NVARCHAR(10),dSDate, 121) between '''+
FormatDatetime('YYYY-MM-DD',Sdate.Date)+''' AND '''+FormatDatetime('YYYY-MM-DD',Edate.Date)+''' ';
if QueryText.Text <> '' then Sqltext := Sqltext+ ' AND ((cInvCode like ''%'+QueryText.Text+'%'') OR (cInvName like ''%'+QueryText.Text+'%'')) ';
Sqltext := Sqltext+ ' ORDER by cInvCode ';
// showmessage(Sqltext);
ListProd.Items := getlist(Sqltext);
end;
procedure TfrmProduct.FormCreate(Sender: TObject);
begin
Sdate.Date := Now()-3;
Edate.Date := Now();
LoadProdlist;
end;
procedure TfrmProduct.LoadProductlistExecute(Sender: TObject);
begin
LoadProdList ;
end;
procedure TfrmProduct.QueryProd(sInvCode:string);
var
sqltext : string;
begin
try
with QueryInv do begin
close ;
commandtext := 'SELECT TOP 1 * FROM Inventory WHERE cInvCode = '''+ sInvCode+''' ';
open ;
Sqltext := ' SELECT isnull(V.cVenAbbName,''未知厂商'') FROM Vendor AS V RIGHT JOIN Inventory AS I ON V.cVenCode = I.cVenCode WHERE I.cInvCode = '''+sInvCode +'''';
cxLabel23.Caption := Getlist(Sqltext).Strings[0];
bcbPrice.Checked := False ;
lcbPrice.Caption := '0';
cbPrice.EditValue := 0 ;
cbPrice.Enabled := False ;
bxsPrice.Checked := False ;
lxsPrice.Caption := '0';
xsPrice.EditValue := 0 ;
xsPrice.Enabled := False ;
bwsPrice.Checked := False ;
lwsPrice.Caption := '0';
wsPrice.EditValue := 0 ;
wsPrice.Enabled := False ;
blsPrice.Checked := False ;
llsPrice.Caption := '0';
lsPrice.EditValue := 0 ;
lsPrice.Enabled := False ;
bstPrice.Checked := False ;
lstPrice.Caption := '0';
stPrice.EditValue := 0 ;
stPrice.Enabled := False ;
bqtPrice.Checked := False ;
qtPrice.EditValue := 0 ;
qtPrice.Enabled := False ;
Sqltext := ' SELECT DISTINCT sColor FROM ColorSize WHERE cInvCode = '''+sInvCode +'''';
ColorListBox.Items := GetList(Sqltext);
Sqltext := ' SELECT DISTINCT sSize FROM ColorSize WHERE cInvCode = '''+sInvCode+'''';
SizeListBox.Items := GetList(Sqltext);
Sqltext := ' execute _PM_P_InvCustState_Query 0,'''+sInvCode+''',''''';
ASCList.Items:= GetList(Sqltext) ;
RzTabSheet1.Caption := '在销客户 (' + IntToStr(ASCList.Items.Count)+')' ;
Sqltext := ' execute _PM_P_InvCustState_Query 1,'''+sInvCode+''',''''';
RCList.Items:= GetList(Sqltext) ;
RzTabSheet2.Caption := '调货客户 (' + IntToStr(RCList.Items.Count)+')' ;
Sqltext := ' execute _PM_P_InvCustState_Query 2,'''+sInvCode+''',''''';
FSCList.Items:= GetList(Sqltext) ;
TabSheet3.Caption := '限销客户 (' + IntToStr(FSCList.Items.Count)+')' ;
Sqltext := 'execute _PM_P_InvCustState_Query 3,'''+sInvCode+''',''''';
NSCList.Items:= GetList(Sqltext) ;
TabSheet4.Caption := '未销客户 (' + IntToStr(NSCList.Items.Count)+')' ;
Sqltext := 'execute _PM_P_InvCustState_Query 4,'''+sInvCode+''',''''';
PlanListBox.Items := Getlist(sqltext) ;
GroupBox2.Caption := '调价明细';
Sqltext := 'execute _PM_P_InvCustState_Query 5,'''+sInvCode+''',''''';
PriceListBox.Items := Getlist(sqltext) ;
Sqltext := 'exec _PM_P_LoadItem '''+ ProdCode.Caption +''',13';
xsCustList.Items := Getlist(sqltext);
Sqltext := 'exec _PM_P_LoadItem '''+ ProdCode.Caption +''',14';
wsCustList.Items := Getlist(sqltext);
Sqltext := 'exec _PM_P_LoadItem '''+ ProdCode.Caption +''',15';
noCustList.Items := Getlist(sqltext);
if RzPageControl1.ActivePageIndex = 1 then
begin
Sale.Close;
Sale.CommandText := 'EP_InvAnalyse '''+sInvCode+'''';
Sale.Open;
end else Sale.Close;
end;
except
showmessage('查询失败!');
exit ;
end;
end;
procedure TfrmProduct.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmProduct.ChangeStateExecute(Sender: TObject);
begin
if MessageDlg('提示: '+#13+'确认要调货吗?',mtInformation,[mbOK,mbCancel],0) = mrOk Then begin
end;
end;
procedure TfrmProduct.AddSalePlanExecute(Sender: TObject);
var
i,j:integer;
sCusCodes,sCusNames,sMemo:string;
begin
if Not dm.tbPower.FieldValues['M203_1'] then begin
showmessage('无权执行,请咨询系统管理员!');
exit;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?