一个关于JSP页面生成相关表格的问题

这是一个关于值班记录的数据表
从数据库返回的记录集如下
排班ID 值班日期 班次名称 班次序号 值班人员
duty_plan_id duty_date times_name times_seq name
631 2007-2-27 上午 07:00:00 早班 1 张三
631 2007-2-27 上午 07:00:00 早班 1 李四
631 2007-2-27 上午 07:00:00 早班 1 王五
632 2007-2-27 下午 01:00:00 中班 2 张三
632 2007-2-27 下午 01:00:00 中班 2 李四
632 2007-2-27 下午 01:00:00 中班 2 王五
633 2007-2-27 下午 07:00:00 晚班 3 张三
633 2007-2-27 下午 07:00:00 晚班 3 李四
633 2007-2-27 下午 07:00:00 晚班 3 王五
634 2007-2-28 上午 07:00:00 早班 1 张三
634 2007-2-28 上午 07:00:00 早班 1 李四
634 2007-2-28 上午 07:00:00 早班 1 王五
635 2007-2-28 下午 01:00:00 中班 2 张三
635 2007-2-28 下午 01:00:00 中班 2 李四
635 2007-2-28 下午 01:00:00 中班 2 王五
636 2007-2-28 下午 07:00:00 晚班 3 张三
636 2007-2-28 下午 07:00:00 晚班 3 李四
636 2007-2-28 下午 07:00:00 晚班 3 王五

要求如下:

生成如下表格

日期 早班 中班 晚班
2007-2-27 张三,李四,王五张三,李四,王五 张三,李四,王五
2007-2-28 张三,李四,王五张三,李四,王五 张三,李四,王五

表格第一列的早班,中班,晚班根据times_name自动生成
日期项下的数据 根据duty_date 生成
每个班次下的人员根据name然后根据同一天同一班次自动整合到一起生成

请问该如何实现,急啊,希望各位大大知道帮帮忙
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;


/**
* 对应一行的数据 的 类
* Title: <br>
* @author luzm Jan 17, 2007 <br>
*/
public class DayLine {

/**
* 天
*/
private Date day;
/**
* 早
*/
private String first ="";
/**
* 中
*/
private String second ="";
/**
* 晚
*/
private String third="";

/**
* 存储生成的对象
*/
private static Map<String, DayLine> dayLines = new HashMap<String, DayLine>();

public Date getDay() {
return day;
}
public void setDay(Date day) {
this.day = day;
}
public String getFirst() {
return first;
}
public void setFirst(String first) {
this.first = first;
}
public String getSecond() {
return second;
}
public void setSecond(String second) {
this.second = second;
}
public String getThird() {
return third;
}
public void setThird(String third) {
this.third = third;
}

/**
* 构造函数 不允许 外界创建 势力
*
*/
private DayLine(){

}

/**
* 工厂 如果有线程要求 加同步标志
* @param date
* @return
*/
public static DayLine getInstance(String date){
if(dayLines.containsKey(date)){
DayLine d= new DayLine();
dayLines.put(date,d );
return d;
}
else return dayLines.get(date);
}
/**
* 获得最后创建的所有类
* @return
*/
public static Map getAllInstance(){
return dayLines;
}
}


---------------------------------

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* 对应把 数据读出后放到
* Title: <br>
* @author luzm Jan 17, 2007 <br>
*/
public class Action {

//List table = new ArrayList();

// 获得总数 付给count
int count = 100;
Map map = new HashMap();

DayLine[] table = new DayLine[count];

//循环读数
//while()
{


Date day = new Date() ;
String first ="" ;
String second = "";
String third = "";

//获得 列的数据
//.
//.
//.
//.
//当前 DayLine 的个数
int num = 0;
DayLine d = null;
if(map.containsKey(day)){
d=table[((Integer) map.get(day)).intValue()];
d.setFirst(d.getFirst()+first);
d.setSecond(d.getSecond()+second);
d.setThird(d.getThird()+third);
d.setDay(day);
//table[((Integer) map.get(day)).intValue()] =d;
}else {
num++;
d = DayLine.getInstance(day.toString());
d.setFirst(d.getFirst()+first);
d.setSecond(d.getSecond()+second);
d.setThird(d.getThird()+third);
d.setDay(day);
table[num] =d;
}




}
}
---------------------------------------------------

这样 你就的到了这个table
在jsp 循环遍历 输出就可以了
首先,班次名称并不是固定的只有早,中,晚班三个,而是个不定值的变量,可能还有其他什么办公班啊,行政班之类的。
其次,关于每天下面每个班次所对应的人员如何整合到一起,这是我比较关心的

这是根据数据库字段生成的一张二维表
日期 早班 中班 晚班
2007-2-27 张三,李四,王五 张三,李四,王五 张三,李四,王五
2007-2-28 张三,李四,王五 张三,李四,王五 张三,李四,王五

如何把每天每个班次的值班人员,对应到表当中去
如下所示
2007-2-27 早班 分别有 张三,李四,王五 这三个人值班

相应的数据库记录如下
排班ID 值班日期 班次名称 班次序号 值班人员
duty_plan_id duty_date times_name times_seq name

631 2007-2-27 上午 07:00:00 早班 1 张三
631 2007-2-27 上午 07:00:00 早班 1 李四
631 2007-2-27 上午 07:00:00 早班 1 王五

根据这三条记录整合出一条的记录
请大大给出个详细的做法,万分的感激

你可能感兴趣的:(jsp)