怎样在程序中动态添加计算字段(100分)

  • 主题发起人 主题发起人 wangrui
  • 开始时间 开始时间
W

wangrui

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个成绩单,我想在程序中动态添加一个总分的计算字段,应该怎样做呢?
 
问题不够明白!这是对自己和别人的不负责的问题!浪费人家时间!
 
在程序中不能动态添加计算字段,只能在设计阶段进行添加
 
有一个 Table 如下,有三个字段

姓名 数学 英语

张三 80 80

李四 90 70

当用户单击一个按钮后,动态添加一个总分的计算字段,如下

姓名 数学 英语 总分

张三 80 80 160

李四 90 70 160

再单击另一个按钮,动态添加一个平均分的计算字段,如下

姓名 数学 英语 总分 平均分

张三 80 80 160 80

李四 90 70 160 80

现在大家明白了吗?
 
不能动态实现计算字段。只能变通一下。
如果仅仅是查询显示,可以用Query,写SQL,很简单。
如果要实时实现,可以在设计时添加这两个字段,在OnCal...(记不清了)事件中
根据需要进行计算(可以用一个Boolean表示),和显示
 
举个例子吧.
例如一个表里头有如下字段:a.ccc,a.bbb.可用sql解决:
select a.ccc,a.bbb,a.ccc+a.bbb as a.ddd.
其中,a.ddd字段是动态添加的
 
使用计算字段,很简单的!
 
一般显示都是用TQuery类实现,所以组合TDBGrid类,达到你的要求确实就很简单了,各位不要怪我罗嗦:
1.Q='select 姓名, 数学 , 英语 from your_table '
2.Q='select 姓名, 数学 , 英语 ,数学 + 英语 as 总分 from your_table '
3.类似
TQuery.SQL.Add(Q)可改变查询结果,因为TDBGrid可随你的TQuery的变化而变化,所以你看,就是这么简单。

 
你在设计阶段建立两个计算字段,把他们的Visable设为false,然后在程序运行时动
态设置visable的值。
 
select field[1]+field[2]... as 总成绩 from table
 
补充:
不够明白,
“总成绩”就是你要的新字段。
 
Sql完成它可能会更好一此。
因为您可以动太生成它,
而且还可以做成交互式的,由用户决定他要查总分,还是平均分。
 

应在设计期想好。 简单!

不要在运行期创建。多此一举!
 
在数据库中最好各个字段间不要有直接的联系,你的问题便属此例,何不用EDIT控件来实现多简单。
 
select (数学+英语) from table1
 
接受答案了.
 
后退
顶部