《U8开发听我说》第四讲:UAP报表如何在自己开发的程序中打开

发布时间 2023-04-11 10:59:37作者: 用友U8开发者社区

用友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开发者社区,几百篇开发文档等着你,还可以跟更多开发前辈交流和学习。