|
|
@@ -97,23 +97,27 @@ public class CrystalReplaceView {
|
|
|
ReportClientDocument client = new ReportClientDocument();
|
|
|
try {
|
|
|
client.setReportAppServer(ReportClientDocument.inprocConnectionString);
|
|
|
- client.open(reportFile, OpenReportOptions._retrieveNoReportDefinition);
|
|
|
+ client.open(reportFile.getAbsolutePath(), OpenReportOptions._retrieveNoReportDefinition);
|
|
|
DatabaseController databaseController = client.getDatabaseController();
|
|
|
IDatabase database = databaseController.getDatabase();
|
|
|
Tables tables = database.getTables();
|
|
|
for (int j = 0; j < tables.size(); j++) {
|
|
|
ITable iTable = tables.get(j);
|
|
|
- logger.info(iTable.getName());
|
|
|
- logger.info(iTable.getAlias());
|
|
|
+ logger.info("replacing table: name=" + iTable.getName() + ", alias=" + iTable.getAlias());
|
|
|
databaseController.modifyTableAlias(iTable, prefix + iTable.getAlias());
|
|
|
}
|
|
|
|
|
|
- client.saveAs(reportFile.getName(), destDir,
|
|
|
- ReportSaveAsOptions._overwriteExisting);
|
|
|
+ client.saveAs(reportFile.getName(), destDir.getAbsolutePath(), ReportSaveAsOptions._overwriteExisting);
|
|
|
} catch (ReportSDKException e) {
|
|
|
logger.error("报表读取失败", e);
|
|
|
} catch (IOException e) {
|
|
|
logger.error("报表写入失败", e);
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ client.close();
|
|
|
+ } catch (ReportSDKException e) {
|
|
|
+ throw new IllegalStateException("报表关闭失败:", e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 转换成功之后,将文件移至其他路径下
|