有没有办法使用与数据库字段不对应的表单字段进行临时处理?

IE。我想补充一下:

  • 临时字段 项目1, 项目2
  • 数据库字段
  • 带有设置记录钩的按钮 = 项目1 + 项目2
有帮助吗?

解决方案

据我所知,ClearQuest 根本不可能做到这一点。我尝试过做类似的事情,我们的 IBM 顾问告诉我,唯一的方法是为所有变量创建一个数据库字段。

其他提示

您实际上无法将数据附加到表单字段 - 这些是底层数据的表示,而不是脚本直接交互的内容。

将临时数据添加到基础记录(实体)本身听起来也不太可能。也许可以滥用 Perl API 并将数据动态附加到实体对象,但我个人不会尝试,你很可能会因为 CQ 的突发奇想而丢失数据;-)

但这并不意味着不可能拥有临时数据。在我看来,最好的方法是使用会话对象,它明确用于此目的。

来自帮助文件:

IBM Rational ClearQuest 支持 使用会话范围的变量 存储信息。创建后 会话范围的变量,您可以访问 他们通过本届会议 使用函数或子例程的对象, 包括钩子,可以访问 Session 对象。当当前 会话结束,所有变量 与该 Session 对象关联 被删除。会话在 用户注销或最终引用 到 Session 对象将不复存在。

有一些关于这个主题的有用文档 文件:///C:/Program%20Files/Rational/ClearQuest/doc/help/cq_api/c_session_vars.htm (当然,假设 Windows 计算机上默认安装。)

将其中的代码示例转换为您似乎想要的内容,首先将计算的数据存储在会话对象内:

$session->SetNameValue("item1", $value1);
$session->SetNameValue("item2", $value2);

然后在计算挂钩中检索存储的值并设置总计字段的值,如下所示:

my $item1 = GetNameValue("item1");
my $item2 = GetNameValue("item2");
my $sum = $item1 + $item2;

$entity->SetFieldValue("some_totals_record", $sum);

当然要根据口味调整;-)

ClearQuest 模式设计者通常在其记录类型中包含“临时”字段。他们这样做是为了在钩子上执行操作来生成另一个值。

例如,对于“注释”字段,有一个“临时”Notes_entry 字段,用户可以在其中键入最近的注释,保存记录时,该值将添加到 Notes_Log 字段。下次编辑记录时,Notes_entry 字段将被清除,以便用户可以键入新的 Notes_entry。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top