DBGridEh控件简单的问题请详细回答,谢谢!(100分)

  • 主题发起人 主题发起人 xuejinlong
  • 开始时间 开始时间
X

xuejinlong

Unregistered / Unconfirmed
GUEST, unregistred user!
这个问题我问了好多次了,分都快没了,可是每次高手们都是寥寥几句,看的小弟是懂非懂。
结果问题依然没有解决(实在是够笨吧),如果那位好心的朋友会,希望能够详细一点的说明,谢谢!
有表如下

Z A B C

100 9 11 10
50 7 12 3

我用SQL选出的结果集如下(TQuery)

Z A Aper B BPer C CPer

100 9 9 11 11 10 10
50 7 7 12 12 3 3


现在想用DBGridEh显示为如下效果

总人数 A人数 A比例 B人数 B比例 C人数 C比例
100 9 9% 11 11% 10 10%
50 7 14% 12 24% 3 6%

(合计)150 16 10.67% 23 15.33% 13 8.13%
如果用我的结果集(TQuery),应该如何设置DBGridEh的相应属性,在什么地方添加代码(举例)。

如果可以用其他的方法,请指点(详细一些)。

 
你的意思不是很清楚!
是不是要问SQL啊?
用select z as 总人数,A as A人数,................
这样就可以在dbgrid中的标题上显示汉字了!(代替字段名)
然后将dbgrid关联到datasource(它的dataset设为相应的query就可以了)
是不是啊?
 
不好意思,看错了!是DBGridEh啊,呵呵!
没用过!

帮你提前一下吧!
 
DBGridEh和dbgrid有什么区别?
 
用过DBGridEh的朋友请指点!谢谢
 
你可以看一下DBGRIDEH的例子呀
想显示合计,主要是设置FOOTERS
要不我发个例子你
 
刚装上你那个控件,帮你试一下
 
DBGridEh有dbgrid的所有属性方法,多出的好像是可以直接打印。1年前用的东东快忘光了。使用方法同哈利伯特。
 
是不是只想显示合计啊,在footers 属性里有个values,选择sum就可以了
 
这个倥件没用过,
up
 
重画DBGRIDEH的FOOTER,实现FOOTER中显示合计数
 
我问过几次,大家的回答都是寥寥几句,不知是觉得简单还是根本就不会。
其实如果按我所选出的结果集显示,对于比例列的显示并不难,写OnGetText就可以了。

关键我不会的是合计那一部分的比例值计算应该如何实现和显示?
希望用过的朋友能详细的指点一下
Email : xuejinlong@163.net
 
例子已发,你看看
 
比例的计算和显示勉强实现:
取总人数,a:=strtoint(DBGridEh1.Columns[0].Footers.Items[0].Value)
取a人数,b:=strtoint(DBGridEh1.Columns[1].Footers.Items[0].Value)
计算A比例:DBGridEh1.Columns[2].Footers.Items[0].Value := Format('%4.2f%s',[a/b*100,'%']);
不知道简单的方法!!!
 
这些代码应该放到那个过程里比较合适呢?
并且DBGridEh1.Columns[1].Footers.Items[0].Value 我读出来的都是空的呀(显示的有数据)。
 
我先试试。
以前搞过。
 
装个Inforpower3000,它的wwdbgrid中有这功能。
 
不好意思,我试了一下如果valuetype不是fvtStaticText的话只有在ONGetFooterParams中的TEXT取出值
(个人认为),
if Column.Title.Caption = '总人数' then
b := strtoint(Text);
if Column.Title.Caption ='A人数' then
a := strtoint(Text);
在form的onActivate中加入:
DBGridEh1.Columns[2].Footers.Items[0].Value := Format('%4.2f%s',[a/b*100,'%']);
试试!!!
 
谢谢“编程初学者”的提示,在ONGetFooterParams中的TEXT先取Z的合计值,然后根据每个
Text算然后更改Text就行了,没必要都保存,我原来没有先读取Z的值,所以每次都是‘’
当然不能计算啦!
 
后退
顶部