通过 BusinessObjects Java SDK 访问简单的报告过滤器和输入控件

Access to simple report filters and input controls via BusinessObjects Java SDK

如何通过 Java SDK 访问 BusinessObjects 简单报表过滤器和输入控件?我在 DocumentInstance class 中搜索过,但我找到的只是查询过滤器。我错过了什么或者没有解决方案?

输入控件未在 Java SDK for BusinessObjects XI 3.x 中公开。要管理输入控件,您至少需要拥有 BusinessObjects 4.1 SP6 并使用新的 RESTfull SDK。

您可以通过以下代码获取报表过滤器:

DocumentInstance documentInstance = null;  // I let you handle openDocument
ReportStructure structure = documentInstance.getStructure();
ReportContainer firstReport = (ReportContainer) structure.getReportElement(0);
if (firstReport.hasFilter()) {
    FilterContainer filterContainer = firstReport.getFilter();
    // Now you have the filters tree
}

这是检索过滤栏过滤器的代码:

Reports reports = document.getReports();
Report report = reports.getItem(0);
// Gets the drill info
DrillInfo drillInfo = (DrillInfo) report.getNamedInterface("DrillInfo");
DrillBar drillBar = null;
try {
     drillBar = drillInfo.getDrillBar();
} catch (Exception e) {
    // it may fails if you have prompt to answer for example.
}
if (drillBar != null) {
    // drillBar.getCount();  // to have the number of filters
    DrillBarObject drillBarObject = drillBar.getItem(0);
    System.out.println(drillBarObject.getName()); // Print the filter abject name

    // Print the filter value / if it is an empty string, it means "AllValues"
    System.out.println(drillBarObject.getFilter()); 
}