SunDream° 发表于 2016-5-11 16:08:05

Lenka.Guo 发表于 2016-5-11 16:06
LocateDataSource 的args.Data每次只能接收一个 DataTable 对象,返回DataSet 是不合法的,所以只能返回 ...

args.Data = LoadDataSet().Tables;    这个是接收的那边已经这样写的呢。

Lenka.Guo 发表于 2016-5-11 16:18:36

SunDream° 发表于 2016-5-11 16:08
args.Data = LoadDataSet().Tables;    这个是接收的那边已经这样写的呢。

这样看也看不出来啥问题,怀疑还是在字段引用的时候出了问题,要不你把你的Demo 传过来我在这边验证下。

SunDream° 发表于 2016-5-11 16:47:46

Lenka.Guo 发表于 2016-5-11 16:18
这样看也看不出来啥问题,怀疑还是在字段引用的时候出了问题,要不你把你的Demo 传过来我在这边验证下。

            // 创建DataSet
            DataSet myDataSet = new DataSet();
            //string connStr = Properties.Resources.ConnectionString;
            OleDbConnection conn = new OleDbConnection(_OLEDB);
            DataTable[] myDataTables = new DataTable;
            myDataTables = new DataTable("MF_PSS");
            myDataTables = new DataTable("TF_PSS");
            myDataTables = new DataTable("TF_PSS_RCV");
            //创建DataTable   
            myDataSet.Tables.Add(myDataTables);
            OleDbCommand cmd1 = new OleDbCommand(Constants.TxtSql, conn);
            OleDbDataAdapter oleAdapter1 = new OleDbDataAdapter(cmd1);
            oleAdapter1.Fill(myDataSet.Tables);

            //为Table 添加数据
            myDataSet.Tables.Add(myDataTables);
            OleDbCommand cmd2 = new OleDbCommand(Constants.TxtSql1, conn);
            OleDbDataAdapter oleAdapter2 = new OleDbDataAdapter(cmd2);
            oleAdapter2.Fill(myDataSet.Tables);

            myDataSet.Tables.Add(myDataTables);
            OleDbCommand cmd3 = new OleDbCommand(Constants.TxtSql2, conn);
            OleDbDataAdapter oleAdapter3 = new OleDbDataAdapter(cmd3);
            oleAdapter3.Fill(myDataSet.Tables);

            //创建 “DataRelation”
            DataRelation RelPSS = new DataRelation("TF_PSS_MF", myDataSet.Tables.Columns["PS_NO"],
                              myDataSet.Tables[1].Columns["PS_NO"]);

            DataRelation RelRCV = new DataRelation("TF_PSS_RCV", myDataSet.Tables.Columns["PS_NO"],
                              myDataSet.Tables[2].Columns["PS_NO"]);

            myDataSet.Relations.Add(RelPSS);
            myDataSet.Relations.Add(RelRCV);

以上是我在后台创建的关系,是三张表的关联关系

在取值页面创建的取值关系是这样      
TF_PSS_RCV.MF_PSS表中的字段       
TF_PSS_RCV.TF_PSS_MF.TF_PSS表中的字段       
TF_PSS_RCV表中的字段


分别是按照以上三种来取, 现在经过调试TF_PSS_RCV.TF_PSS_MF.TF_PSS表中的字段        这一部分是取不到值的
并且我还有疑问你们这个工具中一个父表下的两个子表之间不能相互访问吗?      




由于我这边写的Demo涉及面多了一点, 没办法分离,所以发不上来。请谅解!
如果上面我提供的信息也不足够让你们判断的话,我稍后补充一个Demo发上来。



Lenka.Guo 发表于 2016-5-11 17:50:04

SunDream° 发表于 2016-5-11 16:47
// 创建DataSet
            DataSet myDataSet = new DataSet();
            //string c ...

这个可以先参考产品文档中“未绑定数据源”,对这一块有比较详细的解释,如果字段名称一致的话http://www.gcpowertools.com.cn/docs/ActiveReports/AR9Guide/#!Documents/_225.htm

我再验证下多表关联的问题。






SunDream° 发表于 2016-5-13 09:35:56

Lenka.Guo 发表于 2016-5-11 17:50
这个可以先参考产品文档中“未绑定数据源”,对这一块有比较详细的解释,如果字段名称一致的话http://www. ...

:o怎么一直都没回复呢?

Lenka.Guo 发表于 2016-5-13 11:13:30

SunDream° 发表于 2016-5-13 09:35
怎么一直都没回复呢?

问题已经重现了,正在寻找解决方法,可能是访问字段或返回的DataTable 不正确导致的。

SunDream° 发表于 2016-5-16 11:08:33

Lenka.Guo 发表于 2016-5-13 11:13
问题已经重现了,正在寻找解决方法,可能是访问字段或返回的DataTable 不正确导致的。

:(:(:(你该不会是忘了这个贴吧........

Lenka.Guo 发表于 2016-5-16 11:12:11

本帖最后由 Lenka.Guo 于 2016-5-16 11:13 编辑

SunDream° 发表于 2016-5-16 11:08
你该不会是忘了这个贴吧........
怎么会,我已经提交给产品组了,BugID 203354,因为产品组在国外,所以沟通需要时间,正在等待产品组的回复。有回复会立马回复。
给您带来不便表示歉意,奖励500金币。


SunDream° 发表于 2016-5-16 11:31:37

Lenka.Guo 发表于 2016-5-16 11:12
怎么会,我已经提交给产品组了,BugID 203354,因为产品组在国外,所以沟通需要时间,正在等待产品组的回 ...

:o我都已经是元老了呢。我觉得我可以帮你们给其它提问的朋友回答问题了。......我帮你们反馈了BUG。。。有别的奖励吗。。:loveliness:

Lenka.Guo 发表于 2016-5-16 11:57:18

SunDream° 发表于 2016-5-16 11:31
我都已经是元老了呢。我觉得我可以帮你们给其它提问的朋友回答问题了。......我帮你们反馈了BUG。。。 ...

真的嘛~~~那邀请你当我们的ActiveReports MVP ~~帮助其他用户解答疑问~~奖励那是大大的多~~~~~
页: 1 [2] 3
查看完整版本: 关于使用DataRelation建立关系然后在pagereport中显示多表联合的数据问题!