0

我正在使用 adempiere,我想根据另一个窗口客户端(AD_Clinet 表)中可用的刻度线来隐藏/显示窗口的字段。例如,我在材料收据窗口中创建了条形码字段,我只想在客户端屏幕扫描材料收据上的条形码被打勾时显示。我正在使用窗口选项卡字段>选项卡>字段的显示逻辑,我尝试了以下事情

  1. AD_Client.Is_ScanBarcodeMaterialReceiot
  2. Barcode_Field= @SELECT Is_ScanBarcodeMaterialReceiot FROM AD_Client WHERE AD_Client_ID=@#AD_Client_ID@@
  3. @Barcode_Field=AD_Client.Is_ScanBarcodeMaterialReceiot@

我没有得到适当的输出。

请提供解决此问题的建议。

4

1 回答 1

0

ADempiere 中的显示逻辑不支持 sql 语句。您可以在虚拟列中使用 SQL,然后在显示逻辑中引用该列。

因此,将一个 Yes/No 虚拟列添加到表中,并将 sql 值设置为

SELECT AD_Client.Is_ScanBarcodeMaterialReceipt FROM AD_Client WHERE AD_Client_ID=@#AD_Client_ID@

使用相同的名称 Is_ScanBarcodeMaterialReceipt 调用此列。将其添加到窗口/选项卡但不显示它。当您打开窗口时,该值应出现在上下文中。

然后您可以将条形码字段上的显示逻辑设置为

@Is_ScanBarcodeMaterialReceipt@=Y
于 2019-10-04T22:35:59.950 回答