Отображение пользовательских атрибутов в Documentum - Webtop

StackOverflow https://stackoverflow.com/questions/1954211

Вопрос

Я слежу за статья это объясняет, как использовать класс ICustomAttributeDataHandler.

Я создаю пользовательский столбец для экрана входящих сообщений, но проблема в том, что значение, которое я установил для своего пользовательского атрибута, не отражается на экране.

В качестве теста я меняю название задачи на "Кто знает".Но этот код не влияет на то, что выводится на экран:

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

(Я могу печатать отладочные строки из моего пользовательского класса при просмотре папки "Входящие", поэтому я знаю, что мой код выполняется.)

Кто-то в комментариях к этой статье написал:

пользователь должен вызвать метод setCustomAttributesInQuery() в dataprovider, передающем массив строк пользовательских атрибутов

...что это значит?Может ли это быть моей проблемой?

Спасибо.

Это было полезно?

Решение

Честно говоря, я уже пользовался Webtop, но только как пользователь.Я нашел разместите сообщение в дискуссионной группе разработчиков dm хотя это может быть полезно:

Для создания пользовательского столбца в списке документов вам не нужно проходить эти сложные процедуры.Вы можете использовать пользовательские обработчики данных атрибутов для этого.

  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.

Надеюсь, это поможет,

С уважением, Tejas.

Возможно, это не проблема, но, основываясь на вашем коде, я не могу сказать, делаете ли вы это:

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

или это:

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

Вы должны вызывать метод setCustomAttributeValue в экземпляре объекта rs, а не в интерфейсе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top