You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
269 lines
9.6 KiB
269 lines
9.6 KiB
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
|
|
<%@ include file="Connections/jimi.jsp" %>
|
|
<%
|
|
Driver DriverAddressList = (Driver)Class.forName(MM_jimi_DRIVER).newInstance();
|
|
Connection ConnAddressList = DriverManager.getConnection(MM_jimi_STRING,MM_jimi_USERNAME,MM_jimi_PASSWORD);
|
|
PreparedStatement StatementAddressList = ConnAddressList.prepareStatement("SELECT nick,name,street,city,state,zipcode FROM address");
|
|
ResultSet AddressList = StatementAddressList.executeQuery();
|
|
boolean AddressList_isEmpty = !AddressList.next();
|
|
boolean AddressList_hasData = !AddressList_isEmpty;
|
|
Object AddressList_data;
|
|
int AddressList_numRows = 0;
|
|
%>
|
|
<%
|
|
int Repeat1__numRows = 35;
|
|
int Repeat1__index = 0;
|
|
AddressList_numRows += Repeat1__numRows;
|
|
%>
|
|
<%
|
|
// *** Recordset Stats, Move To Record, and Go To Record: declare stats variables
|
|
|
|
int AddressList_first = 1;
|
|
int AddressList_last = 1;
|
|
int AddressList_total = -1;
|
|
|
|
if (AddressList_isEmpty) {
|
|
AddressList_total = AddressList_first = AddressList_last = 0;
|
|
}
|
|
|
|
//set the number of rows displayed on this page
|
|
if (AddressList_numRows == 0) {
|
|
AddressList_numRows = 1;
|
|
}
|
|
%>
|
|
<%
|
|
// *** Recordset Stats: if we don't know the record count, manually count them
|
|
|
|
if (AddressList_total == -1) {
|
|
|
|
// count the total records by iterating through the recordset
|
|
for (AddressList_total = 1; AddressList.next(); AddressList_total++);
|
|
|
|
// reset the cursor to the beginning
|
|
AddressList.close();
|
|
AddressList = StatementAddressList.executeQuery();
|
|
AddressList_hasData = AddressList.next();
|
|
|
|
// set the number of rows displayed on this page
|
|
if (AddressList_numRows < 0 || AddressList_numRows > AddressList_total) {
|
|
AddressList_numRows = AddressList_total;
|
|
}
|
|
|
|
// set the first and last displayed record
|
|
AddressList_first = Math.min(AddressList_first, AddressList_total);
|
|
AddressList_last = Math.min(AddressList_first + AddressList_numRows - 1, AddressList_total);
|
|
}
|
|
%>
|
|
<% String MM_paramName = ""; %>
|
|
<%
|
|
// *** Move To Record and Go To Record: declare variables
|
|
|
|
ResultSet MM_rs = AddressList;
|
|
int MM_rsCount = AddressList_total;
|
|
int MM_size = AddressList_numRows;
|
|
String MM_uniqueCol = "";
|
|
MM_paramName = "";
|
|
int MM_offset = 0;
|
|
boolean MM_atTotal = false;
|
|
boolean MM_paramIsDefined = (MM_paramName.length() != 0 && request.getParameter(MM_paramName) != null);
|
|
%>
|
|
<%
|
|
// *** Move To Record: handle 'index' or 'offset' parameter
|
|
|
|
if (!MM_paramIsDefined && MM_rsCount != 0) {
|
|
|
|
//use index parameter if defined, otherwise use offset parameter
|
|
String r = request.getParameter("index");
|
|
if (r==null) r = request.getParameter("offset");
|
|
if (r!=null) MM_offset = Integer.parseInt(r);
|
|
|
|
// if we have a record count, check if we are past the end of the recordset
|
|
if (MM_rsCount != -1) {
|
|
if (MM_offset >= MM_rsCount || MM_offset == -1) { // past end or move last
|
|
if (MM_rsCount % MM_size != 0) // last page not a full repeat region
|
|
MM_offset = MM_rsCount - MM_rsCount % MM_size;
|
|
else
|
|
MM_offset = MM_rsCount - MM_size;
|
|
}
|
|
}
|
|
|
|
//move the cursor to the selected record
|
|
int i;
|
|
for (i=0; AddressList_hasData && (i < MM_offset || MM_offset == -1); i++) {
|
|
AddressList_hasData = MM_rs.next();
|
|
}
|
|
if (!AddressList_hasData) MM_offset = i; // set MM_offset to the last possible record
|
|
}
|
|
%>
|
|
<%
|
|
// *** Move To Record: if we dont know the record count, check the display range
|
|
|
|
if (MM_rsCount == -1) {
|
|
|
|
// walk to the end of the display range for this page
|
|
int i;
|
|
for (i=MM_offset; AddressList_hasData && (MM_size < 0 || i < MM_offset + MM_size); i++) {
|
|
AddressList_hasData = MM_rs.next();
|
|
}
|
|
|
|
// if we walked off the end of the recordset, set MM_rsCount and MM_size
|
|
if (!AddressList_hasData) {
|
|
MM_rsCount = i;
|
|
if (MM_size < 0 || MM_size > MM_rsCount) MM_size = MM_rsCount;
|
|
}
|
|
|
|
// if we walked off the end, set the offset based on page size
|
|
if (!AddressList_hasData && !MM_paramIsDefined) {
|
|
if (MM_offset > MM_rsCount - MM_size || MM_offset == -1) { //check if past end or last
|
|
if (MM_rsCount % MM_size != 0) //last page has less records than MM_size
|
|
MM_offset = MM_rsCount - MM_rsCount % MM_size;
|
|
else
|
|
MM_offset = MM_rsCount - MM_size;
|
|
}
|
|
}
|
|
|
|
// reset the cursor to the beginning
|
|
AddressList.close();
|
|
AddressList = StatementAddressList.executeQuery();
|
|
AddressList_hasData = AddressList.next();
|
|
MM_rs = AddressList;
|
|
|
|
// move the cursor to the selected record
|
|
for (i=0; AddressList_hasData && i < MM_offset; i++) {
|
|
AddressList_hasData = MM_rs.next();
|
|
}
|
|
}
|
|
%>
|
|
<%
|
|
// *** Move To Record: update recordset stats
|
|
|
|
// set the first and last displayed record
|
|
AddressList_first = MM_offset + 1;
|
|
AddressList_last = MM_offset + MM_size;
|
|
if (MM_rsCount != -1) {
|
|
AddressList_first = Math.min(AddressList_first, MM_rsCount);
|
|
AddressList_last = Math.min(AddressList_last, MM_rsCount);
|
|
}
|
|
|
|
// set the boolean used by hide region to check if we are on the last record
|
|
MM_atTotal = (MM_rsCount != -1 && MM_offset + MM_size >= MM_rsCount);
|
|
%>
|
|
<%
|
|
// *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters
|
|
|
|
String MM_keepBoth,MM_keepURL="",MM_keepForm="",MM_keepNone="";
|
|
String[] MM_removeList = { "index", MM_paramName };
|
|
|
|
// create the MM_keepURL string
|
|
if (request.getQueryString() != null) {
|
|
MM_keepURL = '&' + request.getQueryString();
|
|
for (int i=0; i < MM_removeList.length && MM_removeList[i].length() != 0; i++) {
|
|
int start = MM_keepURL.indexOf(MM_removeList[i]) - 1;
|
|
if (start >= 0 && MM_keepURL.charAt(start) == '&' &&
|
|
MM_keepURL.charAt(start + MM_removeList[i].length() + 1) == '=') {
|
|
int stop = MM_keepURL.indexOf('&', start + 1);
|
|
if (stop == -1) stop = MM_keepURL.length();
|
|
MM_keepURL = MM_keepURL.substring(0,start) + MM_keepURL.substring(stop);
|
|
}
|
|
}
|
|
}
|
|
|
|
// add the Form variables to the MM_keepForm string
|
|
if (request.getParameterNames().hasMoreElements()) {
|
|
java.util.Enumeration items = request.getParameterNames();
|
|
while (items.hasMoreElements()) {
|
|
String nextItem = (String)items.nextElement();
|
|
boolean found = false;
|
|
for (int i=0; !found && i < MM_removeList.length; i++) {
|
|
if (MM_removeList[i].equals(nextItem)) found = true;
|
|
}
|
|
if (!found && MM_keepURL.indexOf('&' + nextItem + '=') == -1) {
|
|
MM_keepForm = MM_keepForm + '&' + nextItem + '=' + java.net.URLEncoder.encode(request.getParameter(nextItem));
|
|
}
|
|
}
|
|
}
|
|
|
|
// create the Form + URL string and remove the intial '&' from each of the strings
|
|
MM_keepBoth = MM_keepURL + MM_keepForm;
|
|
if (MM_keepBoth.length() > 0) MM_keepBoth = MM_keepBoth.substring(1);
|
|
if (MM_keepURL.length() > 0) MM_keepURL = MM_keepURL.substring(1);
|
|
if (MM_keepForm.length() > 0) MM_keepForm = MM_keepForm.substring(1);
|
|
%>
|
|
<%
|
|
// *** Move To Record: set the strings for the first, last, next, and previous links
|
|
|
|
String MM_moveFirst,MM_moveLast,MM_moveNext,MM_movePrev;
|
|
{
|
|
String MM_keepMove = MM_keepBoth; // keep both Form and URL parameters for moves
|
|
String MM_moveParam = "index=";
|
|
|
|
// if the page has a repeated region, remove 'offset' from the maintained parameters
|
|
if (MM_size > 1) {
|
|
MM_moveParam = "offset=";
|
|
int start = MM_keepMove.indexOf(MM_moveParam);
|
|
if (start != -1 && (start == 0 || MM_keepMove.charAt(start-1) == '&')) {
|
|
int stop = MM_keepMove.indexOf('&', start);
|
|
if (start == 0 && stop != -1) stop++;
|
|
if (stop == -1) stop = MM_keepMove.length();
|
|
if (start > 0) start--;
|
|
MM_keepMove = MM_keepMove.substring(0,start) + MM_keepMove.substring(stop);
|
|
}
|
|
}
|
|
|
|
// set the strings for the move to links
|
|
StringBuffer urlStr = new StringBuffer(request.getRequestURI()).append('?').append(MM_keepMove);
|
|
if (MM_keepMove.length() > 0) urlStr.append('&');
|
|
urlStr.append(MM_moveParam);
|
|
MM_moveFirst = urlStr + "0";
|
|
MM_moveLast = urlStr + "-1";
|
|
MM_moveNext = urlStr + Integer.toString(MM_offset+MM_size);
|
|
MM_movePrev = urlStr + Integer.toString(Math.max(MM_offset-MM_size,0));
|
|
}
|
|
%>
|
|
<html>
|
|
<head>
|
|
<title>Test Document</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<link href="style/common.css" rel="stylesheet" type="text/css">
|
|
</head>
|
|
<body>
|
|
<table cellpadding="0" cellspacing="2" class="data">
|
|
<tr>
|
|
<th>name</th><th>street</th><th>city</th><th>state</th><th>zipcode</th>
|
|
</tr>
|
|
<% int row = 0; while ((AddressList_hasData)&&(Repeat1__numRows-- != 0)) { %>
|
|
<tr class="<%=(row++ % 2 == 1) ? "dark" : "light"%>">
|
|
<td><%=(((AddressList_data = AddressList.getObject("name"))==null || AddressList.wasNull())?"":AddressList_data)%></td>
|
|
<td><%=(((AddressList_data = AddressList.getObject("street"))==null || AddressList.wasNull())?"":AddressList_data)%></td>
|
|
<td><%=(((AddressList_data = AddressList.getObject("city"))==null || AddressList.wasNull())?"":AddressList_data)%></td>
|
|
<td><%=(((AddressList_data = AddressList.getObject("state"))==null || AddressList.wasNull())?"":AddressList_data)%></td>
|
|
<td><%=(((AddressList_data = AddressList.getObject("zipcode"))==null || AddressList.wasNull())?"":AddressList_data)%></td>
|
|
</tr>
|
|
<%
|
|
Repeat1__index++;
|
|
AddressList_hasData = AddressList.next();
|
|
}
|
|
%>
|
|
<tr valign="bottom" class="status">
|
|
<td colspan=5>
|
|
<span class="left">
|
|
<%=(AddressList_first)%> to <%=(AddressList_last)%> of <%=(AddressList_total)%>
|
|
</span>
|
|
<span class="right">
|
|
<% if (MM_offset !=0) { %>
|
|
<a href="<%=MM_movePrev%>"><img src="Previous.gif" border=0></a>
|
|
<% } /* end MM_offset != 0 */ %>
|
|
<% if (!MM_atTotal) { %>
|
|
<a href="<%=MM_moveNext%>"><img src="Next.gif" border=0></a>
|
|
<% } /* end !MM_atTotal */ %>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|
|
<%
|
|
AddressList.close();
|
|
StatementAddressList.close();
|
|
ConnAddressList.close();
|
|
%>
|