|
|
@@ -26,35 +26,34 @@ public class CrystalReplaceView {
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
int length = args != null ? args.length : 0;
|
|
|
- if (length < 3) {
|
|
|
- logger.error("参数缺失\neg. java -jar target/crystal-replace-view-0.0.1.jar src/test/resources/rpts src/test/resources/out HUASL_");
|
|
|
+ if (length < 2) {
|
|
|
+ logger.error("参数缺失\neg. java -jar target/crystal-replace-view-0.0.1.jar src/test/resources/rpts HUASL_");
|
|
|
return;
|
|
|
}
|
|
|
File src = new File(args[0]);
|
|
|
- File destDir = new File(args[1]);
|
|
|
- String prefix = args[2];
|
|
|
+ String prefix = args[1];
|
|
|
try {
|
|
|
- CrystalReplaceView.replaceReports(src, destDir, prefix);
|
|
|
+ CrystalReplaceView.replaceReports(src, prefix);
|
|
|
} catch (IOException e) {
|
|
|
logger.error("替换失败", e);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static void replaceReports(File src, File destDir, String prefix) throws IOException {
|
|
|
+ public static void replaceReports(File src, String prefix) throws IOException {
|
|
|
logger.info("start...");
|
|
|
- if (src == null || destDir == null || StringUtils.isEmpty(prefix)) {
|
|
|
- throw new IllegalArgumentException("需指定参数 src, destDir, prefix");
|
|
|
+ if (src == null || StringUtils.isEmpty(prefix)) {
|
|
|
+ throw new IllegalArgumentException("需指定参数 src, prefix");
|
|
|
}
|
|
|
FileUtils.checkFile(src);
|
|
|
if (src.isDirectory()) {
|
|
|
- replaceReports(src, new File(src, "success"), destDir, prefix);
|
|
|
+ replaceReports(src, new File(src, "success"), prefix);
|
|
|
} else {
|
|
|
- replaceReport(src, new File(src.getParentFile(), "success"), destDir, prefix);
|
|
|
+ replaceReport(src, new File(src.getParentFile(), "success"), prefix);
|
|
|
}
|
|
|
logger.info("completed...");
|
|
|
}
|
|
|
|
|
|
- private static void replaceReports(File reportDir, File successDir, File destDir, String prefix) throws IOException {
|
|
|
+ private static void replaceReports(File reportDir, File successDir, String prefix) throws IOException {
|
|
|
FileUtils.checkDir(reportDir);
|
|
|
File[] files = reportDir.listFiles(new FileFilter() {
|
|
|
@Override
|
|
|
@@ -82,10 +81,9 @@ public class CrystalReplaceView {
|
|
|
if (file.isDirectory()) {
|
|
|
// 不可直接修改successDir和outDir,否则会造成其他文件的路径有问题
|
|
|
File successDirCopy = new File(successDir, fileName);
|
|
|
- File outDirCopy = new File(destDir, fileName);
|
|
|
- replaceReports(file, successDirCopy, outDirCopy, prefix);
|
|
|
+ replaceReports(file, successDirCopy, prefix);
|
|
|
} else {
|
|
|
- replaceReport(file, successDir, destDir, prefix);
|
|
|
+ replaceReport(file, successDir, prefix);
|
|
|
}
|
|
|
} catch (Throwable e) {
|
|
|
logger.error(file.getName(), e);
|
|
|
@@ -93,9 +91,9 @@ public class CrystalReplaceView {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private static void replaceReport(File reportFile, File successDir, File destDir, String prefix) throws IOException {
|
|
|
+ private static void replaceReport(File reportFile, File successDir, String prefix) throws IOException {
|
|
|
logger.info("replacing... " + reportFile.getName());
|
|
|
- FileUtils.initDir(destDir);
|
|
|
+ FileUtils.initDir(successDir);
|
|
|
ReportClientDocument client = new ReportClientDocument();
|
|
|
try {
|
|
|
// 打开报表
|
|
|
@@ -111,10 +109,7 @@ public class CrystalReplaceView {
|
|
|
databaseController.modifyTableAlias(iTable, prefix + iTable.getAlias());
|
|
|
}
|
|
|
|
|
|
- client.saveAs(reportFile.getName(), destDir.getAbsolutePath(), ReportSaveAsOptions._overwriteExisting);
|
|
|
- // 转换成功之后,将文件移至其他路径下
|
|
|
- FileUtils.initDir(successDir);
|
|
|
- FileUtils.move(reportFile, new File(successDir, reportFile.getName()));
|
|
|
+ client.saveAs(reportFile.getName(), successDir.getAbsolutePath(), ReportSaveAsOptions._overwriteExisting);
|
|
|
System.out.println();
|
|
|
} catch (ReportSDKException e) {
|
|
|
logger.error("报表读取失败", e);
|