Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

generic-url: a link to a third-party web-page on a server located somewhere remote. Report-Path and the parameter-values are used. Report-Path specifies the full URL, and parameters specify the parameter you want to pass.

Code Block

DRILLDOWN ("generic-url"; ""; "http://www.google.com/?"; ""; {{"q", "your-query"}})
Code Block

&nbsp; <drilldown-profile name="generic-url"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     class="org.pentaho.reporting.engine.classic.extensions.drilldown.PatternLinkCustomizer"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     bundle-name="org.pentaho.reporting.engine.classic.extensions.drilldown.drilldown-profile"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     expert="true" hidden="true" preferred="false" deprecated="false">
&nbsp;&nbsp;&nbsp;    <attribute name="pattern">${1}${3}</attribute>
&nbsp;&nbsp;&nbsp;
    <attribute name="extension">xaction</attribute>
&nbsp;&nbsp;&nbsp;    <attribute name="parameter-encoding">urlencode</attribute>
&nbsp;  </drilldown-profile>

local-url: a link to a web-page on the same server. Report-Path and the parameter-values are used. Report-path specifies the local path relative to the "serverBaseURL".

Code Block

DRILLDOWN ("local-url"; ""; "/mywebapp/myownservlet?"; ""; {{"param",  "your-value"}})
Code Block

&nbsp; <drilldown-profile name="local-url"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     class="org.pentaho.reporting.engine.classic.extensions.drilldown.PatternLinkCustomizer"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     bundle-name="org.pentaho.reporting.engine.classic.extensions.drilldown.drilldown-profile"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     expert="true" hidden="true" preferred="false" deprecated="false">
&nbsp;&nbsp;&nbsp;    <attribute name="formula">ENV(&quot;serverBaseURL&quot;)${1}${3}</attribute>
&nbsp;&nbsp;&nbsp;
    <attribute name="extension">xaction</attribute>
&nbsp;&nbsp;&nbsp;    <attribute name="parameter-encoding">urlencode</attribute>
 &nbsp; </drilldown-profile>

local-xaction: A link to a xaction running on the same server and the same web-application. All parameter are used and inserted into the final URL.

Code Block

DRILLDOWN ("local-xaction"; "steel-wheels"; "test/dir"; "sample.xaction";  {{"param",  "your-value"}})
Code Block

&nbsp; <drilldown-profile name="local-xaction"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     class="org.pentaho.reporting.engine.classic.extensions.drilldown.PatternLinkCustomizer"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     bundle-name="org.pentaho.reporting.engine.classic.extensions.drilldown.drilldown-profile"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     expert="true" hidden="true" preferred="false" deprecated="false">
&nbsp;&nbsp;&nbsp;    <attribute name="formula">ENV(&quot;pentahoBaseURL&quot;) &amp; &quot;viewaction?solution=&quot; &amp; URLENCODE(\[&quot;::solution&quot;\]) &amp; &quot;&amp;path=&quot; &amp; URLENCODE(\[&quot;::reportPath&quot;\]) &amp; &quot;&amp;name=&quot; &amp;URLENCODE (\[&quot;::reportId&quot;\]) &amp; &quot;&amp;&quot; \[&quot;::parameter&quot;\]</attribute>
&nbsp;&nbsp;&nbsp;
    <attribute name="extension">xaction</attribute>
&nbsp;&nbsp;&nbsp;
    <attribute name="parameter-encoding">urlencode</attribute>
&nbsp;  </drilldown-profile>

local-prpt: A link to a local PRPT with the parameter UI shown.

Code Block

DRILLDOWN ("local-prpt"; "steel-wheels"; "test/dir";  "sample.prpt";  {{"param",  "your-value"}})
Code Block

&nbsp; <drilldown-profile name="local-prpt"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     class="org.pentaho.reporting.engine.classic.extensions.drilldown.PatternLinkCustomizer"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     bundle-name="org.pentaho.reporting.engine.classic.extensions.drilldown.drilldown-profile"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                     expert="true" hidden="true" preferred="false" deprecated="false">
&nbsp;&nbsp;&nbsp;    <attribute name="formula">ENV(&quot;pentahoBaseURL&quot;) &amp; &quot;content/reporting/reportviewer/report.html?solution=&quot; &amp; URLENCODE(\[&quot;::solution&quot;\]) &amp; &quot;&amp;path=&quot; &amp; URLENCODE(\[&quot;::reportPath&quot;\]) &amp; &quot;&amp;name=&quot; &amp;URLENCODE (\[&quot;::reportId&quot;\]) &amp; &quot;&amp;&quot; \[&quot;::parameter&quot;\]</attribute>
&nbsp;&nbsp;&nbsp;    <attribute name="extension">prpt</attribute>
&nbsp;&nbsp;&nbsp;    <attribute name="parameter-encoding">paramvalue</attribute>
 &nbsp;</drilldown-profile>


The drill-down profiles can be queried at runtime via the DrillDownProfileMetaData-API and can provide design-time hints to the UI, similar to the Metadata-API for Elements and Expressions. 

Drill-Down UI

The drill-down UI is a specialized editor for the DRILLDOWN function. The editor is only expected to work with a pure DRILLDOWN function without any additional formula functionality around it. If a user embeds the DRILLDOWN function into his own larger formula, then he will have to use the plain formula-editor to configure it.

...

If the editor encounters an undefined profile, it has to default to a generic editor, so that the user can edit or correct the definition. (I do expect to see many undefined profiles in reports sent to support, as we are generally not in possession of the user's drill-down profile definitions.)