Сделать колонку только для чтения в 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