使用Java在Web上实现“简易干特图”-2
3.2、实现前提
系统需要数据库的支持,你可以选择任何一种数据库系统,比如DB2或是Oracle,或是最简单的Access都可以,没有特别要求,我们只是希望在数据库里面建立几个表,用来存放经过算法计算出来的结果,并提供给显示页面。我使用的Oracle,所以以下的SQL教本是以Oracle为例子,您可以修改成其他数据库支持的SQL教本。
至于如何选择开发工具更是没有特别的要求,我使用了IBM WSAD(IBM Websphere Studio Application Deveploper V5),您可以使用Jbuilder或是Eclipse+DreamWare或是IBM的Homgpage Builder或是其他的你熟悉的开发工具。
3.3、实现步骤1-创建数据库表
创建对应的表“PLANSC”,该表用于存放“规划建设进度”的数据,也就是图中红线的数据。
Create table PLANSC
(
ID NUMBER not null,
PRONAME VARCHAR2(300) not null,
STALLM NUMBER not null,
ENDALLM NUMBER not null,
IALL NUMBER not null,
STARTDATE VARCHAR2(50) not null,
ENDDATE VARCHAR2(50) not null
)
创建对应的表“PLANSC2”,该表用于存放“调整进度计划”的数据,也就是图中绿线的数据。
Create table PLANSC2
(
ID NUMBER not null,
PRONAME VARCHAR2(300) not null,
STALLM NUMBER not null,
ENDALLM NUMBER not null,
IALL NUMBER not null,
STARTDATE VARCHAR2(50) not null,
ENDDATE VARCHAR2(50) not null
)
两个表结构是一样的,我们对表的结构加以解释,以便于读者更好的理解表的每个栏位的意义。
我们把一个时间段比如从2003年到2010年作为一个整体(您可以根据你的需求改变),
那么把这个时间段划分问3段,第一段是2003-被选中的开始时间;第二段是被选中的开始时间-被选中的结束时间;第三段是被选中的结束时间-2010;刻度以月为单位,(这里就是涉及到精度问题,您可以根据你的要求,比如以天为单位,那么精度就提高了很多了,但是进度的提高会相应的提高编程的难度和后面图形显示的难度)。那么就可以归结为3个变量。请看(参考图3)。
(参考图3)
提示:这里您看到的数据库表的时间值是计算过的,您在创建每个条目(我们前面提过条目的创建您可以自行设计)时可以是先给任何一个值作为初始值,比如0。之后您在修改时间段时,我们的程序再Update这些值即可。
3.4、实现步骤2-创建页面
你可以使用DreamWare或是其他页面创建工具制作您的页面(具体制作没有提供,请各自自行制作),页面制作之后的效果如下(参考图4),其实这张表格您完全可以是动态构造出来的,也就是您的条目是动态的,那么页面的表格也就是动态的,这对于一个JSP程序员来说是轻而易举之事,我们的演示事静态的的表格,在表格的列里面嵌入带<% %>的JSP代码,那些代码就是用来显示。修改页面请(参考图5)。在表格里面同样嵌入带<% %>的JSP代码用来显示数据,至于这些代码如何显示,待会我们介绍。
这里有的要点:表示时间(年)的表格列的宽度要设计为一致,比如都是8%。
(参考图4)
(参考图5)
3.5、实现步骤3-分析代码
当用户进入第一个页面时,点击编辑按钮,进入第二个页面,之后通过选择时间段和选择调整对象(参考图6),最后点击确定,系统即可计算和保存我们的选择并显示出结果。我们设计一个SaveChangePlan.jsp的jsp文件来执行获取数据和计算数据以及根据保存的结果传递到不同页面的工作。我们先来分析SaveChangePlan.jsp的代码。请参考(表格1)。
(参考图6)
本文地址:http://com.8s8s.com/it/it16636.htm