JSViewer无预览打印,动态绑定数据源时无法获取登录信息
本帖最后由 penley 于 2022-1-18 08:31 编辑项目中需要无预览打印单据(不要查看,也不要导出pdf)。
GrapeCity.ActiveReports.JSViewer.print({ reportID: 'ReportDemo/演示报表.rdlx', reportParameters });
调用后,在定位数据源的方法中无法获取当前登录用户信息。会提示当前用户没有登录。
Startup.cs中,UseReporting的调用已经放在了认证、授权之后了。
说明:动态数据获取的方法没有问题,用viewer.print打印是正常的!
请问:无预览打印如何传递用户会话信息?
用户会话信息,你是需要在这里进行个传递报表参数还是别的什么需求GrapeCity.ActiveReports.JSViewer.print({ reportID: 'ReportDemo/演示报表.rdlx', reportParameters });
可能还是报表路径的问题,我将报表模板文件都直接放在了Reports下,就正常了。感谢! 好的,问题解决了就好 主要问题好像出在rdlx中记录的名称 和 报表模板的物理文件名不一致导致。
rdlx以xml文件打开,里面的名称,有的报表中没有这一行,有的和报表模板文件名相同,有的还有路径。这个有用吗?什么时间更新的呢? 这个,我还没有注意过这个XML打开的问题,我需要去试试 好像报表加载的时候,用的物理文件名称来定位。动态绑定数据源参数中拿到的是rdlx里的名称。 在app.UseReporting中的定位数据源方法中,有时候能拿到当前用户会话信息,有时候拿不到。我另一个同事的报表还是不行。
我在定位数据源的方法中,获取HttpContext。HttpContext居然有时候会出现null的情况,这也就导致下面的代码无法获取当前请求的用户信息。
假设我的报表文件为test.rdlx,我通过f12观察请求。我发现无预览打印发起了两次请求。
由
http://localhost:5000/api/reporting/reports/test.rdlx/export/pdf
到
http://localhost:5000/api/reporting/export/XrVxRJQ9mkebnFUnGmf46Q/test?
有时候会导致丢失上下文信息,导致应用无法在定位数据源的代码中获取当前用户信息。
有时候出现有时候不出现,出现和不出现的报表之间有什么不同之处吗?看起来这个问题比较诡异
页:
[1]
2