读书人

dbGridEh怎么行增加算的

发布时间: 2012-10-12 10:17:04 作者: rapoo

dbGridEh如何行增加算的
如.
例如: 行中有表中取出的, 量, 如何令到程序行自生成一, 其容*量?
AdoQuery行增加算位也行, 前是不需要在把所有位都加到程序中去.

[解决办法]

[解决办法]

Delphi(Pascal) code
你在SQL中写就可以了哦。adoquery.Close();adoQuery.Sql.Text := 'select *,*量 as 总金额 from table1';adoQuery.Open();
[解决办法]
运行时自动生成,要生成所有要显示的字段,并不是只增加1列
1.设计时全部加进来
2.运行时动态全部添加(字段多的话,类型也会很多,就会觉得很麻烦)
3.全部不指定通过SQL语句有多少列就显示多少列

2)动态添加就像下面这样,主要就这几个属性要设置
var F:TField;
bein
F:=TField.Create(self);
F.DataType:=
F.FieldKind:=
F.FieldName:=
F.Size:=
ADOQuery.Fields.Add(F);
[解决办法]
DBGridEh也是一样的,做成循环添加

with DBGridEh1 do
begin
Columns.BeginUpdate;
Columns.Clear;
for i:=0 to 10 do
begin
Columns.Add;
Columns[i].FieldName:='F'+IntToStr(i);
Columns[i].Title.Caption:=Columns[i].FieldName;
Columns[i].Width:=80;
end;
Columns.EndUpdate;
end;
[解决办法]
有多种办法的。
1.用2楼的办法解决,在显示记时就直接记算了。但是这样显示的记录不能做修改。
2.在数据集中增加一个计算用的栏位,然后用数据集的OnCalcFields事件来写计算代码,这种呢,就可以修改单价和数量后自动计算金额。但是计算出来的金额不会存到数据库中。
3.如果又要自动计算,又要储存计算后的金额到数据库的话,在数据表中就要有个栏位,然后在输出控件DBGridEh1中写相应的数量和单价的值输入后要执行计算的代码。

第三种实现的方法有多种。

原理就是这样。
[解决办法]
首先获取字段名、字段类型、字段长度、显示长度、显示标题、是否关联、是否主键、关联ID等,这些可以用xml的形式保存下来或者写成控件,然后界面上去解析对应的字段

读书人网 >.NET

热点推荐