在com+数据对象中,有adsmaster(master表), adscalmaster(calmaster表),adsdetail(detail表),adscaldetail(caldetail表)四个数据控件;
master表中的Calculated字段calfieldmaster取自calmaster表;
detail表中的Calculated字段calfielddetail取自caldetail表;
adsmaster和adsdetail已设定成巢状数据表,adscalmaster及adscaldetail都有相关设定;
adsmaster之oncalcfields编写以下程序以取值:
try
adscalmaster.parameters.parambyname(‘calfieldmastid’).value := dataset.fieldbyname(‘masterid’).value;
adscalmaster.active:=true;
dataset.fieldbyname(‘calfieldmaster’).value:=adscalmaster.fieldbyname(‘calfield’).value;
finally
adscalmaster.active:=false;
end;adsdetail之oncalcfields编写以下程序以取值:
try
adscaldetail.parameters.parambyname(‘calfielddetailid’).value := dataset.fieldbyname(‘detailid’).value;
adscaldetail.active:=true;
dataset.fieldbyname(‘calfielddetail’).value:=adscaldetail.fieldbyname(‘calfield’).value;
finally
adscaldetail.active:=false;
end;前端用clientdataset连接时产生”非法参数”的错误,如何解决?
master表中的Calculated字段calfieldmaster取自calmaster表;
detail表中的Calculated字段calfielddetail取自caldetail表;
adsmaster和adsdetail已设定成巢状数据表,adscalmaster及adscaldetail都有相关设定;
adsmaster之oncalcfields编写以下程序以取值:
try
adscalmaster.parameters.parambyname(‘calfieldmastid’).value := dataset.fieldbyname(‘masterid’).value;
adscalmaster.active:=true;
dataset.fieldbyname(‘calfieldmaster’).value:=adscalmaster.fieldbyname(‘calfield’).value;
finally
adscalmaster.active:=false;
end;adsdetail之oncalcfields编写以下程序以取值:
try
adscaldetail.parameters.parambyname(‘calfielddetailid’).value := dataset.fieldbyname(‘detailid’).value;
adscaldetail.active:=true;
dataset.fieldbyname(‘calfielddetail’).value:=adscaldetail.fieldbyname(‘calfield’).value;
finally
adscaldetail.active:=false;
end;前端用clientdataset连接时产生”非法参数”的错误,如何解决?
解决方案 »
- 请教!!!!!!!
- 无语中散分,我为啥多发了这么多帖子?
- 关于Indy10的一个问题,在网络不通畅的情况下似乎没有超时返回,已经设置了ConnectTimeout 、ReadTimeout、TransferTimeout属性
- 求正中的SkinEngine3.4.7控件包
- 急!急!急!DBGrid中的数据导入到XML中后格式是怎样的?
- 我这样的学历,在北京或上海能找到工作吗?
- 如何实现逐个纪录的浏览
- 请教如何制作带链接的图片邮件,且图片显示在邮件正文?
- 知道控件名称怎么找到控件?
- 一对多数据存取模式的讨论
- 请教:如何把php中的变量值传给delphi.解决马上给分,在线等待
- 各位大哥我在装控件时有时老是出现file not found dsgnlntf.dcu那是什么原因?
/CdsCont_Appbill_List_goods:cilentDataSet的计算事件里
procedure TContAppFrm.CdsCont_Appbill_List_goodsCalcFields(
DataSet: TDataSet);
var
sql, SQL_BASE: string;
dest_id:Integer;
A: Array [0..0] of string;
b: boolean;
begin
inherited;
if (DataSet.FieldByName('GOOD_ID').IsNull) then
Exit;
dest_id:=DataSet.FieldByName('GOOD_ID').AsInteger;
if (dest_id=0) then
Exit;
begin
cdsLookUp.Active := False;//cdsLookUp:临时的ClientDataSet
SQL_BASE := 'select GOOD_ID, GOOD_NAME FROM GOODS';
sql := SQL_BASE + ' where GOOD_ID = '+ IntToStr(dest_id);
cdsLookUp.Data := MyDBPool.QueryRecord(sql);
if cdsLookUp.RecordCount <> 0 then
begin
cdsLookUp.First;
DataSet['GOOD_NAME']:=cdsLookUp['GOOD_NAME'];
end;
end;
end;