如何在Cognos报告中构建Mailto超链接列?

时间:2011-03-02 14:07:08

标签: reporting cognos

我正在制作一份报告,其中显示由于未达到培训截止日期而不合规的用户列表。

已经构建了显示和过滤数据的查询,并且我已经验证了我的列表中显示的正确信息。

我现在想在网格中添加一些“动作项”。我正在处理的第一个项目是“超链接按钮”,它将向不合规用户发送电子邮件。该电子邮件应发送给该用户,具有硬编码主题,并包含具有硬编码文本的正文,其中包含来自查询的一些数据点。

按钮列的“列列主体”将其“源类型”属性设置为“报表表达式”

表达式:

'mailto:'+ [ExceptionsByOrgQuery].[Email]  + '?subject=Compliance%20Exception&body=Hello%20' + [ExceptionsByOrgQuery].[Full Name - First Last] + '%2C%0D%0A%0D%0AYou%20are%20overdue%20for%20training.%20%20Please%20complete%20the%20following%20training%20as%20soon%20as%20possible.%0D%0ATraining%20course%3A%20' + [ExceptionsByOrgQuery].[Activity Name] + '%0D%0ADue%20Date%3A%20' + [ExceptionsByOrgQuery].[Date]

用于构建链接的所有变量都在查询中,并且应该与该行的项匹配,是否正确?

由于某些原因,我在尝试验证此报告时收到错误。

我收到的错误是:

RSV-VAL-0032 The following expression is not valid:...expression here... If the item exists in a query but is not referenced in the layout, add it to a property list. CRX-API-0005 An error ocurred at or near the position '11'. The variable named 'ExceptionsByOrgQuery].[Email]' is invalid.

我更不确定错误的第一部分意味着什么。电子邮件变量未显示在网格中,但它是查询的一部分。我可以将它添加到网格中并验证它是否在查询中,但我不希望该值显示在报告中(我也不希望显示变量[Full Name - First Last];它只是用于在电子邮件中问候。)

其他资料: 列表是从名为[ReportQuery]的查询填充的 它包含以下数据项。

  • [姓名]< - [合规]。[员工]。[姓氏] +','+ [合规]。[员工]。[名字]
  • [组织]< - set([Dimensional View]。[Organization]。[Organizations] - >?org?)
  • [注册状态]< - [合规]。[事实组织到期例外]。[注册状态]
  • [Title]< - [Compliance]。[Employee]。[Title]
  • [活动名称]< - [合规]。[活动]。[活动名称]
  • [截止日期]< - [合规]。[时间]。[Date_US]
  • [电子邮件]< - [合规]。[员工]。[电子邮件]
  • [姓名 - 最后一个]< - [合规]。[员工]。[名字] +''+ [合规]。[员工]。[姓氏]

(第一项是标签,第二项是用于制作数据项的表达式)

编辑1(来自近战的建议): 我尝试过您描述的方法,但现在看到此错误:RSV-VAL-0032以下表达式无效:''。如果项目存在于查询中但未在布局中引用,请将其添加到属性列表中。 CRX-API-0005在位置'21'处或附近发生错误。名为“[ReportQuery]。[Email]”的变量无效。

我对此错误进行了查询,发现List对象需要具有我在“属性”属性中的mailto中使用的属性。定义此属性允许我从查询中选择项目。我用mailto做了这个,但似乎没有将值与正确的行匹配;即。我已经将mailto上的主题参数设置为用户名([ReportQuery]。[Name]),并且它与表中行上显示的内容不匹配。

1 个答案:

答案 0 :(得分:2)

好的,所以你需要按照这些步骤才能使它正常工作 - 你的语法,连接,以及其他一切看起来都很棒 - 只需稍微调整一下这个过程就可以了。

  1. 将HTML项目拖到列表报告中。
  2. 选择它 - 在属性窗格下,将“源类型”更改为“报表表达式”(默认为文本,这对我们来说毫无用处)
  3. 双击HTML项目并创建mailto锚点您可以使用代码示例,但请确保在关闭之前正确验证。它应该最简单地看起来像:'<a href="mailto' + [Data Item] + '">' - 重要的;此时不要关闭锚标记。
  4. 解锁报告(顶部的挂锁)
  5. 向单元格添加另一个HTML项目(看起来在同一列中有两个HTML项目)并将其设置为“Report Expression”
  6. 双击HTML项目并添加静态文本/关闭标记。例如:Email Me</a>
  7. 运行报告,您应该有可以单击的链接(在8.4.1上进行测试)