在adempiere中只读一列

时间:2014-05-08 05:48:42

标签: logic readonly adempiere

我有两列名为" C_BPartner_ID"和" displayname"在我的桌子上。我想要只读#34; displayname"列" C_BPartner.name" =' test'

问题是我不知道如何在adempiere中只读这个字段。 我将以下sql查询添加到表&中的readonly逻辑字段中。列。

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

我认为使用" Column SQL"我们可以让字段只读。我也尝试过这样做..但它对我来说也没有用。

这不起作用.....任何人都可以帮助我......谢谢..

2 个答案:

答案 0 :(得分:2)

内部联接不起作用, 让我们做一件事在你的表中添加C_BPartner_ID.Name(如hiddenfield) 并尝试使用它

答案 1 :(得分:2)

假设您在ADempiere的应用程序字典(AD)表中的元数据是C_BPartner,正确的用法应该是布尔评估:

@Name@='test'

此处的内容由AD引擎解析,如ReadOnlyLogic代码的APIdoc中所述(GridTab.isReadOnly() - Boolean evaluateLogic):

 *  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