【问题标题】:jsReport xlsx Recipe beforeRenderjsReport xlsx 配方 beforeRender
【发布时间】:2017-08-10 22:18:39
【问题描述】:

当使用来自 mssql 的数据渲染 XLSX 配方时,我收到此错误

发生错误 - 呈现报告期间出错:无法读取属性 未定义 Stak 的“xl/worksheets/sheet1.xml”-TypeError:无法读取 未定义的属性“xl/worksheets/sheet1.xml” 在 Object.add (evalmachine.:176:42) 在对象。 (评估机器:406:17) 在 Object.eval 处(在 createFunctionContext 处进行评估

我已将链接脚本设置为加载数据。示例:

var sql = require('mssql');
var config = {
    "user": "jsreport",
    "password": "password",
    "server": "janblaha-PC\\SQLEXPRESS",
    "database": "northwind"
}

function beforeRender(done) {
    sql.connect(config).then(function() {
        var req = new sql.Request();
        return req.query('select count(*) as Count, ShipCountry  from Orders group by ShipCountry').then(function(recordset) {
            request.data = { countries: recordset };
            done();
        });
    }).catch(done);
}

我可以毫无错误地将数据加载到 pdf、html 甚至 html-xlsx 中。我尝试只使用一个基本工作表,我可以在没有脚本的情况下加载,如下所示。我也尝试过使用{{#each }} 语句中的数据。我总是得到同样的错误。想知道是否有人尝试过这样做和/或我是否需要以不同的方式加载我的数据。

{{#xlsxAdd "xl/worksheets/sheet1.xml" "worksheet.sheetData[0].row"}}
    <row>
        <c t="inlineStr"><is><t>Hello world</t></is></c>
        <c><v>11</v></c>
    </row>
{{/xlsxAdd}}

{{{xlsxPrint}}}

【问题讨论】:

    标签: jsreport


    【解决方案1】:

    在 Github 上收到回复:

    //old
    request.data = { countries: recordset };
    //new
    Object.assign(request.data, { countries: recordset })
    

    配方正在向模板引擎传递一些额外的数据 正在处理,而您正在覆盖它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      相关资源
      最近更新 更多