FineReport设计器默认提供了3种预览方式,分别是分页预览、填报预览、以及分析预览,如图所示
大部分情况这三种预览方式都可以满足用户需求了,但是在一些特殊的情况,比如我在预览的时候希望不分页,如果采用默认的预览按钮,就只能预览以后再在url里面加上参数 __bypagesize=false 来实现,相对来说,这种方式操作比较麻烦。
那么有没有比较简单的方式呢,答案当然是有的。
通过使用FineReport V8.0的插件机制,可以在添加全新的预览方式,在安装了插件以后,效果如下,点击 不分页预览这一项,就可以在预览的时候自动在url后面加上参数 __bypagesize=false了
源代码:自定义预览方式源码
xml配置文件
- <?xml version="1.0" encoding="UTF-8" standalone="no"?><plugin>
- <id>com.fr.plugin.preview.pagenotpage</id>
- <name><![CDATA[带参数的分页预览]]></name>
- <active>yes</active>
- <version>1.0</version>
- <env-version>8.0</env-version>
- <vendor>finereport</vendor>
- <description><![CDATA[普通的分页预览是会自动分页的,而使用改插件后,将会新增加一种预览方式:以不分页的方式进行分页预览]]></description>
- <change-notes><![CDATA[无]]></change-notes>
- <extra-core/>
- <extra-report/>
- <extra-designer>
- <PreviewProvider class="com.fr.plugin.preview.PageNoByPagePreview"/>
- </extra-designer>
- </plugin>
复制代码 主要实现的接口类
- package com.fr.design.fun;
- import com.fr.design.mainframe.JTemplate;
- import java.util.Map;
- /**
- * @author richie
- * @date 2015-03-19
- * @since 8.0
- * 自定义预览方式接口
- */
- public interface PreviewProvider {
- public static final String MARK_STRING = "PreviewProvider";
- /**
- * 下拉弹出菜单的名字
- * @return 弹出菜单名字
- */
- public String nameForPopupItem();
- /**
- * 下拉弹出菜单的图标路径
- * @return 图标路径
- */
- public String iconPathForPopupItem();
- /**
- * 大图标路径
- * @return 大图标路径
- */
- public String iconPathForLarge();
- /**
- * 点击下拉菜单时触发的事件
- */
- public void onClick(JTemplate<?, ?> jt);
- /**
- * 用于标记预览类型的整数
- * @return 预览类型
- */
- public int previewTypeCode();
- /**
- * 该种预览方式所携带的默认参数集合
- * @return 参数集合
- */
- public Map<String, Object> parametersForPreview();
- }
复制代码
|