⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 productunit.pas

📁 用友系统二次开发 存货管理 客户管理 订货审核 退货审核 铺货计划 调货计划
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -