treeview自动从表中添加标题和列值做目录的方法2

treeview自动从表中添加标题和列值做目录的方法2,该方法是借鉴万一老师的

http://www.cnblogs.com/del/archive/2008/05/15/1114450.html

首先界面上添加treeview组件,然后在treeview的onchange事件里这样写:

因为要用到定义个过程,需要在接口声明里引用


  private
    { Private declarations }

    /// <summary>
    /// 刷新左侧treeView
    /// </summary>
    procedure RefreshLeftTree(Sender: TObject);
  public
    { Public declarations }
  end;


procedure TForm3.RefreshLeftTree(Sender: TObject);
var
  i: Integer;
  node: TTreeNode;
  List: TStringList;
  s,fieldName: string;
begin
  //刷新前全部清空原来的列表
  TreeView1.Items.Clear;
  {建立 List}
  List := TStringList.Create;
  List.Sorted := True;           {指定排序}
  List.Duplicates := dupIgnore;  {避免重复}

  {把数据加入到 TreeView}
  for i := 0 to frmDataPool.qry需要做的事.FieldDefs.Count - 1 do
  begin
    fieldName := frmDataPool.qry需要做的事.FieldDefs[i].Name;
    if not ‘ID说明附件事情‘.Contains(fieldName) then
    begin
      node := TreeView1.Items.Add(nil, fieldName); {字段名}
      {为避免数据重复, 先把数据给 List}
      List.Clear;
      frmDataPool.qry需要做的事.First;
      while not frmDataPool.qry需要做的事.Eof do
      begin
        List.Add(frmDataPool.qry需要做的事.FieldByName(fieldName).AsString);
        frmDataPool.qry需要做的事.Next;
      end;
      {把 List 中的数据加入到 TreeView}
      for s in List do
      begin
        TreeView1.Items.AddChild(node, s);
      end;
    end;
  end;
  List.Free;
end;

且增加新记录后也要刷新下目录才合理

procedure TForm3.Button3Click(Sender: TObject);
begin
Form4.ShowModal;//showmodal可以确保这个窗口关闭后才执行下一步
//增加后刷新下
RefreshLeftTree(Sender);
end;

onchange的触发事件代码:

procedure TForm3.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
  if Node.Parent <> nil then
  begin

    {下面的 Filter 其实就是 SQL 查询语句, 如果用其他数据库替换就是}
    frmDataPool.qry需要做的事.Filter := Node.Parent.Text + ‘=‘‘‘ + Node.Text + ‘‘‘‘;
    frmDataPool.qry需要做的事.Filtered := True;
  end else frmDataPool.qry需要做的事.Filtered := False; {选字段名时取消过虑}
end;
时间: 2024-12-23 16:07:33

treeview自动从表中添加标题和列值做目录的方法2的相关文章

SQL将一个表中的某一列值全部插入到另一个表中

1.  SQL将一个表中的某一列值全部插入到另一个表中 插入的话: insert into a(col) select col from b; 更新的话: update a set col=select col from b where a.id=b.id; 判断表是否存在数据库中,存在就删除 if exists (select * from Sysobjects where name='temp') begin drop table temp end

02-SQLlite3之alter:在已有的表中添加、修改或删除列

alter table语句 用于在已有的表中添加.修改或删除列 原始表: 一.alter在表中添加新的列 语法:alter table table_name add column_name datatype 注意:sqlite3中alter不支持删除列的操作 注意:sqlite3中alter 不能更改一个已经存在的字段的名称.数据类型.限定符等等 二.alter修改表名 语法:alter table 表名 rename to 新表名;

使用MySQL Workbench建立数据库,建立新的表,向表中添加数据

初学数据库,记录一下所学的知识.我用的MySQL数据库,使用MySQL Workbench管理.下面简单介绍一下如何使用MySQL Workbench建立数据库,建立新的表,为表添加数据. 点击上图中的“加号”图标,新建一个连接, 如上图,先输入数据库的账号密码,帐号默认为root,填好密码后 点击“OK”,连接就建立好了,建立完成后,会出现一个长方形的框框,双击它,出现下图所示页面 点击图中的红圈里的按钮,新建一个Schema,即数据库(个人理解..),修改一下Name 的值,如  mydat

向SQL Server 现有表中添加新列并添加描述.

注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先附上存储过程然后解释) 代码 /********调用方法********** 作用: 添加列并添加列描述信息 调用: exec [SetColumnInfo] '表名', '列名', N'列说明,描述','列类型{默认:NVARCHAR(50)}','列默认值{默认:NULL}' *********

在数据表中添加一个字段的SQL语句怎么写

如果要在数据表中添加一个字段,应该如何表示呢?下面就为您介绍表添加字段的SQL语句的写法,希望可以让您对SQL语句有更深的认识. 通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数 增加字段: alter table [表名] add 字段名 smallint default 0 增加数字字段,整型,缺省值为0 alter table [表名] add 字段名 int default 0 增加数字字段,长整型,缺省值为0

如何将一个表中个某一列修改为自动增长的

昨天有位学生问我“一个表已经建好了,能不能将里面的一个字段改为自动增长?”,“能,但没有必要去修改它,应该在建表的时候就设计好” 我说. 这时候他和另一位学生 讨论起来.他觉得可以,另一位试过说不行.因为他们不是我带班级的学生,他们也咨询了自己的老师,所以我没有再发表意见. 需求: 如何将一张表中个某一列修改为自动增长的. 解答: 1)  情景一:表中没有数据, 可以使用 drop column然后再add column alter table 表名  drop column 列名 alter

MATLAB二维绘图(二)向图中添加标题,坐标轴,图标和文字信息

MATLAB二维绘图(二)向图中添加标题,坐标轴,图标和文字信息 1.添加标题.图例.x轴信息和y轴信息,示例: %% 添加标题 clear; clc; close all; x = 0:0.1:2*pi; y1 = sin(x); y2 = exp(-x); plot(x, y1, '--*', x, y2, ':o'); xlabel('t = 0 to 2\pi'); % 添加x轴信息 ylabel('values of sin(t) and e^{-x}') % 添加y轴信息 e^{-x

解决向表中添加中文数据报错的问题

可能有人在往表中添加数据时会遇到这类报错 django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE9\\x9A\\.................. 以下是亲测比较有效的解决方案 mysql版本:5.6 网传向DATABASES中添加 实际上效果并不明显,当然我也在此之后删表重建过了. 然后就只能另辟蹊径了 在这里看出character_set_database默认编码方式是拉丁文而不是utf8 所以接下来需要配置

[转]mysql 从一个表中查数据并插入另一个表实现方法

不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段. 本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中.此方法对于SQLServer数据库,也就是T-SQL来说,同样适用 . 类别一. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO 目标表 SELECT * FROM 来源