本人刚学delphi,现有几个问题想请各位高手帮忙。有高分相送(200分)

  • 主题发起人 主题发起人 yunfan820104
  • 开始时间 开始时间
Y

yunfan820104

Unregistered / Unconfirmed
GUEST, unregistred user!
一、我现在设置了一个计算列如c,它的计算值为 a * b ,如何设置当a或 b修改时
c的值会自动改变呢?它的计算关系a * b =c,应在哪里设置(是否要写代码)
二、我现在想在所有记录下再增加一行(如最后一行),例如:
id shuliang jiner
1 10 12
2 1 30
3 12 10
合计 23 52
  如何实现呢?
 
select id,shuling,jiner,shuling*jiner as total from table_name

合计一般使用DBGRIDEH就行啦,合计一般不是使用SQL语句实现的。
 
用什么控件?
 
第一个问题什么意思?
你修改了a or b,需要重新调用
您写的那个计算式,写成函数可以!
2,你把查出来的数据放到一个
stringgrid里面,最后在在StringGrid
里面添加 合计 23 52
最后可以实现如下
id shuliang jiner
1 10 12
2 1 30
3 12 10
合计 23 52

接可以了!
 
一、如果用得多的话可以用一个类来实现,在类定义中定义自已的CHANGE过程,使C=A*B
二、可以先计算出合计值,然后再添加进行,DBGRIDEH我没有用过,你试试吧,应该不难
 
我的意思很简单,就是将c的值等于a*b显示给用户看,但不存入数据库中,还有一个条件时
当修改a 或b时,也要同时看到c新的值。您的意思是要写代码来完成吗?有没有别的方法
 
我来总结一下:第一个问题是设置好计算列后,在改变a或b列时,在changed事件时写代码
第二个问题,是在DBGRID的中增加一行,各位高手是这个意思吗?
 
1、用计算字段c, 在AdoQuery的OnCalcFields事件里写计算公式:
FieldByName('c').AsFloat:=FieldByName('a').AsFloat*FieldByName('b').AsFloat;
2、用新控件EnLib
 
select id,shuling,jiner,shuling*jiner as total from table_name
 
开始发分!!!!!!!!!!!!!谢谢
 
把要返回的数据集放到一个临时表中。分两步,(1)把数据插如临时表
(2)在临时表的最后,插入计算所得的合计值。
注意:临时表id字段设为varchar型!
 
开始发分!!!!!!!!!!!!!谢谢
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
896
SUNSTONE的Delphi笔记
S
D
回复
0
查看
865
DelphiTeacher的专栏
D
后退
顶部