报表框架使用说明

报表框架使用说明

水雨情报表基础版

开始


1.版本管理

每个应用的项目,下载源码后,拷贝到各自项目的源码中。目前固化版本已经提供常见的基础水雨情报表,适配oracle和sqlserver,内置三套皮肤,处理了大部分常见bug。各项目根据实际需求可对拷贝后的源码随意更改。

若发现严重bug,rtx反馈@wsn,处理后会更新到固化版。

2.源码地址

https://rtx.strongsoft.net:9443/svn/ProductCenter/软件研发一部/通用平台/水雨情报表

3.初始化脚本(不存在的)

库表依赖


1.配置表
T_RP --主配置表
T_RP_FIELD --字段配置表
T_TP_MENU --菜单配置表
T_RP_ST_TREE --测站树配置表
T_RP_DBCONFIG --业务数据库连接配置
2.业务数据表
/*基础数据*/
ST_STBPRP_B --测站基础表
SS_STATIONEXTEND --测站信息扩展表,adcd,strongtype不能为空
SS_AREA --行政区划表
SS_BASIN_B --流域信息表

/*雨情*/
ST_PPTN_R --降水量表
ST_PSTAT_R --雨量统计表,月年雨量统计依赖

/*水库水情*/
ST_RSVR_R --水库水情表
ST_RSVRFCCH_B --水库防洪指标表
ST_RSVRFSR_B --水库汛限水位表
ST_ZVARL_B --库容曲线表

/*河道水情*/
ST_RIVER_R --河道水情表
ST_RVFCCH_B --河道防洪指标表

/*咸情*/
ST_SALT_R --实时咸情表,注:该表并非国标表

/*风情*/
ST_WDWV_R --实时风情

/*潮汐*/
ST_TIDE_R --实时潮位

/*数据库函数*/
GETKR() --库容计算
GETKNYL() --可纳雨量计算

常见配置


1.目前都是基本都为单系统,所有涉及DB_CONDESysCodev_1_0_0的地方,不了解具体实现的请不要做修改。
2.报表配置数据库











3.业务数据库
/*连接串配置文件位置*/
select * from t_rp_dbconfig
image



4.部署配置







/*Script/packages.json*/
/*修改ReportRootPath为部署时所在虚拟目录名称*/
"params": {
    "window": {
        "ReportRootPath": "/report/"
    }
}
5.皮肤配置
/*Script/packages.json*/
/*皮肤配置本质是切换css文件, 目前支持blue/darkblue/green三种皮肤样式,需要扩展新的皮肤直接拷贝样式文件夹,修改后改变引用路径即可*/
"alias": {
    "theme": "CSS/darkblue/default.css"
}
6.根节点行政区划配置,不在该节点范畴内的测站会被归属为境外站


7.是否开启行政区划过滤,开启后只能看到当前登录区划下的测站

<1--1为开启,0为关闭-->

8.模拟时间
/*Script/packages.json*/
"params": {
    "window": {
        "DemoTime": {
            "startTime": "2016-06-01 08:00:00",
            "endTime": "2016-06-01 12:00:00"
        }
    }
}
9.水情查询范围阈值,超过该时间范围则认为无实时数据
/*Script/packages.json*/
"params": {
    "window": {
        "DemoTime": {
            "diffHours": 3
        }
    }
}
10.菜单配置参数
1.菜单链接:/report/PreportPage/v_1_0_0/Default.html
2.模块过滤参数,只显示某类报表:MD_CODE=Rain
雨情:Rain
水库水情:RSVR
河道水情:River
风情:Wind
咸情:Salt
潮位:Tide
3.默认显示某个报表:RP_CODE=Rain_Origin

报表配置


可视化配置页面
基于表单简单开发了一个界面实现4个配置表的配置,暂时部署在9108的表单上面,点我跳转, 修改配置库连接串到当前项目



当然,直接用表单固化版源码打开/ReportConfig/T_RP.html也是可以的,多人共用一个配置页面的时候连接串改来改去

1.菜单配置
点击配置页面左上角‘添加菜单’打开菜单配置弹框
报表框架使用说明_第1张图片
菜单配置
  • 菜单编码:系统有扩展业务模块的菜单过滤,菜单编码按照 父节点编号(Rain) + 序号(01) 的方式填写
  • 报表配置:在T_RP表中已配置的报表配置
