2

我正在关注一篇解释如何使用 ICustomAttributeDataHandler 类的文章。

我正在为收件箱屏幕创建一个自定义列,但问题是我为自定义属性设置的值没有反映在屏幕上。

作为测试,我将任务名称更改为“whoKnows”。但是这段代码不会影响屏幕上的输出:

ICustomAttributeRecordSet.setCustomAttributeValue(i, "taskName", "whoKnows");

(当查看收件箱时,我可以从我的自定义类中打印调试行,所以我知道我的代码正在运行。)

有人对该文章的评论写道:

用户必须调用 dataprovider 上的“setCustomAttributesInQuery() 方法,传入自定义属性的字符串数组

……那是什么意思?这可能是我的问题吗?

谢谢。

4

4 回答 4

1

老实说,我已经使用过 Webtop,但只是作为一个用户。不过,我在 dm 开发人员讨论组中发现了一个有用的帖子:

要在 doclist 中创建自定义列,您不需要经历这个复杂的过程。您可以为此使用自定义属性数据处理程序。

  1. 首先在您的对象列表组件 xml 文件中,在“列”标签中添加您的自定义列定义。您甚至可以添加静态列而不是 documentum 属性。
  2. 现在创建一个实现 ICustomAttributeDataHandler 的类。
  3. 实现默认方法 getRequiredAttributes 和 getData 函数。
  4. 在 getRequiredAttributes 中添加您正在寻找的对象的属性。
  5. 在您的 getdata 方法中检索每一行,然后根据您看到的属性,只需设置您想要的值。6) 最后在 app.xml 文件中定义你的类

WDK 开发指南中有一个关于 ICustomAttribuetDataHandlers 的部分。查找名为“将自定义属性添加到数据网格”的主题。

我不确定这是否是最终解决方案,但我希望它有所帮助!

于 2009-12-29T16:59:57.103 回答
0

回答有关 setCustomAttributesInQuery() 的问题

WDK 中的每个数据网格都由底层数据提供者提供支持。您可以使用以下代码获取此提供程序。

Datagrid datagrid = (Datagrid)getControl("doclist_grid",com.documentum.web.form.control.databound.Datagrid.class);
DataProvider dp = datagrid.getDataProvider();

完成后,您可以致电

dp.setCustomAttributesInQuery(myArr);

我实际上不确定这是否是您的问题解决方案的一部分,但您可以尝试一下,看看它在哪里。

于 2010-01-13T17:16:44.910 回答
0

您必须配置收件箱组件。

如果使用经典视图,请转到收件箱列表组件并添加您的自定义属性。

<column>
    <attribute>CustomAttributeName</attribute>
    <label>Custom Attribute Label</label>
    <visible>true</visible>
</column>

您的自定义属性必须属于 dmi_queue_item 子类型的自定义类型,因为收件箱列表仅显示 dmi_queue_item 对象。

希望这可以帮助,

问候,光辉。

于 2010-02-05T09:17:45.333 回答
-1

这可能不是问题,但根据您的代码,我无法判断您是否正在这样做:

ICustomAttributeRecordSet.setCustomAttributeValue(i, "taskName", "whoKnows");

或这个:

ICustomAttributeRecordSet rs;
rs.setCustomAttributeValue(i, "taskName", "whoKnows");

您应该在 rs 对象实例上调用 setCustomAttributeValue 方法,而不是在接口上。

于 2010-01-03T23:35:32.510 回答