⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treeietype.pas

📁 飞恒进销存(超市批发)管理系统V5.1(含源程序) 语言:Delphi 6/7 相关控件:FastReport 2.4以上, Ehlib 3.4以上 1.数据库为fhe2db_V51.da
💻 PAS
字号:
unit TreeIEType;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TreeEditBase, StdCtrls, Buttons, ComCtrls, ExtCtrls, StrUtils, DB;

type
  TTreeIETypefrm = class(TTreeEditBaseForm)
    procedure FormShow(Sender: TObject);
    procedure tvTypeClick(Sender: TObject);
    procedure btnAddNewClick(Sender: TObject);
    procedure btnEditClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
    procedure tvTypeDblClick(Sender: TObject);
    procedure tvTypeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    function GetMaxCode:string;
    Function GetXName:string;
    Function GetXCode:string;
  public
    { Public declarations }
    nodeTmp:TTreeNode;
    sCode:string;
    property  xCode :string read GetXCode;
    property  xName :string read GetXName ;
  end;

var
  TreeIETypefrm: TTreeIETypefrm;

implementation

uses datamodule1, IEType;

{$R *.dfm}

function TTreeIETypefrm.GetMaxCode: string;
var
  sSql, sMaxCode:string;
begin
  inherited;
  sSql:='select max(code) as maxCode from IEType where code like :code';
  if sCode<>'' then
    sSql:=sSql+' and len(code)=:lenCode';
  with DataE2.QueryTmp do
  begin
    close;
    sql.Clear;
    sql.Add(sSql);
    Parameters[0].Value:=sCode+'%';
    if sCode<>'' then
      Parameters[1].Value:=Length(sCode)+3;
    open;
    sMaxCode:=FieldByName('maxCode').AsString;
    if (sMaxCode<>NULL) and (sMaxCode<>'') then
      Result:=sCode+RightStr('000'+IntToStr(StrToInt(RightStr(sMaxCode,3))+1),3)
    else
      Result:=sCode+'001';
  end;
end;

procedure TTreeIETypefrm.FormShow(Sender: TObject);
begin
  inherited;
  try
    with dataE2.qryType1 do
    begin
      close;
      SQL.clear;
      SQL.add('select * from IEType order by Code');
      Prepared:=true;
      open;
      first;
      tvType.Items.Clear;
      node1:=tvType.Items.Add(nil,self.Caption);
      while not eof do
      begin
        if Length(trim(fieldbyname('Code').asstring))=3 then
          node2:=tvType.Items.AddChild(node1,trim(fieldbyname('name').asstring));
          //node2.ImageIndex:=1;
        if Length(trim(fieldbyname('Code').asstring))=6 then
          node3:=tvType.Items.AddChild(node2,trim(fieldbyname('name').asstring));
        if Length(trim(fieldbyname('Code').asstring))=9 then
          node4:=tvType.Items.AddChild(node3,trim(fieldbyname('name').asstring));
        if Length(trim(fieldbyname('Code').asstring))=12 then
          node5:=tvType.Items.AddChild(node4,trim(fieldbyname('name').asstring));
        next;
      end;
    end;
    node1.Selected:=True;
    nodeTmp:=tvType.Selected;
  except
    on E:Exception do
    showmessage(e.Message);
  end;
end;

procedure TTreeIETypefrm.tvTypeClick(Sender: TObject);
var
  sSql:string;
begin
  inherited;
  sSql:='select * from IEType';
  sSql:=sSql+' where name = :name';
  with DataE2.qryGet do
  begin
    close;
    sql.Clear;
    sql.Add(sSql);
    Parameters[0].Value:=tvType.Selected.Text;
    open;
    if not eof then
      sCode:=trim(FieldByName('Code').asstring)
    else sCode:='';
  end;
  nodeTmp:=tvType.Selected;
  //TreeEditfrm.sName:=tvType.Selected.Text;
end;

procedure TTreeIETypefrm.btnAddNewClick(Sender: TObject);
begin
  inherited;
  try
    if nodeTmp=node5 then
    begin
      Application.MessageBox('分类级数已超过最大数!','提示',64);
      exit;
    end;
    DataE2.tblIetype.Open;
    DataE2.tblIetype.Append;
    IETypeForm.DEno.Text:=GetMaxCode;
    IETypeForm.DEname.Text:='';
    IETypeForm.ShowModal;
    FormShow(Sender);
  except
    on E:Exception do
    showmessage(e.Message);
  end;
end;

procedure TTreeIETypefrm.btnEditClick(Sender: TObject);
begin
  inherited;
  try
    DataE2.tblIetype.Open;
    DataE2.tblIetype.locate('Name',tvType.Selected.Text,[loPartialKey]);
    DataE2.tblIetype.edit;
    IETypeForm.ShowModal;
    FormShow(Sender);
  except
    on E:Exception do
    showmessage(e.Message);
  end;
end;

procedure TTreeIETypefrm.btnDelClick(Sender: TObject);
var
  sSql:string;
begin
  inherited;
  sSql:='delete from IEType';
  sSql:=sSql+' where name = :name';
  if nodeTmp<>node1 then
    if Application.MessageBox('真的要删除吗?','提示',MB_YESNO+MB_ICONWARNING)=IDYES then
    begin
      with DataE2.QueryTmp do
      begin
        close;
        sql.Clear;
        sql.Add(sSql);
        Parameters[0].Value:=tvType.Selected.Text;
        Execsql;
      end;
      nodeTmp.Delete;
    end;
end;

procedure TTreeIETypefrm.tvTypeDblClick(Sender: TObject);
begin
  inherited;
  //BtnOk.Click;
end;

procedure TTreeIETypefrm.tvTypeKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if key = VK_Return then
    BtnOk.Click;
end;

Function TTreeIETypefrm.GetXname:string;
begin
  result:=tvType.Selected.Text;
end;

Function TTreeIETypefrm.GetXCode:string;
begin
  result:=trim(sCode);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -