|
|
@@ -241,6 +241,19 @@ public class PrintServiceImpl implements PrintService {
|
|
|
if (line.contains("/jrxml/")) {
|
|
|
int beginIndex = line.indexOf("/jrxml/") + 7;
|
|
|
int endIndex = line.indexOf(".jasper");
|
|
|
+ // 子报表解析失败
|
|
|
+ if (beginIndex == -1 || endIndex == -1) {
|
|
|
+ bufferedReader.close();
|
|
|
+ String message = "嵌套报表源码解析失败:" + jrxmlFile.getName() + "\n子报表引用格式错误:";
|
|
|
+ try {
|
|
|
+ message += line.substring(line.indexOf("$P{REPORT_DIR}"),
|
|
|
+ line.indexOf("]]></subreportExpression>"));
|
|
|
+ } catch (Exception e) {
|
|
|
+ message = line.replaceAll("<subreportExpression><![CDATA[", "")
|
|
|
+ .replaceAll("]]></subreportExpression>", "").trim();
|
|
|
+ }
|
|
|
+ throw new ReportException(message);
|
|
|
+ }
|
|
|
String subJrxmlFileName = line.substring(beginIndex, endIndex) + ".jrxml";
|
|
|
subJrxmlFilePaths.add(jrxmlFile.getParent() + "/" + subJrxmlFileName);
|
|
|
}
|