我正在 SSRS 2005 上开发一个报表服务器。在这个报表中有一些条款合同。只有其中一个子句不是恒定的,所以有时它会出现,有时不会。如果我的一个数据集上的列值不为空,它将出现,
每个子句前面必须有一个字符和一个括号。例如,第一个子句必须以a)开头,第二个子句前面必须是b),第三个子句前面必须是c) ...
问题是,可以显示或不显示的子句,如果显示,必须是子句a并且其他常量子句必须跟在它后面。但是如果变量子句没有出现,那么第一个常量子句一定是a子句。
我坚持以下。在我的数据集的 sql 代码上,我在测试时做了一个案例,以检查指示子句是否出现的列,如果它为空,则子句不会出现,并且我在选择我的数据集时返回整数值 96,如果它不为空,则该子句将出现,并且我在选择我的数据集时返回整数值 97。
我想将此整数值转换为字符。所以 97 会变成a。
我正在使用报表服务器元素 TextBox 来接收这个整数值,所以我想做这样的事情。
=Convert.ToChar(First(Fields!FIRSTLETTER.Value, "DataSetAditionalInformation"))
我在 C# 中使用Convert.ToChar(value),我想知道在我的报表服务器上使用的等效命令。
在我的报告的第一个常量子句中,我想执行以下操作:
=Convert.ToChar(First(Fields!FIRSTLETTER.Value + 1, "DataSetAditionalInformation"))
对于每个常量子句,我将加号信号后的数字加一。
因此,如果出现变量子句,FIRSTLETTER 将是 97,第二个子句将是 98,转换后这些数字将变为字母a和b。如果变量子句没有出现,FIRSTLETTER 将是 96,第一个和常量子句将是 97,转换后:a。
我什至不知道这是否可能,所以任何想法都可以解决这个问题。
提前致谢。
更新
合同条款如何运作的示例:
我有这个选择:
SELECT CASE WHEN ADDITIONAL_CLAUSE IS NULL THEN 96 ELSE 97 END AS FIRST_LETTER,
ADDITIONAL_CLAUSE
FROM TBLADDITIONALDATA
WHERE (NUMBER_CONTRACT = @NUMBER_CONTRACT)
如果 select 返回 96(这意味着没有附加子句),则子句将如下所示:
a) 每月考虑的金额将根据在会议组实现的相应月份的组信用责任确定。
b) 地块的总量不是常数,因为它们是根据标的价格的变化计算的
如果 select 返回 97(这意味着有一个附加子句),则子句将如下所示:
a)此子句的文本不是常量,它取决于存储在列 ADDITIONAL_CLAUSE 中的值
b) 每月考虑的金额将根据在会议组实现的相应月份的组信用责任确定。
c) 地块的总量不是常数,因为它们是根据标的价格的变化计算的
我还有很多其他不变的从句,但我想它们没有必要举例说明。
所以我需要使子句之前的字母不是恒定的,所以每个字母都是一个文本框。
如果 ADDITIONAL_CLAUSE 不为空,则附加子句的文本框只会出现,这我已经在文本框的可见性表达式上做过。这个文本框接收 FIRST_LETTER 的值。
但是每个常量子句的其他文本框将收到 FIRST_LETTER 的值,第一个常量子句加 1,第二个常量子句加 2,第三个常量子句加 3,依此类推。但是FIRST_LETTER的值是一个整数,所以我需要把它转换成char。
再次感谢。