Сделать колонку только для чтения в adempiere

У меня есть две колонки с именами "C_BPartner_ID" и "displayname" в моей таблице. Я хочу сделать столбец "displayname" только для чтения, когда "C_BPartner.name"='test'

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

@SQL=(SELECT C_BPartner.C_BPartner_ID  FROM C_BPartner WHERE C_BPartner.name='test')=@C_BPartner_ID@

Я думаю, что используя "Столбец SQL", мы можем сделать поле только для чтения. Я пытался сделать это тоже.. Но это также не сработало для меня.

Это не работает..... Кто-нибудь, пожалуйста, помогите мне... спасибо..

2 ответа

Решение

Внутреннее объединение не работает, давайте сделаем одну вещь, добавим C_BPartner_ID.Name (например, скрытое поле) в вашу таблицу и попытаемся использовать его

Предполагая, что ваши метаданные в таблице прикладного словаря (AD) ADempiere - C_BPartner, правильное использование должно быть булевой оценкой:

@Name@='test'

Содержимое здесь анализируется механизмом AD, как указано в APIdoc кода для ReadOnlyLogic (GridTab.isReadOnly() - BooleanvaluLogic):

 *  Evaluate Logic.
 *  <code>
 *  format      := <expression> [<logic> <expression>]
 *  expression  := @<context>@<exLogic><value>
 *  logic       := <|> | <&>
 *  exLogic     := <=> | <!> | <^> | <<> | <>>
 *
 *  context     := any global or window context
 *  value       := strings can be with ' or "
 *  logic operators := AND or OR with the prevoius result from left to right
 *
 *  Example '@AD_Table@=Test | @Language@=GERGER
 *  </code>
 *  @param source class implementing get_ValueAsString(variable)
 *  @param logic logic string
 *  @return logic result
Другие вопросы по тегам