unit U_KqGroupHelp; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxPC, cxControls, ImgList, ComCtrls, ToolWin, StdCtrls, ExtCtrls, DB, ADODB, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxTL, cxMaskEdit, cxInplaceContainer, cxDBTL, cxTLData; type PMyRec = ^TMyRec; TMyRec = record wbcode: string; Tvtem_str: string; end; type TfrmKqGroupHelp = class(TForm) Panel1: TPanel; Label1: TLabel; Edit1: TEdit; ImageList24: TImageList; ADOQueryTmp: TADOQuery; ADOConnection1: TADOConnection; ADOQueryHelp: TADOQuery; DS_Help: TDataSource; tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; tv1GroupNo: TcxGridDBColumn; tv1GroupName: TcxGridDBColumn; ToolBar1: TToolBar; BtnOk: TToolButton; BtnCancel: TToolButton; tv1Name: TcxGridDBColumn; DataSource1: TDataSource; ADOQueryChild: TADOQuery; tv1Column1: TcxGridDBColumn; tv1Column2: TcxGridDBColumn; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; v2Name: TcxGridDBColumn; procedure FormCreate(Sender: TObject); procedure BtnCancelClick(Sender: TObject); procedure BtnOkClick(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure tv1DblClick(Sender: TObject); procedure Tv2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); private LoadFlag:Boolean; fSqlStr:string; procedure InitTree(); procedure InitGrid(mSql:string); public end; var frmKqGroupHelp: TfrmKqGroupHelp; implementation uses U_global; {$R *.dfm} procedure TfrmKqGroupHelp.FormCreate(Sender: TObject); begin with ADOConnection1 do begin Connected:=false; ConnectionString:=gConString; Connected:=true; end; fSqlStr:='select a.GroupNo,a.GroupName,a.WorkBeg,a.WorkEnd,B.Name,a.KqDept '+ 'from Mc_KqGroup A,XC_CustCode B where B.Code=A.kqdept and B.flag=''kqdept'' '; InitTree(); cxGrid1.Align :=alClient; InitGrid(fSqlStr); end; procedure TfrmKqGroupHelp.BtnCancelClick(Sender: TObject); begin close; end; procedure TfrmKqGroupHelp.InitTree(); var fsj:String; begin fsj:=' select Code,name '+ ' from XC_CustCode A '+ ' where A.Flag=''KQDept'' and A.Valid=''Y'' '; with ADOQueryChild do begin Close; sql.Clear; sql.Add(fsj); Open; end; end; procedure TfrmKqGroupHelp.BtnOkClick(Sender: TObject); begin if ADOQueryHelp.IsEmpty then exit; ModalResult := 1; end; procedure TfrmKqGroupHelp.InitGrid(mSql:string); begin try with ADOQueryHelp do begin close; sql.Clear ; sql.Add(mSql); sql.Add('order by KQDept'); Open; end; finally end; end; procedure TfrmKqGroupHelp.Edit1Change(Sender: TObject); var TmpSql:string; begin TmpSql := 'select a.GroupNo,a.GroupName,a.WorkBeg,a.WorkEnd,B.Name,a.KQDept from Mc_KqGroup A,XC_CustCode B where B.Code=A.kqdept and B.flag=''kqdept'' ' + ' and (A.GroupNo Like '+quotedStr('%'+trim(edit1.Text)+'%')+ ' or A.GroupName Like '+quotedStr('%'+trim(edit1.Text)+'%')+ ' )'; InitGrid(TmpSql); end; procedure TfrmKqGroupHelp.tv1DblClick(Sender: TObject); begin BtnOk.Click ; end; procedure TfrmKqGroupHelp.Tv2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var fSqlStr:string; begin if ADOQueryHelp.Active then begin if Trim(ADOQueryChild.fieldbyname('Code').AsString)<>'' then begin fSqlStr:=' KqDept='+quotedStr(Trim(ADOQueryChild.fieldbyname('Code').AsString)); try ADOQueryHelp.DisableControls; with ADOQueryHelp do begin if Trim(fSqlStr)='' then begin Filtered:=False; end else begin Filtered:=False; Filter:=fSqlStr; Filtered:=True; end; end; finally ADOQueryHelp.EnableControls; end; end; end; end; end.