我想从iReport调用MSSQL服务器中的存储过程。
查询:
SET QUOTED_IDENTIFIER OFF
SET DATEFORMAT mdy
Exec SP_SAMPLE '12-jan-2008', '12-jul-2011',
"$P!{Param1}",
"$P!{Param2}",
1,
"$P!{Param3}"
SET QUOTED_IDENTIFIER ON
Where,
Param1 = 'A436F3A9-6A8B-40C4-B38E-567B05522449',
'4DD40BC2-3390-4B1B-8841- 483A8FDAB2FD',
'B95E8F04-6EE7-4BC6-BDD0-F95C4AFDAC0B',
'AE757961-0E25-41B8-A382- 7600DDA0ABC7',
'90B9CC0C-6090-4CEF-8BC9-9C8EA3C0F63C',
'1E191B19-13D0-4CE2-B1EC- 3CFF9316887F',
'A9EE7AE9-435C-4164-96F5-3DB20A6321BE',
'DCD6D045-8B42-4B83-8C97-21EE9DFF644C'
Param2 = '4E6E8464-F08A-4BB8-950F-38908E4E7B30',
'76EBA40E-F898-4541-9208-8A6B3A35E082',
'7C64DA92-C168-4A74-8955-F1974258AD12',
'2E6DDC25-E037-4842-9E7F-2B9586561744'
Param3 = 3EC43FB7-F258-4441-8188-A55E7BD40ADE
请注意,存储过程param1
,param2
,param3
在sqlserver中是text数据类型。而在iReport中,我将它们作为一个集合。
有没有人告诉我如何用双引号在iReport中生成上述查询?
此外,有没有办法在运行iReport时显示带有填充参数值的查询?
答案 0 :(得分:0)
Jasper Reports使用两种类型的参数:$ P {name_parameter}和$ P!{name_parameter}。 你用$ P!查询中的参数,使您可以完全控制构建查询。
示例:
<parameter name="strParam1" class="java.lang.String"/>
<parameter name="strParam2" class="java.lang.String"/>
<parameter name="strParam3" class="java.lang.String"/>
<queryString><![CDATA[SELECT atr1 FROM mytable WHERE stratr1=$P{strParam1} AND stratr2=$P!{strParam2} AND stratr3=$P!{strParam3}]]></queryString>
如果:
strParam1 = string1 // (without quotes)
strParam2 = 'string2' // param (with quotes)
strParam3 = string3 // (without quotes)
结果查询将是:
SELECT atr1 FROM mytable WHERE stratr1='string1' AND stratr2='string2' AND stratr3=string3
另外,有没有办法用fill参数显示查询 运行iReport时的值?
在IReport 4.1中,您可以在输出控制台(iReport输出窗口)中查看结果查询。
您可以设置log4j.properties以查看自定义Java应用程序的结果查询。