如何通过Java SDK访问BusinessObjects简单报表过滤器和输入控件?我在DocumentInstance类中搜索过,但我发现的只是查询过滤器。我错过了什么或没有解决方案?
答案 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());
}