📄 productunit.pas
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -