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

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

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

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

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

这篇文章的评论里有人写道:

用户必须在DataProvider上调用“ setCustomatTributesInquery()方法,以自定义属性的字符串数组传递

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

谢谢。

有帮助吗?

解决方案

说实话,我已经使用过Webtop,但只是作为一个用户。我找到了一个 在 DM 开发者讨论组中发帖 不过,这可能很有用:

对于在Doclist中创建自定义列,您不需要执行此复杂的过程。您可以为此使用自定义属性datahandlers。

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

WDK开发指南中有一个有关Icustomattribuetdatahandlers的部分。查找名为“将自定义属性添加到datagrid”的主题。

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

其他提示

要回答你关于setCustomAttributesInQuery问题()

在每WDK数据网格是由基础数据提供支持。您可以通过下面的代码得到这个proivder。

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

一旦你做到了这一点,你可以叫

dp.setCustomAttributesInQuery(myArr);

我不真正知道这是解决你的问题的一部分,但你可以试试这个,看看它得到你。

您必须配置收件箱组件。

如果使用经典视图,去inboxlist成分和添加自定义属性。

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

您自定义属性必须是在作为dmi_queue_item的子类型的定制类型,因为inboxlist仅示出dmi_queue_item对象。

希望这有助于,

此致 特加斯。

这可能是一个不是问题的问题,但根据您的代码,如果你正在做这个我不能告诉:

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

或这样的:

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

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

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