デスクトップ アプリケーションで、Crystal Report を Java に正常に接続しました。ここで、プログラムによってレポートに行を追加したいと考えています。
次のコードでこれを試しました。
try {
ReportDefController rdc = reportClientDoc.getReportDefController();
} catch (ReportSDKException ex) {
Logger.getLogger(PurchaseReport.class.getName()).log(Level.SEVERE, null, ex);
}
Tables tables = null;
try {
tables = reportClientDoc.getDatabase().getTables();
} catch (ReportSDKException ex) {
Logger.getLogger(PurchaseReport.class.getName()).log(Level.SEVERE, null, ex);
}
LineObject lineObject = new LineObject();
lineObject.clone(false);
lineObject.setSectionCode(0);
lineObject.setLineThickness(10);
lineObject.setLeft(50);
lineObject.setWidth(50);
lineObject.setHeight(10);
lineObject.setRight(20);
lineObject.setTop(10);
lineObject.setLineColor(Color.BLUE);
ReportObjectController roc = null;
try {
roc = reportClientDoc.getReportDefController().getReportObjectController();
} catch (ReportSDKException ex) {
Logger.getLogger(PurchaseReport.class.getName()).log(Level.SEVERE, null, ex);
}
ReportDefController reportDefController = null;
try {
reportDefController = reportClientDoc.getReportDefController();
ISection section = reportDefController.getReportDefinition().getDetailArea().getSections().getSection(0);
lineObject.setSectionName(section.getName());
//roc.add(fieldObject, section, 0);
if(roc.canAddReportObject(lineObject, section))
{
roc.add(lineObject, section, -1);
}
} catch (ReportSDKException ex) {
Logger.getLogger(PurchaseReport.class.getName()).log(Level.SEVERE, null, ex);
}
これはエラーをスローしますroc.add(lineObject, section, -1)
このエラーを解決して、適切に行を追加するにはどうすればよいですか?