百元大奉送!关于TdbGrid中列向(纵向)求和并显示的问题。(100分)

  • 主题发起人 主题发起人 北斗星
  • 开始时间 开始时间

北斗星

Unregistered / Unconfirmed
GUEST, unregistred user!
如能解决此问题!即有百元奉送!!!!
问题:
如有一个数据库:
No(编号) Name(名称) Number(数量) UnitPrice(单价) Total(合计)
1 甲 10.00
2 乙 20.00
3 丙 30.00
其中:Number和Total为计算字段,通过 Unitprice(单价)*Number(数量)求得Total.
现需要在TdbGrid中所有记录的Total的纵向和(如下):
No(编号) Name(名称) Number(数量) UnitPrice(单价) Total(合计)
1 甲 5 10.00 50
2 乙 6 20.00 120
3 丙 7 30.00 210
合计 380
请问如何实现?
另!表中的NO(编号)如何动态自动添加(按Name索引)?


 
可计算前可以先让dbgrid的active属性为false
例如所用的数据库为table1则:
table1.fieldbyname('total').float:=table1.fieldbyname('number').float*table1.fieldbynae('unitprice").float;
然后再将dbgrid的active属性改为true
如此类推将库中记录一条条修改
应该是这样的吧,我没有试过,或许table后的属性不是float可能是其它的
 
直接用SQL语句我是做不出来。
试试用临时表,一定可以,就是麻烦点。
 
写sql语句,放到query中open。用dbgrid连。
select no as '编号',name as '名称',number as '数量',
unitprice as '单价',nmuber*unitprice as '合计'
from Mytable
where MyContraints --没有限制条件就去掉此行
union
select '','合计','','',
(select sum(total) from MyTable
where MyContraints) --没有限制条件就去掉此行
>>另!表中的NO(编号)如何动态自动添加(按Name索引)?
没搞懂你什么意思!
 
添加一个计算列不可以吗?
 
添加一个计算列最方便,双击dbgrd,然后看着办
 
添加一个计算字段怎么样?
 
Total列用计算字段,然后合计可以考虑用ClientDataSet的Aggregates属性,如果再配合
IP3000里的wwDBGrid,可以将合计显示在Grid的Foot里,一目了然。
 
用Dbgrideh控件。不要写一行代码。就能完成你要的功能。
 
同意楼上,用dbgrideh吧,好极了。
 
哪有Dbgrideh?
 
增加计算字段即可,根本不用什么控件,太麻烦。
 
添加计算字段,-reordno
 
同意ganquan和ricro_cocky的意见
 
哪里有Dbgrideh控件,告知即送上积分!!!!
 
http://www.51delphi.com/ 的Ehlib 2.2
 
嗨!哥们说详细点
 
谁有这个例子的代码,我也希望知道!
 
delphi 窑洞 有。
 
后退
顶部