|

楼主 |
发表于 2008-9-4 14:51:56
|
显示全部楼层
以下代码是在业务信息里的一个函数里实现的
'freefield 是数据集的ID ,“自由项”是数据集的显示名称
公式设置的自动添充为“状态”
当运行到计算那块时提示如下错误:
“运行系统初始化时侯发生异常,符号“freefield.fstate”没有定义。类型:EEXPR”
var
lExpression: string;
lDataField: TDataField;
lBizParam : TBizParam ;
lFuncs: TList;
AFields:TStringList;
lExpr: TBizExpr;
lreturn: Variant;
begin
AFields:=TStringList.Create ;
AFields.Add('freefield.FFREECNAME=自由项.计算表达式');
AFields.Add('freefield.FSTATE=自由项.状态');
lFuncs:=TList.Create;
try
BizExpr.ExprFunctions.Get(lFuncs,nil,true);
lExpression := DataSetfreefield.BizFieldByName('FExpr').AutoFillDef.Expression.Text;
if BizUtils.EditExpression(AFields , lFuncs, lExpression, nil) then
begin
DataSetfreefield.BizFieldByName('FExpr').AutoFillDef.Expression.Text := lExpression;
lExpr:=TBizExpr.Create(Context);
try
lExpr.Text :=lExpression;
lreturn:=lExpr.Calc ;
DataSetfreefield.Edit;
DataSetfreefield.FieldByName('FExpr').AsString := variants.VarToStr(lreturn);
finally
lExpr.Free ;
end;
end;
finally
lFuncs.Free;
end;
AFields.Free ;
end; |
|