计算字段的动态添加(100分)

  • 主题发起人 主题发起人 春风江南
  • 开始时间 开始时间

春风江南

Unregistered / Unconfirmed
GUEST, unregistred user!
我想通过一个输入框添加一个临时字段名,且这个字段的数据值由其他字段计算的来。
计算公式也有自己定义。怎么实现哪?
 
多种方法,最简单的可以在程序中直接实现
如:editrel.text:=IntToStr(StrToInt(edit1.text)-StrToInt(edit2.text));
也可以在TDataSet数据集中定义计算字段,双击数据集控件,如TTable出项字段编辑器可以定义。
 
比如这个表达式table1de.Value:=table1population.value/table1area.value;
其中de就是自定义的计算字段,能否用一个edit实现。
还有de这个名字不用字段编辑器,而用程序实现,因为我要用户自己输入字段名啊。
 
我想多问一句,既然是计算字段,用户输入有什么意义吗?
 
我想让用户自己添加想实现的表达式,不想让设计者定死。
 
用列表框选择字段和关系(+-*/…)
根据选择情况写SQL
update table
set usrfield = dbset.fields.fieldbyname("infield1").value * dbset.fields.fieldbyname("infield2").value
 
下面是动态创建计算列的函数
procedure CreateField(DataSet: TDataSet, FieldName: String);
var
Field:TStringField;
begin
Field:=TStringField.Create(DataSet);
Field.Calculated := True;
Field.FieldName := FieldName;
Field.Index := DataSet.Fields.Count;
Field.DataSet := DataSet;
end
 
后退
顶部