互联网服务 商业智能

数据项传递参数

最近在学习Framework中数据项传递参数,参考的是小贝的一个帖子
http://www.cognoschina.net/home/space.php?uid=2785&do=blog&id=1129
但是有几点没测试出效果,所以在这里将遇到的一些问题列出来。
其中有提到
#prompt('depart_id','string',' ',where table.depatr_id=')#, --非必选参数#prompt('month')#,--必选参数
#promptmany('Category_id','string',' ',where table.category_id in ')# --非必选、多选参数
其中必选参数测试没问题,但是非必选参数和多选参数测试有点问题。
Select * from dbo.REP_T_CDR_ALL #prompt('v_date','string','','where REP_T_CDR_ALL.STAMP=')#   
这个是非必选参数语句,但在报表中似乎还是必选的呀,是语句写得有问题?

还有那个多选的Select * from dbo.REP_T_CDR_ALL #promptmany('v_currency','string','','where REP_T_CDR_ALL.currency in')#,结果SQL是这样的REP_T_CDR_ALL.currency in'AUA,AUB',而我需要的是REP_T_CDR_ALL.currency in ('AUA','AUB'),请问我该如何处理?
参与5

4 同行回答

洛枫0107 洛枫0107 其它 南京道有
楼主能说下参数多选的问题是怎么解决的么?刚好碰到这个问题。显示全部
楼主能说下参数多选的问题是怎么解决的么?刚好碰到这个问题。 收起
互联网服务 · 2013-12-04
浏览685
ap3000_cognos ap3000_cognos 软件开发工程师 成大方圆
很详细,谢谢显示全部
很详细,谢谢 收起
医药 · 2013-09-03
浏览639
爱上零点半 爱上零点半 软件开发工程师 1234
回复 2# crazysand     这个参数多选的问题解决了,但好像还是必选的,不是可选的哦.    能不能达到这样的效果,默认是不带后面的where条件的(也就是说查询出所有结果),参数赋值之后才会有where过滤,也就是上面说的可选参数...显示全部
回复 2# crazysand


    这个参数多选的问题解决了,但好像还是必选的,不是可选的哦.
    能不能达到这样的效果,默认是不带后面的where条件的(也就是说查询出所有结果),参数赋值之后才会有where过滤,也就是上面说的可选参数 收起
互联网服务 · 2013-05-17
浏览689
hupingzhi hupingzhi 系统架构师 PA
参考。prompt ( 提示名称 , 数据类型 , 默认文本 , 文本 , 查询项目 , 结尾文本 )提示用户输入单个值。仅“提示名称”为必需项。未指定数据类型时默认为“字符串”。指定“默认文本”时,提示是可选的。指定“文本”后,文本会在值前面。可指定“查询项目”以利用“查询项目...显示全部
参考。

prompt ( 提示名称 , 数据类型 , 默认文本 , 文本 , 查询项目 , 结尾文本 )
提示用户输入单个值。仅“提示名称”为必需项。未指定数据类型时默认为“字符串”。指定“默认文本”时,提示是可选的。指定“文本”后,文本会在值前面。可指定“查询项目”以利用“查询项目”的提示信息属性。指定“结尾文本”后,结尾文本会附加到值的后面。


示例:select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE  > #prompt ( '起始国家/地区代码' , '整数' , '10' ) #
结果:select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > 10

示例:[gosales].[COUNTRY].[COUNTRY] = # prompt ( '国家/地区提示' , '字符串' , '''Canada''' ) #
结果:[gosales].[COUNTRY].[COUNTRY] = 'Canada'



promptmany ( 提示名称 , 数据类型 , 默认文本 , 文本 , 查询项目 , 结尾文本 )
提示用户输入一个或多个值。仅“提示名称”为必需项。未指定数据类型时默认为字符串。指定“默认文本”时,提示是可选的。指定“文本”后,文本会在值列表的前面。可指定“查询项目”以利用“查询项目”的提示信息属性。指定“结尾文本”后,结尾文本会附加到值列表的后面。

示例:select .. . where COUNTRY_MULTILINGUAL.COUNTRY in ( # promptmany ( '国家/地区名称' ) # )
结果:select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canada' , 'The Netherlands' , 'Russia' )

示例:select .. . from gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL , gosales.gosales.dbo.COUNTRY XX where COUNTRY_MULTILINGUAL.COUNTRY_CODE = XX.COUNTRY_CODE # promptmany ( 'Selected CountryCodes' , 'integer' , ' ' , ' and COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( ' , '' , ' ) ' ) #
结果:select . . . from gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL , gosales.gosales.dbo.COUNTRY XX where COUNTRY_MULTILINGUAL.COUNTRY_CODE = XX.COUNTRY_CODE and COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canada' , 'The Netherlands' , 'Russia' ) 收起
保险 · 2013-05-16
浏览663

提问者

爱上零点半
软件开发工程师 1234
评论232

相关问题

相关资料

问题状态

  • 发布时间:2013-05-13
  • 关注会员:1 人
  • 问题浏览:2925
  • 最近回答:2013-12-04
  • X社区推广