繁体   English   中英

SSRS-用于参数中传递的多个值的多个Tablix

[英]SSRS - Multiple tablix for multiple values passed in parameter

因此,几天前,我在这里发布了一个问题其中我有一个@Sem_ID参数,并且我必须传递多个由分隔符分隔的ID。 我找到了解决方案,但是只有当我有一个数据集时它才起作用。 现在的问题是我的报表包含3个Tablix和3个数据集,每个Tablix都有一个数据集。

我尝试了什么:我创建了一个tablix,并在行内插入了一个矩形元素。 我在矩形内移动了一个网格,然后尝试运行该报告,但是在预览时收到了SSRS错误: 文本框'Textbox10'的Value表达式引用了字段'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?

很少观察到:您不能将Dataset1的另一个Tablix移动到Tablix(矩形)Dataset2。 他们是不同的。 您可以使用SubReport,其中在Tablix 1内有使用Dataset2并显示其数据的SubReport。 第二:

您的用例可以通过子报表很好地解决。 怎么样?? 将您的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/以前的版本/ SQL / SQL服务器-2008-R2 / dd220581(v = SQL.105)

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM