4.公用API
通过EMAP的发布类机制,提供如下java API:
4.1 获取报表配置信息
public interface IReportManager2 {
/\*\*
\* BEAN ID
\*/
public static String BEANID = "ReportConfig";
/\*\*
\* 根据应用名称获取应用下的所有报表配置
\* @param String
\* appname 业务系统EMap应用名称,如果为空则使用jzreport的默认应用
\* @return List
<
ReportConfig2
>
报表配置列表
\*/
public List
<
ReportConfig2
>
getReportConfigs(String appname);
/\*\*
\* 根据应用名称和报表名称获取应用下的reportName 报表配置
\* @param String
\* appname 业务系统EMap应用名称,如果为空则使用jzreport的默认应用
\* @param String
\* reportName 报表名称
\* @return ReportConfig2 报表配置
\*/
public ReportConfig2 getReportConfig\(String appname, String reportName\);
/\*\*
\*
\* @param String
\* appname 业务系统EMap应用名称,如果为空则使用jzreport的默认应用
\* @param String
\* type 无用参数,只是保持api兼容
\* @return List
<
ReportConfig2
>
报表配置列表
\*/
public List
<
ReportConfig2
>
getReportConfigs(String appname, String type);
/\*\*
\* 根据应用名称、报表标识及报表类型获取应用下的所有标识为tag的报表配置
\* @param String
\* appname 业务系统EMap应用名称,如果为空则使用jzreport的默认应用
\* @param String
\* tag 报表的tag,必须大小写匹配
\* @param String
\* reportType无用参数,只是保持api兼容
\* @return List
<
ReportConfig2
>
报表配置列表
\*/
public List
<
ReportConfig2
>
getReportConfigsByTag(String appname, String tag, String reportType);
获取方式一: AppBeanContainer
<
IReportManager2
>
container = new
AppBeanContainer
<
IReportManager2
>
("jzreport",IReportManager2.BEANID,false); IReportManager2
reportManager = container.get();
获取方式二: IEmappp emapApp = AppManager.getInstance().getApp("jzreport"); Object
bean = emapApp.getSpring().getBean(IReportManager2.BEANID); IReportManager2 reportManager =
(IReportManager2 )bean;
4.2 获取指定应用下报表配置的额外信息
此api是用来获取指定应用下报表配置的额外信息,目前支持获取自定义属性,返回结果为Map
<
String, Map
<
String, String
>
>
,格式为{ 【报表名称】:{ 【信息名称】 :【信息内容 】} },目前支持自定义属性,为{ 报表名称 :{ “customAttribute” :信息内容 } }
public interface IJZReportManager {
/\*\*
\* BEAN ID
\*/
public static String BEANID = "IJZReportManager";
/\*\*
\* 获取指定应用下报表配置的额外信息,目前支持自定义属性(customAttribute)
\* @param appname
\* 应用名称
\* @return 格式为:{【报表名称】:{【信息名称】:【信息内容】} }
\* 目前支持自定义属性({【报表名称】:{ “customAttribute”:【信息内容】}})
\*/
public Map
<
String, Map
<
String, String
>
>
getReportExtraConfigs(String appname);
}
获取方式一: AppBeanContainer
<
IJZReportManager
>
container = new
AppBeanContainer
<
IJZReportManager
>
("jzreport",IJZReportManager.BEANID,false); IJZReportManager
reportManager = container.get();
获取方式二: IEmapApp emapApp = AppManager.getInstance().getApp("jzreport"); Object
bean = emapApp.getSpring().getBean(IJZReportManager.BEANID); IJZReportManager reportManager =
(IJZReportManager)bean;
4.3 条件过滤参数querySetting的使用
jzreport的查询完全基于EMAP模型和模型操作api,考虑的各种模型的通用支持,报表展示画面的URL或REST API参数,都直接支持querySetting参数。如果有定制化的条件设置需求,请自行实现条件设置画面,然后通过querySetting参数将自定义的条件传入报表展示画面。关于querySetting的URL参数的具体使用方法,请参考EMAP文档说明。在使用querySetting时请注意以下3点说明:
1、此参数结构与EMAP中的querySetting的数据结构一致。
2、此参数中的查询条件与设置报表的固定条件、查询条件、过滤字段条件等一起构成报表数据的过滤条件,此参数的查询条件与其他的条件是“与”的关系。
3、此参数中的查询条件与其他的查询条件如果有冲突时属于用户自己设置的问题,报表中没有检查这些条件的冲突问题。
功能说明
显示已制作完成的方案,并对方案列表中的方案可检索、导入、导出、修改、删除,可执行全屏和嵌入式两种方式的浏览。
设置画面
画面检索
- 搜索输入框
未输入的情况下,输入框内文字显示【搜索方案名称或数据模型】,颜色为灰色。输入的情况下,显示已输入的字符串,颜色为黑色。
输入规则:中文数字字母下划线组成的字符串。
- 搜索按钮
点击搜索按钮,方案列表中的数据将根据搜索框中的字符串进行匹配。如果方案列表、数据模型中包含该字符串,该条记录将显示。
按钮
- 导入
点击导入按钮,弹出窗口,该窗口为模态窗口,如下图:
点击选择文件,选择json文件,点击确定,数据导入(如果存在方案名称相同的数据,则覆盖已存在的数据),页面刷新。点击关闭,弹出窗口关闭。
- 导出
点击导出按钮,方案列表中已选择的数据(CheckBox选中的数据)以json格式导出。如果未选择数据,则导出当前的查询结果。
- 删除
点击删除按钮,弹出窗口,该窗口为模态窗口,如下图:
点击删除,方案列表中已选择的数据(CheckBox选中的数据)将被删除,并显示删除成功信息。
删除成功信息显示方式如下图:
注意:如果没有选中方案列表中的数据,点击删除按钮,则弹出提示框,如下: