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

时间:2017-01-12 07:30:45

标签: java business-objects

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

1 个答案:

答案 0 :(得分:1)

输入控件未在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()); 
}