高手大哥们,救命啊,头都快炸了,一个困扰了我n天的问题...(50分)

  • 主题发起人 主题发起人 licoo
  • 开始时间 开始时间
L

licoo

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TPrintTaskTableForm.btnPrintClick(Sender: TObject);
var
Car: TOldCar;
PrintData: TADODataSet;
begin
Car:= TOldCar.Create;
PrintData:= TADODataSet.Create(self);
try
PrintData:= Car.GetTaskTable(self.edtTaskID.Text);//函数的返回值是TADODataSet类型
self.frdTaskTable.DataSet:= PrintData;
self.frrTaskTable.ShowReport;
finally
Car.Free;
end;
end;

上面这段代码的功能是给FastReport的数据源控件frDBDataSet动态绑定一个ADODataSet(即PrintData),该ADODataSet的数据从函数Car.GetTaskTable处获得,当执行到self.frrTaskTable.ShowReport行时一直报错“Missing Connection or SonnectionString”,请各位大侠帮我看看是怎么回事,分不够在加,感激不尽!!
 
self.frdTaskTable.DataSet:= PrintData;<<printdata又没有连接adoconnection,当然报错了
而且莫明其妙的是
PrintData:= Car.GetTaskTable(self.edtTaskID.Text);//函数的返回值是TADODataSet类
self.frdTaskTable.DataSet:= PrintData;
以上两句为什么不合为一句,而用一个printdata来中转呢
直接self.frdTaskTable.dataset:=:= Car.GetTaskTable(self.edtTaskID.Text);
不就完事了吗
不过你要保证返回的adodataset是处于active=true状态的


 
>> self.frdTaskTable.DataSet:= PrintData;
我想你的frdTaskTable 应该是TfrReport类的对象吧, 其DataSet属性,你看过源码吗?应该是TfrDataset类呀,用TADODataSet 赋给 TfrDataset类是何道理,TfrDataset是基于TComponent的。老实地在窗体上加一个TfrDataset吧,将TADODataSet赋给TfrDataset 吧。
其它你自己看着办啦,
有问题再贴出来啦~~~~~~~~~~~`
呵呵~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> 不过你要保证返回的adodataset是处于active=true状态的
打不打开都不重要的, TfrReport会自己打开他的。
 
谢谢两位大哥的意见,我试一试!
 
to Netsoft:
将TADODataSet赋给TfrDataset同样会出现类型不匹配的错误,请问我应该怎样处理??再次谢谢您!
 
楼主,不好意思,
现在才看到此贴,
不可能的,
我的都可以,
你把那段源码贴出来!!!!!
呵呵~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
多人接受答案了。
 
后退
顶部