unit U_Xc_CodeZDYTree;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, cxGraphics, cxCustomData, cxStyles, cxTL, DB,
  ADODB, cxControls, cxInplaceContainer, cxTLData, cxDBTL, cxMaskEdit,
  ImgList;

type
  TfrmXc_CodeZDYTree = class(TForm)
    ToolBar2: TToolBar;
    TOk: TToolButton;
    ToolButton7: TToolButton;
    cxDBTreeList1: TcxDBTreeList;
    ADOQueryHelp: TADOQuery;
    DataSource1: TDataSource;
    ADOConnection1: TADOConnection;
    cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
    ImageList24: TImageList;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxStyle_gridRow: TcxStyle;
    cxStyle_gridFoot: TcxStyle;
    cxStyle_gridHead: TcxStyle;
    cxStyle_gridGroupBox: TcxStyle;
    cxStyle_yellow: TcxStyle;
    cxStyle_Red: TcxStyle;
    cxStyleTree: TcxStyle;
    cxStyle3: TcxStyle;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ADOQueryCmd: TADOQuery;
    procedure ToolButton7Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TOkClick(Sender: TObject);
    procedure cxDBTreeList1DblClick(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
  private
    procedure DoQuery();
  public
    fnote:string;
    fflag:string;
    fflagname:string;
  end;

var
  frmXc_CodeZDYTree: TfrmXc_CodeZDYTree;

implementation
uses
  U_global,U_ItemManageNew;
{$R *.dfm}

procedure TfrmXc_CodeZDYTree.ToolButton7Click(Sender: TObject);
begin
  close;
end;

procedure TfrmXc_CodeZDYTree.FormCreate(Sender: TObject);
begin
  cxDBTreeList1.Align :=alClient;
  with ADOConnection1 do
  begin
    Connected:=false;
    ConnectionString:=gConString;
    Connected:=true;
  end;
end;
///////////////////////////////////////////////////////////
  //
///////////////////////////////////////////////////////////
procedure TfrmXc_CodeZDYTree.DoQuery();
var
  fsj:string;
begin
  with ADOQueryHelp do
  begin
    close;
    sql.Clear ;
    sql.Add('select * from XC_Code');
    sql.Add('where valid=''Y''');
    sql.Add('and note='''+Trim(fnote)+'''');
    sql.Add('order by orderno ');
    Open;
  end;
  if not ADOQueryHelp.IsEmpty then 
    cxDBTreeList1.Nodes[0].Expand(True)
  else
  begin
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('insert into XC_Code(code,name,flag,note)');
      sql.Add('select '''+Trim(fflag)+'''');
      sql.Add(','''+Trim(fflagname)+'''');
      SQL.Add(',''BASECODE'' ');
      sql.Add(','''+Trim(fnote)+'''');
      sql.Add('insert into XC_Code(code,name,flag,note)');
      fsj:=Trim(fflag)+'01';
      sql.Add('select '''+Trim(fsj)+'''');
      sql.Add(','''+Trim(fflagname)+'''');
      SQL.Add(','''+Trim(fflag)+'''');
      sql.Add(','''+Trim(fnote)+'''');
      ExecSQL;
    end;
    with ADOQueryHelp do
    begin
      close;
      sql.Clear ;
      sql.Add('select * from XC_Code');
      sql.Add('where valid=''Y''');
      sql.Add('and note='''+Trim(fnote)+'''');
      sql.Add('order by orderno ');
      Open;
    end;
  end;
end;

procedure TfrmXc_CodeZDYTree.FormShow(Sender: TObject);
begin
  DoQuery();
end;

procedure TfrmXc_CodeZDYTree.TOkClick(Sender: TObject);
begin
  if ADOQueryHelp.IsEmpty then
     ModalResult:=-1
  else
    ModalResult:=1;
end;

procedure TfrmXc_CodeZDYTree.cxDBTreeList1DblClick(Sender: TObject);
begin
  tok.Click  ;
end;

procedure TfrmXc_CodeZDYTree.ToolButton1Click(Sender: TObject);
begin
  try
    frmItemManageNew:=TfrmItemManageNew.Create(Application);
    with frmItemManageNew do
    begin
      if Trim(Self.ADOQueryHelp.fieldbyname('code').AsString)<>'' then
        flag:=Trim(Self.ADOQueryHelp.fieldbyname('code').AsString)
      else
        flag:=Trim(Self.fflag);
      if Trim(Self.ADOQueryHelp.fieldbyname('name').AsString)<>'' then
        flagname:=Trim(Self.ADOQueryHelp.fieldbyname('name').AsString)
      else
        flagname:=Trim(Self.fflagname);
      //fnote:=True;
      snote:=Trim(Self.fnote);
      //forderno:=True;
      if ShowModal=1 then
      begin
        Self.DoQuery;
      end;
    end;
  finally
    frmItemManageNew.Free;
  end;
end;

procedure TfrmXc_CodeZDYTree.ToolButton2Click(Sender: TObject);
begin
  DoQuery();
end;

end.