在v8系统上显示数据库的数据

来源:互联网 发布:微博爬虫java 编辑:程序博客网 时间:2024/06/05 15:33
在这篇blog中(http://blog.csdn.net/fengjiexyb/article/details/77414400),我把爬取的数据存放在数据库。本文我把数据库中的数据读出来显示在v8系统中。
v8系统是我们公司开发的一个平台。在这个系统中进行二次开发非常方便。本文以一个实际的例子来展示v8系统的使用。
v8系统的文章只是内部记录,对其他公司没有意义
1、首先建立一个节点,用于在界面左侧显示

如图所示:


1.1 进入系统对应的数据库。v8系统基本没有手写的页面。页面都是数据库来生成。所以程序员基本只要会sql语句即可。

查找当前的树节点

select * from hiibase.ib_tbt_treestru order by ftreeno;
插入新的节点,第一个是第二个的父亲。第一个没有父亲,所以他的父节点可以随便写(目前写0)。ftreenm,fdesc是表名,区别还不知道。图标随便选的。furl是直接主的链接,当前为空,后面详述。其他参数不知道
insert into hiibase.ib_tbt_treestru (ftreeno,ftreenm,fdesc,fparent,icon,openicon,flevel)values('026','环境监控','环境监控','0','icons/fileIcon_1.png','icons/fileIcon_1.png','ALL')insert into hiibase.ib_tbt_treestru (ftreeno,ftreenm,fdesc,furl,fparent,icon,openicon,flevel)values('026001','环境监控数据查询','环境监控数据查询','','026','icons/fileIcon_1.png','icons/fileIcon_1.png','ALL')

1.2 这是两种主界面的链接方式,就是上面说的furl,还有其他的方式。区别在于使用了不同的java类。但是我在本文中没有使用任何类。理论上应该没有任何区别。但在实际中使用第二种成功了,第一种无法发开页面。
UPDATE  hiibase.ib_tbt_treestru SET furl = 'http://200.100.100.7:8888/gdjkjc/V8Page.m?type=desktop'||'&'||'pid=20170817xyb1'||'&'||'sessionId=FIXEDS11'||'&'||'hideTree=Y' WHERE ftreeno = '21601';UPDATE  hiibase.ib_tbt_treestru SET furl = 'genPager.m?isHTML=Y'||'&'||'queryType=ajax'||'&'||'pid_para=20170817xyb1'||'&'||'direct=1'||'&'||'sessionId=SESSIONID'||'&'||'empid_sql_equal=EMPID' WHERE ftreeno = '21601';
注意在sql语句中‘&’符号是不能直接使用的,要在|||中间才可以。
pid=后面的值是页面的id,后面详述。
1.3 设置权限
select * from hiibase.ib_tbt_empdfltnode;
在这张表中显示哪些用户可以使用哪些页面。
插入权限
insert into hiibase.ib_tbt_empdfltnode (fempid,ftreeno,fifdflt)values('S11','21601','0');insert into hiibase.ib_tbt_empdfltnode (fempid,ftreeno,fifdflt)values('S11','216','0');
注意S是大写,S11是用户名,其他参数不知道。oracle中的字符串是区分大小写的。
2、添加页面
新建一个sql文件
declare  px number(8);  py number(8);  seq number(6);  pnm varchar2(2000);  objprop clob;  JS_HTML clob;begin  seq := 1;  px := 0;  py := 0;  pnm := '20170817xyb1';--页面id,即上面的pid。这个id不标准,在v8文档中有命名规范。  --http://200.100.100.4:8080/publicApp/devStart.m?sessionId=FIXEDgdzyxx            delete from hb_tbs_pageEleForSl where fpageId = pnm;  --之上的语句不用修改,除了页面id。    seq := seq+10;  insert into hbpageeleforsl (FPAGEID, FELEID, FELENME, FELENMC, FELECATBYSL, FPOSX, FPOSY, FWIDTH, FHEIGHT, FPROPERTY,  FQRYURI, FVALFROM, FSAMESELECT, FIFNEEDLABEL, FSELECTVALCAT,FENABLEELES, FINVISIBLEELES, FOBJPROP)  values (pnm, seq, 'title', '广东省24小时环境监测数据', 'Label', '-1', '-1', '-1', '-1', 'FontSize=28;对齐方式=居中;BACKGROUND=#fff;',  '', '', '', 'N', 'N','', '', '布局模式:[1];');  --这一部分添加了一个布局容器  seq := seq+10;    insert into hbpageeleforsl (FPAGEID, FELEID, FELENME, FELENMC, FELECATBYSL, FPOSX, FPOSY, FWIDTH, FHEIGHT, FPROPERTY,    FQRYURI, FVALFROM, FSAMESELECT, FIFNEEDLABEL, FSELECTVALCAT,    FENABLEELES, FINVISIBLEELES, FOBJPROP)    values (pnm, seq, 'container1', '查询条件', '布局容器', '-1', -1, -1, -1, 'Tag=相对布局;FontSize=15;字体=NSimsun;BACKGROUND=#fff;borderThick=1,0,0,1;',    '', '', '', 'Y', 'N',    '', '', '布局模式:[1];');      seq := seq+10;insert into hbpageeleforsl (FPAGEID, FELEID, FELENME, FELENMC, FELECATBYSL, FPOSX, FPOSY, FWIDTH, FHEIGHT, FPROPERTY, FQRYURI, FVALFROM, FSAMESELECT, FIFNEEDLABEL, FSELECTVALCAT,  FENABLEELES, FINVISIBLEELES, FOBJPROP)values (pnm, seq, 'schhiino_sql_equal', '监测点', 'combobox', '300', py, -1, -1, '','*Q20170817xyb2', '', '', 'Y', 'N', '', 'FSITEID;', '布局模式:[4.1];空数据:[0,请选择;];容器:[container1];');    --页面id,即上面的pid。这个id不标准,在v8文档中有命名规范。--页面id,即上面的pid。这个id不标准,在v8文档中有命名规范。--页面id,即上面的pid。这个id不标准,在v8文档中有命名规范。--下拉菜单,下拉菜单的数据是通过Q20170817xyb2.sql查询获取的。这个查询后面详述。查询id前面要加*。由于这个下拉菜单的数据在Q20170817xyb1中要使用,所以名字后面要加_sql_equal,这样就可以直接传递参数了。    --查询出来的信息包括FSITEID,FSITENAME,但是只显示FSITENAME,所以将FSITEID隐藏。而在传值时传递的是FSITEID,这个是默认的,但是在哪里设还不知道。  seq := seq+10;    insert into hbpageeleforsl (FPAGEID, FELEID, FELENME, FELENMC, FELECATBYSL, FPOSX, FPOSY, FWIDTH, FHEIGHT, FPROPERTY,    FQRYURI, FVALFROM, FSAMESELECT, FIFNEEDLABEL, FSELECTVALCAT,    FENABLEELES, FINVISIBLEELES, FOBJPROP)    values (pnm,seq,'fbegdt_sql_equal','日期','date','-1','-1','-1','-1', 'FontSize=13;TEXT=当日-7;',    '', '', '', 'Y', 'N','', '', '布局模式:[4.2];容器:[container1];');    --注意text      seq := seq+10;    insert into hbpageeleforsl (FPAGEID, FELEID, FELENME, FELENMC, FELECATBYSL, FPOSX, FPOSY, FWIDTH, FHEIGHT, FPROPERTY,    FQRYURI, FVALFROM, FSAMESELECT, FIFNEEDLABEL, FSELECTVALCAT,    FENABLEELES, FINVISIBLEELES, FOBJPROP)    values (pnm,seq,'fbenddt_sql_equal','日期','date','-1','-1','-1','-1', 'FontSize=13;TEXT=当日;',    '', '', '', 'Y', 'N','', '', '布局模式:[4.3];容器:[container1];');          seq := seq+10;    insert into hbpageeleforsl (FPAGEID, FELEID, FELENME, FELENMC, FELECATBYSL, FPOSX, FPOSY, FWIDTH, FHEIGHT, FPROPERTY,    FQRYURI, FVALFROM, FSAMESELECT, FIFNEEDLABEL, FSELECTVALCAT,    FENABLEELES, FINVISIBLEELES, FOBJPROP)    values (pnm, seq, 'fsdfe', 'fgdsgew', '布局容器', -1, -1, -1, 40, 'Tag=绝对布局;borderThick=0,0,0,0;对齐方式=右对齐;',    '', '', '', 'N', 'N','', '', '布局模式:[1];');    --第二个容器,不同容器在界面上是可以看到的  seq := seq+10;    insert into hbpageeleforsl (FPAGEID, FELEID, FELENME, FELENMC, FELECATBYSL,    FPOSX, FPOSY, FWIDTH, FHEIGHT, FPROPERTY, FQRYURI, FVALFROM, FSAMESELECT,    FIFNEEDLABEL, FSELECTVALCAT, FENABLEELES, FINVISIBLEELES, FOBJPROP) values    (pnm, seq, 'btncx', '查询', 'button', '-1', '-1', -1, -1,    'Tag=刷新:[tbl1];classname=查询;字体=NSimsun;Background=FFEEFBEE;borderThick=1,1    ,1,1;', '', '','', 'Y', 'N','', '','布局模式:[0];容器:[fsdfe];');    --按钮。在页面加载时,表格(下面)就会开始查询,所以这里的查询按钮并不是查询,而是刷新。 tbl1是表格名。  seq := seq+10;    insert into hbpageeleforsl (FPAGEID, FELEID, FELENME, FELENMC, FELECATBYSL,    FPOSX, FPOSY, FWIDTH, FHEIGHT, FPROPERTY, FQRYURI, FVALFROM, FSAMESELECT,    FIFNEEDLABEL, FSELECTVALCAT, FENABLEELES, FINVISIBLEELES, FOBJPROP) values    (pnm, seq, 'btndc', '导出', 'button', '-1', '-1', -1, -1,    'Tag=导出:[tbl1];classname=导出;字体=NSimsun;Background=FFEEFBEE;borderThick=1,1,1,1;', '', '','', 'Y', 'N',     '', '','布局模式:[0];容器:[fsdfe];');    --导出功能都不需要自己开发      seq := seq+10;    insert into hbpageeleforsl (FPAGEID, FELEID, FELENME, FELENMC, FELECATBYSL, FPOSX, FPOSY, FWIDTH, FHEIGHT, FPROPERTY,    FQRYURI, FVALFROM, FSAMESELECT, FIFNEEDLABEL, FSELECTVALCAT,    FENABLEELES, FINVISIBLEELES, FOBJPROP)    values (pnm, seq, 'tbl1', '表格', '任意表格', '-1', '-1', '-1', '-1', '',    '*Q20170817xyb1', '','', 'Y', 'N',    '', '', '布局模式:[1];分页显示:[每页行数=10,分页模式=客户端];表头:[监测点,监测时间,天气现象,气温(℃),体感温度(℃),气压(hPa),相对湿度(%),降雨量(mm),风向,风力,风速(m/s)];');    --表格内容通过Q20170817xyb1查询获取。在这里可以设置表头。如果不设置,使用sql语句的字段名。但是字段名不能加括号和其他字符。在这里的括号只能使用中文括号。如果使用英文括号表示二级表头end;/commit;


3、添加查询
3.1 Q20170817xyb1
这个查询是获取表格数据。
declareid varchar2(60);name varchar2(50);direct varchar2(2);cndxml varchar2(4000);cndxsl clob;theSQL varchar2(4000);dispsql varchar2(4000);param varchar2(400);cfgxml varchar2(4000);resulttype varchar2(8);header varchar2(4000);footer varchar2(4000);bxml varchar2(8000);bxsl varchar2(8000);bsql clob;  bsql_pv varchar2(5000);bsql_pt varchar2(5000);beginid := 'Q20170817xyb1';   --查询id,和页面中的表格对应name := '环境云爬取数据查询';   --查询名字,没用的direct := '1';cndxml := '<?xml version="1.0" encoding="GB2312"?><EprSelect></EprSelect>';cndxsl := '';theSQL := '';param := '';resulttype := 'ntable';header := '8;$page';footer := '1;经手人:;5;日期:';delete from query_vws_cnd where fid=id;insert into query_vws_cnd(fid,fname,fdirect,fcndxml,fcndxsl,fsql,fdispsql,fparam,fcfgxml,fresulttype,fheader,ffooter)values (id,name,direct,cndxml,cndxsl,NULL,dispsql,param,cfgxml,resulttype,header,footer);---之上除了查询id和查询名字之外不需修改bsql := 'select imp_weather_sites.fsitename,imp_weather_data.updatetime,imp_weather_data.phenomena,imp_weather_data.temperature,imp_weather_data.feelst,imp_weather_data.airpressure,imp_weather_data.humidity,imp_weather_data.rain,imp_weather_data.winddirect,imp_weather_data.windpower,imp_weather_data.windspeed from imp_weather_sites,imp_weather_data where (imp_weather_data.siteid = imp_weather_sites.fsiteid) and (imp_weather_sites.fsiteid = ?) and imp_weather_data.updatetime >= to_date(?,''yyyy-mm-dd'') and imp_weather_data.updatetime < to_date(?,''yyyy-mm-dd'');';--查询语句。在这个语句中所有参数都是?(半角)。不需要引号,在下面设置了类型,引号由系统添加。bsql_pv := 'schhiino_sql_equal,fbegdt_sql_equal,fbenddt_sql_equal,;';--参数,这里的参数都是_sql_equal后缀。这种后缀可以直接使用页面的参数。注意格式,在‘’中的部分表示一个sql语句的参数,所以引号中有一个分号,如果有多个sql语句,就有多个分号,一一对应。bsql_pt := 'V,V,V,;';--这里表示参数格式,V是字符串,D是日期,N是数字。由于在to_date中的第一个参数只能是字符串,所以在这里设置时间的格式也是字符串。--这里的格式千万不要改,我把三个V放在了三行里,一直出错,找了一天的错误才发现。--以下部分不需修改delete query_tbs_dispfmt where fid = id and fband='DETAILS';insert into query_tbs_dispfmt(fid,fband,fsql,fParaValOfSql,fParaTypeOfSql,fxml,fxsl,fdispfmt)values (id,'DETAILS',bSQL,bsql_pv,bsql_pt,NULL,NULL,'RS');end;/commit;


3.2 Q20170817xyb2
declareid varchar2(60);name varchar2(50);direct varchar2(2);cndxml varchar2(4000);cndxsl clob;theSQL varchar2(4000);dispsql varchar2(4000);param varchar2(400);cfgxml varchar2(4000);resulttype varchar2(8);header varchar2(4000);footer varchar2(4000);bxml varchar2(8000);bxsl varchar2(8000);bsql clob;  bsql_pv varchar2(5000);bsql_pt varchar2(5000);beginid := 'Q20170817xyb2';name := '环境云获取监测点信息';direct := '1';cndxml := '<?xml version="1.0" encoding="GB2312"?><EprSelect></EprSelect>';cndxsl := '';theSQL := '';param := '';resulttype := 'ntable';header := '8;$page';footer := '1;经手人:;5;日期:';delete from query_vws_cnd where fid=id;insert into query_vws_cnd(fid,fname,fdirect,fcndxml,fcndxsl,fsql,fdispsql,fparam,fcfgxml,fresulttype,fheader,ffooter)values (id,name,direct,cndxml,cndxsl,NULL,dispsql,param,cfgxml,resulttype,header,footer);bsql := 'select FSITEID,FSITENAME from imp_weather_sites  where fdatasource = 2 ';bsql_pv := ',;';bsql_pt := ',;';--没有参数delete query_tbs_dispfmt where fid = id and fband='DETAILS';insert into query_tbs_dispfmt(fid,fband,fsql,fParaValOfSql,fParaTypeOfSql,fxml,fxsl,fdispfmt)values (id,'DETAILS',bSQL,bsql_pv,bsql_pt,NULL,NULL,'RS');end;/commit;


4、将2、3步的保存为3个sql文件。
在PL/SQL中建立一个命令窗口,输入@,后面接sql文件的路径和名字,回车执行。
三个都执行后可以在页面查看了


阅读全文
0 0
原创粉丝点击