我正在使用adempiere,我想根据另一个窗口客户端(AD_Clinet表(中可用的刻度线隐藏/显示窗口的字段。 例如,我在物料收据窗口中创建了条形码字段,我只想在客户端屏幕"扫描物料收据上的条形码"打勾时显示该字段。我正在使用窗口选项卡字段的显示逻辑>选项卡>字段,我尝试了以下事情
- AD_Client.Is_ScanBarcodeMaterialReceiot
- Barcode_Field= 从AD_Client@SELECT Is_ScanBarcodeMaterialReceiot,其中 AD_Client_ID=@#AD_Client_ID@@
- @Barcode_Field=AD_Client.Is_ScanBarcodeMaterialReceiot@
我没有为此获得适当的输出。
请提供解决问题的建议。
ADempiere 中的显示逻辑不支持 sql 语句。您可以在虚拟列中使用 SQL,然后在显示逻辑中引用该列。
因此,将"是/否"虚拟列添加到表中,并将 sql 值设置为
SELECT AD_Client.Is_ScanBarcodeMaterialReceipt FROM AD_Client WHERE AD_Client_ID=@#AD_Client_ID@
用相同的名称Is_ScanBarcodeMaterialReceipt调用此列。将其添加到窗口/选项卡,但不显示它。 打开窗口时,该值应显示在上下文中。
然后,您可以将条形码字段上的显示逻辑设置为
@Is_ScanBarcodeMaterialReceipt@=Y