关于TDBGrid简单的显示问题,请熟手指教!(100分)

  • 主题发起人 主题发起人 lanfeng
  • 开始时间 开始时间
L

lanfeng

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用TDBGrid来显示如下格式的窗口?
AA BB
CC
DD EE
FF GG
其中第一行和第二行的第一列都是AA,但希望第二行的AA就不要显示了。
 
智能化?
自己写一段代码将数据倒到新库中就行了。
 
htw的方法可以考虑,建议用kbMemTable控件,其中的CreateTableAs方法,可以为你创建一
个与原表结构一模一样的内存表,包括Lookup字段,然后将需要的数据导入到内存表,任意
编辑,此控件可到凌云天地下载2.23版
 
那你就不要用DBGrid了,你用StrGrid吧,你会很好控制。当然,若你只这么一个要求,你
可以写在程序中,将该字符清除掉。
 
没有这个必要,那样就破坏了数据的完整性,不是个好现象
 
用DBGrid不能实现,如果你非要实现这样的功能试一下第三方控件
 
用DEVEXPRESS系列控件
http://delphibig.home.sohu.com/control.htm
功能多的无法想象
因为太庞大未使用过只看过DEMO挺好的
可以实现你的要求
 
没意义的做法,同意lee_dragon,会破坏了数据的完整性
 
如果你只要显示,可以在OnDrawColumnCell事件中写代码就是了,用一个变量纪录这一列的
当前值,如果相同则用DBGrid->Canvas把此格清空就是了。
 
你难道不想它可以折叠?
:)
 
还要这么复杂,如果还有多列需要这样的话,最好找其他控件,但我用过DevExpree控件
(好像有两个,一个是单表的,一个是主从表的),但都复杂有余,简洁不足,我个人不
太喜欢它的界面。或者有时间,干脆用StringGrid写代码也可以。
 
同意Lee-Dragon的说法,在TDBGrid中这样显示不好吧,或者你可以把AA作为一个表
的名字用Label显示,表示一下纪录都是AA的
 
我和hawy 的看法一致
可以在OnDrawColumnCell事件中写代码,用一个变量纪录这一列的
当前值,如果相同则用DBGrid->Canvas把此格清空就是了。
但在自画的过程中需要用drawtext(),这是一个API函数
具体用法查询DELPHI帮助
 
DEVEXPRESS系列控件中的dxDBGrid是非常好,
已是我们的标准栅格控件,
但也无法实现这个,
这个设计并不科学
 
用stringgrid自己控制
 
关于如何显示才算好,是见仁见智的,我自己觉得vb的flexgrid所产生效果的是十分简洁、
清爽的,我看过很多BCB的控件都没有这种做法,其实这应该比DEVEXPRESS的做法编起来应
该简单一些的。
 
建立一个计算字段,在ONCACULATEFIELD写
IF TABLE1['AA']='cc' then table1['bb']:=''
else table1['bb']:=table1['cc']
 
多人接受答案了。
 
后退
顶部