try
if tmpdbs<>nil then
tmpdbs:=nil;
if tmpdbs<>nil then
tmpdbs.Free;
tmpdbs:=TclientDataSet.Create(application);
with tmpdbs.FieldDefs do
begin
//表头字段定义
add('kfmc',ftstring,100,false);
add('lxr',ftstring,20,false);
add('xsy',ftstring,20,false);
add('lxdh',ftstring,20,false);
add('fhdz',ftstring,200,false);
add('yss',ftstring,50,false);
add('ydhm',ftstring,30,false);
add('fhr',ftstring,20,false);
add('yfje',ftstring,20,false);
add('yfzf',ftstring,10,false);
end;
tmpdbs.CreateDataSet;
tmpdbs.Append;
tmpdbs.FieldByName('kfmc').AsString:=adoquery1.fieldbyname('cname').AsString;
tmpdbs.FieldByName('lxr').AsString:=adoquery1.fieldbyname('cpname').AsString;
tmpdbs.FieldByName('xsy').AsString:=adoquery1.fieldbyname('sales').AsString;
tmpdbs.FieldByName('lxdh').AsString:=adoquery1.fieldbyname('mobi').AsString;
tmpdbs.FieldByName('fhdz').AsString:=adoquery1.fieldbyname('address').AsString;
tmpdbs.FieldByName('yss').AsString:=adoquery1.fieldbyname('yssname').AsString;
tmpdbs.FieldByName('ydhm').AsString:=adoquery1.fieldbyname('ysdh').AsString;
tmpdbs.FieldByName('fhr').AsString:=adoquery1.fieldbyname('fhrname').AsString;
tmpdbs.FieldByName('yfje').AsString:=adoquery1.fieldbyname('ypay').AsString;
tmpdbs.FieldByName('yfzf').AsString:=adoquery1.fieldbyname('ypaytype').AsString;
tmpdbs.Post;
RvDataSetConnection2.DataSet:=tmpdbs;
RvP1.Execute; //将断点设在这里,这样程序运行到这里时内存表就一定是建立好的。
finally
if tmpdbs<>nil then
tmpdbs.Free;
end;用上面的代码运行到断点位置。然后打开RAVE,打开设置好的报表,里面的DATAVIEW字段列表中空的,Refresh也没用。删除重建一个也不行,如果不用内存表,直接用ADOQUERY就没问题可以列出字段。
请教是什么原因呀?刚开始是好用的,不知道怎么搞的就不好用了。
if tmpdbs<>nil then
tmpdbs:=nil;
if tmpdbs<>nil then
tmpdbs.Free;
tmpdbs:=TclientDataSet.Create(application);
with tmpdbs.FieldDefs do
begin
//表头字段定义
add('kfmc',ftstring,100,false);
add('lxr',ftstring,20,false);
add('xsy',ftstring,20,false);
add('lxdh',ftstring,20,false);
add('fhdz',ftstring,200,false);
add('yss',ftstring,50,false);
add('ydhm',ftstring,30,false);
add('fhr',ftstring,20,false);
add('yfje',ftstring,20,false);
add('yfzf',ftstring,10,false);
end;
tmpdbs.CreateDataSet;
tmpdbs.Append;
tmpdbs.FieldByName('kfmc').AsString:=adoquery1.fieldbyname('cname').AsString;
tmpdbs.FieldByName('lxr').AsString:=adoquery1.fieldbyname('cpname').AsString;
tmpdbs.FieldByName('xsy').AsString:=adoquery1.fieldbyname('sales').AsString;
tmpdbs.FieldByName('lxdh').AsString:=adoquery1.fieldbyname('mobi').AsString;
tmpdbs.FieldByName('fhdz').AsString:=adoquery1.fieldbyname('address').AsString;
tmpdbs.FieldByName('yss').AsString:=adoquery1.fieldbyname('yssname').AsString;
tmpdbs.FieldByName('ydhm').AsString:=adoquery1.fieldbyname('ysdh').AsString;
tmpdbs.FieldByName('fhr').AsString:=adoquery1.fieldbyname('fhrname').AsString;
tmpdbs.FieldByName('yfje').AsString:=adoquery1.fieldbyname('ypay').AsString;
tmpdbs.FieldByName('yfzf').AsString:=adoquery1.fieldbyname('ypaytype').AsString;
tmpdbs.Post;
RvDataSetConnection2.DataSet:=tmpdbs;
RvP1.Execute; //将断点设在这里,这样程序运行到这里时内存表就一定是建立好的。
finally
if tmpdbs<>nil then
tmpdbs.Free;
end;用上面的代码运行到断点位置。然后打开RAVE,打开设置好的报表,里面的DATAVIEW字段列表中空的,Refresh也没用。删除重建一个也不行,如果不用内存表,直接用ADOQUERY就没问题可以列出字段。
请教是什么原因呀?刚开始是好用的,不知道怎么搞的就不好用了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货