unit U_PbMfProductHelp; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, ComCtrls, ImgList, ToolWin, StdCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxTextEdit, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxControls, cxGridCustomView, cxClasses, cxGridLevel, cxGrid,StrUtils, DBClient, cxCheckBox; type TfrmPbMfProductHelp = class(TForm) Panel1: TPanel; Label1: TLabel; Edt_name: TEdit; ImageList24: TImageList; DataSource1: TDataSource; ADOQueryHelp: TADOQuery; ToolBar2: TToolBar; TOk: TToolButton; Tclose: TToolButton; cxGrid1: TcxGrid; cxGrid1Level1: TcxGridLevel; tv1: TcxGridDBTableView; tv1P_code1: TcxGridDBColumn; tv1P_chnName1: TcxGridDBColumn; tv1P_engName1: TcxGridDBColumn; tv1P_Gram1: TcxGridDBColumn; tv1P_breadthp: TcxGridDBColumn; tv1MachZsName: TcxGridDBColumn; tv1factoryName: TcxGridDBColumn; Label2: TLabel; Edt_spec: TEdit; ADOConnection1: TADOConnection; tv1P_spec: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyle_Active: TcxStyle; cxStyle_gridRow: TcxStyle; cxStyle_gridFoot: TcxStyle; cxStyle_gridHead: TcxStyle; cxStyle_gridGroupBox: TcxStyle; cxStyle_yellow: TcxStyle; cxStyle_Red: TcxStyle; cxStyle_group: TcxStyle; cxStyle_fontBlue: TcxStyle; cxStyle_fontOlive: TcxStyle; cxStyle_fontbalck: TcxStyle; CDS_Sel: TClientDataSet; tv1Sel: TcxGridDBColumn; procedure BtnOkClick(Sender: TObject); procedure BtnCancelClick(Sender: TObject); procedure DBGrid1DblClick(Sender: TObject); procedure Edt_nameKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); procedure Edt_nameChange(Sender: TObject); procedure tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private procedure IntiQuery(); procedure DoFilter(); public { Public declarations } end; var frmPbMfProductHelp: TfrmPbMfProductHelp; implementation uses U_adodbmd,U_global,U_FormPas; {$R *.dfm} procedure TfrmPbMfProductHelp.BtnOkClick(Sender: TObject); begin if ADOQueryHelp.IsEmpty then exit; ModalResult:= 1; end; procedure TfrmPbMfProductHelp.BtnCancelClick(Sender: TObject); begin ModalResult:= -1; end; procedure TfrmPbMfProductHelp.IntiQuery(); begin with ADOQueryHelp Do Begin DisableControls; Close; filtered:=false; SQL.Clear; SQL.Add('exec P_Get_MCMf_CatLog'); sql.Add('P'); Open; CreateCDS20(ADOQueryHelp,CDS_Sel); InitCDSData20(ADOQueryHelp,CDS_Sel); EnableControls; end; end; procedure TfrmPbMfProductHelp.DBGrid1DblClick(Sender: TObject); begin if ADOQueryHelp.IsEmpty then exit; ModalResult := 1; end; procedure TfrmPbMfProductHelp.Edt_nameKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); Var TmpSql :string; begin if Key = VK_RETURN then begin IntiQuery(); end; end; procedure TfrmPbMfProductHelp.FormCreate(Sender: TObject); begin with ADOConnection1 do begin Connected:=false; ConnectionString:=gConString; Connected:=true; end; cxgrid1.Align:=alClient; IntiQuery(); end; procedure TfrmPbMfProductHelp.FormShow(Sender: TObject); begin Edt_Name.SetFocus; end; procedure TfrmPbMfProductHelp.RadioGroup1Click(Sender: TObject); begin IntiQuery(); end; //////////////////////////////////////////////////// //函数:过滤数据 //////////////////////////////////////////////////// procedure TfrmPbMfProductHelp.DoFilter(); var filterStr:string; begin filterStr:=''; //名称 if trim(edt_Name.Text)<>'' then begin filterStr:=filterStr+' and (P_chnName like '+quotedStr('%'+trim(edt_Name.Text)+'%')+ ' or P_code like '+quotedStr('%'+trim(edt_Name.Text)+'%')+')'; end; //规格 if trim(edt_spec.Text)<>'' then filterStr:=filterStr+' and P_spec like '+quotedStr('%'+trim(edt_spec.Text)+'%'); try ADOQueryHelp.DisableControls ; 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; CreateCDS20(ADOQueryHelp,CDS_Sel); InitCDSData20(ADOQueryHelp,CDS_Sel); finally ADOQueryHelp.EnableControls; end; end; procedure TfrmPbMfProductHelp.Edt_nameChange(Sender: TObject); begin DoFilter(); end; procedure TfrmPbMfProductHelp.tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if tv1.Controller.FocusedColumn.Name='tv1Sel' then begin CDS_Sel.Edit; if CDS_Sel.FieldByName('sel').AsBoolean=False then CDS_Sel.FieldByName('sel').Value:=True else CDS_Sel.FieldByName('sel').Value:=False; CDS_Sel.Post; end; end; end.