运行时

从BIRT报表文件中获取页面设置信息(页边距、纸张大小、输出方向)的方法

家住魔仙堡 提交于 2020-04-06 22:50:24
报表打印时,尤其是套打的报表,页面设置信息非常重要,比如页边距,纸张大小,输出方向等,而且每个报表的相关参数有可能不同,因此相关参数从具体报表中获取是一个非常正常而且合理的想法。 如果采用BIRT作为报表的开发工具,报表设计器负责报表的制作,BIRT运行时负责处理报表文件,对于浏览器来说,BIRT后端输出的是网页,并不包含页面设置相关信息,浏览器有自己的打印设置选项,也不会从网页中读取,但是报表设计器在报表设计时提供页面设置信息的设置界面,因此我们需要通过运行时API手工写代码从具体报表中获取页面设置信息,然后再通过其他方式将参数传递给打印机(操作打印机不在本文讨论范围内),本文通过BIRT的源代码的研究,提供相关的样例代码。 BIRT报表设计器的页面设置信息在主页选项卡所对应的属性面板中体现,不再赘述,直接上代码: IReportEngine birtEngine = ...; Map moduleOptions = new HashMap(); moduleOptions.put(IModuleOption.RESOURCE_FOLDER_KEY,sc.getRealPath("/")); IReportRunnable runnable = birtEngine.openReportDesign(reportFileName,null,moduleOptions);

iOS学习之Objective-C 2.0 运行时系统编程

耗尽温柔 提交于 2019-11-29 19:07:50
1 概述 Objective-C语言将决定尽可能的从编译和链接时推迟到运行时。只要有可能,Objective-C总是使用动态的方式来解决问题。这意味着Objective-C语言不仅需要一个编译器,同时也需要一个运行时系统来执行编译好的代码。这里的运行时系统扮演的角色类似于 Objective-C语言的操作系统,Objective-C基于该系统来工作。 本文章将具体介绍NSObject类以及Objective-C程序是如何与运行时系统交互的。特别地,本文章还给出来怎样在运行时动态地加载新类和将消息转发给其它对象的范例,同时也给出了怎样在程序运行时获取对象信息的方法。 通常,如果仅仅写一个Cocoa 程序,程序员不需要知道和理解Objective-C运行时系统的底层细节,但这篇文章仍然值得推荐阅读,以了解 Objective-C运行时系统的原理,并能更好的利用 Objective-C的优点。 2 参考 《Objective-C 2.0 运行时系统参考库》描述了Objective-C运行库的数据结构和函数接口。程序可以通过这些接口来和Objective-C运行时系统交互。例如,您可以增加一个类或者方法,或者获得所有类的定义列表等。 《Objective-C 2.0 程序设计语言》介绍了Objective-C语言本身。 《Objective-C 版本说明》给出了在最近版本的Mac OS