关于数据显示的问题!! 请进来

learnall 2004-12-16 09:39:58
请问我如何将数据库中字段值进行计算后 显示在Grid中

比如:tmp
id Price1 Price2.....
1 10 20
2 12 23
3 9 18

我想显示的值为 price1*1.2 Price2*1.4 该怎么写呀?用什么事件可以在显示之前将值进行计算,然后再显示 (最好能举个 TcxGrid 的例子)

ADOQuery1.sql.add('select * from tmp');
ADOQuery1.active:=True;
.......
...全文
66 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rcyboom 2004-12-16
  • 打赏
  • 举报
回复
var
i:integer;
begin
with table1 do
begin
first;
while not eof do
begin
i:=i+fielvaulebyname(['dd']);
next;
end;
end;
lable1.caption:=inttostr(i);
end;
rcyboom 2004-12-16
  • 打赏
  • 举报
回复
如果已经有数据源并且想计算的话
要么用sql在选择(在中间计算)一遍
要不可以循环一下
with table1 do
begin
table1,first;
while not eof do
begin
end;
rcyboom 2004-12-16
  • 打赏
  • 举报
回复
dbgrid只是负责用表格显示数据并和数据源保持联系
你如果想改变其中显示的值或者字段名,最好用query的sql中的select语句选择并生成一个数据
源,那样你想显示什么内容都随便你。
改变字段名称有几种方法:
一、如果你知道并且认定你需要显示的一定不会在将来改变的话,你可以在设计期改变dbgrid的
列标题,好象是什么coum。。的,记不住了。可是那样有很大的局限性,也就是将来不好改变或者
一旦字段名称该了就会报告没有这个字段的错误,也就是在设计期就已经把列标题(包含里面的数据)
和表内容绑定了。那样程序一旦运行就不好改变了(至少目前我还没有找到比下面更好的方法)
二、采用下面的方式:
select name1 as myname form table1.
name1为字段名,myname为你想要显示的列标题。注意在设计期最好把dbgrid中所有的字段设置取消,
也就是看起来只有一行一列的样子。
如果你要计算的话,用下面的方式
select (name1*0.2+name2)*name3 as myname form table1.
learnall 2004-12-16
  • 打赏
  • 举报
回复
id Price1 Price2 name
1 10 20 aa
2 12 23 bb
3 9 18 cc

如果name 是字符串 我想 在name 前加个 "_"
这样显示: _aa
_bb
_cc
该怎么写呢?
learnall 2004-12-16
  • 打赏
  • 举报
回复
比如 Cate1(Prise1)
其实 我还想知道 控制 Grid的一些知识 呵呵

求解呀~~~
learnall 2004-12-16
  • 打赏
  • 举报
回复
如果 我要调用一个计算的函数(自定义的函数) 对字段进行计算呢? 该怎么写?
YOHOYOHO 2004-12-16
  • 打赏
  • 举报
回复
呵呵,sql语句就可以直接计算的,你和原来一样掉用sql语句就行了,让数据库去做计算
bmwyc 2004-12-16
  • 打赏
  • 举报
回复
楼上正解。要么用计算字段动态生成也行!
qiujsh 2004-12-16
  • 打赏
  • 举报
回复
ADOQuery1.sql.add('select ID,Pirce1*1.2,Price2*1.4 from tmp');
ADOQuery1.active:=True;

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