|
<%
Response.expires = 0
Response.expiresabsolute = Now() - 1
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.CacheControl = "no-cache"
%>
<%
displayRecs = 100
recRange = 10
%>
<% recPerRow = 3 %>
<%
dbwhere = ""
masterdetailwhere = ""
searchwhere = ""
a_search = ""
b_search = ""
whereClause = ""
%>
<%
'Get clear search cmd
If Request.QueryString("cmd").Count > 0 Then
cmd = Request.QueryString("cmd")
If UCase(cmd) = "RESET" Then
'reset search criteria
searchwhere = ""
Session("Sold_Properties_searchwhere") =searchwhere
ElseIf UCase(cmd) = "RESETALL" Then
'reset search criteria
searchwhere = ""
Session("Sold_Properties_searchwhere") =searchwhere
End If
'reset start record counter (reset command)
startRec = 1
Session("Sold_Properties_REC") = startRec
End If
'construct dbwhere
If masterdetailwhere <> "" Then
dbwhere = dbwhere & "(" & masterdetailwhere & ") AND "
End If
If searchwhere <> "" Then
dbwhere = dbwhere & "(" & searchwhere & ") AND "
End If
If Len(dbwhere) > 5 Then
dbwhere = Mid(dbwhere, 1, Len(dbwhere)-5) 'trim right most AND
End If
%>
<%
' Load Default Order
DefaultOrder = ""
DefaultOrderType = ""
'No Default Filter
DefaultFilter = ""
' Check for an Order parameter
OrderBy = ""
If Request.QueryString("order").Count > 0 Then
OrderBy = Request.QueryString("order")
' Check If an ASC/DESC toggle is required
If Session("Sold_Properties_OB") = OrderBy Then
If Session("Sold_Properties_OT") = "ASC" Then
Session("Sold_Properties_OT") = "DESC"
Else
Session("Sold_Properties_OT") = "ASC"
End If
Else
Session("Sold_Properties_OT") = "ASC"
End If
Session("Sold_Properties_OB") = OrderBy
Session("Sold_Properties_REC") = 1
Else
OrderBy = Session("Sold_Properties_OB")
If OrderBy = "" Then
OrderBy = DefaultOrder
Session("Sold_Properties_OB") = OrderBy
Session("Sold_Properties_OT") = DefaultOrderType
End If
End If
' Open Connection to the database
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str
' Build SQL
strsql = "SELECT * FROM [Sold Properties]"
If DefaultFilter <> "" Then
whereClause = whereClause & "(" & DefaultFilter & ") AND "
End If
If dbwhere <> "" Then
whereClause = whereClause & "(" & dbwhere & ") AND "
End If
If Right(whereClause, 5)=" AND " Then whereClause = Left(whereClause, Len(whereClause)-5)
If whereClause <> "" Then
strsql = strsql & " WHERE " & whereClause
End If
If OrderBy <> "" Then
strsql = strsql & " ORDER BY [" & OrderBy & "] " & Session("Sold_Properties_OT")
End If
'Response.Write strsql
Set rs = Server.CreateObject("ADODB.Recordset")
rs.cursorlocation = 3
rs.Open strsql, conn, 1, 2
totalRecs = rs.RecordCount
' Check for a START parameter
If Request.QueryString("start").Count > 0 Then
startRec = Request.QueryString("start")
Session("Sold_Properties_REC") = startRec
ElseIf Request.QueryString("pageno").Count > 0 Then
pageno = Request.QueryString("pageno")
If IsNumeric(pageno) Then
startRec = (pageno-1)*displayRecs+1
If startRec <= 0 Then
startRec = 1
ElseIf startRec >= ((totalRecs-1)\displayRecs)*displayRecs+1 Then
startRec = ((totalRecs-1)\displayRecs)*displayRecs+1
End If
Session("Sold_Properties_REC") = startRec
Else
startRec = Session("Sold_Properties_REC")
If Not IsNumeric(startRec) Or startRec = "" Then
'reset start record counter
startRec = 1
Session("Sold_Properties_REC") = startRec
End If
End If
Else
startRec = Session("Sold_Properties_REC")
If Not IsNumeric(startRec) Or startRec = "" Then
'reSet start record counter
startRec = 1
Session("Sold_Properties_REC") = startRec
End If
End If
%>
<%
' Close recordSet and connection
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing %>
<%
' Display page numbers
If totalRecs > 0 Then
rsEof = (totalRecs < (startRec + displayRecs))
' Find out if there should be Backward or Forward Buttons on the table.
If startRec = 1 Then
isPrev = False
Else
isPrev = True
PrevStart = startRec - displayRecs
If PrevStart < 1 Then PrevStart = 1 %>
Prev
<%
End If
If (isPrev OR (NOT rsEof)) Then
x = 1
y = 1
dx1 = ((startRec-1)\(displayRecs*recRange))*displayRecs*recRange+1
dy1 = ((startRec-1)\(displayRecs*recRange))*recRange+1
If (dx1+displayRecs*recRange-1) > totalRecs Then
dx2 = (totalRecs\displayRecs)*displayRecs+1
dy2 = (totalRecs\displayRecs)+1
Else
dx2 = dx1+displayRecs*recRange-1
dy2 = dy1+recRange-1
End If
While x <= totalRecs
If x >= dx1 And x <= dx2 Then
If CLng(startRec) = CLng(x) Then %>
<%=y%>
<% Else %>
<%=y%>
<% End If
x = x + displayRecs
y = y + 1
ElseIf x >= (dx1-displayRecs*recRange) And x <= (dx2+displayRecs*recRange) Then
If x+recRange*displayRecs < totalRecs Then %>
<%=y%>-<%=y+recRange-1%>
<% Else
ny=(totalRecs-1)\displayRecs+1
If ny = y Then %>
<%=y%>
<% Else %>
<%=y%>-<%=ny%>
<% End If
End If
x=x+recRange*displayRecs
y=y+recRange
Else
x=x+recRange*displayRecs
y=y+recRange
End If
Wend
End If
' Next link
If Not rsEof Then
NextStart = startRec + displayRecs
isMore = True %>
Next
<% Else
isMore = False
End If %>
<% If CLng(startRec) > CLng(totalRecs) Then startRec = totalRecs
stopRec = startRec + displayRecs - 1
recCount = totalRecs - 1
If rsEOF Then recCount = totalRecs
If stopRec > recCount Then stopRec = recCount %>
Properties <%= startRec %> to <%= stopRec %> of <%= totalRecs %>
<% Else %>
No records found
<% End If %>
|