有关DBGridEh控件的问题!(100分)

  • 主题发起人 主题发起人 fanxin119
  • 开始时间 开始时间
对阿 如果使用别的控件那也还行,可现在用这个DBGridEh,我也不会了 呵呵
 
只设置用户列属性HideDuplicates为TRUE
SQL语句里用 SELECT * FROM TABLE ORDER BY 用户名
 
to madeagle:你说的这样的话,那么只能对用户名那一列起作用阿 ,可我还有其他的几列信息列也不显示出内容来,问题是在这里啊,比如 :
用户名列 A列 B列 C列
---------------------------------------
张小林 001 002 003
007
----------------------------------------
左伟 002 587 007
----------------------------------------
 
这个功能拿DBGRIDEH是完成不了的(除非有高人不辞辛劳给你改代码,呵呵),如果不涉及用DBGRID修改数据,只是显示的话
建议用STRINGGRID,直接往里写数据,写的时候加判断
 
要么给你出个主意,就是该用户的第一条记录用分隔符隔开,这样就没问题了
用户名列 A列 B列 C列
---------------------------------------
张小林 --- --- --- //这也是一条记录,变通一下
001 002 003
007
左伟 --- --- ---
002 587 007
 
to:madeagle 谢谢你啊 实在不行我先换换STRINGGRID试试看,如果不行的话再用你的第二个方法好了 呵呵 看来用DBGRIDEH是不行了啊 郁闷
 
你要达到的要求其实实现起来很简单,而且有很多种方法可以做到。
1、用ONGETTEXT方法(我知道你有多个字段要隐藏显示,一样可以做到,每个字段指定ONGETTEXT就可以了,代码只要一段)
2、用DBGRIDEH列(Column)的onDrawColumnCell方法,只要把要隐藏显示的字段位置用空白字符填充。
3、自定义一个ClientDataSet数据集,结构和原数据集ADOQUERY一样,然后把需要显示的数据复制到ClientDataSet中,然后在DBGRIDEH中显示。
以我的经验,我不建议你用StringGrid,你要求实现的功能如果是我偏向用方法 1,如果更复杂,则用方法3,方法2用于隐藏个别单元格好用。
 
to Tuatara:我也倾向于用第一种方法,但是我不知道用ONGETTEXT方法的时候, 怎么样才能定位到需要隐藏的那条记录上呢?比方说上面我说的那个例子:对张小林的B列两条相同的记录,如果能定位到第二条,而让第一条显示,第二条隐藏?呵呵 谢谢了
 
还有啊 刚才在程序上看了一下 好像没有发现DBGRIDEH控件上有那个ONGETTEXT方法啊?嘿嘿,我比较菜 别介意啊
 
ONGETTEXT在关联的DATASET的事件里写
 
我在我的数据集的属性里也没有找到ONGETTEXT这个属性啊,怎么回事
 
是字段的ONGETTEXT属性。。。
 
不好意思啊 我在DBGRIDEH控件里双击控件,在弹出来的字段里也没有找到这个ONGETTEXT属性阿,我该怎么找?谢谢了 还有 这个属性是直接控制DBGRIDEH控件在界面上的显示内容的吗?
 
不好意思 找到了 呵呵 我试试看阿
 
不行,那个必须要手动在adoqyery里添加固定字段才行,可我这里不能添加阿 一添加就说是验证失败,该怎么弄啊?
 
后退
顶部