在Tablix rdlc中添加两个DataSet的字段

时间:2016-12-09 13:39:47

标签: sql-server vb.net rdlc

我已将两个DataSet命名为LedgerDetails& LedgerDetailsOB。
LedgerDetailsOB包含以下字段

Account_Code | Open_Bal | C_D

LedgerDetails包含:

Account_Code | Date | Description | Amount

现在我与DataSource中的Account_Code建立了关系,如果它可行但不起作用。

我将参数传递给Account_Code 到报告中,并使用参数从存储过程中获取数据。它的工作正确......

现在我希望LedgerDetailsOB中的第一个数据显示出来,当它完成时,来自LedgerDetails的数据将从同一个表中的下一行继续。

我做的事情是: 第一行是Tablix的标题,第二行是LedgerDetailsOB的数据 做了第3行并试图从LedgerDetails添加数据,但它肯定会否认......

我搜索并发现LOOKUP函数写为表达式所以我做了同样的事情。
在表达式之后,我试图在Tablix的第3行中运行:

=LOOKUP(Fields!Account_code.Value,Fields!Account_code.Value,Fields!Trans_Date.Value, "LedgerDetails")

上面的表达式在表达式框中没有显示错误行(红线)。

之后,我清理项目并重建它,以便我收到以下错误。

  

文本框'Account_code'的值表达式是指   字段'Account_code'。报表项表达式只能引用   当前数据集范围内的字段,或者如果在聚合内部,   指定的数据集范围。必须使用字段名称中的字母   正确的情况。

注意:这是我正在处理的子报告/子报告..仅供参考..

感谢名单。

2 个答案:

答案 0 :(得分:0)

Tablix只能引用一个数据源。简单的解决方案是“平坦化”#34;您使用以下字段将数据合并到单个DataSet中:

Account_Code | Date | Description | Amount | Open_Bal | C_D

然后,您可以按帐户代码和日期对行进行分组,并且无法进行查找。

答案 1 :(得分:0)

使用以下SQL创建视图:

SELECT
    OB.account_code,
    OB.open_bal,
    OB.C_D,
    DT.date,
    DT.description,
    DT.amount
FROM
    LedgerDetails AS DT,
    LedgerDetailsOB AS OB
WHERE
    OB.account_code = DT.account_code