2017-08-09 3 views
0

Wenn ein XLSX Rezept mit Daten aus MSSQL Rendering bekomme ich diesen FehlerjsReport xlsx Rezept Before

Error occured - Error during rendering report: Cannot read property 'xl/worksheets/sheet1.xml' of undefined Stak - TypeError: Cannot read property 'xl/worksheets/sheet1.xml' of undefined at Object.add (evalmachine.:176:42) at Object. (evalmachine.:406:17) at Object.eval (eval at createFunctionContext

Ich habe meine verknüpften Skript einrichten Daten zu laden. Beispiel:

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); 
} 

Ich kann Daten in pdf, html, laden und sogar HTML-xlsx ohne Fehler. Ich habe versucht, nur ein einfaches Blatt zu verwenden, das ich ohne das unten gezeigte Skript laden kann. Ich habe auch versucht, die Daten in {{#each }} Anweisung zu verwenden. Ich bekomme immer den gleichen Fehler. Ich frage mich, ob jemand versucht hat, dies zu tun und/oder ob ich meine Daten auf andere Weise laden muss.

{{#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}}} 

Antwort

0

erhielt eine Antwort auf Github:

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

The recipe is passing some additional data to the templating engines processing and you are overwriting them.