From b689ad0495986d685ddbf11d21651a5e62f161a3 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Wed, 15 Nov 2017 10:46:11 +0100 Subject: [PATCH] IDEMPIERE-3559 DrillDown report didn't work because of two bug / integrate suggestions from Denis Kuznetsov --- .../src/org/adempiere/webui/apps/WReport.java | 16 ++++++++++++++-- .../adempiere/webui/window/ZkReportViewer.java | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/WReport.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/WReport.java index a940915d8f..0314848a7c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/WReport.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/WReport.java @@ -167,8 +167,20 @@ public class WReport implements EventListener { private void launchReport (MPrintFormat pf) { int Record_ID = 0; - if (m_query.getRestrictionCount()==1 && m_query.getCode(0) instanceof Integer) - Record_ID = ((Integer)m_query.getCode(0)).intValue(); + if (m_query.getRestrictionCount() == 1) { + if (m_query.getColumnName(0).equals(m_query.getTableName()+"_ID")) { + Object vrec = m_query.getCode(0); + if (vrec instanceof Integer) { + Record_ID = ((Integer)m_query.getCode(0)).intValue(); + } else { + try { + Record_ID = Integer.parseInt(m_query.getCode(0).toString()); + } catch (NumberFormatException e) { + log.info(e.getMessage()); + } + } + } + } PrintInfo info = new PrintInfo( pf.getName(), pf.getAD_Table_ID(), diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java index bc181177e8..b5bf837898 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java @@ -996,7 +996,7 @@ public class ZkReportViewer extends Window implements EventListener, ITab return; } if (AD_Table_ID != 0) - new WReport (AD_Table_ID, query, component, 0); + new WReport (AD_Table_ID, query, component, m_WindowNo); else log.warning("No Table found for " + query.getWhereClause(true)); } // executeDrill