如何给jsreport传参数根据参数生成报表

How to pass parameters to jsreport to generate report based on the paramter

这是使用 jsreport 生成报告的代码。我想通过将输入参数传递给 jsreport 来生成报告。

var express= require('express');
var router = express.Router();
var request=require('request');

router.get('/' ,function(req,res,next){
var shortid=req.query.shortid;
var preview =req.query.preview;

var data={ 
template:{'shortid':shortid , "recipe" : "html"},
options:{
    preview:preview
}
}
var options={
uri:'http://localhost:5488/api/report',
method:'post',
json:data
//how to pass parameter here like uri,method. 
}
request(options).pipe(res);
});
module.exports=router;

我想在 jsreport 的脚本中为 mysql 查询传递参数。

您可以通过输入数据传递参数或将其附加到选项属性

router.get('/' ,function(req,res,next){
  var shortid=req.query.shortid;
  var preview =req.query.preview;

  var data={ 
    template:{'shortid':shortid , "recipe" : "html"},
    options:{
        preview:preview
    },
    data: {
      paramA: 'foo'
    }
  }
  var options={
  uri:'http://localhost:5488/api/report',
  method:'post',
  json:data
  //how to pass parameter here like uri,method. 
  }
  request(options).pipe(res);
});

然后就可以在req.data.paramA上访问脚本中的参数了。 (如果使用 jsreport < 1.0,在全局 request 对象上达到它)

function beforeRender(req, res, done) {
  var paramA = req.data.paramA
  ...
  done()
}