unit U_LeftHelptree;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView,
  cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
  cxGridCustomView, cxGrid, ADODB, ExtCtrls, StdCtrls;

type
  TframeLeftHelpTree = class(TFrame)
    cxGridt1: TcxGrid;
    tt1: TcxGridDBTableView;
    tt1codeName: TcxGridDBColumn;
    cleveltt1: TcxGridLevel;
    DS_LTree: TDataSource;
    ADOQueryLTree: TADOQuery;
    Panel1: TPanel;
    tt1ParentCodeName: TcxGridDBColumn;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxStyle_gridRow: TcxStyle;
    cxStyle_gridFoot: TcxStyle;
    cxStyle_gridHead: TcxStyle;
    cxStyle_gridGroupBox: TcxStyle;
    cxStyle_yellow: TcxStyle;
    cxStyle_Red: TcxStyle;
    cxStyle_fontred: TcxStyle;
    cxStyle_fontBlue: TcxStyle;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    procedure tt1FocusedRecordChanged(Sender: TcxCustomGridTableView;
      APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
      ANewItemRecordFocusingChanged: Boolean);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    fLeftSelValue:string;
    fLeftSelCaption:string;
    procedure DoLeftFilter();
    procedure InitLTree(fromADOQ:TADOQuery;mTreeCaption:string;
                        mTreeKind,mTreeFlag,mOtherWhere:string;autoExpand:boolean);
  end;

implementation

{$R *.dfm}
/////////////////////////////////////////
   //函数功能：初始化化树
   //显示方式：
   //mTreeCaption:树标题
   //mTreeKind 客户；员工；机台；等
   //mTreeFlag; 多种客户树的具体代号标志
   //mOtherWhere:其他过滤条件
   //autoExpand：数是否自动展开
/////////////////////////////////////////
procedure TframeLeftHelpTree.InitLTree(fromADOQ:TADOQuery;mTreeCaption:string;
                                         mTreeKind,mTreeFlag,mOtherWhere:string;autoExpand:boolean);
begin
 {
  if mTreeCaption<>'' then
  begin
    Panel1.caption:=trim(mTreeCaption);
    Panel1.Visible :=true;
  end;
  }
 //if autoExpand  then
   TT1.DataController.Options:=[dcoGroupsAlwaysExpanded];
 //else
  // TT1.DataController.Options:=[];
  try
    ADOQueryLTree.Connection:=fromADOQ.Connection;
    ADOQueryLTree.DisableControls ;
    with ADOQueryLTree do
    begin
      close;
      sql.clear;
      sql.Add('exec P_Get_WinLeftTree');
      sql.Add(quotedStr(mTreeKind));
      sql.Add(','+quotedStr(mTreeflag));
      sql.Add(','+quotedStr(mOtherWhere));
      Open;
    end;
    ADOQueryLTree.EnableControls;
  except
    application.MessageBox(pchar('初始化【'+mTreeCaption+'】树失败!'),'警告信息',0);
  end;
end;
procedure TframeLeftHelpTree.tt1FocusedRecordChanged(
  Sender: TcxCustomGridTableView; APrevFocusedRecord,
  AFocusedRecord: TcxCustomGridRecord;
  ANewItemRecordFocusingChanged: Boolean);
begin
  if (tt1.Controller.FocusedRow is TcxGridGroupRow) then
  begin
    fLeftSelValue:='';
    fLeftSelCaption:='';
  end
  else
  begin
    fLeftSelValue:=trim(ADOQueryLTree.fieldByName('code').AsString) ;
    fLeftSelCaption:=trim(ADOQueryLTree.fieldByName('codeName').AsString) ;
  end;
end;
///////////////////////////////////////////////////////////////
procedure TframeLeftHelpTree.DoLeftFilter();
var
  mfilterStr:string;
begin
  //名称
  if (ComboBox1.ItemIndex=0) and (trim(edit1.Text) <>'') then
  begin
    mfilterStr:='codeName like '+quotedStr('%'+trim(edit1.Text)+'%');
  end;
  //编号
  if (ComboBox1.ItemIndex=1) and (trim(edit1.Text) <>'') then
  begin
    mfilterStr:='code like '+quotedStr('%'+trim(edit1.Text)+'%');
  end;
  try
    ADOQueryLTree.DisableControls ;
    with ADOQueryLTree do
    begin
      filtered:=false;
      if trim(mfilterStr)<>'' then
      begin
        filter:=mfilterStr;
        filtered:=true;
      end;
    end;
  finally
    ADOQueryLTree.EnableControls;
  end;
end;

procedure TframeLeftHelpTree.Edit1Change(Sender: TObject);
begin
  DoLeftFilter();
end;

end.
