我需要你的助手帮助解决问题,同时在表格中显示记录。我正在寻找一个组标题放在每个打印表的上方,用于其相关的类别和子类别,以及no。每个表的记录显示在表的顶部。
该表包含category,subcategory,name的列。例如:
Category Subcategory Name
CON Retail AAA
CON Wholesale BBB
SPEC Retail CCC
我正在寻找的是以下布局:
类别/子类别(记录数) - 与组标题类似
名称 - 国家..etc ----表格标题
表记录
以下是我的代码:
<%
//Retrieve the values from the DB
while (rs.next())
{
category_name1=rs.getString("category_name");
subcategory_name1=rs.getString("subcategory_name");
//to compare the existing category with the previous one and to display group header
if ((category_name1).equals(temp_category_name) ) {
category_name1="";
%>
<%=category_name1%> / <%=subcategory_name1%> <%=count%> //Currently it is showing duplicate values many times and the count is wrong
<%
}
if (!(subcategory_name1).equals(temp_subcategory_name)) {
count=0;
%>
<table width="80%">
<thead>
<tr>
<th>No.</th>
<th> Name</th>
<th>Country </th>
</tr>
</thead>
<%
}
%>
<tbody>
<%
name=rs.getString("name");
country_name=rs.getString("country_name");
temp_category_name=category_name1;
temp_subcategory_name=subcategory_name1;
count++;
%>
<tr>
<td><%=i%></td>
<td><%=institution_name%></td>
<td><%=country_name%></td>
</tr>
<%
}
%>
</tbody>
</table>
上面代码中的问题是它显示了组头类别&amp; sub catgeory多次,计数不正确。所以,请帮助我纠正上述问题。
答案 0 :(得分:0)
看一下这段代码:
if ((category_name1).equals(temp_category_name) )
{
category_name1=""; ///HERE IS YOUR PROBLEM!!!
}
....
....
temp_category_name=category_name1; ///PROBLEM ABOVE MESSES THIS UP.
将category_name1
设置为空字符串,当它等于最后一个类别,然后将下一次迭代的最后一个类别设置为category_name1
现在为空字符串时,确保如果类别超出两次,名称将再次打印。您可以使用if语句将其打印为空字符串,但将实际值保留在变量中,而不是将category_name1
设置为空字符串。
此代码还存在其他问题,但这是主要问题。此外,有人在这里将不可避免地告诉你“不要使用scriptlet,使用JSTL。”
记录数。你的方式,你必须在类别的 结束 ,而不是开头显示记录数。