1

我的表中有两列名为“C_BPartner_ID”和“displayname”。当“C_BPartner.name”='test'时,我想只读“displayname”列

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

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

我认为使用“Column SQL”我们可以使字段只读。我也尝试这样做..但它也对我不起作用。

这不起作用......有人可以帮助我......谢谢......

4

2 回答 2

2

内连接不起作用,让我们做一件事,在您的表中添加 C_BPartner_ID.Name(如隐藏字段)并尝试使用它

于 2014-05-12T08:25:19.107 回答
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
于 2016-01-02T02:17:58.937 回答