请问hubdog先生,我在你的葵花宝典里看见如何做多层表头的DBGrid,但是我按照上面的方法做不出来,有谁也做过???(100分)

  • 主题发起人 主题发起人 葬月
  • 开始时间 开始时间

葬月

Unregistered / Unconfirmed
GUEST, unregistred user!
根据葵花宝典
1.建立TclientDataSet的抽象字段:
设置为 ftADT 基本信息和工资作为两个抽象字段,
2.将两个字段分别命名为INFO和Salary。
3.然后依次建立INFO字段和SALARY的子字段,
4.单击对象观察器的ChildDefs,
进入子字段编辑器,
依次输入该字段的子字段。
5.然后调用TclientDataSet的快捷菜单
(鼠标点击TclientDataSet控件,然后右击鼠标)
CreateDataSet建立CDS数据表,并保存文件。
6.最后建立TClientDataSet的永久字段,
TclientDataSet的快捷菜单,选择ADD All Fields。

7.在设置完ClientDataSet之后,
需要设置DBGRID的显示属性。
主要就是设置Colums的有关属性(略)。

我按照你的方法所做,但是出不来

3步骤:我怎么建立子字段,是不是直接写数据库里的字段名???
我是直接写字段名的
5步骤:我找不到CreateDataSet,点击TclientDataSet控件,右击鼠标
我没有看见CreateDataSet 只有一个Save to File 我保存了
7步骤:设置Colums的有关属性(略)。请问略掉什么??是不是因为略掉了,
我才做不出来??
谁知道的话也告诉我,




 
用第三方控件吧
 
坚决不用, 我可不懒
 
是因为你没有CreateDataSet吧,我这可以用啊
可惜只有表头,没有数据
 
我怎么CreateDataSet???
当我的 ClientDataSey:=true后 就没有CreateDataSet这个选项了
 
你加了INFO和SALARY字段后,就可以CreateDataSet了啊
 
我也没有做出来!
 
呵,刚看了一下,感觉怪怪的啊。。。

还有图上的DBGRID看上去不像是DBGRID啊。。怎么像是EH??
 
1.新建一工程。
2.在FORM1上放一个ClientDataSet,一个DataSource,一个DBGrid,设置好它们之间的关系。
3.选中ClientDataSet,在属性编辑器中按FieldDefs属性,加入两个字段:INFO, SALARY
设置它们的DataType属性为ftADT.
4.选中INFO字段,在属性编辑器中按ClildDefs属性,加入几个子字段,设置它们的DataType
属性为ftString
5.同样为Salary字段加入几个子字段
6.在ClientDataSet上按右键,选择CreateDataSet菜单。
7.在属性编辑器中设置ClientDataSet的Active属性为True。
8.在DBGrid中应该可以见到结果了。
 
To liuyan:
按照你的做法,是出来了 但是这时候我让 ClientDataSet Add All Fields
程序说INFO, SALARY 字段未找到????
 
to 葬月:
你把原来的ClientDataSet删了,重新放一个就好了,或者把ClientDataSet中的字段清除掉。
 
我写了个Demo,你要的话就留下邮箱.
 
我不知道删过几遍ClientData了
To liuyan:
xhyph@163.com
 
To liuyan:
你给我的东西我打不开,用winrar也打不开
 
用WinRAR 3.0打开
 
我没有3.0 ,你没有winzip吗?
 
发了一个ZIP文件
 
To liuyan:
大哥,你的程序不能编译,
其实我那个多层表头出的来的,但是出来后没有数据
这时候我想 Add All Fields 就出错,
我的顺序是这样的,你能否按照我的顺序来一遍
1.建立个服务端
2.建立客户端, 并添加 ClientDataSet1 ,DBGrid1,DataSource1
3.设置好三者的关系
4.在ClientDataSet1里的Commandtext添加 'Select * from mypower'
我的数据库表是mypower
表结构中有两个是 姓名 和 Email
我想把它们归为 个人信息
5.ClientDataSet1的FieldDefs里添加 ftADT的个人信息
6.在个人信息的ChildDefs里 添加 姓名 和 Email (ftString)
7.鼠标右击ClientDataset1, 这时候有 CreateDataSet,点击
8.这时候出来多层表头,但是没有数据, 这时候ClientDataSet1的Active 自己变成true
9.这时候我双击ClientDataSet1 Add All Fields
10.提示说 个人信息Field找不到 这时候就全乱了
谁告诉我错在哪里???
 
to 葬月:
1. 我不知道为什么我的程序在你那无法编译
2. 关于多层表中没有数据的问题,我的理解是,用ClientDataSet设置FieldDefs并进行了
CreateDataSet之后,是在内存中创建了一个本地表,而这个表是空的,它和你从服务端
取回来的Mypower表的结构是不一样的,所以会有错误提示
3. 我发给你的程序中,是用了 2个ClientDataSet,一个用来进行多表头显示,另外一个从
服务端取回数据,然后在代码中将其的字段值赋给用来显示的ClientDataSet的相应字段
4. 在创建多表头ClientDataSet的字段时,要注意为每个ftADT字段添加子字段,且子字段的
数据类型不能为ftUnknown
5. 你可以再试一下,或者我发一个可执行文件给你。

sorry,我这的时间和你那刚好差12个小时,所以经常无法及时回复。
 
后退
顶部