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

  • 主题发起人 fanxin119
  • 开始时间
F

fanxin119

Unregistered / Unconfirmed
GUEST, unregistred user!
我的DBGridEh控件和数据库绑定了,现在想让它在显示的时候,某行某列不显示为数据库里的值,而显示成空值,该怎么办啊?(这里并没有改变数据库里的值,而只是让DBGridEh控件在界面上显示为空值)
 
在数据源控件的OnGetText事件里写代码 。
 
to:zbr :我用的数据控件是adoquery,里面并没有你说的那个事件啊 ,还有,让DBGridEh显示为空的代码大概怎么写啊?能不能稍微具体些 谢谢了
 
你要在ADOQuery里增加字段啊 。
 
在ADOQuery里增加字段?什么意思?我水平不高,别见笑啊 呵呵 能不能解释清楚点?拜托
 
你双击ADOQuery控件,就会弹出一个框,然后右击 。
 
to:zbr,首先谢谢你的及时回答啊 呵呵 你说的那个我找到OnGetText了,但是还不怎么会用,还要研究一下 呵呵,我只是想实现这么个功能,看看您能不能帮我解决:我现在其实就是想比较adoquery中的两条记录的某个字段值是不是相同 该怎么比较啊?呵呵 比方说如果两条数据的用户名相同的话,那么第二条数据的这个用户名就不用显示了 ; 我不太清楚这个比较是应该在adoquery上做还是在DBGridEh上做,而且我不知道该怎么定位到想要操作的某行某列上。。。。。 郁闷!
 
你的意思是如果两条记录某个字段值相同的话,就显示一个即可? 或者说合并即可? 是这个意思吗?
 
应该不是合并,比方说每条记录有10个字段,前面的6条都是用户信息的字段,后面4条是别的信息,那么我想做的是如果数据库里面的记录中的用户名相同的话,那么他们的前面6条用户信息都只显示一次就可以了,因为这些用户信息都应该是一样的,但后面的4个字段的内容可能不一样,就需要显示了
 
用户名列 A列 B列 C列
---------------------------------------
张小林 001 002 003
002 008 007
----------------------------------------
左伟 125 587 007
----------------------------------------
 
这样对吧 。
 
to zbr:对的 就像你写的那样 如果第二个张小林和左伟的A列也是001,那么张小林的A列在这里也不显示,但左伟的要显示,呵呵 就是这个意思。我该怎么操作啊?大侠?
 
你想让哪个字段显示空白,就在该字段的ONGETTEXT中加入:
text:='';
 
问题是我该怎么定位到这个位置上来让它为空啊,大哥
 
把你准备合并的列的HideDuplicates属性改正为True 。
 
可能Grid关联的数据源控件的查询语句要排序 。Order by 。
 
to zbr :你说的这个方法我都试验过了,但是会有问题,就是一旦用这个属性,它就会对郑列起作用,而不是能按照用户来分的,比方说你上门那个例子,如果左伟的A列也是002,那么由于他上一条记录张小林的A列也是002,此时就会导致在左伟这一行记录上的002也不显示了,所以比较郁闷 呵呵
 
to zbr :你说的这个方法我都试验过了,但是会有问题,就是一旦用这个属性,它就会对郑列起作用,而不是能按照用户来分的,比方说你上门那个例子,如果左伟的A列也是002,那么由于他上一条记录张小林的A列也是002,此时就会导致在左伟这一行记录上的002也不显示了,所以比较郁闷 呵呵
 
还有你说的这个要排序,应该在sql里怎么排阿?能实现不 ?
 
呵呵,这种情况我以前处理过,用的是 DrawGrid, 就是将数据先复制到数组里,在绘制的时候拿当前行的数据与前一行作比较,如果相同则不显示。但使用DBGRID就不会了。
 
顶部