我的数据库表是这样的:
dateofthis deptname in out
2007-01-01 AOO1 10 20
2007-02-01 AOO1 23 13
2007-03-01 AOO1 13 20
2007-01-01 BOO1 12 24
2007-02-01 BOO1 10 20
2007-03-01 COO1 10 20
2007-01-01 DOO1 34 40
2007-02-01 DOO1 60 20
2007-03-01 DOO1 20 30 现在我用JSP在网页实现这样的效果:
deptname 一月in 一月out 二月in 二月out 三月in 三月out
A001 10 20 23 13 13 20
B001 12 24 10 20 0 0
C001 0 0 0 0 10 20
D001 34 40 60 20 20 30请问我该如何在JSP中写?
dateofthis deptname in out
2007-01-01 AOO1 10 20
2007-02-01 AOO1 23 13
2007-03-01 AOO1 13 20
2007-01-01 BOO1 12 24
2007-02-01 BOO1 10 20
2007-03-01 COO1 10 20
2007-01-01 DOO1 34 40
2007-02-01 DOO1 60 20
2007-03-01 DOO1 20 30 现在我用JSP在网页实现这样的效果:
deptname 一月in 一月out 二月in 二月out 三月in 三月out
A001 10 20 23 13 13 20
B001 12 24 10 20 0 0
C001 0 0 0 0 10 20
D001 34 40 60 20 20 30请问我该如何在JSP中写?
解决方案 »
- JSP有没有一个好点的做政府网站用的管理系统.
- 在jsp上传过程中上传进度条怎么真实体现出来
- 讨论:淘宝的物品搜索地址是怎么理解的?
- 请教怎么在jsp中做一个可以隐藏的下拉菜单
- Struts struts_config里面如果传递参数。比如说我成功删除了一条记录,要回到原来的页面,并且要回到第二页,这个时候该怎么传这个参数
- 怎樣批量提交數據 請高手指教!
- 怎样判断一个字符串里面包含“/”符号?
- apache+tomcat首页设置问题!
- 我是新手,诸位兄弟,帮帮忙!
- 发布tomcat项目,搞了一个晚上没搞定!!!,急急急
- 我造出来的页面怎么在resin与Jobss下都不同???
- hibernate连接两个库怎么连?在线等。。。。
<table>
<tr>
<td>deptname</td><td>一月in</td><td>一月out</td><td> 二月in</td><td>二月out</td><td>三月in</td><td>三月out</td>//这样实现你上面的一栏标题
</tr>
<%
//假如你用的jdbc,然后循环输出结果
while(rs.net()){
<tr>
<td>rs.getString("name1")</td> <td>rs.getString("name2")</td> <td>rs.getString("name3")</td> <td>rs.getString("name4")</td> <td>rs.getString("name5")</td> <td>rs.getString("name6")</td> <td>rs.getString("name7")</td>
</tr>
}%>
</table>
这样就能得到你要的排版效果
=> YES
select * from table order by deptname asc, dateofthis asc;这个查询可以,但是在显示的时候做一些判断处理
1. 获取ResultSet中的每一行时,判断当前deptname 是否和前一行数据相同.如果相同,则在html中无需新起一行.如果不同则新起一行.
2. 如果每个deptname下,月份有缺失的话,还要记录判断月份以确定在表格中那个td显示数据.
LS的方法可行 不过实现有点困难 取出结果集里面的 字段有一定的顺序的 显示时又需要不同行的字段同一行显示 (重复字段不重复显示)select * from table order by deptname asc, dateofthis asc;能够获得排序 只有把输出格式(<td>rs.getString("name1")</td>这种)写入字符串 按判断 +在 一起输出了
dateofthis deptname in out
2007-01-01 AOO1 10 20
2007-02-01 AOO1 23 13
2007-03-01 AOO1 13 20
2007-01-01 BOO1 12 24
2007-02-01 BOO1 10 20
2007-03-01 BOO1 0 0
2007-01-01 COO1 0 0
2007-02-01 COO1 0 0
2007-03-01 COO1 10 20
2007-01-01 DOO1 34 40
2007-02-01 DOO1 60 20
2007-03-01 DOO1 20 30 现在我用JSP在网页实现这样的效果:
deptname 一月in 一月out 二月in 二月out 三月in 三月out
A001 10 20 23 13 13 20
B001 12 24 10 20 0 0
C001 0 0 0 0 10 20
D001 34 40 60 20 20 30请问我该如何在JSP中写?<table>
<tr>
<td>deptname</td><td>一月in</td><td>一月out</td><td> 二月in</td><td>二月out</td><td>三月in</td><td>三月out</td>//这样实现你上面的一栏标题
</tr>
int i = 1;
while (rs1.next()) {
if (i % 3 == 1)
{
out.println("<tr>");
out.println(" <td>" + rs1.getValue("name") + "</td> ");
out.println(" <td>" + Integer.valueOf(rs1.getValue("name1")) + "</td> ");
out.println(" <td>" + Double.valueOf(rs1.getValue("name2")) + "</td> ");
}
else{
out.println(" <td>" + rs1.getValue("name3") + "</td> ");
}
if (i % 3 ==0) out.println("</tr>");
}
%>
</table>这样写有问题吗?
你的表结构设计的不合理,我建议你用你显示的结构建表,就是使表与显示的结构一致这样就简单了。
bruni(不如你) 说得有道理。只是需要一些判断,搂主可以多看看数据库的例子,感觉楼主基本功有些不足。
<tr>
<td>deptname</td><td>一月in</td><td>一月out</td><td> 二月in</td><td>二月out</td><td>三月in</td><td>三月out</td>//这样实现你上面的一栏标题
</tr>
int i = 1;
while (rs1.next()) {
if (i % 3 == 1)
{
out.println("<tr>");
out.println(" <td>" + rs1.getValue("deptname") + "</td> ");
out.println(" <td>" + Integer.valueOf(rs1.getValue("in")) + "</td> ");
out.println(" <td>" + Integer.valueOf(rs1.getValue("out")) + "</td> ");
}
接下来怎么写呢?
%>
</table>