【问题标题】:SSRS - Multiple tablix for multiple values passed in parameterSSRS - 参数中传递的多个值的多个 tablix
【发布时间】:2019-04-12 07:26:55
【问题描述】:

所以,几天前我发布了一个问题here,其中我有一个@Sem_ID 参数,我必须传递多个用分隔符分隔的ID。我找到了解决方案,但它仅在我有一个数据集时才有效。现在的问题是我的报告有 3 个 tablix 和 3 个数据集,每个 tablix 一个数据集。

我尝试了什么:我创建了一个 tablix 并在行内插入了一个矩形元素。我在矩形内移动了一个网格,然后尝试运行报告,但在预览时收到 SSRS 错误:文本框“Textbox10”的值表达式引用字段“Kondition”。报表项表达式只能引用当前数据集范围内的字段,或者如果在聚合内,则只能引用指定的数据集范围。字段名称中的字母必须使用正确的大小写。

例如,这两个查询中的每一个都代表一个数据集,所以两个数据集:

SELECT Sem_ID, Sem_KW, Sem_Jahr, Sem_SemNrKata, Sem_von, Sem_bis, h.chr_name, h.chr_ort
FROM acc_seminar.t_Seminar
JOIN dbo.tbl_hotel h ON Sem_Ht_ID=h.pk_hotel
WHERE Sem_ID IN (SELECT value  
FROM fn_Split(@Sem_ID, ';')  
WHERE RTRIM(value) <> '') AND (Sem_SemTh_ID != 76 AND Sem_Sto = 0)

第二个数据集:

SELECT tu.TU_Name AS Name, tu.TU_Vorname AS Vorname, ParkgebuehrBrutto AS Preis
FROM acc_seminar.t_Teiluber_Ext tux
JOIN acc_seminar.t_Teiluber tu ON tux.TeiluberId = tu.TU_ID
JOIN acc_seminar.t_Seminar s ON tu.TU_Sem_ID = s.Sem_ID WHERE s.Sem_ID IN (SELECT value  
FROM fn_Split(@Sem_ID, ';')  
WHERE RTRIM(value) <> '')  AND ParkgebuehrBrutto IS NOT NULL

因此,如果我通过 @Sem_Id = 123;456 ,那么如何为 Id=123 和 Id=456 显示两个网格?

【问题讨论】:

  • 您收到的错误与您在此处显示的数据集无关。该错误与名为Kondition 的字段有关,该字段未在任一查询中显示。您在哪里有一个名为 Kondition 的字段?

标签: reporting-services report


【解决方案1】:

Few Observations:您无法将 Dataset1 的另一个 Tablix 移动到 Tablix(矩形)Dataset2。它们是不同的。您可以使用 SubReport,其中在 Tablix 1 中您有 SubReport,它使用 Dataset2 并显示它的数据。 第二:

子报告可以很好地解决您的用例。如何?? 将您的 Sem_ID 作为参数传递给 SubReport,前提是您的 Dataset2(子报表)包含 Sem_Id 字段。

几个链接寻求帮助 http://t-xie.net/2016/05/17/ssrs-pass-multiple-value-parameter-to-sub-report/ https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/dd220581(v=sql.105)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 2021-01-09
    • 2021-02-09
    相关资源
    最近更新 更多