Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS将参数转换为int_Reporting Services_Ssrs 2008 - Fatal编程技术网

Reporting services SSRS将参数转换为int

Reporting services SSRS将参数转换为int,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,正如主题所述,SSRS报表正在将varchar参数转换为int。该参数是一种文本类型,当我在存储过程的报表设计器弹出窗口中输入0002时,该报表不起作用,但在查看sql profiler时,我们可以看到它已转换为int 需要帮助。我不确定是否正确理解了您的意思,但如果您希望从字符串中删除前导0,然后将其转换为int,例如将“0002”转换为2,则可以使用此命令从报告中传递参数并执行以下过程: CONVERT(INT,SUBSTRING(@parameter, PATINDEX('%[^0]%'

正如主题所述,SSRS报表正在将varchar参数转换为int。该参数是一种文本类型,当我在存储过程的报表设计器弹出窗口中输入0002时,该报表不起作用,但在查看sql profiler时,我们可以看到它已转换为int


需要帮助。

我不确定是否正确理解了您的意思,但如果您希望从字符串中删除前导0,然后将其转换为int,例如将“0002”转换为2,则可以使用此命令从报告中传递参数并执行以下过程:

 CONVERT(INT,SUBSTRING(@parameter, PATINDEX('%[^0]%', @parameter), LEN(@parameter)))
将@parameter替换为报告中的参数名称。

在数据集属性中:

转到参数部分。单击“fx”按钮为参数值创建表达式。使用CInt函数将参数转换为int:


如果您正在谈论从RDL向存储过程传递参数。 打开报表RDL时,转到BIDS中左侧报表数据面板上的报表参数属性 选择“参数”,单击鼠标右键并转到“属性”。 选择数据类型作为文本。这应该对你有用


您是说希望SP将0002而不是2视为int?您为参数选择了什么数据类型?存储过程需要什么数据类型?shellNija没错。param的数据类型是Text,存储的proc是varchar100,但我尝试了1000和4000