unit U_SxProductHelp; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, ComCtrls, ImgList, ToolWin, StdCtrls, cxControls, cxPC,StrUtils, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxGridCustomView, cxGrid; type TfrmPBProductHelp = class(TForm) Panel1: TPanel; Label1: TLabel; Edit1: TEdit; ImageList24: TImageList; DataSource1: TDataSource; ADOQueryTmp: TADOQuery; ADOQueryHelp: TADOQuery; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; Label2: TLabel; cxTabControl1: TcxTabControl; Label3: TLabel; Edit2: TEdit; cxGrid1: TcxGrid; tv1: TcxGridDBTableView; tv1p_Code: TcxGridDBColumn; tv1P_chnName: TcxGridDBColumn; tv1P_engName: TcxGridDBColumn; tv1P_spec: TcxGridDBColumn; tv1P_gram: TcxGridDBColumn; tv1P_Breadth: TcxGridDBColumn; tv1P_upBreadth: TcxGridDBColumn; tv1P_typeName: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; tv1Num: TcxGridDBColumn; tv1P_Breadthp: TcxGridDBColumn; tv1P_upBreadthp: TcxGridDBColumn; ADOConnection1: TADOConnection; procedure BtnOkClick(Sender: TObject); procedure BtnCancelClick(Sender: TObject); procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure tv1DblClick(Sender: TObject); private SortID: Integer; SortCaption, SortField, SortOrder: String; procedure IntiQuery(); procedure IntiQuery10(); public fDipFlag:integer; //1:成品;2:坯布 fPbCtr:boolean; fCustomNo:string; fSysCode:string; end; var frmPBProductHelp: TfrmPBProductHelp; implementation uses U_adodbmd,U_iniParam,U_global; {$R *.dfm} procedure TfrmPBProductHelp.BtnOkClick(Sender: TObject); begin if ADOQueryHelp.IsEmpty then exit; ModalResult := 1; end; procedure TfrmPBProductHelp.BtnCancelClick(Sender: TObject); begin ModalResult := -1; end; procedure TfrmPBProductHelp.IntiQuery(); var whereStr:string; begin whereStr:=''; if trim(edit1.Text)<>'' then begin whereStr:='and P_code like '+quotedStr('%'+trim(edit1.text)+'%'); end; if trim(edit2.Text)<>'' then begin whereStr:='and P_chnName like '+quotedStr('%'+trim(edit2.text)+'%'); end; //类型 if cxTabControl1.TabIndex=1 then whereStr:=whereStr+' and P_type=''C''' else if cxTabControl1.TabIndex=2 then whereStr:=whereStr+' and P_type=''P'''; with ADOQueryHelp Do Begin DisableControls; Active := False; SQL.Clear; SQL.Add('select * from V_MC_Catlog'); sql.Add('where 1=1 '+whereStr); Active := True; EnableControls; end; end; /////////////////////////////////////////// //坯布控制 /////////////////////////////////////////// procedure TfrmPBProductHelp.IntiQuery10(); var filterStr:string; begin filterStr:=''; if trim(edit1.Text)<>'' then begin filterStr:=' and P_code like '+quotedStr('%'+trim(edit1.text)+'%'); end; if trim(edit2.Text)<>'' then begin filterStr:=' and P_chnName like '+quotedStr('%'+trim(edit2.text)+'%'); end; //类型 //if cxTabControl1.TabIndex=1 then // filterStr:=filterStr+' and P_type=''C''' //else if cxTabControl1.TabIndex=2 then // filterStr:=filterStr+' and P_type=''P'''; try with ADOQueryHelp Do Begin DisableControls; close; filtered:=false; SQL.Clear; if trim(fSysCode)='YH' then sql.Add('exec JS_PBCK_CHANGE_YH10') else SQL.Add('exec JS_PBCK_CHANGE10'); sql.Add(QuotedStr(fCustomNo)); Open; if trim(filterStr)='' then begin ADOQueryHelp.Filtered:=false; ADOQueryHelp.EnableControls; exit; end; filterStr:=trim(RightBStr(filterStr,length(filterStr)-4)); with ADOQueryHelp do begin filtered:=false; filter:=filterStr; filtered:=true; end; EnableControls; end; finally end; end; procedure TfrmPBProductHelp.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); Var TmpSql :string; begin if Key = VK_RETURN then begin if fPbCtr then IntiQuery10() else IntiQuery(); end; end; procedure TfrmPBProductHelp.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; with ADOConnection1 do begin Connected:=false; ConnectionString:=gConString; Connected:=true; end; end; procedure TfrmPBProductHelp.FormShow(Sender: TObject); var tabIndex:integer; begin cxTabControl1.TabIndex:=fDipFlag; if fPbCtr then IntiQuery10() else IntiQuery(); Edit1.SetFocus; end; procedure TfrmPBProductHelp.cxTabControl1Change(Sender: TObject); var tabIndex:integer; begin tabIndex:=cxTabControl1.TabIndex; if cxTabControl1.Tabs[tabIndex].Caption='坯布仓库' then IntiQuery10() else IntiQuery(); end; procedure TfrmPBProductHelp.tv1DblClick(Sender: TObject); begin if ADOQueryHelp.IsEmpty then exit; ModalResult := 1; end; end.