壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 861|回复: 0

RS中使用 JavaScript 传递多个值给文本框提示

[复制链接]
发表于 2012/3/8 14:53:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
目的
这种技术使用 JavaScript 允许用户把多个值传递给 IBM Cognos 8 Report Studio 文本框提示。

适用性
本文档中的技术应该只用于关系数据源。
本文档描述的技术已通过以下软件检验过:
IBM Cognos 8.4.102.18-0,使用示例附带的 Go Sales (query) 包。

使用的无文档记载和不支持的功能
此技术需要使用 IBM Cognos 8 中无文档记载和不支持的功能。在以后的版本中对这些功能的支持可能会改变或完全取消。
创建此技术只是证明概念;没有覆盖所有使用场景。在 IBM Cognos 8 系统中使用此技术之前,应该进行彻底的测试。

创建基本的提示报表
按以下步骤创建基本报表:

对于示例附带的 Go Sales (query) 包,打开 IBM Cognos 8 Report Studio。

选择 Create a New report or template。

出现提示时,选择 List 对象。

从左边的 Insertable Objects 面板,把 Go Sales (query)\Sales (query)\Branch\Branch code 拖放到列表中。

图 1. IBM Cognos 8 Report Studio 列表报表,包含 Branch code 列


使用 View 菜单切换到 Prompt page 视图。

把 Page 对象从左边的 Insertable Objects 面板拖放到中间的 Prompt Pages 面板。

图 2. IBM Cognos 8 Report Studio 在 Page Explorer 中显示 Prompt Page 1


双击 Prompt Page 1 对象。

从左边的 Insertable Objects 面板,把 Value Prompt 对象拖放到提示页面中,这会打开 Prompt Wizard 对话框。

在 Prompt Wizard 对话框中,给参数指定名称。对于这个示例,参数名是 BranchCode。

图 3. IBM Cognos 8 Report Studio 显示 BranchCode 参数的 Value Prompt Prompt Wizard


单击 Next 按钮。

在 Prompt Wizard 对话框的 Create Filter 部分中,使用省略号按钮添加 [Sales (query)].[Branch].[Branch code] 包项。

使用下拉框把操作符由 = 改为 in。

图 4. 值提示的 IBM Cognos 8 Report Studio Prompt Wizard,显示 in 操作符


单击 Next 按钮。

单击 Finish 按钮返回到 Prompt Page 屏幕。

在左边的 Insertable Objects 面板中,找到 Text box Prompt 并把它拖放到前面添加的值提示的左边。

在 Prompt Wizard 对话框中,给参数指定名称。对于这个示例,名称是 BranchCodeTB。

单击 Finish 按钮返回到 Prompt Page 屏幕。

图 5. IBM Cognos 8 Report Studio 显示提示页面,其中并排显示文本框和值提示


在提示页面中,通过单击突出显示文本框提示。

在左下方的 Properties 面板中,把名称 id2 添加到 Miscellaneous\Name 属性中。

图 6. IBM Cognos 8 Report Studio 提示页面突出显示文本框提示


在提示页面中,通过单击突出显示值提示。

在左下方的 Properties 面板中,把名称 id3 添加到 Miscellaneous\Name 属性中。

使用 JavaScript 替换 Finish 按钮
对于在把提示数据提交给报表之前检查数据,简便的方法是使用 JavaScript 替换生成的 Finish 按钮。步骤如下:

在提示页面的底部,突出显示 Finish 按钮并删除它。

在左边的 Insertable objects 面板中,找到 HTML 对象。

把 HTML 对象拖放到前面删除的 Finish 按钮的位置。

图 7. IBM Cognos 8 Report Studio 提示页面显示替代 Finish 按钮的 HTML 工具箱对象


双击前面添加的 HTML 对象并添加以下代码:
  • <input type="BUTTON" class="clsPromptButton" value=" Finish ">

复制代码


单击 OK 按钮提交 HTML 代码。

添加 JavaScript 以解析文本提示值

在左边的 Insertable objects 面板中,找到 HTML 对象。

把 HTML 对象拖放到 Value Prompt 的右边。

图 8. IBM Cognos 8 Report Studio 提示页面,在值提示旁边有一个 HTML 对象


双击这个 HTML 对象并添加以下代码:
  • <script language="javascript">
  • var fW = (typeof getFormWarpRequest == "function" ?
  •   getFormWarpRequest() : document.forms["formWarpRequest"]);
  • if ( !fW || fW == undefined) { fW = ( formWarpRequest_THIS_ ?
  •   formWarpRequest_THIS_ : formWarpRequest_NS_ );}
  • var var1=fW._textEditBoxid2;  //The visible text prompt
  • var var2=fW._oLstChoicesid3; //The hidden multi-select value prompt
  • function SplitText()
  • {
  • if ((var1.value=='')|| (var1.value==null))  //Check to see if values were entered
  • {
  • alert("No values were entered!  Please enter some values.");
  • }
  • else
  • {
  • var text_array=var1.value.split(" ");
  •   // Break out the value entered in the text prompt using the space as a separator
  • var numberofsplits=0;
  • while (numberofsplits < text_array.length)
  •         {
  •                 for (var i=0;i < var2.length; i++)
  •                  //Go through every value in the value prompt
  •                 {
  •                         if(var2.value==text_array[numberofsplits])
  •                           //if the value from the text prompt is
  •                           //present in the value prompt select it
  •                         {
  •                                 var2.selected=true;
  •                         }
  •                 }
  •         numberofsplits++;
  •               }
  • promptButtonFinish();
  • }
  • }
  • </script>

复制代码


单击 OK 按钮提交 HTML 代码。

运行报表,在文本框提示中输入以下字符串(不带引号)。
"6 19 21"

单击 Finish 按钮提交输入的文本提示值。注意,使用在文本框中输入的值选择值提示中的值。然后,把在值提示中选择的值提交给报表。

现在,只需隐藏值提示。关闭 IBM Cognos Viewer,返回到 IBM Cognos 8 Report Studio。

在提示页面中,通过单击突出显示值提示。

在左下方的 Properties 面板中,把 Positioning\Visible 属性设置为 No。

图 9. IBM Cognos 8 Report Studio 提示页面,突出显示值提示




再次运行报表,在文本框中输入以下字符串(不带引号)。
"6 19 21"

单击 Finish 按钮。

图 10. IBM Cognos 8 Report Viewer 以 HTML 格式显示生成的列表


该贴已经同步到 xiaoerp的微博
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 20:42 , Processed in 0.012683 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表