2.报表配置
保存菜单后,在中间配置报表主配置,基本在placeholder都有配置说明
报表框架使用说明_第2张图片
image
3.字段配置
在右侧配置报表相关的列
报表框架使用说明_第3张图片
image
报表框架使用说明_第4张图片
image
4.脚本配置
打开脚本目录ReportPage/v_1_0_0/Config/OracleReportPage/v_1_0_0/Config/MSSQLCommon.xml里面有可复用的脚本代码片段,在对应的业务的xml文件中写业务脚本,原始雨量的脚本写在如Rain.xml,其中的namespaceid对应报表配置中的脚本执行内容Rain.Origin前后两部分

xml脚本的实现机制基于iBatis,写之前可以网上了解下基本标签的用法

报表框架使用说明_第5张图片
image
5.页面配置
在目录ReportPage/v_1_0_0下新建文件,如Rain_Origin.html,这里的文件路径和菜单配置中的报表链接对应

折腾了个简单的资源加载器include.js,反正照着下面的代码用就好,有兴趣的可以看看代码

报表框架使用说明_第6张图片
image
6.搜索、表头
涉及复杂的表头,可以在ReportPage/HeadHTML下新建表头的thead标签,然后在报表配置中配置表头地址指向该文件
需要自定义搜索头的,可以在ReportPage/SearchHTML下新建搜索文件,目前已经内置了常见业务的搜索文件,在报表配置中配置搜索文件路径即可
简单的配置就这样,打开ReportPage/v_1_0_0/Default.html即可看到配置的报表页面

框架结构


不存在的

二次开发


页面个性化配置见/FrameWork/Script/Report/RP_TableJS.js,调用在报表初始化代码中MainRp.Init(option)
报表框架使用说明_第7张图片
image
数据流-框架
Deafult.html->loaded.js (
    页面参数、布局、事件、搜索初始化
    ->JSReport.InitReport()  
    ->JSReport.js(
        菜单参数: RP_MenuJS --> RP_MenuTreeOption
        接口:RpHandler.ashx?OPtype=GetAllMenuList 请求菜单,设置默认选中和点击事件 -> JSReport.ChangeRPMenu(url)
        菜单切换请求配置:RpHandler.ashx?OPtype=GetConfig&RP_CODE=Rain_Origin&DataType=1,2,3
        DatyType:1:主配置表(RP标签) 2:字段表(RP_FIELD标签) 3:树分类(ST_TREE)
        回调:
        1.JSReport.ConfigData = data;
        2.$("#SearchHtmlDiv").html(data.RP.SEARCH_HTML); --渲染搜索栏
            接口内部:1.SEARCH_HTML = new SearchBuilder(mT_RP).GetHtml();
                     2.HEAD_HTML = new HeadBuilder(mT_RP).GetHtml();
        3.RP_SiteTreeJS.Init(data.ST_TREE) -->RP_SiteTreeJS.js  生成该报表对应测站树
    )
)
数据流-表格页
Init(初始化)
->GetConfigData(请求报表配置,返回->this.ConfigData);JSReport.ConfigData = ConfigData;JSReport.ConfigData = ConfigData;
->RequestDataBefore(请求数据前的操作,会清空上次渲染结果,请求表头数据)
->RequestData(
    回调:BeforeRequestServerEvent,获取参数之前,请求之前
    开启:loadingJs.Show(),
    参数:QueryPostKeyParStr=GetPostData(),POST请求返回后端的数据
    回调:AfterGetPostDataEven(QueryPostKeyParStr),获取参数之后
    自定义数据接口:this.options.DataHtmlUrl,
    自定义数据源:this.options.CustomeData ->InitTableData(),
    标准AJAX请求:返回{HEAD: [{}, {}], DATA: [{}, {}]}, ->InitTableData()
)
->InitTableData(
    回调:DataRequestEvent,接口数据返回之后
    回调:this.Sdata=BeforeDataHtmlEvent(this.Sdata),渲染之前的数据二次处理
    回调:DataHtmlEvent(this.Sdata),自定义渲染方式
    渲染:-->ResponsesHtmlTable()
)
->ResponsesHtmlTable(
    表头及列表生成:->CreateHeadAndTableHtml()
)

你可能感兴趣的:(报表框架使用说明)