找回密码
 立即注册

QQ登录

只需一步,快速开始

lihuioooo
等待验证会员   /  发表于:2016-8-11 12:00:28
11#
Lenka.Guo 发表于 2016-8-11 09:20
通过这一行代码大,但是在OnCreate方法中只能获取到参数的默认值,而在LocateDatasource中可以获取到参数的 ...

发现在 调用pdf.Export(doc.Document, memStream); 时会重新调用definition1.Document.LocateDataSource += new LocateDataSourceEventHandler(Document_LocateDataSource);事件
导致死循环了
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-8-11 12:23:34
12#
您可以看看我上楼中上传的示例,主要是写在Oncreate的方法中,您可以了解下。
回复 使用道具 举报
lihuioooo
等待验证会员   /  发表于:2016-8-11 14:19:23
13#
Lenka.Guo 发表于 2016-8-11 12:23
您可以看看我上楼中上传的示例,主要是写在Oncreate的方法中,您可以了解下。

你写的那个demo 我看到了, 和我存在同样的问题 ,
pageDocument.Render(pdfRenderingExtension, outputProvider, pdfSetting);  在执行这个方法时 也会激发Document_LocateDataSource 二次执行,只不过你没在这里去动态获取报表参数,否则也会出现和我一样的遭遇,进入死循环,我在这里获取了报表的参数 并绑定了事件,事件会激发将报表转为数据流,一旦激发后 就会执行类似你 pageDocument.Render(pdfRenderingExtension, outputProvider, pdfSetting);   这个方法
回复 使用道具 举报
lihuioooo
等待验证会员   /  发表于:2016-8-11 16:15:29
14#
我再说下我的事情场景吧
现在我们要做一个审核操作是一个按钮,在点击这个按钮时 要触发一个报表请求,webservice接收到这个请求后要把报表处理出来并导成数据流入库,然后返回一个自增ID和流数据给这个请求,前台根据这个数据流会自动调用打印机进行打印,  简单的业务流程就是这样。 现在可以转成流了,但是不知道前台以哪种方式进行我和交互,我想暴露一个接口出来 但触发不了Document_LocateDataSource
回复 使用道具 举报
天心天思技术部
中级会员   /  发表于:2016-8-11 17:41:22
15#
本帖最后由 天心天思技术部 于 2016-8-11 17:49 编辑
lihuioooo 发表于 2016-8-11 16:15
我再说下我的事情场景吧
现在我们要做一个审核操作是一个按钮,在点击这个按钮时 要触发一个报表请求,web ...

HI~ 你好,鉴于你的这个业务逻辑与我前些时间做的DEMO有几分相似, 其实当你从webservice上获取到对应的报表文件后,转换成IO流文件, 同样的,在你执行打印前抓取到前台返回选中的报表模板时,你再次进行转换将获取到的IO流变成实体sectionreport 或者 pagereport 在或者RDL报表,然后你在执行报表对象 xxx.Run(), 在执行这个方法的时候就可以执行到你添加的Document_LocateDataSource数据绑定的function!

评分

参与人数 1金币 +1000 收起 理由
Lenka.Guo + 1000 赞一个!

查看全部评分

回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-8-11 18:38:49
16#
如电话所沟通,暂时采取的方法就是通过为报表对象修改 datasource 的属性来实现
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部