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 + -
显示快捷键?