i N E S T I M系统二次开发手册标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]iNESTIM系统数据展示及应用分析平台二次开发手册目录文件修订记录一、引言iNESTIM软件是面向企业(集团)应用需求而研发的专业能源监测与集中控制管理平台,帮助企业加强能源计量管理,开展企业节能降耗行动,提高能源利用率,减少资源消耗、保护环境;协助企业更好地完成资源调配、组织生产、部门结算、成本核算,对能源供应进行监测,以便企业实时掌握能源状况,为实现能源自动化调控奠定坚实的数据基础。
系统配合各用能单位的节能工作,科学合理地降低单位产值或单位产品的能源资源消耗,实现分产品、分车间的能源管理,提高能源资源的利用水平,建立科学合理的能源体系,同时为用能单位能源网络的设计、优化、改造提供全面的基础数据和分析数据;加强对用能单位能源利用状况的宏观监督管理,以及对用能单位能源资源投入产出全过程进行全面的审计,建立科学的能源审计体系;为企业的安全、可靠、高效的用能提供全面的科学指导,最大限度地延长企业生产设备的使用寿命,有效降低维护成本。
本手册定制的目的是为了对项目实施及配置过程中的一些简单二次开发方式做一些说明。
二菜单配置方式菜单订制及查询sql定制Sql定制页面的功能是将简单的横行乘数列的表格使用web的方式展示。
原理是通过sql语句获取数据集并将获取到的数据集在web上展示出来。
此过程只涉及到2个数据表分别是module_info表与report_unit表。
也就是说在以上2张表中将记录完成就能在web上形成一个sql定制页面。
在数据库中直接配置的方法如下:2.1.1 数据表介绍首先介绍下module_info及report_unit的主要字段:Module_info菜单信息表MODULEID 数字型,菜单编号,MODULETYPEID 数字型,菜单种类编号大部分时候使用‘1’即可,PARENTID 数字型,父节点编号,即此菜单项下挂于菜单树的哪一级,MODULENAME 字符型,菜单名称,MODULEURL 字符型,页面地址及参数,STATE 数字型,默认0,ADMINPERM 字符型,管理权限字符串,使用‘1’,READPERM 字符型,读权限字符串,使用‘1’,FUNCTIONID 数字型,,TREEID 数字型,此菜单使用的树编号,此id对应MODULE_TREE_RELATION表中的id,ORDERINDEX 数字型,排序编号,若此菜单所属的父菜单包含多个子菜单,依照此字段的大小排序IMG 字符型,菜单在菜单树中使用的图片MODULETYPE 字符型,标识位,‘0’表示此项内容在后台系统即管理员显示,‘1’表示在前台系统即数据浏览页面显示。
SINGLE 字符型,标识位,‘0’即可。
REPORT_UNIT 报表信息表RE_UNIT_ID 数字型,报表编号,RE_UNIT_NAME 字符型,报表名称,显示于数据页面的正中,图形的上方,RE_UNIT_DEGREE 字符型,备用字段可为空,RE_UNIT_SQL 字符型,数据查询所用sql,RE_UNIT_RPT 字符型,模板名,可为空RE_UNIT_CONTERT 字符型,与RE_UNIT_NAME相同,RE_UNIT_CONDITION 字符型,可为空,RE_UNIT_SQL1 字符型,下钻页面所用sql,可为空,RE_DATA 字符型,标识位,是否可下钻‘1’为支持下钻,‘0’为不可下钻,RE_TIME_VISIBLE 字符型,标识位,时间字段可否下钻‘0’为显示双时间(起至),‘1’为单时间(时间点),‘2’为无时间XAXIS 字符型,x轴、横轴字段,一般为时间字段,填写字段顺序号即可,即希望做横轴的字段在sql查询数据集中为第几个字段。
YAXIS 字符型,y轴、纵轴字段,一般为数据字段,填写字段顺序号即可,即希望做横轴的字段在sql查询数据集中为第几个字段。
,YUNIT 字符型,y轴、纵轴单位,即数据字段所对应的单位如:kwH、A、V等,TIMER 字符型,填写字段编号,表示要进行时间下钻查询的第几个字段, PARMER 字符型,填写字段编号,表示要进行档案下钻查询的第几个字段2.1.2编写数据查询sql将需要进行查询的sql语句写出并按要求调整,以日电量查询为例:SELECT as编号, as 名称, c_tv as 时间, as 电量FROM d_ele a,eq_param bWHERE=这样的语句就能将所有日电量表中的电量数据查询出来了,但是在web上使用常常需要加条件如id = 445 及时间从2011-6-20到2011-6-23那么语句变成如下格式:SELECT as编号, as 名称, c_tv as 时间, as 电量FROM d_ele a,eq_param bWHERE=and in (445)and to_date('1970-01-01 08:00:00', 'yyyy-mm-ddHH24:mi:ss')+86400>=to_date('2011-06-20', 'yyyy-mm-dd')and to_date('1970-01-01 08:00:00', 'yyyy-mm-ddHH24:mi:ss')+86400<=to_date('2011-06-23', 'yyyy-mm-dd')而在web中所查询的参数是非固定的,是在每次查询的时候选择的,所以id及时间字段应该使用变量,inestim_web中为这样的变量值设置了固定的变量如 id 为v_mp_id,起始日时间为v_timestrday,结束日时间为v_timeendday,并将查询语句中所有不符合web 使用方式的单引号'替换为",所有参数变量名可以参照2.2.4的表格。
则最终结果变成SELECT as编号, as 名称, c_tv as 时间, as 电量FROM d_ele a,eq_param bWHERE=and in(v_mp_id)and to_date("1970-01-01 08:00:00","yyyy-mm-ddHH24:mi:ss")+86400>=to_date("v_timestrday","yyyy-mm-dd HH24:mi:ss")and to_date("1970-01-01 08:00:00","yyyy-mm-ddHH24:mi:ss")+86400<=to_date("v_timeendday","yyyy-mm-dd HH24:mi:ss")2.1.3 查询sql订制在report_unit中可以指定将要制作的页面中用于图形显示的字段,如:在查询的结果集中时间字段是第3个,数据字段是第4个,那么XAXIS为3,YAXIS为4,因为查询的结果值为电量所以单位应该是kwH,给将要增加的记录一个编号,要求在report_unit 中没有被使用过的如(2014),然后按照3.6.6.1所描述的字段定义组织记录如下:Insert into module_info(RE_UNIT_ID, RE_UNIT_NAME, RE_UNIT_SQL, RE_UNIT_CONTERT, RE_DATA,RE_TIME_VISIBLE, XAXIS, YAXIS, YUNIT, TIMER, PARMER)Values(2014,'日电量查询','selectas编号,as名称,to_date("1970-01-01 08:00:00","yyyy-mm-dd HH24:mi:ss")+86400as时间,trunc,2)as电量from d_ele a,eq_param bwhere=and=3199and in(v_mp_id)and to_date("1970-01-01 08:00:00","yyyy-mm-ddHH24:mi:ss")+86400>=to_date("v_timestrday","yyyy-mm-dd HH24:mi:ss")and to_date("1970-01-01 08:00:00","yyyy-mm-ddHH24:mi:ss")+86400<=to_date("v_timeendday","yyyy-mm-dd HH24:mi:ss")', 'null', '1', '1', '3', '4', 'KWh', '3', '2');COMMIT;将此记录插入report_unit表中,然后就可以为此报表增加一个菜单了。
2.1.4 菜单添加在module_info表为报表增加菜单记录需要注意的有:必须使用尚未被使用的菜单编号(moduleid),即此编号不可重复;若为数据查询页面,必须将此菜单正确的挂在某一父节点(parent_id)下;选择正确的树类型(treeid);明确菜单在前台数据浏览系统或者后台档案管理系统展示(moduletype)。
以将2.2.5.2的报表挂上菜单为例:找到一个尚未被使用的编号如:1662;此报表属于数据查询界面所以必须有父节点,因为属于电量查询我们将它下挂在18 电量统计下;他需要查询所有的对象包括虚拟节点与实际表计我们使用全树id为12(树的建立在另一章节中有说明。
);此页面应该在数据浏览系统被展示所以moduletype为1,然后我们组装关键的MODULEURL字段,以下如下地址模版进行:pages/share/flag=2&report_id=2014&dttype=d问号之前的部分为sql定制报表页面模板文件路径,所有的定制sql页面都使用此模板,故无需改动;flag字段为时间标识位,表示使用几个查询时间条件,可以使用的有’0’,’1’,’2’,0表示不使用时间条件,1表示时间点查询使用一个时间条件,2表示使用时间段查询,需要使用2个时间条件;report_id为使用报表在report_unit表中的记录编号,在2.2.5.2中我们使用的是2014;dttype为时间类型字段表示使用的查询时间条件最小单位是小时(h)或者天(d)或者月(m),所以例子的结果应该是pages/share/flag=2&report_id=2014&dttype=d。