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

用友U8二次开发过程中经常有这样的需求:

自定义菜单开发了比较复杂的界面,界面中需要联查或者打开系统的UAP报表,代码如何实现呢?

今天我们就来说到说到。

报表的查询入口正常有以下几种:

  • 门户->视图->我的报表->自定义报表

  • 单独的菜单节点

  • 自定义点击事件处理函数中调用报表系统函数

前面两种基本都是系统标准功能实现的,第三种就是我们今天要介绍的代码实现方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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内容随意

posted @   用友U8开发者社区  阅读(605)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示