Bläddra i källkod

交互报表导出打印数据为空的问题

lishihao 2 år sedan
förälder
incheckning
37ab2797e6
1 ändrade filer med 17 tillägg och 3 borttagningar
  1. 17 3
      app/controller/report_controller.js

+ 17 - 3
app/controller/report_controller.js

@@ -985,7 +985,8 @@ async function getMultiRptsCommon(ctx, params, outputType, baseDir) {
     const rptDataUtil = new rptDataExtractor();
     const filterTables = [];
     const memFieldKeys = {};
-
+    let customSelect = {};
+    let customDefine = {};
     for (const rptTpl of rptTpls) {
         rptDataUtil.initialize(rptTpl);
         const filter = rptDataUtil.getDataRequestFilter();
@@ -1007,9 +1008,22 @@ async function getMultiRptsCommon(ctx, params, outputType, baseDir) {
                 }
             }
         }
-    }
 
-    const rawDataObj = await ctx.service.report.getReportData(params, filterTables, memFieldKeys, {}, {});
+        // 输出报表的时候要把客户选择的数据的参数加进来
+        let finCustomSelect = {};
+        if (rptTpl[JV.NODE_CUSTOM_DEFINE]) {
+            finCustomSelect = rptTpl[JV.NODE_CUSTOM_DEFINE] && rptTpl[JV.NODE_CUSTOM_DEFINE][JV.NODE_CUS_AUDIT_SELECT].enable
+                ? await ctx.service.rptCustomDefine.getCustomDefine(params.tender_id, params.stage_id, rptTpl.id)
+                : await ctx.service.rptCustomDefine.getCustomDefine(params.tender_id, -1, rptTpl.id);
+        }
+        if (finCustomSelect) {
+            customDefine = rptTpl[JV.NODE_CUSTOM_DEFINE];
+            customSelect = finCustomSelect;
+        }
+
+    }
+    const rawDataObj = await ctx.service.report.getReportData(params, filterTables, memFieldKeys, customDefine, customSelect);
+    // const rawDataObj = await ctx.service.report.getReportData(params, filterTables, memFieldKeys, {}, {});
     try {
         const rptPageRstArray = [];
         // 1. 这里只用一份数据,根据实际应用情况,先备份