主ClientDataset定义如下: ClientDataSet_Master:=TClientDataSet.Create(nil);
ClientDataSet_Master.FieldDefs.Add('id',ftstring,50);
ClientDataSet_Master.FieldDefs.Add('path',ftstring,50);
ClientDataSet_Master.CreateDataSet;
ClientDataSet_Master.Active;从ClientDataset定义如下: ClientDataSet_Sub:=TClientDataSet.Create(nil);
ClientDataSet_Sub.FieldDefs.Add('id',ftstring,50);
ClientDataSet_Sub.FieldDefs.Add('date',ftstring,10);
ClientDataSet_Sub.FieldDefs.Add('statvalue',ftstring,10);
ClientDataSet_Sub.CreateDataSet;
ClientDataSet_Sub.Active;说明:此两个ClientDataset中的数据是从XML文件中读取的,且分别对应DataSource1和DataSource2.它们中的数据可以通过id字段进行关联。现在问题是 如何用FastReport实现两个Dataset中数据的主从报表显示?
ClientDataSet_Master.FieldDefs.Add('id',ftstring,50);
ClientDataSet_Master.FieldDefs.Add('path',ftstring,50);
ClientDataSet_Master.CreateDataSet;
ClientDataSet_Master.Active;从ClientDataset定义如下: ClientDataSet_Sub:=TClientDataSet.Create(nil);
ClientDataSet_Sub.FieldDefs.Add('id',ftstring,50);
ClientDataSet_Sub.FieldDefs.Add('date',ftstring,10);
ClientDataSet_Sub.FieldDefs.Add('statvalue',ftstring,10);
ClientDataSet_Sub.CreateDataSet;
ClientDataSet_Sub.Active;说明:此两个ClientDataset中的数据是从XML文件中读取的,且分别对应DataSource1和DataSource2.它们中的数据可以通过id字段进行关联。现在问题是 如何用FastReport实现两个Dataset中数据的主从报表显示?
解决方案 »
- 请帮忙看看为什么提示“Abstract error"
- delphi的UrlEncode方法编码后的结果不能被c#的UrlDecode方法解码,怎么办?
- 菜鸟问一下DELPHI里的一个问题
- 截取窗体部分地方作为图片保存的代码
- INDY 10 中怎么判断是否有数据接收或发送
- 关于赋值问题
- delphi转换webbrowser中的postdata为可识别数据
- 谁有Delphi7 personal 版本的注册文件呀????急急!!!!!!!!!!!!!!!!!
- 共同讨论一个windows开发的问题-----内存管理, 欢迎灌水
- Delphi建文件夹?????
- 将可视控件COPY到别一个窗体
- sql语句,提示语法错误(操作符丢失)在查询表达式'*from rc1 where 元器件ID='1''中
程序中要写好主从表的sql语句,这样就ok了
ClientDataSet_Sub.MasterSource:= DataSource1;
ClientDataSet_Sub.MasterFields:='id'; 报错,提示 Field out of range!
主 select * from 主表从 select * from 从表 where id:=id
var
ClientDataSet_Master:TClientDataSet;
ClientDataSet_Sub:TClientDataSet;
begin
ClientDataSet_Master:=TClientDataSet.Create(self);
ClientDataSet_Master.FieldDefs.Add('id',ftstring,50);
ClientDataSet_Master.FieldDefs.Add('path',ftstring,50);
ClientDataSet_Master.CreateDataSet; ClientDataSet_Sub:=TClientDataSet.Create(self);
ClientDataSet_Sub.FieldDefs.Add('id',ftstring,50);
ClientDataSet_Sub.FieldDefs.Add('date',ftstring,10);
ClientDataSet_Sub.FieldDefs.Add('statvalue',ftstring,10);
ClientDataSet_Sub.CreateDataSet; ClientDataSet_Sub.MasterSource:= DataSource1;
ClientDataSet_Sub.MasterFields:='id'; ClientDataSet_Master.Active;
ClientDataSet_Sub.Active;end;
经测试通过,没有报错。
你是怎么做的?
不过提示 Field index out of range
ClientDataSet_Master.Active:=true;
DataSource2.DataSet:= ClientDataSet_Sub;
ClientDataSet_Sub.Active:=true;
解决方式如下: ClientDataSet_Master.FieldDefs.Add('BH',ftstring,8);
ClientDataSet_Master.FieldDefs.Add('path',ftstring,50);
ClientDataSet_Master.IndexFieldNames:='BH'; //========加上此句
ClientDataSet_Master.CreateDataSet;
ClientDataSet_Master.Active;
ClientDataSet_Sub:=TClientDataSet.Create(self);
ClientDataSet_Sub.FieldDefs.Add('BH',ftstring,8);
ClientDataSet_Sub.FieldDefs.Add('date',ftstring,10);
ClientDataSet_Sub.IndexFieldNames:='BH'; //=========加上此句
ClientDataSet_Sub.CreateDataSet;
ClientDataSet_Sub.Active; ClientDataSet_Sub.MasterSource:= DataSource1; // 主从报表部分代码
ClientDataSet_Sub.MasterFields:='BH';