《用友U8开发听我说》第四讲:UAP报表如何在自己开发的程序中打开
用友U8二次开发过程中经常有这样的需求:
自定义菜单开发了比较复杂的界面,界面中需要联查或者打开系统的UAP报表,代码如何实现呢?
今天我们就来说到说到。
报表的查询入口正常有以下几种:
-
门户->视图->我的报表->自定义报表
-
单独的菜单节点
-
自定义点击事件处理函数中调用报表系统函数
前面两种基本都是系统标准功能实现的,第三种就是我们今天要介绍的代码实现方式:
Public Function OpenReport( _ sReportID As String, _ objU8Login As Object, _ Optional subid As String = "", _ Optional rawfilter As Object = Nothing) As Boolean Public Function OpenReportNoneFilterUI( _ sReportID As String, _ objU8Login As Object, _ Optional subid As String = "", _ Optional rawfilter As Object = Nothing) As Boolean '11.0增加,打开收藏的过滤方案时调用) Public Function OpenReportNoneFilterUIWithCommandLine( _ sReportID As String, _ objU8Login As Object, _ Optional subid As String = "", _ Optional commandLine As String="") As Boolean
这三个接口是对象ReportService.clsReportManager中的函数;
需要引用组件:
ReportService.dll、UFIDA.U8.UAP.Services.ReportFilterService.tlb
接口的功能是打开一张报表,OpenReport在打开报表之前会先显示过滤界面,OpenReportNoneFilterUI不会(例如在使用联查报表的时候有时不需要进行过滤)。此接口在业务组在其需要打开一张报表时调用。
参数介绍:
sReportID:报表的ID,即将要打开的报表标识。
objU8Login:U8的Login对象,注意:这个对象必须是COM封装的Login。
subid:报表所属的子产品号,这个参数是可选的。注意:当指定了此参数,接口会在随后的处理中按照subid[__]sReportID的规则拼接成真正的报表ID。
rawfilter:可选过滤条件对象(UFGeneralFilter.FltSrv或自定义的过滤条件对象),此对象中必须是ISelfFilter(见第四个接口)的一个实现。这个参数通常报表的自定义行为(如联查)时,需要有过滤的情形时会使用到。
commandLine:OpenReportNoneFilterUIWithCommandLine接口是在打开过滤方案的时候调用的,其中commandLine的格式为: filtersolution=aa
如果要添加别的内容请用VBtab分割符,例如
Commandline=“filtersolution=abc”Commandline=“xxxx vbtab filtersolution=abc”xxxx内容随意
关于《用友U8开发者社区》
微信公众号:【用友二次开发分享】,每天学习U8开发干货知识;
微信小程序搜索:【知识星球】,加入《用友U8开发者社区》,更新发布开发知识、培训资料、开发源码等干货,社区可以互动提问,获得解答,互帮互助。
本文来自博客园,作者:用友U8开发者社区,转载请注明原文链接:https://www.cnblogs.com/u8dev/p/17305496.html