|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/mguerinweb/Offline_Archive/DBAdmin/ |
Upload File : |
<%
'ocdGrid.asp - 1 Click DB SQL to ASP Grid Object
'copyright 1997-2002 David Kawliche, AccessHelp.net
'1 Click DB technology is fully protected by international
'laws and treaties. Never use, distribute, or redistribute
'any software and/or source code in violation of its licensing.
'Use of this software and/or source code is strictly at your own risk.
'All warranties are specifically disclaimed except as required by law.
'IMPORTANT : THIS CODE USES PASS-THROUGH SECURITY !
'
'To enforce application security, set appropriate logins
'and permissions for all web server and database users.
'
'Use object and configuration properties _only_ to customize
'application appearance and interactions with other components.
'For more information see : http://1ClickDB.com
Class ocdGrid
Public GridID 'defaults To "A", alpha-numeric string To uniquely identify multiple grids on a page
Public GridMode 'READ ONLY: 1 Click DB can be "BROWSE", "FILTER","SEARCH", "PROCESS" or "EXPORT", To Set .GridMode, use HTML syntax For links and form variables
Public DatabaseType 'READ ONLY: identification of current database platform
Public GridMaxURLLength 'try To intercept overly complex querystrings
Public GridHideAutonumber 'If true, hide the autonumber field For display but include the name In .SQLSelect To enable editing
Public GridOptimize 'bit mask with optimization options
Public GridCompatibility 'If true, no javascript functionality will be generated by the grid
Public GridFieldNames 'If true Then display grid header row
Public GridFormatNumbers 'defaults To "" (database default) can also be "COMMAS"
Public GridMaxMemo 'maximum number of characters To be displayed For a memo field
Public ExportForceDownload 'If true, sets MIME header on export pages as an attachment
Public SearchMultiSort 'If true, Order By's are additive
Public SearchPersistKeyword 'remember criteria submitted on browse keyword search input, To avoid confusion, should only be used If ShowSearch and filter capabilities are off
Public SearchCheckAll 'If true, all search fields are checked by default
Public SearchSortSize 'number of order by fields To display In search form
Public SearchShowKeyword 'If true, retain keywords submitted In Browse Search, recommend Set To False when ShowSearch is true
Public SearchDefaultTextCompare 'Default operator selected For Text field searches
Public ADOConnection 'active database connection For Grid
Public ADORecordSet 'active database cursor For Grid
Public ADORecordsetTimeout 'how long before giving up on a database request, In seconds
Public ADOComputeTimeout
Public ADOMaxRecords
Public SQLConnect 'If ADOConnection is not Set prior To calling .Open , Then use this info To connect
Public SQLUser 'database user name If using .SQLConnect
Public SQLPass 'database password If using .SQLConnect
Public SQLSelect 'comma delimited list of fields To retrieve, all fields mentioned In other SQLSelect... properties must be here
Public SQLSelectHide 'comma delimited list of fields To retrieve but hide from display
Public SQLSelectName 'comma delimited list of "Nice" field names To display In Header, must have exactly the same number of entries as defined In SQLSelect
Public SQLSelectAliases 'comma delimited list of selected field names that are aliases, suppresses search and grid field controls that can cause syntax errors
Public SQLSelectSearchDropDown 'comma delimited list of fields that should be created as dropdowns of existing values In a search page
Public SQLSelectFilterHide 'comma delimited list of no filter fields
Public SQLSelectSortHide 'comma delimited list of no sort fields
Public SQLSelectSearchHide 'comma delimited list of no search fields
Public SQLSelectSearchUncheck 'comma delimited list of fields To display unchecked by default In search screen
Public SQLSelectFormat '1 Click DB field formatting variables
Public SQLSelectSum 'comma delimited list of fields For computed Grand Total
Public SQLSelectAvg 'comma delimited list of fields For computed Group Average
Public SQLSelectMin 'comma delimited list of fields For computed Smallest Value
Public SQLSelectMax 'comma delimited list of fields For computed Largest Value
Public QuoteSuffix
Public QuotePrefix
Public SQLFrom 'REQUIRED: table To be displayed, SQL Join clauses are supported but are generally not updateable
Public SQLWhere 'SQL WHERE clause without the word WHERE restricting which records To display
Public SQLWhereExtra 'SQL WHERE clause without the keyword WHERE Used To restrict what rows from a table are displayed In addition To any criteria specified by SQLWhere. Good For securing subsets of records from certain users
Public SQLHaving 'SQL HAVING clause without the word HAVING used For display of aggregate queries
Public SQLGroupBy 'SQL GROUP BY clause without the words GROUP BY used For display of aggregate querieds
Public SQLOrderBy 'SQL ORDER BY without the words ORDER BY clause used For determining display order of records
Public SQLOrderByDefault 'If no other order by is specified, use this
Public SQLPage 'what page of records To display, If number is invalid, the first page is shown
Public SQLPageSize 'number of records To display per page, If hard coded, will use default or querystring values
Public SQLPageSizeDefault 'default number of records To display per page
Public SQLRecordCount 'READ ONLY: how many records In current recordset
Public SQLPageCount 'READ ONLY: how many pages In current recordset
Public SQLText 'READ ONLY: actual SQL used To create main recordset
Public AllowEdit 'If true, show edit links, If recordSet keys are not available, setting this To True will have no effect
Public AllowDelete 'If true, show delete links, If recordSet keys are not available, setting this To True will have no effect
Public AllowSearch 'If true, allow search/filter form processing, can be enabled For one grid per page
Public AllowExport 'If true, allow print and other exports, can be enabled For one grid per page
Public AllowDetail 'If true, show detail links
Public AllowAdd 'If true show Add record button
Public AllowMultiDelete 'If true, show check boxes to select records to delete
Public FormSearch 'ASP file For search requests, defaults To current page
Public FormEdit 'ASP file For edit requests
Public FormDetail 'ASP file For detail requests
Public HTMLAttribGrid 'can be used To specify CELLPADDING and CELLSPACING attributes, CLASS is harcoded To "Grid"
Public HTMLAttribButtonPanel
Public HTMLAttribGridEven
Public HTMLAttribGridOdd
Public HTMLAttribBtnMultiDelete 'attributes for mulitdelete button
Public HTMLAttribBtnMultiSelect
Public HTMLGridButtons 'list of buttons To be displayed
Public HTMLTextCompare 'list of valid text operators For search
Public HTMLTrueValue 'If not set, grid will display database default representation
Public HTMLFalseValue 'If not set, grid will display database default representation
Public HTMLDetailLink 'customize detail links
Public HTMLNullValue 'replace null values with this
Public HTMLBinaryValue 'replace binary values with this
Public HTMLSortASCLink 'customize sort ascending links
Public HTMLSortDESCLink 'customize sort descending links
Public HTMLFilterLink 'customize filter links
Public HTMLEditLink 'customize edit links
Public HTMLDeleteLink 'customize delete links
Public HTMLAttribEditLink 'customize edit links
Public HTMLAttribDeleteLink 'customize delete linkes
Public HTMLMemoContinues 'what To show at end of long memo
Public HTMLAttribFindBtn 'defines HTML tag attributes For Find Records button
Public HTMLAttribCancelBtn 'defines HTML tag attributes For Cancel button
Public AllowMultiSelect
Public HTMLAttribGridCell
Public HTMLExportStart 'in quick mode this starts export files
Public HTMLGridVertical
Public HTMLAfterFieldName
Public HTMLExportEnd 'in quick mode this ends export forms
Public HTMLAscText 'text displayed To select ASCending sort on search page
Public HTMLDescText 'text displayed To select DESCending sort on search page
Public HTMLSearchBetween 'text shown by default as between on date searches
Public HTMLSearchBetweenAnd 'text shown between start and end inputs on date searches
Public HTMLSearchAll 'text shown next To radio button To select "all" logic on searches
Public HTMLSearchAny 'text shown next To radio button To select "any" logic on searches
Public HTMLSearchAnd 'text shown next To radio button To add new restriction To current criteria
Public HTMLSearchOr 'text shown next To radio button To add new match condition To current criteria
Public HTMLSearchReSet 'text shown next To radio button To replace old criteria with new criteria
Public HTMLSearchKeyword 'html For "Keyword" search field display
Public SearchKeywordTextFields
Public SearchKeywordNumberFields
Public FormSelect
'**Start Encode**
'internal reserved variables
Public SQLSelectID
Private GridUseGetRows 'If true .ADORecordSet will be discarded immediately after moving data To local arrays
Private SQLSelectIDType
Private UseSP_ExecuteSQL
Private SQLSelectIDPos
Public SQLSelectPK
Private SQLSelectPKType
Private SQLSelectPKPos
Public arrSQLSelect
Private arrSQLSelectType
Private arrSQLSelectFormat
Private arrSQLSelectName
Private arrSQLSelectFilterHide
Private arrSQLSelectSortHide
Private arrSQLSelectPKType
Private arrSQLSelectPKPos
Private arrSQLSelectPK
Private strSCRIPT_NAME
Private intCurrentField
Private strCData
Private arrComputeData
Private arrGridData
Public SaferSQLServer
Public Debug 'requires jscript getTime() server function To be defined on calling page
Public GridCountRecords
Private Sub Class_Initialize 'Set default values
%><!--#INCLUDE FILE=ocdGrid_Lang.asp--><%
HTMLAttribButtonPanel = " BORDER=0 CELLPADDING=2 CELLSPACING=2 "
HTMLAfterFieldName = "<BR>"
HTMLAttribGridCell = "VALIGN=""TOP"" NOWRAP "
Debug = False
SaferSQLServer = False
AllowMultiSelect = False
SearchKeywordTextFields = ""
SearchKeywordNumberFields = ""
HTMLGridVertical = False
FormSelect = ""
ADOMaxRecords = 10000
ADOComputeTimeOut = 1
GridCountRecords = False
GridFieldNames = True
SQLSelectSum = ""
SQLSelectMin = ""
AllowAdd = True
AllowEdit = True
AllowDelete = True
UseSP_ExecuteSQL = False
SQLSelectMax = ""
SQLSelectAvg = ""
ExportForceDownload = False
SQLSelectSearchDropDown = ""
SQLSelectSearchHide = ""
ADORecordsetTimeout = 30
SearchShowKeyword = True
SQLSelectPK = ""
SQLSelectSearchUncheck = ""
FormSearch = ""
GridFormatNumbers = ""
SQLSelectAliases = ""
GridMaxURLLength = 2000
GRIDUseGetRows = True
GridMaxMemo = 255
SearchPersistKeyword = False
SearchCheckAll = True
AllowDetail = False
SQLOrderByDefault = ""
FormDetail = ""
strSCRIPT_NAME = request.ServerVariables("SCRIPT_NAME")
SearchSortSize = 3
SearchMultiSort = False
SQLPageSizeDefault = 10
AllowMultiDelete = False
SQLSelectHide = ""
DatabaseType = ""
GridID = "A"
SQLWhereExtra = ""
SQLPageSize = ""
SQLSelectName = ""
SQLSelectID = -1
GridMode = "Browse"
QuoteSuffix =""""
QuotePrefix =""""
HTMLAttribEditLink = ""
HTMLAttribDeleteLink = ""
Select Case UCase(request.querystring("ocdGridMode_" & GRIDID))
Case "FILTER"
GridMode = "Filter"
Case "SEARCH"
GridMode = "Search"
Case "EXPORT"
GridMode = "Export"
Case "PROCESS"
GridMode = "Process"
End Select
End Sub
Private Sub Class_Terminate 'clean up ADO objects
On Error Resume Next
ADORecordset.close
Set ADORecordSet = nothing
If SQLConnect <> "" Then 'disconnect If connection not Set by reference
ADOConnection.close
Set ADOConnection = nothing
End If
Err.clear
End Sub
public sub Open
dim blnComputable, blnTemp, blnTemp2, rsIDX, rsCompute, intFieldCount, intTemp, strCSQL, strSQL, strTemp, strTemp2, eleTemp, eleTemp2, intRA, arrTemp, fldTemp, acot1, crot1, drot1, dmot1, kdot1
blnComputable = False
If SQLSelectFormat <> "" Then
arrSQLSelectFormat = Split(SQLSelectFormat,",")
End If
If SQLSelectAliases <> "" Then
If SQLSelectSearchHide <> "" Then
SQLSelectSearchHide = SQLSelectSearchHide & "," & SQLSelectAliases
Else
SQLSelectSearchHide = SQLSelectAliases
End If
If SQLSelectSortHide <> "" Then
SQLSelectSortHide = SQLSelectSortHide & "," & SQLSelectAliases
Else
SQLSelectSortHide = SQLSelectAliases
End If
If SQLSelectFilterHide <> "" Then
SQLSelectFilterHide = SQLSelectFilterHide & "," & SQLSelectAliases
Else
SQLSelectFilterHide = SQLSelectAliases
End If
End If
If SQLSelectFilterHide <> "" Then
arrSQLSelectFilterHide = Split(SQLSelectFilterHide,",")
End If
If SQLSelectSortHide <> "" Then
arrSQLSelectSortHide = Split(SQLSelectSortHide,",")
End If
If SQLSelect = "" Then
SQLSelect = "*"
End If
If SQLPage = "" Then
SQLPage = request.querystring("SQLPAGE_" & GRIDID)
End If
If IsNumeric(SQLPage) Then
SQLPage = CInt(SQLPage)
If SQLPage = 0 Then
SQLPage = 1
End If
Else
SQLPage = 1
End If
If SQLPageSize = "" Then
If request.QueryString("sqlpagesize" & "_" & GridID) <> "" and IsNumeric(request.querystring("sqlPagesize" & "_" & GridID)) Then
SQLPageSize = CLng(request.Querystring("sqlpagesize" & "_" & GridID))
Else
SQLPageSize = SQLPageSizeDefault
End If
Else
If not isnumeric (SQLPageSize) Then
SQLPageSize = SQLPageSizeDefault
Else
SQLPageSize = CLng(SQLPageSize)
End If
End If
SQLGroupBy = Replace(SQLGROUPBY, ";","")
SQLHaving = Replace(SQLHaving,";","")
If SQLOrderBy = "" Then
If request.Querystring("sqlorderby" & "_" & GridID) <> "" Then
SQLOrderBy = Replace(request.Querystring("sqlorderby" & "_" & GridID),";","")
Else
SQLOrderBy = SQLOrderByDefault
End If
End If
If not IsObject(ADOConnection) Then
Set ADOConnection = server.CreateObject("ADODB.Connection")
ADOConnection.Mode = 1 'adModeRead
Call ADOConnection.Open (SQLConnect, SQLUser, SQLPass)
End If
If DatabaseType = "" Then
DatabaseType = getDatabaseType(ADOConnection)
End If
Select Case UCase(DatabaseType)
Case "IXS","ADSI"
AllowEdit = False
AllowDelete = False
AllowAdd = False
Case "ACCESS","SQLSERVER"
ADOConnection.CommandTimeout = ADORecordsetTimeout
End Select
If Not AllowEdit then
HTMLEditLink = ""
End if
If Not AllowDelete Then
HTMLDeleteLink = ""
end if
If SQLWhere = "" Then
'check For batched commands
Select Case DatabaseType
Case "SQLServer"
SQLWhere = Replace(request.Querystring("sqlwhere" & "_" & GridID),";","' + ';' + '")
Case "Access"
SQLWhere = request.Querystring("sqlwhere" & "_" & GridID)
Case Else
SQLWhere = Replace(request.Querystring("sqlwhere" & "_" & GridID),";","")
End Select
End If
Select Case UCase(GRIDMODE)
Case "FILTER"
Exit Sub
End Select
If UCase(GRIDMode) = "BROWSE" Then
If InStr(SQLSelect,")") = 0 and InStr(SQLSelect,"(") =0 and SQLGroupBy = "" and SQLHaving = "" and DatabaseType <> "IXS" and DatabaseType <> "ADSI" and ((Len(sqlselect) > 2) or (sqlselect = "*")) Then
If UCase(Left(sqlselect,3)) <> "TOP" Then
blnComputable = True
End If
End If
End If
' blnComputable = False
'response.write blncomputable
If blnComputable Then
If DatabaseType = "Access" Then
strSQL = "SELECT TOP " & (SQLPageSize * SQLPage) & " " & SQLSelect
Else
strSQL = "SELECT " & SQLSelect
End If
Else
strSQL = "SELECT " & SQLSelect
if UCASE(GRIDMODE) <> "EXPORT" Then
GRIDUseGetRows = False
End if
End If
strSQL = strSQL & " FROM "
'response.write SQLFROM
If InStr(1, SQLFrom ,",") = 0 and InStr(1, SQLFrom,"=") = 0 Then
SQLFrom = FormatForSQL(SQLFrom, DatabaseType, "AddSQLIdentifier")
End If
strSQL = strSQL & SQLFrom
' response.write strSQL
If UCase(GRIDMODE) = "PROCESS" OR UCase(GRIDMODE) = "SEARCH" Then
strSQL = strSQL & " WHERE 1=2"
ElseIf SQLWhereExtra <> "" Then
If SQLWhere = "" Then
strSQL = strSQL & " WHERE " & SQLWhereExtra
Else
strSQL = strSQL & " WHERE " & SQLWhereExtra & " AND (" & SQLWHERE & ")"
End If
ElseIf (not SQLWhere = "") Then
strSQL = strSQL & " WHERE " & SQLWhere & ""
End If
If not SQLGroupBy = "" Then
strSQL = strSQL & " GROUP BY " & SQLGroupBy
End If
If not SQLHaving = "" Then
strSQL = strSQL & " HAVING " & SQLHaving
End If
If not SQLOrderBy = "" Then
strSQL = strSQL & " ORDER BY " & SQLOrderBy
End If
' response.write strSQL
If SQLPage = "" Then
SQLPage = request.querystring("sqlpage" & "_" & GridID)
End If
if UCASE(gridmode) <> "BROWSE" Then
' response.write "X"
blnComputable = False
end if
If blnComputable Then
strCSQL ="SELECT COUNT(*) AS " & FormatForSQL("Record Count", DatabaseType, "AddSQLIdentifier") & ","
If SQLSelectSum <> "" Then
arrTemp = Split(SQLSelectSum,",")
For Each eleTemp In arrTemp
strCSQL = strCSQL & "SUM(" & FormatForSQL(eleTemp, DatabaseType, "RemoveSQLIdentifier") & ") As " & FormatForSQL(FormatForSQL(Replace(eleTemp," ","") & " Sum", DatabaseType, "RemoveSQLIdentifier"),DatabaseType,"AddSQLIdentifier") & ","
Next
End If
If SQLSelectAvg <> "" Then
arrTemp = Split(SQLSelectAvg,",")
For Each eleTemp In arrTemp
strCSQL = strCSQL & "AVG(" & FormatForSQL(eleTemp, DatabaseType, "RemoveSQLIdentifier") & ") As " & FormatForSQL(FormatForSQL(Replace(eleTemp," ","") & " Avg", DatabaseType, "RemoveSQLIdentifier"),DatabaseType,"AddSQLIdentifier") & ","
Next
End If
If SQLSelectMin <> "" Then
arrTemp = Split(SQLSelectMin,",")
For Each eleTemp In arrTemp
strCSQL = strCSQL & "MIN(" & FormatForSQL(eleTemp, DatabaseType, "RemoveSQLIdentifier") & ") As " & FormatForSQL(FormatForSQL(Replace(eleTemp," ","") & " Min", DatabaseType, "RemoveSQLIdentifier"),DatabaseType,"AddSQLIdentifier") & ","
Next
End If
If SQLSelectMax <> "" Then
arrTemp = Split(SQLSelectMax,",")
For Each eleTemp In arrTemp
strCSQL = strCSQL & "Max(" & FormatForSQL(eleTemp, DatabaseType, "RemoveSQLIdentifier") & ") As " & FormatForSQL(FormatForSQL(Replace(eleTemp," ","") & " Max", DatabaseType, "RemoveSQLIdentifier"),DatabaseType,"AddSQLIdentifier") & ","
Next
End If
strCSQL = Left(strCSQL,Len(StrCSQL)-1)
strCSQL = strCSQL & " FROM " & SQLFrom
If SQLWhereExtra <> "" Then
If SQLWhere = "" Then
strCSQL = strCSQL & " WHERE " & SQLWhereExtra
Else
strCSQL = strCSQL & " WHERE " & SQLWhereExtra & " AND (" & SQLWHERE & ")"
End If
ElseIf (not SQLWhere = "") Then
strCSQL = strCSQL & " WHERE " & SQLWhere & ""
End If
Set rsCompute = server.createobject("ADODB.Recordset")
rsCompute.CursorLocation = 2 'adUseServer
Select Case DatabaseType
Case "Access","SQLServer"
ADOConnection.CommandTimeout = ADOComputeTimeout
End Select
On Error Resume Next
if DataBaseType = "SQLServer" and len(strCSQL) < 128 and USESP_EXECUTESQL Then
Call rsCompute.open ("sp_executesql """ & Replace(strCSQL,"""","""""") & """", ADOConnection)
Elseif DatabaseType = "SQLServer" and SaferSQLServer Then
set rsCompute = ADOConnection.Execute(strCSQL,intRA)
Else
Call rsCompute.open (strCSQL, ADOConnection)
End if
If Err.Number <> 0 Then
Err.clear
On Error GoTo 0
SQLRecordCount = "???"
If SQLSelectMin <> "" or SQLSelectMax <>"" or SQLSelectAvg <> "" or SQLSelectSum <> "" Then
strCData = "Timeout"
End If
Else
On Error GoTo 0
if rsCompute.Fields.count > 1 Then
strCData = "<TABLE>"
End if
For Each fldTemp In rsCompute.Fields
If fldTemp.Name = "Record Count" Then
SQLRecordCount = CLng(rsCompute(0))
Else
strCData = strCData & "<TR>"
strCData = strCData & "<TD><SPAN CLASS=FieldName>" & fldTemp.Name & "</SPAN></TD>"
strCData = strCData & "<TD ALIGN=RIGHT>" & fldTemp.Value & "</TD>"
strCData = strCData & "</TR>"
End If
Next
if rsCompute.Fields.count > 1 Then
strCData = strCData & "</TABLE>"
End if
rsCompute.close
End If
Set rsCompute = nothing
ADOConnection.CommandTimeout = ADORecordsetTimeout
Set ADORecordSet = server.CreateObject("ADODB.Recordset")
ADORecordset.Maxrecords = CLng(SQLPageSize * SQLPage)
ADORecordset.CursorLocation = 2 'adUseServer 3 'adUseClient
' SaferSQLServer = True
if DataBaseType = "SQLServer" and len(strSQL) < 128 AND USESP_ExecuteSQL Then
Call ADORecordset.Open ("sp_executesql """ & Replace(strSQL,"""","""""") & """", ADOConnection, 0, 1, &H0001)
Elseif DatabaseTYpe="SQLServer" AND SaferSQLServer Then'Then
set ADORecordset = ADOCOnnection.execute (strSQL, intRA)
Else
' response.write strSQL
Call ADORecordset.Open (strSQL , ADOConnection, 0, 1, &H0001) 'adOpenForwardOnly, adLockReadOnly, adCmdText
End if
Else
Set ADORecordSet = server.CreateObject("ADODB.Recordset")
ADORecordset.CursorLocation = 2 'adUseServer 3 'adUseClient
if UCASE(GridMode) <> "EXPORT" Then
ADORecordset.maxrecords = CLng(SQLPageSize * SQLPage)
End if
If DataBaseType = "SQLServer" and UCase(GRIDMODE) <> "PROCESS" and UCase(GRIDMODE) <> "SEARCH" and UCase(GRIDMODE) <> "EXPORT" and len(strSQL) < 128 and UseSP_ExecuteSQL Then
Call ADORecordset.Open ("sp_executesql """ & Replace(strSQL,"""","""""") & """", ADOConnection , 3, 1, &H0001 )'adOpenStatic, adLockReadOnly, adCmdText
ElseIf not SaferSQLServer Then '
' response.write strSQL
Call ADORecordset.Open (strSQL , ADOConnection , 3, 1, &H0001 )'adOpenStatic, adLockReadOnly, adCmdText
ElseIF UCase(GridMOde) = "PROCESS" OR UCase(GridMOde) = "SEARCH" Then
set ADORecordset = ADOCOnnection.execute (strSQL, intRA)
Else
' response.write strSQL
err.raise 17
End if
SQLRecordCount = ADORecordset.RecordCount
End If
If IsNumeric(SQLRecordCount) Then
If SQLRecordCount > ADOMaxRecords Then
SQLPageCount = CLng(Fix(CLng(ADOMaxRecords) / CLng(SQLPageSize)))
If (CLng(ADOMaxRecords) / CLng(SQLPageSize)) <> Fix(CLng(ADOMaxRecords) / CLng(SQLPageSize)) Then
SQLPageCount = SQLPageCount + 1
End If
Else
SQLPageCount = CLng(Fix(CLng(SQLRecordCount) / CLng(SQLPageSize)))
If (CLng(SQLRecordCount) / CLng(SQLPageSize)) <> Fix(CLng(SQLRecordCount) / CLng(SQLPageSize)) Then
SQLPageCount = SQLPageCount + 1
End If
End If
Else
SQLPageCount = CLng(Fix(CLng(ADOMaxRecords) / CLng(SQLPageSize)))
If (CLng(ADOMaxRecords) / CLng(SQLPageSize)) <> Fix(CLng(ADOMaxRecords) / CLng(SQLPageSize)) Then
SQLPageCount = SQLPageCount + 1
End If
End If
If 1 > SQLPage Then
SQLPage = 1
ElseIf SQLPage > SQLPageCount Then
SQLPage = SQLPageCount
End If
SQLText = strSQL
strTemp = ""
strTemp2 = ""
intFieldCount = 0
For Each fldTemp In ADORecordset.Fields
strTemp = strTemp & fldTemp.Name & ";;"
strTemp2 = strTemp2 & Cstr(fldTemp.Type) & ","
If SQLSelectID = -1 and UCase(GRIDMODE) = "BROWSE" Then
'check For autonumber
Select Case DatabaseType
Case "Access","SQLServer"
If InStr(SQLSelect,")") = 0 and InStr(SQLSelect,"(") =0 and SQLGroupBy = "" and SQLHaving = "" Then
If UCase(ADOConnection.provider) = "MICROSOFT.JET.OLEDB.3.51" or DatabaseType = "IXS" Then
'look out, field properties bomb with this provider
SQLSelectID = -1
Else
If fldTemp.Properties("ISAUTOINCREMENT") = "True" Then
SQLSelectID = intFieldCount
SQLSelectIDPos = intFieldCount
End If
End If
End If
End Select
End If
intFieldCount = intFieldCount + 1
Next
If Len(strTemp) > 1 Then
arrSQLSelect = Split(Left(strTemp,Len(strTemp)-2),";;")
arrSQLSelectType = Split(Left(strTemp2,Len(strTemp2)-1),",")
End If
If UCASE(GRIDMODE) = "EXPORT" and UCase(request.querystring("ocdExportFormat_" & GRIDID)) = "XML" Then
response.ContentType = "text/xml"
Call ADORecordset.Save (response, 1)
Call Close()
response.end
End If
if GridUseGetRows Then
If not ADORecordset.eof Then
Select Case UCase(GRIDMODE)
Case "PROCESS","SEARCH"
'no data To retrieve
Case "BROWSE"
'move To the right page and retrieve data
If not ADORecordset.EOF Then
If not (SQLPage = 1 or SQLPage = 0) Then
on error resume next
ADORecordset.move (CLng((SQLPage -1)*SQLPageSize))
err.clear
End If
Else
SQLRecordCount = 0
End If
arrGridData = ADORecordset.GetRows(SQLPageSize)
Case "EXPORT"
Select Case UCase(request.querystring("ocdExportFormat_" & GRIDID))
Case Else
arrGridData = ADORecordset.GetRows()
End Select
SQLRecordcount = UBound(arrGridData,2) + 1
End Select
ADORecordset.Close
Set ADORecordSet = nothing
End If
End If
Select Case UCase(GRIDMODE)
Case "PROCESS"
call ProcessSearch()
Case "SEARCH"
Exit Sub
Case "EXPORT" 'Set Mime Headers as appropriate
response.clear
allowmultidelete = false
allowmultiselect = false
Select Case UCase(request.Querystring("ocdExportFormat_" & GRIDID))
Case "EXCEL","TEXT"
response.ContentType = "application/vnd.ms-excel"
If ExportForceDownload Then
Select Case UCase(request.Querystring("ocdExportFormat_" & GRIDID))
Case "EXCEL"
Call response.AddHeader ("content-disposition","attachment; filename=export.xls")
Case "TEXT"
Call response.AddHeader ("content-disposition","attachment; filename=export.txt")
End Select
Else
Select Case UCase(request.Querystring("ocdExportFormat_" & GRIDID))
Case "EXCEL"
Call response.AddHeader ("content-disposition","inline;filename=export.xls")
Case "TEXT"
Call response.AddHeader ("content-disposition","inline;filename=export.txt")
End Select
End If
response.write (HTMLExportStart)
Case "TSV"
response.contenttype = ("application/tab-separated-values")
If ExportForceDownload Then
Call response.AddHeader ("content-disposition","attachment; filename=export.txt")
Else
Call response.AddHeader ("content-disposition","inline;filename=export.txt")
End If
Case "PRINT"
response.write (HTMLExportStart)
End Select
Exit Sub
Case "BROWSE"
'If no key information required but still not defined, Then attempt To autodetect
If SQLSelectID = -1 and SQLSelectPK = "" and (AllowEdit or AllowDetail or AllowDelete) Then 'try To determine pk fields
SQLSelectPK = getPKFields(ADOConnection, DatabaseType, SQLFrom,QuoteSuffix,QUotePrefix)
If SQLSelectPK <> "" Then
'from field list determin other props on rs
arrSQLSelectPK = Split(SQLSelectPK,",")
blnTemp = false
For Each eleTemp2 In arrSQLSelectPK
intTemp = 0
blnTemp2 = false
For Each eleTemp In arrSQLSelect
If UCase(eleTemp) = UCase(eleTemp2) Then
SQLSelectPKPos = SQLSelectPKPos & intTemp & ","
strTemp2 = arrSQLSelectType(intTemp)
SQLSelectPKType = SQLSelectPKType & Cstr(strTemp2) & ","
If strTemp2 = "135" Then
blntemp2 = False
SQLSelectPKType = ""
SQLSelectPKPos = ""
SQLSelectPK = ""
exit for
end if
blntemp2 = true
Exit For
End If
intTemp = intTemp + 1
Next
If not blnTemp2 Then
blnTemp = true
SQLSelectPK = ""
End If
Next
End If
If SQLSelectPK <> "" Then
SQLSelectPKType = Left(SQLSelectPKType,Len(SQLSelectPKType)-1)
arrSQLSelectPKType = Split(SQLSelectPKType,",")
SQLSelectPKPos = Left(SQLSelectPKPos,Len(SQLSelectPKPos)-1)
arrSQLSelectPKPos = Split(SQLSelectPKPos,",")
End If
End If
If SQLSelectID = -1 or not AllowDelete or not GridUseGetRows or UCASE(GRIDMODE) <> "BROWSE" then
AllowMultiDelete = False
End if
If SQLSelectID = -1 and SQLSelectPK = "" Then
'no key To identify individual records is available
AllowAdd = False
AllowEdit = False
AllowDelete = False
AllowDetail = False
End If
End Select
if CINT(SQLPageSize) = 1 Then
AllowMultiDelete = False
End if
End Sub
Public sub Display (byVal strTemplate)
dim qstTemp, intRowCount, intSPFC, intLoopSize, strTemp, strCDp, strFname, strInfqstTemp,strPKqstTemp, arrSQLSelectPK, arrSQLSelectHide, tmpSQLPKString, varPKFieldType, fldTemp, blnTemp, eleTemp, arrTemp, arrTemp2
If Err.number <> 0 Then
Exit Sub
End If
Select Case Trim(UCase((strTemplate)))
Case "QUICK",""
Call Open
If UCase(GRIDMode) = "FILTER" Then
Call DisplayFilter(GRIDID)
Exit Sub
End If
Case "FILTER"
If UCase(GRIDMode) = "FILTER" Then
Call DisplayFilter(GRIDID)
Exit Sub
End If
End Select
Select Case UCase((strTemplate))
Case "QUICK","","SEARCH"
If UCase(GRIDMODE) = "SEARCH" Then
Call DisplaySearch(GRIDID)
Exit Sub
End If
End Select
GridID = UCase(GridID)
If SQLSelectHide = "" Then
SQLSelectHide = request.querystring("SQLSELECTHIDE_" & GRIDID)
End If
If Not UCase(GRIDMODE) = "EXPORT" Then
Select Case UCase(strTemplate)
Case "QUICK","","BUTTONS"
If UCase(GRIDMODE) <> "EXPORT" Then
Call DisplayGridButtons
End If
End Select
End If
If SQLSelectHide <> "" Then
arrSQLSelectHide = Split(SQLSelectHide,",")
End If
intCurrentField = 0
Select Case UCase(strTemplate)
Case "QUICK","","GRID"
dim strName, varValue, intType
If SQLSelectName <> "" Then
ArrSQLSelectName =Split(SQLSelectName,",")
End If
Select Case UCase(GRIDMODE)
Case "EXPORT"
AllowAdd = False
AllowEdit = False
AllowDetail = False
AllowDelete = False
select case UCase(request.querystring("ocdExportFormat_" & GRIDID))
Case "PRINT","EXCEL"
response.write (HTMLExportStart)
End SElect
End Select
'Start Building results table
if AllowMultiDelete Then
Response.write ("<FORM METHOD=GET ACTION=""" & FormEdit & """>")
ElseIf AllowMultiSelect Then
Response.write ("<FORM METHOD=GET ACTION=""" & FormSelect & """>")
end if
if not HTMLGridVertical THen
response.write ("<TABLE CLASS=""Grid"" " & HTMLAttribGrid & ">")
End if
If GridFieldNames and not HTMLGridVertical Then
response.write ("<TR " & "CLASS=""GridHeader""" & "><TH >")
if AllowMultiSelect Then
Response.write ("<INPUT Name=OCDMULTISELECT " & HTMLAttribBtnMultiSelect & ">")
Else
Response.write " "
End if
Response.write ("</TH>")
For Each fldTemp In arrSQLSelect
blnTemp = True
If (Cint(intCurrentField ) = Cint(SQLSelectID) ) and GridHideAutonumber Then
Else
If SQLSelectHide <> "" Then
For eleTemp = 0 To UBound(arrSQLSelectHide)
If UCase(arrSQLSelect(intCurrentField)) = UCase(arrSQLSelectHide(eleTemp)) Then
blnTemp = false
Exit For
End If
next
End If
If blnTemp Then
If SQLSelectName = "" Then
Call DisplayFieldName(ArrSQLSelect(intCurrentField), ArrSQLSelectType(intCurrentField), 50, "")
Else
Call DisplayFieldName(ArrSQLSelect(intCurrentField), ArrSQLSelectType(intCurrentField), 50, ArrSQLSelectName(intCurrentField))
End If
End If
End if
intCurrentField = intCurrentField + 1
Next
response.write ("<TH>")
if AllowMultiDelete and IsNumeric(SQLRecordCount) then
if SQLRecordCount <> 0 THen
Response.write ("<INPUT Name=OCDEDITDELETE " & HTMLAttribBtnMultiDelete & ">")
End if
end if
for each qstTemp in Request.Querystring
Select Case UCase(qstTemp)
Case "OCDEDITDELETE","SQLID"
Case "SQLFROM"
Response.write ("<INPUT TYPE=Hidden Name=SQLFrom VALUE=""" & server.urlencode(FormatForSQL(SQLFrom,DatabaseType,"REMOVESQLIDENTIFIER")) & """>")
Case Else
Response.write ("<INPUT TYPE=Hidden Name=""" & qstTemp & """ VALUE=""" & server.htmlencode(Request.QUerystring(qstTemp)) & """>")
End Select
next
Response.write ("</TH></TR>")
End If
intRowCount = 1
Select Case UCase(FormEdit)
Case "EDIT.ASP", "FREEEDIT.ASP"
strInfqstTemp = "&"
strInfqstTemp = strInfqstTemp & "sqlfrom=" & server.urlencode(SQLFrom)
End Select
For Each qstTemp In request.Querystring
Select Case UCase(qstTemp)
Case "SQLID", "SQLWHERE", "SQLFROM", "OCDACTION" & "_" & GridID
Case Else
strInfqstTemp = strInfqstTemp & "&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp))
End Select
next
If IsNumeric(SQLRecordCount) Then
If SQLRecordCount = 0 Then
intLoopSize = 0
Else
If GridUseGetRows Then
intLoopSize = UBound(arrGridData,2) + 1
Else
If UCase(GRIDMODE) = "EXPORT" Then
If IsNumeric(SQLRecordCount) Then
intLoopSize = SQLRecordCount
Else
intLoopSize = ADOMaxRecords
End If
Else
intLoopSize = SQLPageSize
End If
End If
End If
Else
If GridUseGetRows Then
intLoopSize = UBound(arrGridData,2) + 1
Else
If UCase(GRIDMODE) = "EXPORT" Then
If IsNumeric(SQLRecordCount) Then
intLoopSize = SQLRecordCount
Else
intLoopSize = ADOMaxRecords
End If
Else
intLoopSize = SQLPageSize
End If
End If
End If
If SQLSelectPK <> "" Then
arrSQLSelectPK = Split(SQLSelectPK,",")
End If
if not GridUseGetrows then
if not ADORecordset.eof Then
If SQLPage > 1 Then
ADORecordset.move Clng(SQLPageSize * (SQLPage -1))
End if
End if
End if
For intRowCount = 1 To CInt(intLoopSize)
if HTMLGridVertical Then
Response.write ("<TABLE><TR>")
Else
response.write ("<TR ")
If intRowCount mod 2 = 0 Then
response.write (HTMLAttribGridEven)
Else
response.write (HTMLAttribGridOdd)
End If
response.write (">")
End if
If HTMLGridVertical Then
Response.write ("<TD COLSPAN=2>")
Else
Response.write ("<TD >")
End if
If (SQLSelectID <> -1 or SQLSelectPK <> "") and (AllowEdit or AllowDetail or AllowDelete or AllowMultiSelect or AllowMultiDelete) Then
strPKqstTemp = ""
'response.write sqlselectid
if sqlselectid = -1 Then
' sqlselectid = ""
End if
If SQLSelectID <> -1 Then
'Response.write SQLSelectID
If not isnull(arrGridData(SQLSelectID,intRowCount-1)) Then
If not GridUseGetRows Then
strPKqstTemp = strPKqstTemp & "sqlid=" & server.URLEncode( ADORecordset.Fields( SQLSelectIDPos ).Value)
Else
strPKqstTemp = strPKqstTemp & "sqlid=" & server.URLEncode( arrGridData(SQLSelectID,intRowCount-1))
End If
Else
AllowEdit=False
AllowDelete=False
End if
ElseIf SQLSelectPK <> "" Then
strPKqstTemp = strPKqstTemp & "sqlwhere="
strCDp = ""
tmpSQLPKString = ""
For intSPFC = 0 To UBound(arrSQLSelectPK)
tmpSQLPKString = tmpSQLPKString & FormatForSQL(arrSQLSelectPK(intSPFC), DatabaseType, "AddSQLIdentifier") & "="
arrTemp = arrSQLSelectPKPos(intSPFC)
arrTemp = CInt(arrTemp2)
arrTemp2 = arrSQLSelectPKType(intSPFC)
arrTemp2 = CInt(arrTemp2)
Select Case arrTemp2
Case 2, 3, 4, 5, 14, 16, 17, 18, 19, 20, 21, 128, 131, 204, 6, 11 'adSmallInt, adInteger, adSingle, adDouble, adDecimal, adTinyInt, adUnsignedTinyInt, adUnsignedSmallInt, adUnsignedInt, adBigInt, adUnsignedBigInt, adBinary, adNumeric, adVarBinary, adLongVarBinary, adCurrency, adBoolean
strCDp = ""
Case 135, 7, 133, 134 'adDBTimeStamp, adDate, adDBDate, adDBTime
If DatabaseType = "Access" Then
strCDp = "#"
Else
strCDp = "'"
End If
Case 8, 129, 130, 200, 201, 202, 203 'adBSTR, adChar, adWChar, adVarChar, adLongVarChar, adVarWChar, adLongVarWChar
strCDp = "'"
End Select
If GridUseGetRows Then
Select Case arrTemp2
Case 8, 129, 130, 200, 201, 202, 203 'adBSTR, adChar, adWChar, adVarChar, adLongVarChar, adVarWChar, adLongVarWChar
tmpSQLPKString = tmpSQLPKString & strCDp & Replace(arrGridData(arrSQLSelectPKPos(intSPFC),intRowCount-1),"'","''") & strCDp & " AND "
Case 135, 7, 133, 134 'adDBTimeStamp, adDate, adDBDate, adDBTime
tmpSQLPKString = tmpSQLPKString & strCDp & FormatForSQL(Cstr(arrGridData(arrSQLSelectPKPos(intSPFC),intRowCount-1)),DatabaseType,"SafeDate") & strCDp & " AND "
Case Else
tmpSQLPKString = tmpSQLPKString & strCDp & arrGridData(arrSQLSelectPKPos(intSPFC),intRowCount-1) & strCDp & " AND "
End Select
Else
Select Case arrTemp2
Case 8, 129, 130, 200, 201, 202, 203 'adBSTR, adChar, adWChar, adVarChar, adLongVarChar, adVarWChar, adLongVarWChar
tmpSQLPKString = tmpSQLPKString & strCDp & Replace(ADORecordset.Fields(arrSQLSelectPK(intSPFC)).Value,"'","''") & strCDp & " AND "
Case 135, 7, 133, 134 'adDBTimeStamp, adDate, adDBDate, adDBTime
tmpSQLPKString = tmpSQLPKString & strCDp & FormatForSQL(Cstr(ADORecordset.Fields(arrSQLSelectPK(intSPFC)).Value),DatabaseType,"SafeDate") & strCDp & " AND "
Case Else
tmpSQLPKString = tmpSQLPKString & strCDp & ADORecordset.Fields(arrSQLSelectPK(intSPFC)).Value & strCDp & " AND "
End Select
End If
next
If tmpSQLPKString <> "" Then
tmpSQLPKString = Left(tmpSQLPKString,Len(tmpSQLPKString)-5)
strPKqstTemp = strPKqstTemp & server.urlencode(tmpSQLPKString)
End If
End If
strPKqstTemp = strPKqstTemp & strInfqstTemp
'response.write allowedit
If (AllowEdit or AllowDelete) AND (SQLSelectID <> -1 or ((SQLSelectPK <> "") )) Then
response.write ("<A HREF=""" & FormEdit & "?" & strPKqstTemp & "&"" " & HTMLAttribEditLink & " >" & HTMLEditLink & "</A>")
End If
If AllowDetail and AllowEdit Then
response.write (" ")
End If
If AllowDetail and (SQLSelectID <> -1 or ((SQLSelectPK <> "") )) Then
response.write ("<A HREF=""" & FormDetail & "?" & strPKqstTemp & """>" & HTMLDetailLink & "</A>")
End If
if AllowMultiSelect THen
response.write ("<INPUT TYPE=CheckBox Name=SQLID VALUE=""" & server.URLEncode( arrGridData(SQLSelectIDPos,intRowCount-1)) & """>")
end if
End If
If HTMLGridVertical Then
Response.write ("</TD></TR>")
Else
response.write ("</TD>")
End if
response.write vbCRLF
intCurrentField = 0
If SQLSelectName = "" Then
strFName =arrSQLSelect(intCurrentField)
Else
strFName = arrSQLSelectName(intCurrentField)
End If
For Each fldTemp In arrSQLSelect 'ADORecordset.Fields
'response.write GridUseGetRows
If SQLSelectHide = "" Then
If GridUseGetRows Then
strName = ArrSQLSelect(intCurrentField)
varValue = arrGridData(intCurrentField,intRowCount-1)
intType = arrSQLSelectType(intCurrentField)
Else
strName = ArrSQLSelect(intCurrentField)
varValue = ADORecordset.Fields(intCurrentField)
intType = arrSQLSelectType(intCurrentField)
End If
Else
blnTemp = true
For eleTemp = 0 To UBound(arrSQLSelectHide)
If UCase(ArrSQLSelect(intCurrentField)) = UCase(arrSQLSelectHide(eleTemp)) Then
blnTemp = false
Exit For
End If
next
If blnTemp Then
If GridUseGetRows Then
strName = ArrSQLSelect(intCurrentField)
varValue = arrGridData(intCurrentField,intRowCount-1)
intType = arrSQLSelectType(intCurrentField)
Else
strName = ArrSQLSelect(intCurrentField)
varValue = ADORecordset.Fields(intCurrentField).Value
intType = arrSQLSelectType(intCurrentField)
End If
End If
End If
'display field value
dim arrHyperLink, strCD
if strName <> "" THen
If SQLSelectID = -1 Then
SQLSelectID = -1
End if
If (Cint(intCurrentField )= Cint(SQLSelectID) ) and GridHideAutonumber Then
Else
If HTMLGridVertical Then
Response.write ("<TR>")
if SQLSelectName = "" Then
call DisplayFieldName (arrSQLSelect(intCurrentField), arrSQLSelectType(intCurrentField), 50, arrSQLSelect(intCurrentField))
Else
call DisplayFieldName (arrSQLSelect(intCurrentField), arrSQLSelectType(intCurrentField), 50, arrSQLSelectName(intCurrentField))
End if
Response.write ("<TD VALIGN=TOP>")
Else
response.write ("<TD " & HTMLAttribGridCell & " ")
Select Case intType
Case 11 'adBoolean
response.write ("ALIGN=""CENTER""")
Case 2, 3, 4, 5, 14, 16, 17, 18, 19, 20, 21, 128, 131, 204, 6 'adSmallInt, adInteger, adSingle, adDouble, adDecimal, adTinyInt, adUnsignedTinyInt, adUnsignedSmallInt, adUnsignedInt, adBigInt, adUnsignedBigInt, adBinary, adNumeric, adVarBinary, adLongVarBinary, adCurrency,
response.write ("ALIGN=""RIGHT""")
Case Else
response.write ("ALIGN=""LEFT""")
End Select
response.write (" >")
End if
Select Case intType 'Check For fields that can't be displayed
Case 128, 204, 205 'adBinary, adVarBinary, adLongVarBinary Then Don't touch binary fields
response.write (HTMLBinaryValue)
Case Else 'retrieve value and check For null
'varvalue = fldTemp.Value
' Response.write varvalue = ""
If IsNull(varvalue) Then
response.write (HTMLNullValue)
ElseIf varvalue = "" Then
response.write (HTMLNullValue)
ElseIf VarType( varvalue)= vbNull Then
response.write (HTMLNullValue)
Else
Select Case intType 'Check For fields that don't support drilldown
Case 11 'adBoolean
If HTMLTrueValue <> "" Then
If varValue Then
response.write (HTMLTrueValue)
Else
response.write (HTMLFalseValue)
End If
Else
response.write (varValue)
End If
Case 203, 201, 135, 7, 133, 134 'adLongVarChar
' Response.write "X"
If SQLSelectFormat = "" Then
If Len( varvalue) > GridMaxMemo Then
response.write (server.HTMLEncode(Left( varvalue,GridMaxMemo)) & HTMLMemoContinues)
Else
response.write (server.HTMLEncode(varvalue))
End If
Else
Select Case UCase(arrSQLSelectFormat(intCurrentField))
Case "LINEBREAKS"
response.write (Replace(server.HTMLEncode(varValue),vbCRLF,"<BR>"))
Case "HYPERLINK"
arrHyperlink = Split(varValue,"#")
If arrHyperLink(0) = "" Then
response.write ("<A HREF=""" & arrHyperLink(1) & """ target=_blank>" & arrHyperLink(1) & "</A>")
Else
response.write ("<A HREF=""" & arrHyperLink(1) & """ target=_blank>" & arrHyperLink(0) & "</A>")
End If
Case "HTML"
response.write (varValue)
Case Else
If Len( varvalue) > GridMaxMemo Then
response.write (server.HTMLEncode(Left( varvalue,GridMaxMemo)) & HTMLMemoContinues)
Else
response.write (server.HTMLEncode(varvalue))
End If
End Select
End If
Case Else 'Fields eligible For drilldown
If UCASE(GRIDMODE) = "BROWSE" AND ( request.Querystring("drilldown" & "_" & GridID) = "yes" and UCase(strName) <> UCase(SQLSelectID)) Then
' These Set the drill down values
response.write ("<A HREF=""" & strSCRIPT_NAME)
Select Case intType
Case 2, 3, 4, 5, 14, 16, 17, 18, 19, 20, 21, 128, 131, 204, 6, 11 'adSmallInt, adInteger, adSingle, adDouble, adDecimal, adTinyInt, adUnsignedTinyInt, adUnsignedSmallInt, adUnsignedInt, adBigInt, adUnsignedBigInt, adBinary, adNumeric, adVarBinary, adLongVarBinary, adCurrency, adBoolean
strCD = ""
Case 135, 7, 133, 134 'adDBTimeStamp, adDate, adDBDate, adDBTime
If DatabaseType = "Access" Then
strCD = "#"
Else
strCD = "'"
End If
Case 8, 129, 130, 200, 201, 202, 203 'adBSTR, adChar, adWChar, adVarChar, adLongVarChar, adVarWChar, adLongVarWChar
strCD = "'"
End Select
Select Case intType
Case 135, 7, 133, 134 'adDBTimeStamp, adDate, adDBDate, adDBTime
If SQLWhere = "" Then
response.write ("?sqlwhere" & "_" & GridID & "=" & server.URLEncode( FormatForSQL(strName, DatabaseType, "AddSQLIdentifier") & " = " & strCD & FormatForSQL( Cstr(varvalue),DatabaseType,"SafeDate") & strCD ))
Else
response.write ("?sqlwhere" & "_" & GridID & "=" & server.URLEncode( "(" & SQLWhere & ") AND (" & FormatForSQL(strName, DatabaseType, "AddSQLIdentifier") & " = " & strCD & FormatForSQL( Cstr(varvalue), DatabaseType, "SafeDate") & strCD & ")"))
End If
Case Else
If SQLWhere = "" Then
response.write ("?sqlwhere" & "_" & GridID & "=" & server.URLEncode( FormatForSQL(strName, DatabaseType, "AddSQLIdentifier") & " = " & strCD & Replace( varvalue,"'","''") & strCD ))
Else
response.write ("?sqlwhere" & "_" & GridID & "=" & server.URLEncode( "(" & SQLWhere & ") AND (" & FormatForSQL(strName, DatabaseType, "AddSQLIdentifier") & " = " & strCD & Replace( varvalue,"'","''") & strCD & ")"))
End If
End Select
For Each qstTemp In request.Querystring
If UCase(qstTemp) <> "SQLWHERE" & "_" & GridID AND UCase(qstTemp) <> "OCDACTION" & "_" & GridID Then
response.write ("&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp)))
End If
next
response.write (""">")
End If
Select Case intType
Case 6 'adCurrency
response.write (server.HTMLEncode( FormatCurrency(varvalue)))
Case 8, 129, 130, 200, 201, 202, 203 'adBSTR, adChar, adWChar, adVarChar, adLongVarChar, adVarWChar, adLongVarWChar
If SQLSelectFormat <> "" Then
Select Case UCase(arrSQLSelectFormat(intCurrentField))
Case "HTML"
response.write (varValue)
Case Else
response.write (server.HTMLEncode( varvalue))
End Select
Else
response.write (server.HTMLEncode( varvalue))
End If
Case 2, 3, 4, 5, 14, 16, 17, 18, 19, 20, 21, 128'adSmallInt, adInteger, adSingle, adDouble, adDecimal, adTinyInt, adUnsignedTinyInt, adUnsignedSmallInt, adUnsignedInt, adBigInt, adUnsignedBigInt, adBinary, adNumeric,
If SQLSelectFormat <> "" Then
Select Case UCase(arrSQLSelectFormat(intCurrentField))
Case "PERCENT"
response.write (formatpercent(varValue,0,0,0,0))
Case "COMMAS"
response.write (FormatNumber( varvalue,0,0,0,-1))
Case Else
response.write (server.HTMLEncode(varValue))
End Select
Else
response.write (server.HTMLEncode(varValue))
End If
Case Else
response.write (server.HTMLEncode(varValue))
End Select
If (request.Querystring("drilldown" & "_" & GridID) = "yes" and UCase(strName) <> UCase(SQLSelectID)) Then
response.write ("</A>")
End If
End Select
End If
End Select
response.write ("</TD>" )
if HTMLGridVertical Then
Response.write ("</TR>")
End if
End if
'end display field value
strName = ""
End if
intCurrentField = intCurrentField + 1
Next
response.write ("<TD >")
If AllowDelete AND (SQLSelectID <> -1 or ((SQLSelectPK <> "") )) Then
tmpSQLPKString = ""
response.write ("<A HREF=""" & FormEdit & "?" & strPKqstTemp & "&ocdEditDelete=delete"" " & HTMLAttribDeleteLink & " >" & HTMLDeleteLink & "</A>")
if AllowMultiDelete THen
response.write ("<INPUT TYPE=CheckBox Name=SQLID VALUE=""" & server.URLEncode( arrGridData(SQLSelectIDPos,intRowCount-1)) & """>")
end if
Else
response.write (" ")
End If
response.write ("</TD></TR>" )
If not response.IsClientConnected Then
Call Close
response.clear
response.end
End If
If not GridUseGetRows Then
ADORecordset.MoveNext
If ADORecordset.eof Then
Exit For
End If
End If
Next
response.write ("</TABLE>")
if AllowMultiDelete or AllowMultiSelect Then
Response.write ("</FORM>")
End if
End Select
Select Case UCase(strTemplate)
Case "QUICK","","TOTALS","EXPORT"
response.write (strCData)
Select Case UCase(request.Querystring("ocdExportFormat_" & GRIDID))
Case "EXCEL"
' response.write ("</TABLE>" )
Case "PRINT"
response.write ("</BODY></HTML>")
End Select
End Select
Select Case UCase(strTemplate)
Case "QUICK",""
If UCase(GRIDMODE) = "EXPORT" Then
' response.end
End If
End Select
Select Case UCase(strTemplate)
Case "KEYWORD"
call DisplayKeywordSearch()
End Select
End Sub
public sub Close
On Error Resume Next
ADORecordset.close
Set ADORecordSet = nothing
ADOConnection.close
Set ADOConnection = nothing
Err.clear
End Sub
Private Sub DisplayFieldName (byVal strFieldName, byVal intFieldType, byVal intFieldSize, byVal strDisplayName)
dim qstTemp, blnTemp, eleTemp, strTemp
If strFieldName = SQLSelectID and GridHideAutonumber = True Then
Exit Sub
End If
If HTMLGridVertical Then
response.write ("<TD VALIGN=TOP NOWRAP ALIGN=LEFT><SPAN CLASS=FieldName>")
Else
response.write ("<TH VALIGN=TOP NOWRAP ALIGN=LEFT CLASS=GridHeader>")
End if
Select Case intFieldType
Case 128,204, 205 'adBinary, adVarBinary, adLongVarBinary
If strDisplayName = "" Then
response.write (Replace(strFieldName," "," "))
Else
response.write (strDisplayName )
End If
response.write HTMLAfterFieldName
Case Else
' Make sorting links
response.write ("" )
If SQLSelectName = "" Then
response.write (Replace(strFieldName," "," "))
Else
response.write (ArrSQLSelectName(intCurrentField))
End If
response.write HTMLAfterFieldName
If HTMLSortASCLink <> "" and UCase(GRIDMODE) <> "EXPORT" Then
blnTemp = true
If SQLSelectSortHide <> "" Then
For Each eleTemp In arrSQLSelectSortHide
If UCase(strFieldName) = UCase(eleTemp) Then
blnTemp = false
Exit For
End If
next
End If
If blnTemp Then
strTemp = ""
For Each qstTemp In request.Querystring
If UCase(qstTemp) <> "SQLORDERBY" & "_" & GridID AND UCase(qstTemp) <> "OCDACTION" & "_" & GridID Then
strTemp = strTemp & "&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp))
End If
next
Select Case intFieldType
Case 128, 205, 204, 201, 203 'adLongVarChar
'don't build sort links For a memo or binary
Case Else
'Ascending
response.write ("<A HREF=""" & strSCRIPT_NAME & "?sqlorderby" & "_" & GridID & "=")
If request.querystring("sqlorderby" & "_" & GridID) = "" or not SearchMultiSort Then
response.write (server.URLEncode( FormatForSQL(strFieldName, DatabaseType, "AddSQLIdentifier") & " ASC"))
Else
response.write (server.URLEncode(request.Querystring("sqlorderby" & "_" & GridID)) & ",+" & server.URLEncode( FormatForSQL(strFieldName, DatabaseType, "AddSQLIdentifier") & " ASC"))
End If
response.write (strTemp & """>" & HTMLSortASCLink & "</A>")
'Create descending sort link
response.write (" <A HREF=""" & strSCRIPT_NAME & "?sqlorderby" & "_" & GridID & "=" )
If request.querystring("sqlorderby" & "_" & GridID) = "" or not SearchMultiSort Then
response.write (server.URLEncode(FormatForSQL(strFieldName, DatabaseType, "AddSQLIdentifier") & " DESC"))
Else
response.write (server.URLEncode(request.Querystring("sqlorderby" & "_" & GridID)) & ",+" & server.URLEncode(FormatForSQL(strFieldName, DatabaseType, "AddSQLIdentifier") & " DESC"))
End If
response.write (strTemp & """>" & HTMLSortDESCLink & "</A>")
End Select
End If
End If
If HTMLFilterLink <> "" and UCase(GRIDMODE) <> "EXPORT" Then
blnTemp = true
If SQLSelectFilterHide <> "" Then
For Each eleTemp In arrSQLSelectFilterHide
If UCase(strFieldName) = UCase(eleTemp) Then
blnTemp = false
Exit For
End If
next
End If
If blnTemp Then
response.write (" <A HREF=""" & strSCRIPT_NAME & "?ocdGridMode_" & GRIDID & "=Filter&ocdFilterFieldName_" & GRIDID & "=" & server.URLEncode(strFieldName))
If SQLSelectName <> "" Then
response.write ("&ocdFilterFieldDisplayName_" & GRIDID & "=" & server.URLEncode(ArrSQLSelectName(intCurrentField)))
End If
response.write ("&ocdFilterFieldtype_" & GRIDID & "=" & server.Urlencode(intFieldType) & "&ocdFilterFieldSize_" & GRIDID & "=" & server.urlencode(intFieldSize))
For Each qstTemp In request.Querystring
Select Case UCase(qstTemp)
Case "GRIDID", UCase("OCDGRIDMODE_" & GridID), UCase("OCDFILTERFIELDNAME_" & GridID), UCase("OCDFILTERFIELDDISPLAYNAME_" & GridID), "OCDACTION_" & GridID,"OCDFILTERFIELDTYPE_" & GridID, "OCDFILTERFIELDSIZE_" & GridID,"DatabaseType_" & GridID,"SCRIPT_" & GridID
Case Else
response.write ("&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp)))
End Select
next
response.write (""">" & HTMLFilterLink & "</a>")
End If
End If
response.write (" ")
End Select
if HTMLGridVertical Then
response.write ("</SPAN></TD>")
Else
response.write ("</TH>")
End if
response.write vbCRLF
End Sub
Public Sub DisplayKeywordSearch ()
dim qstTemp
response.write ("<FORM method=""Post"" action=""" & strSCRIPT_NAME & "?ocdGridMode_" & GRIDID & "=Process&")
For Each qstTemp In request.querystring
If UCase(qstTemp) <> UCase(("OCDGRIDMODE_" & GRIDID)) AND UCase(qstTemp) <> UCase("OCDFILTERFIELD_" & GRIDID) AND UCase(qstTemp) <> UCase("OCDACTION_" & GRIDID) AND UCase(qstTemp) <> UCase("OCDKEYWORD_" & GRIDID) Then
response.write (qstTemp & "=" & server.urlencode(request.querystring(qstTemp)) & "&")
End If
next
response.write (""" >")
response.write ("<INPUT name=""ocdSearchExistslogic_" & GRIDID & """ value=""NEITHER"" type=""hidden"">")
response.write ("<INPUT name=""ocdSearchlogic_" & GRIDID & """ value=""AND"" type=""hidden"">")
response.write ("<TABLE BORDER=0><TR>" & "<TD NOWRAP>" & HTMLSearchKeyword & "<INPUT name=""ocdKeyword_" & GRIDID & """ VALUE=""" & server.htmlencode(request.querystring("ocdKeyword_" & GRIDID)) & """ size=30 MAXLENGTH=255> " & "<INPUT name=""ocdFind_" & GRIDID & """" & HTMLAttribFindBtn & ">" & "<INPUT name='ocdFindBrowse' TYPE=Hidden Value=yes>" & "</TD></TR></TABLE>")
response.write ("</FORM>")
End Sub
Private Sub DisplayGridButtons ()
dim qstTemp, arrShowGridButtons, eleShowGridButtons, tmpExportqstTemp, tmpstrPageLinkqstTemp, arrGRIDBE
If HTMLGridButtons = "" Then
Exit Sub
End If
If FormSearch = "" Then
FormSearch = strSCRIPT_NAME
End If
tmpstrPageLinkqstTemp = ""
For Each qstTemp In request.Querystring
If UCase(qstTemp) <> "SQLPAGE_" & GridID AND UCase(qstTemp) <> "OCDACTION_" & GridID Then
tmpstrPageLinkqstTemp = tmpstrPageLinkqstTemp & "&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp))
End If
next
tmpExportqstTemp = "&sqlselect_" & GridID &"=" & server.urlencode(SQLSelect) & "&sqlfrom_" & GridID &"=" & server.urlencode(request.QUerystring("SQLFrom_" & GRIDID))& "&sqlwhere_" & GridID &"=" & server.urlencode(SQLWhere) & "&sqlorderby_" & GridID &"=" & server.urlencode(SQLOrderBy)& "&sqlselecthide_" & GridID &"=" & server.urlencode(SQLSelectHide)
For Each qstTemp In request.Querystring
Select Case UCase(qstTemp)
Case "SQLWHERE_" & GridID, "SQLORDERBY_" & GridID, "SQLSELECT_" & GridID, "OCDACTION_" & GridID, "SQLFROM_" & GridID , "SQLSELECTHIDE_" & GridID
Case Else
tmpExportqstTemp = tmpExportqstTemp & "&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp))
End Select
next
arrShowGRIDButtons = Split(HTMLGridButtons,";;")
Response.write ("<TABLE " & HTMLAttribButtonPanel & " ><TR>")
For Each eleShowGridButtons In arrShowGridButtons
Response.write ("<TD ALIGN=CENTER VALIGN=TOP NOWRAP>")
arrGRIDBE = Split(eleShowGridButtons,"|")
response.write (" " )
Select Case UCase(arrGRIDBE(0))
Case "SEARCH"
response.write (" <A HREF=""" & FormSearch & "?ocdGridMode_" & GRIDID & "=Search")
For Each qstTemp In request.Querystring
If UCase(qstTemp) <> ("OCDGRIDMODE_" & UCase(GRIDID)) AND UCase(qstTemp) <> "OCDACTION_" & GridID Then
response.write ("&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp)))
End If
next
response.write (""">")
If UBound(arrGridBE) > 0 Then
response.write (arrGridBE(1))
Else
response.write (arrGridBE(0))
End If
response.write ("</a> ")
Case "DRILLDOWN"
If UCase(request.QueryString("DrillDown" & "_" & GridID))="YES" Then
response.write (" <A HREF=""" & strSCRIPT_NAME & "?DrillDown" & "_" & GridID & "=")
For Each qstTemp In request.Querystring
If UCase(qstTemp) <> "OCDACTION_" & GridID AND UCase(qstTemp) <> "DRILLDOWN_" & GridID Then
response.write ("&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp)))
End If
next
response.write (""">" & mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1) & "</A>")
Else
response.write ("<A HREF=""" & strSCRIPT_NAME & "?DrillDown_" & GridID & "=yes")
For Each qstTemp In request.Querystring
If UCase(qstTemp) <> "OCDACTION_" & GridID AND UCase(qstTemp) <> "DRILLDOWN_" & GridID Then
response.write ("&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp)))
End If
next
response.write ("""> " & mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1) & "</A>")
End If
Case "RESET"
If request.querystring("SQLORDERBY_" & GRIDID) <> "" or request.querystring("SQLWHERE_" & GRIDID) <> "" Then
response.write (" <A HREF=""" & FormSearch & "?sqlorderby_" & GRIDID & "=&sqlwhere_" & GRIDID & "=")
For Each qstTemp In request.Querystring
If UCase(qstTemp) <> "SQLORDERBY_" & GRIDID AND UCase(qstTemp) <> "SQLWHERE_" & GridID AND UCase(qstTemp) <> "OCDACTION_" & GridID Then
response.write ("&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp)))
End If
next
response.write ("""> " )
End If
response.write (mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))
If request.querystring("SQLORDERBY_" & GRIDID) <> "" or request.querystring("SQLWHERE_" & GRIDID) <> "" Then
response.write ( "</a>")
End If
Case "FIRST"
If SQLPage > 1 Then
response.write (" <A HREF=""" & strSCRIPT_NAME & "?sqlpage" & "_" & GridID & "=" & "1" & tmpstrPageLinkqstTemp & """>")
End If
response.write (mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))
If SQLPage > 1 Then
response.write ("</A>")
End If
response.write (" ")
Case "PREV"
response.write (" ")
If SQLPage > 1 Then
response.write ("<A HREF=""" & strSCRIPT_NAME & "?sqlpage_" & GridID & "=" & Cstr( SQLPage - 1) & tmpstrPageLinkqstTemp & """>")
End If
response.write (mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))
If SQLPage > 1 Then
response.write ("</A>")
End If
Case "CUSTOM"
response.write ( mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))
Case "NEXT"
If SQLPage < SQLPageCount Then
response.write (" <A HREF=""" & strSCRIPT_NAME )
response.write ("?sqlpage_" & GridID & "=" & Cstr( SQLPage + 1) & tmpstrPageLinkqstTemp & """>")
End If
response.write (mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))
If SQLPage < SQLPageCount Then
response.write ("</A> ")
End If
Case "LAST"
If SQLPage < SQLPageCount Then
response.write (" <A HREF=""" & strSCRIPT_NAME & "?sqlpage_" & GridID & "=" & Cstr( SQLPageCount) & tmpstrPageLinkqstTemp & """>")
End If
response.write (mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))
If SQLPage < SQLPageCount Then
response.write ("</A>")
End If
Case "PRINT"
response.write (" <A HREF=""" & strSCRIPT_NAME & "?ocdGridMode_" & GRIDID & "=Export&ocdExportFormat_" & GRIDID & "=PRINT" & tmpExportqstTemp & """ target=_blank>" & mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1) & "</A> ")
Case "PAGING"
If UCase((mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))) = "SMBUTTON" THen
Response.write (" <TABLE WIDTH=26 HEIGHT=18 BORDER=1 CELLSPACING=0 CELLPADDING=2><TR><TD HEIGHT=12 NOWRAP ALIGN=CENTER VALIGN=MIDDLE ><FONT SIZE=1>")
ElseIf UCase((mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))) = "BUTTON" THen
Response.write (" <TABLE WIDTH=26 HEIGHT=26 BORDER=1 CELLSPACING=0 CELLPADDING=3><TR><TD HEIGHT=12 NOWRAP ALIGN=CENTER BGCOLOR=Silver VALIGN=MIDDLE ><FONT SIZE=2 COLOR=BLACK >")
End if
if IsNumeric(SQLRecordCount) Then
If SQLRecordCount > 0 Then
Response.write (" ")
Response.write (SQLPageSize * (SQLPage -1 ) + 1)
If SQLPageSize > 1 Then
Response.write (" - ")
if SQLRecordCount < (SQLPageSize * (SQLPage)) Then
Response.write (SQLRecordCount)
Else
Response.write (SQLPageSize * (SQLPage))
End if
End if
Response.write (" : ")
Response.write (SQLRecordCount)
Else
Response.write ("0 : 0")
End if
Else
Response.write (" ")
Response.write ((SQLPageSize * (SQLPage -1)) + 1)
Response.write (" - ")
Response.write (SQLPageSize * (SQLPage))
Response.write (" : ")
' Response.write (ADOMaxRecords)
Response.write (server.htmlencode("???"))
End if
If UCase((mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))) = "BUTTON" or UCase((mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1))) = "SMBUTTON" Then
Response.write ("</FONT></TD></TR></TABLE> ")
End if
Case "TEXT"
response.write (" <A HREF=""" & strSCRIPT_NAME & "?ocdGridMode_" & GRIDID & "=Export&ocdExportFormat_" & GRIDID & "=text" & tmpExportqstTemp & """ ")
If not ExportForceDownload Then
response.write ("target=_blank")
End If
response.write (">" & mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1) & "</A> ")
Case "XML"
Select Case Cstr(request.servervariables("server_software"))
Case "Microsoft-IIS/5.0","Microsoft-IIS/5.1"
response.write (" <A HREF=""" & strSCRIPT_NAME & "?ocdGridMode_" & GRIDID & "=Export&ocdExportFormat_" & GRIDID & "=xml" & tmpExportqstTemp & """ ")
If not ExportForceDownload Then
response.write ("target=_blank")
End If
response.write (">" & mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1) & "</A> ")
End Select
Case "EXCEL"
response.write (" <A HREF=""" & strSCRIPT_NAME & "?ocdGridMode_" & GridID & "=Export&ocdExportFormat_" & GRIDID & "=excel" & tmpExportqstTemp & """ ")
If not ExportForceDownload Then
response.write ("target=_blank")
End If
response.write (">" & mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1) & "</A> ")
Case "NEW"
If (SQLSelectID <> -1 or SQLSelectPK <> "") and AllowAdd Then
If UCase(FormEdit) = "EDIT.ASP" or UCase(FormEdit) = "FREEEDIT.ASP" Then
response.write (" <A HREF=""" & FormEdit & "?sqlfrom=" & server.urlencode(sqlfrom))
Else
response.write (" <A HREF=""" & FormEdit & "?sqlid=")
End if
For Each qstTemp In request.Querystring
If UCase(qstTemp) <> "SQLWHERE" AND UCase(qstTemp) <> "SQLID" AND UCase(qstTemp) <> "OCDACTION_" & GridID and UCase(qstTemp) <> "SQLFROM" Then
response.write ("&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp)))
End If
next
response.write ("""> " & mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1) & "</A>")
End If
Case "GRAPH"
response.write (" <A HREF=""" & "GraphIt.asp" & "?GraphType=3&GridID=" & GRIDID & "&" & "sqlselect_" & GridID &"=" & server.urlencode(SQLSelect) & "&sqlfrom_" & GridID &"=" & server.urlencode(SQLFrom)& "&sqlwhere_" & GridID &"=" & server.urlencode(SQLWhere) & "&sqlorderby_" & GridID &"=" & server.urlencode(SQLOrderBy)& "&sqlselecthide_" & GridID &"=" & server.urlencode(SQLSelectHide))
For Each qstTemp In request.Querystring
Select Case UCase(qstTemp)
Case "GRIDID", "SQLWHERE_" & GridID, "SQLORDERBY_" & GridID , "SQLSELECT_" & GridID , "OCDACTION_" & GridID , "SQLFROM_" & GridID , "SQLSELECTHIDE" & "_" & GridID
Case Else
response.write ("&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp)))
End Select
next
response.write (""" > " & mid(eleShowGridButtons, InStr(eleShowGridButtons,"|")+1) & "</A>")
End Select
Response.write (" </TD>")
Next
Response.write ("</TR></TABLE>")
End Sub
Private Sub ProcessSearch()
dim strRedirect, strKeywordNumberFields, strKeywordTextFields, strSQLSearchWhere, strKeyword, strSQLSearchFrom, qstTemp, intTemp, intFieldType, intTemp2, arrTemp, fmTemp, eleTemp, strKeywordCurrencyFields
strKeywordCurrencyFields = ""
If request.form("ocdCancel_" & GRIDID) <> "" Then
strRedirect = strSCRIPT_NAME & "?sqlfrom_" & GRIDID & "=" & request.querystring("sqlfrom_" & GRIDID)
'strip out any unwanted querystrings
For Each qstTemp In request.Querystring
If UCase(qstTemp) <> UCase("sqlfrom_" & GRIDID) And UCase(qstTemp) <> UCase("OCDFILTERFIELDNAME_" & GRIDID) AND UCase(qstTemp) <> UCase("OCDGRIDMODE_" & GRIDID) AND UCase(qstTemp) <> UCASE("OCDFILTERFIELDTYPE_" & GRIDID) AND UCase(qstTemp) <> "OCDFILTERSIZE" AND UCase(qstTemp) <> "DATABASETYPE" AND UCase(qstTemp) <> "GRIDID" AND UCase(qstTemp) <> "SCRIPT" AND UCase(qstTemp) <> "OCDACTION_" & GRIDID AND UCase(qstTemp) <> "OCDFILTERDISPLAYNAME" Then
strRedirect = strRedirect & "&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp))
End If
next
Call Close
' response.write strRedirect
' response.end
response.redirect (strRedirect)
End If
strSQLSearchWhere = ""
If request.form("ocdKeyword_" & GRIDID) <> "" Then
if SearchKeywordTextFields <> "" or SearchKeywordNumberFields <> "" Then
strKeywordTextFields = SearchKeywordTextFields & ","
strKeywordNumberFields = SearchKeywordNumberFields & ","
Else
strKeywordTextFields = ""
strKeywordNumberFields = ""
strKeywordCurrencyFields = ""
'create list of keyword fields
intTemp = 0
For Each eleTemp In arrSQLSelect
Select Case CInt(arrSQLSelectType(intTemp))
Case 129, 200, 201, 130, 202, 203 'adChar, adVarChar, adLongVarChar, adWChar, adVarWChar, adLongVarWChar
strKeywordTextFields = strKeywordTextFields & eleTemp & ","
Case 2, 3, 4, 5, 14, 16, 17, 18, 19, 20, 21, 131, 6, 11, 135, 7, 133, 134 'adSmallInt, adInteger, adSingle, adDouble, adDecimal, adTinyInt, adUnsignedTinyInt, adUnsignedSmallInt, adUnsignedInt, adBigInt, adUnsignedBigInt, adBinary, adNumeric, adVarBinary, adLongVarBinary, adCurrency, adBoolean'adDBTimeStamp, adDate, adDBDate, adDBTime
strKeywordNumberFields = strKeywordNumberFields & eleTemp & ","
if CInt(arrSQLSelectType(intTemp)) = 6 then
IF DatabaseType = "SQLServer" then
strKeywordCurrencyFields = strKeywordCurrencyFields & eleTemp & ","
end if
End if
End Select
intTemp = intTemp + 1
next
End if
If strKeywordTextFields <> "" or strKeywordNumberFields <> "" Then
strKeyword = request.form("ocdKeyword_" & GRIDID)
If strKeywordTextFields <> "" Then
strKeywordTextFields = Left(strKeywordTextFields,Len(strKeywordTextFields)-1)
arrTemp= Split(strKeywordTextFields,",")
For intTemp2 = 0 To UBound(arrTemp)
strSQLSearchWhere = strSQLSearchWhere & FormatForSQL(arrTemp(intTemp2), DatabaseType, "AddSQLIdentifier") & " LIKE '%" & strKeyword & "%' OR "
next
End If
dim arrCF, eleCF, blnISC
arrCF= Split(strKeywordCurrencyFields,",")
Select Case DatabaseType
Case "Access","SQLServer"
If strKeywordNumberFields <> "" Then
strKeywordNumberFields = Left(strKeywordNumberFields,Len(strKeywordNumberFields)-1)
arrTemp= Split(strKeywordNumberFields,",")
If IsNumeric(strKeyword) Then
For intTemp2 = 0 To UBound(arrTemp)
If DatabaseType = "Access" Then
strSQLSearchWhere = strSQLSearchWhere & "IIf(isnull(" & FormatForSQL(arrTemp(intTemp2), DatabaseType, "AddSQLIdentifier") & "),'',CStr(" & FormatForSQL(arrTemp(intTemp2), DatabaseType, "AddSQLIdentifier") & ")) LIKE '%" & strKeyword & "%' OR "
Else
blnIsC = False
for each eleCF in arrCF
if UCase(eleCF) = UCase(arrTemp(intTemp2)) Then
blnIsC = True
exit for
end if
next
if blnIsC then
strSQLSearchWhere = strSQLSearchWhere & "CONVERT(varchar(255)," & FormatForSQL(arrTemp(intTemp2), DatabaseType, "AddSQLIdentifier") & ") LIKE '%" & strKeyword & "%' OR "
Else
strSQLSearchWhere = strSQLSearchWhere & "" & FormatForSQL(arrTemp(intTemp2), DatabaseType, "AddSQLIdentifier") & " LIKE '%" & strKeyword & "%' OR " End if
End If
next
End If
End If
End Select
If right(strSQLSearchWhere,1) <> "(" and strSQLSearchWhere <> "" Then
strSQLSearchWhere = Left(strSQLSearchWhere,Len(strSQLSearchWhere)-4)
End If
Else 'no keyword fields found
End If
Else 'no keyword submitted
End If
dim strSFieldName, intLenIdent
For Each fmTemp In request.Form
Response.write fmTemp
response.write " - "
response.write server.htmlencode(request.Form(fmTemp))
Response.write "<BR>"
If Len(fmTemp) > (14 + Len(GRIDID)) Then
strSFieldName = mid(fmTemp,(14+ Len(GRIDID)))
If UCase(Left(fmTemp,(13 + Len(GRIDID)))) = UCase("OCDSEARCHTXT_" & GRIDID) Then
If (not request.Form( fmTemp ) = "") or (UCase(request.Form("ocdSearchSec_" & GRIDID & strSFieldName)) = "IS NULL" OR UCase(request.Form("sec" & mid( fmTemp ,4))) = "IS NOT NULL") Then
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSearchlogic_" & GRIDID) &" "
strSQLSearchWhere = strSQLSearchWhere & " " & FormatForSQL(strSFieldName, DatabaseType, "AddSQLIdentifier") & " "
intTemp = 0
For Each eleTemp In arrSQLSelect
If UCase(arrSQLSelect(intTemp)) = UCase(strSFieldName) Then
Exit For
End If
intTemp = intTemp + 1
next
Select Case CInt(arrSQLSelectType(intTemp))
Case 16, 2, 3, 20, 17, 18, 19, 21, 4, 5, 6, 14, 131, 11'adTinyInt, adSmallInt, adInteger,adBigInt,adUnsignedTinyInt, adUnsignedSmallInt,adCurrency,adSingle,adDouble,adDecimal,adNumeric
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSearchsec_" & GRIDID & strSFieldName) & " " & request.Form( fmTemp ) & " "
Case 7, 133, 134, 135 'adDBTimeStamp, adDate, adDBDate, adDBTime
If UCase(request.Form("ocdSearchtxt_" & GRIDID & strSFieldName)) = "NULL" Then
strSQLSearchWhere = strSQLSearchWhere & " Is " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " Null"
ElseIf UCase(request.Form("ocdSearchtxt_" & GRIDID & strSFieldName)) = "NOT NULL" Then
strSQLSearchWhere = strSQLSearchWhere & " Is Not Null"
Else
If DatabaseType="Access" Then
If request.Form("ocdSearchtx2_" & GRIDID & strSFieldName) = "" Then
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " = #" & request.Form( fmTemp ) & "#"
Else
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " BETWEEN #" & request.Form( fmTemp ) & "# AND #" & request.Form("ocdSearchtx2_" & GRIDID & strSFieldName) & "#"
End If
Else
If request.Form("ocdSearchtx2_" & GRIDID & strSFieldName) = "" Then
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " = '" & request.Form( fmTemp ) & "'"
Else
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " BETWEEN '" & request.Form( fmTemp ) & "' AND '" & request.Form("ocdSearchtx2_" & GRIDID & strSFieldName) & "'"
End If
End If
End If
Case Else
If UCase(request.Form("ocdSearchsec_" & GRIDID & strSFieldName)) = "IS NULL" Then
strSQLSearchWhere = strSQLSearchWhere & " Is " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " Null"
ElseIf UCase(request.Form("ocdSearchsec_" & GRIDID & strSFieldName)) = "IN" Then
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " In (" & request.Form( fmTemp ) & ")"
ElseIf UCase(request.Form("ocdSearchsec_" & GRIDID & strSFieldName)) = "IS" Then
strSQLSearchWhere = strSQLSearchWhere & " Is " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " " & Replace(request.Form( fmTemp ),"'", "''") & ""
ElseIf UCase(request.Form("ocdSearchsec_" & GRIDID & strSFieldName)) = "CONTAINS" Then
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSEarchslg_" & GRIDID & strSFieldName) & " Like '%" & Replace(request.Form( fmTemp ),"'", "''") & "%'"
ElseIf UCase(request.Form("ocdSEarchsec_" & GRIDID & strSFieldName)) = "STARTS WITH" Then
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " Like '" & Replace(request.Form( fmTemp ),"'", "''") & "%'"
ElseIf UCase(request.Form("ocdSEarchsec_" & GRIDID & strSFieldName)) = "LIKE" Then
strSQLSearchWhere = strSQLSearchWhere & " " & request.Form("ocdSearchslg_" & GRIDID & strSFieldName) & " Like '" & Replace(request.Form( fmTemp ),"'", "''") & "'"
Else
If request.Form("ocdSearchslg_" & GRIDID & strSFieldName) <> "" Then
strSQLSearchWhere = strSQLSearchWhere & " <> '" & Replace(request.Form( fmTemp ),"'", "''") & "'"
Else
strSQLSearchWhere = strSQLSearchWhere & " = '" & Replace(request.Form( fmTemp ),"'", "''") & "'"
End If
End If
End Select
End If
End If
End If
next
Select Case Left(strSQLSearchWhere, 4)
Case " AND", " OR "
If Request("ocdSearchlogic_" & GRIDID) = "AND" Then
strSQLSearchWhere = mid( strSQLSearchWhere ,7)
Else
strSQLSearchWhere = mid( strSQLSearchWhere ,6)
End If
End Select
strSQLSearchWhere = trim(strSQLSearchWhere)
strSQLSearchFrom = ""
intTemp = 0
For Each eleTemp In arrSQLSelect
If request.Form("ocdSearchexischk_" & GRIDID & UCase(eleTemp))<> "" AND request.Form("ocdSearchshowchk_" & GRIDID & UCase(eleTemp)) = "" Then
strSQLSearchFrom = strSQLSearchFrom & eleTemp & ","
End If
intTemp = intTemp + 1
next
If strSQLSearchFrom <> "" Then
strSQLSearchFrom = Left(strSQLSearchFrom,Len(strSQLSearchFrom)-1)
End If
strRedirect = strSCRIPT_NAME & "?"
strRedirect = strRedirect & "sqlorderby_" & GRIDID & "="
If request.form("ocdSearchOrderBy_" & GRIDID) <> "" Then
If DatabaseType = "Access" Then
strRedirect = strRedirect & server.urlencodE("[")
Else
strRedirect = strRedirect & server.urlencodE("""")
End If
strRedirect = strRedirect & server.URLEncode(request.form("ocdSearchOrderBy_" & GRIDID))
If DatabaseType = "Access" Then
strRedirect = strRedirect & server.urlencodE("]")
Else
strRedirect = strRedirect & server.urlencodE("""")
End If
strRedirect = strRedirect & server.URLEncode(" " & request.form("ocdSearchOrderByOrder_" & GRIDID))
If SearchSortSize > 1 Then
For intTemp = 2 To SearchSortSize
If request.form("ocdSearchOrderBy_" & GRIDID & Cstr(intTemp)) <> "" Then
If DatabaseType = "Access" Then
strRedirect = strRedirect & server.urlencodE(", [")
Else
strRedirect = strRedirect & server.urlencodE(", """)
End If
strRedirect = strRedirect & server.URLEncode(request.form("ocdSearchOrderBy_" & GRIDID & Cstr(intTemp)))
If DatabaseType = "Access" Then
strRedirect = strRedirect & server.urlencode("]")
Else
strRedirect = strRedirect & server.urlencode("""")
End If
strRedirect = strRedirect & server.URLEncode(" " & request.form("ocdSearchOrderByOrder_" & GRIDID & Cstr(intTemp)))
End If
Next
End If
Else
strRedirect = strRedirect & server.urlencode(request.querystring("sqlorderby_" & GRIDID))
End If
strRedirect = strRedirect & "&sqlwhere_" & GRIDID & "="
If request.Querystring("sqlWhere_" & GRIDID) <> "" Then
If request("ocdSearchexistslogic_" & GRIDID) = "NEITHER" Then
If request.form("ocdFindBrowse_" & GRIDID) = "" Then
If strSQLSearchWhere <> "" Then
strRedirect = strRedirect & "(" & server.URLEncode( Trim(strSQLSearchWhere) ) & ")"
End If
Else
If strSQLSearchWhere <> "" Then
strRedirect = strRedirect & " (" & server.URLEncode( Trim(strSQLSearchWhere) ) & ")"
If SearchPersistKeyword Then
strRedirect = strRedirect & "&ocdKeyword_" & GRIDID & "=" & server.urlencode(request.form("ocdKeyword_" & GRIDID))
End If
Else
strRedirect = strRedirect & ""
End If
End If
Else
If request.form("ocdFindBrowse_" & GRIDID) = "" Then
If strSQLSearchWhere <> "" Then
strRedirect = strRedirect & "((" & server.URLEncode(request.QUeryString("sqlwhere_" & GRIDID)) & ") " & Request("ocdSearchExistslogic_" & GRIDID) & " (" & server.URLEncode( Trim(strSQLSearchWhere) ) & "))"
Else
strRedirect = strRedirect & server.URLEncode(request.QUeryString("sqlwhere_" & GRIDID))
End If
If SearchPersistKeyword Then
strRedirect = strRedirect & "&ocdKeyword_" & GRIDID & "=" & server.urlencode(request.form("ocdKeyword_" & GRIDID))
End If
Else
If strSQLSearchWhere <> "" Then
strRedirect = strRedirect & " (" & server.URLEncode( Trim(strSQLSearchWhere) ) & ")"
If SearchPersistKeyword Then
strRedirect = strRedirect & "&ocdKeyword_" & GRIDID & "=" & server.urlencode(request.form("ocdKeyword_" & GRIDID))
End If
End If
End If
End If
Else
If strSQLSearchWhere <> "" Then
strRedirect = strRedirect & "(" & server.URLEncode( Trim(strSQLSearchWhere) ) & ")"
If SearchPersistKeyword Then
strRedirect = strRedirect & "&ocdKeyword_" & GRIDID & "=" & server.urlencode(request.form("ocdKeyword_" & GRIDID))
End If
End If
End If
strRedirect = strRedirect & "&sqlselecthide_" & UCase(GRIDID) & "=" & server.urlencode(strSQLSearchFrom)
strRedirect = strRedirect & "&sqlpagesize_" & GRIDID & "=" & server.urlencode(request.form("ocdSearchPageSize_" & GRIDID))
For Each qstTemp In request.Querystring
Select Case UCase(qstTemp)
Case UCase("OCDGRIDMODE_" & GRIDID), UCase("OCDFILTERFIELDNAME_" & GRIDID), "SQLWHERE_" & UCase(GRIDID), "SQLSELECTHIDE_" & UCase(GRIDID), "SQLORDERBY_" & UCase(GRIDID), "SQLPAGESIZE_" & UCase(GRIDID), "OCDFILTERFIELDTYPE_" & UCase(GRIDID), "OCDFILTERFIELDSIZE_" & UCase(GRIDID), "DATABASETYPE_" & UCase(GRIDID), "OCDACTION_" & UCase(GRIDID), "OCDKEYWORD_" & GRIDID, "SCRIPT_" & UCase(GRIDID)
Case Else
strRedirect = strRedirect & "&" & qstTemp & "=" & server.URLEncode(request.Querystring(qstTemp))
End Select
next
Call Close
If Len(strRedirect) > GridMaxURLLength Then
Err.raise (1030)
Exit Sub
response.end
End If
response.clear
response.redirect (strRedirect)
End Sub
Private Sub DisplayFilter(byVal strGridID)
dim intSize, intType, strName, qstTemp, arrFilterDropDownFields, eleFilterDropDownFields, showdropdown
response.write ("<FORM method=""Post"" action=""" & strSCRIPT_NAME & "?ocdGridMode_" & GRIDID & "=Process&" )
For Each qstTemp In request.querystring
Select Case UCase(qstTemp)
case UCase("OCDFILTERFIELDTYPE_" & GRIDID ), UCase("OCDFILTERFIELDNAME_" & GRIDID), UCase("OCDFILTERFIELDDISPLAYNAME_" & GRIDID), UCase("OCDGRIDMODE_" & GRIDID), UCase("OCDFILTERFIELDSIZE_" & GRIDID)
Case Else
response.write (qstTemp & "=" & server.URLEncode(request.querystring(qstTemp)) & "&")
End Select
next
response.write (""">")
' format each field according To its type
strName = request.querystring("ocdFilterFieldName_" & GRIDID)
intSize = CLng(request.querystring("ocdFiltersize_" & GRIDID))
intType = CInt(request.querystring("ocdFilterFieldtype_" & GRIDID))
Select Case intType
Case 128, 205, 204'adBinary adVarBinary adLongVarBinary
'do nothing
Case Else
If request.querystring("ocdFilterFielddisplayname_" & GRIDID) <> "" Then
'no html encode
response.write ("<SPAN CLASS=FieldName>" & (request.querystring("ocdFilterFielddisplayname_" & GRIDID)) & "</SPAN>")
Else
response.write ("<span class=""FieldName"">")
If SQLSelectName <> "" Then
response.write (strName)
Else
response.write (server.htmlencode(strName))
End If
Response.write ("</span>")
End If
response.write (" ")
showdropdown = false
call DisplaySearchItem(strName, intType, intSize, showdropdown)
End Select
response.write ("<p>")
If SQLWhere <> "" Then
response.write ("<input name=""ocdSearchexistslogic_" & GRIDID & """ value=""AND"" type=""radio"" checked >" & HTMLSearchAnd & "<input name=""ocdSearchexistslogic_" & GRIDID & """ value=""OR"" type=""radio"" >" & HTMLSearchOr )
response.write ("<input name=""ocdSearchexistslogic_" & GRIDID & """ value=""NEITHER"" type=""radio"" checked >" & HTMLSearchReSet & " " )
response.write (SQLWhere & "<P>")
End If
response.write ("<input name=""ocdFind_" & GRIDID & """" & HTMLAttribFindBtn & "> ")
response.write ("<input name=""ocdCancel_" & GRIDID & """" & HTMLAttribCancelBtn & ">")
response.write ( "</FORM>")
End Sub
Private Sub DisplaySearch(byVal strGridID)
dim intSize, fldtype, strName, qstTemp, arrSQLSelectSearchHide, searchfieldcount, arrSQLSelectSearchDropDown, eleSQLSelectSearchDropDown, elesearchfieldhide, eleshowcheck, arrSQLSelectHideFields, eleSQLSelectHideFields, intOBLoo, intTemp, eleTemp, blnTemp, arrSQLSelectSearchUncheck
If SQLSelectSearchUncheck <> "" Then
arrSQLSelectSearchUncheck = Split(SQLSelectSearchUncheck,",")
End If
If SQLSelectName <> "" Then
ArrSQLSelectName =Split(SQLSelectName,",")
End If
response.write ("<FORM method=""Post"" action=""" & strSCRIPT_NAME & "?ocdGridMode_" & GridID & "=Process&")
For Each qstTemp In request.querystring
If UCase(qstTemp) <> UCase("OCDGRIDMODE_" & GRIDID) Then
response.write (qstTemp & "=" & server.urlencode(request.querystring(qstTemp)) & "&")
End If
Next
response.write (""" >")
If SQLSelectSearchUncheck <> "" Then
arrSQLSelectSearchUncheck = Split(SQLSelectSearchUncheck,",")
End If
If SQLSelectSearchHide <> "" Then
arrSQLSelectSearchHide = Split(SQLSelectSearchHide,",")
End If
response.write ("<TABLE >")
If SearchShowKeyword and UBound(arrSQLSelect) > 0 Then
response.write ("<TR><TD ALIGN=Right NOWRAP>" & HTMLSearchKeyword & "</TD><TD COLSPAN=3><INPUT name=""ocdKeyword_" & GRIDID & """ size=30></TD></TR>")
End If
If SQLSelectName <> "" Then
ArrSQLSelectName =Split(SQLSelectName,",")
End If
If request.querystring("sqlselecthide_" & GRIDID) <> "" Then
arrSQLSelectHideFields = Split(CSTR(request.querystring("sqlselecthide_" & GRIDID)),",")
End If
searchfieldcount = 0
If SQLSelectSearchDropDown <> "" Then
arrSQLSelectSearchDropDown = Split(SQLSelectSearchDropDown,",")
End If
intTemp = 0
For Each eleTemp In arrSQLSelect
blnTemp = True
strName = eleTemp
intSize = 50 'FldF.DefinedSize
fldtype = CInt(arrSQLSelectType(intTemp))
If SQLSelectSearchHide <> "" Then
For Each elesearchfieldhide In arrSQLSelectSearchHide
If UCase(strName) = UCase(elesearchfieldhide) Then
blnTemp = False
End If
Next
End If
If fldtype = 128 or fldtype = 205 or fldtype = 204 or not blnTemp Then 'adBinary adVarBinary adLongVarBinary
'do nothing
ElseIf GridHideAutonumber and UCase(strName) = UCase(SQLSelectID) Then
'do nothing
Else
response.write ("<TR><TD NOWRAP valign=MIDDLE align=right><SPAN CLASS=FieldName>")
If SQLSelectName <> "" Then
response.write (ArrSQLSelectName(searchfieldcount))
Else
response.write (server.htmlencode(strName))
End If
response.write (":</SPAN></TD><TD NOWRAP><INPUT TYPE=CHECKBOX NAME=""ocdSearchshowchk_" & GRIDID & server.htmlencode(strName) & """ ")
If request.querystring("sqlselecthide_" & GRIDID) = "" Then
If SearchCheckAll Then
If SQLSelectSearchUncheck = "" Then
response.write (" CHECKED ")
Else
blnTemp = True
For Each eleshowcheck In arrSQLSelectSearchUncheck
If UCase(eleshowcheck) = UCase(strName) Then
blnTemp = False
End If
next
If blnTemp Then
response.write (" CHECKED ")
End If
End If
End If
Else
blnTemp = false
For Each eleSQLSelectHideFields In arrSQLSelectHideFields
If UCase(eleSQLSelectHideFields) = UCase(strName) Then
blnTemp = true
End If
Next
If not blnTemp Then
response.write (" CHECKED ")
End If
End If
response.write (" > <INPUT TYPE=HIDDEN NAME=""ocdSearchexischk_" & GRIDID & server.htmlencode(strName) & """ VALUE=""Exists"" > </td><TD align=left valign=MIDDLE NOWRAP>")
blnTemp = false
If SQLSelectSearchDropDown <> "" Then
' response.write Trim(UCase(strName))
For Each eleSQLSelectSearchDropDown In arrSQLSelectSearchDropDown
If Trim(UCase(eleSQLSelectSearchDropDown)) = Trim(UCase(strName)) Then
blnTemp = true
End If
next
End If
call DisplaySearchItem(strName, fldType, intSize, blnTemp)
response.write ("</TD></TR>")
End If
searchfieldcount = searchfieldcount + 1
intTemp = intTemp + 1
next
response.write ("</TABLE>")
response.write ("<P><INPUT name=""ocdFind_" & GRIDID & """" & HTMLAttribFindBtn & "> ")
If UBound(arrSQLSelect) > 0 Then
response.write ("<INPUT name=""ocdSearchlogic_" & GRIDID & """ value=""AND"" type=""radio"" checked >" & HTMLSearchAll & "<INPUT name=""ocdSearchlogic_" & GRIDID & """ value=""OR"" type=""radio"" >" & HTMLSearchAny & "")
End if
If SQLWhere <> "" Then
response.write ("<BR><INPUT name=""ocdSearchexistslogic_" & GRIDID & """ value=""AND"" type=""radio"" checked >" & HTMLSearchAnd & "<INPUT name=""ocdSearchexistslogic_" & GRIDID & """ value=""OR"" type=""radio"" >" & HTMLSearchOr)
response.write (SQLWhere)
response.write (" <INPUT name=""ocdSearchexistslogic_" & GRIDID & """ value=""NEITHER"" type=""radio"" checked >Reset" )
End If
If UBound(arrSQLSelect) < (SearchSortSize -1) Then
SearchSortSize = UBound(arrSQLSelect) + 1
End if
response.write ("<P><TABLE>")
response.write ("<TR><TD ALIGN=Right VALIGN=TOP NOWRAP>")
response.write ("<SPAN CLASS=FieldName>Order By:</SPAN></TD><TD VALIGN=TOP NOWRAP COLSPAN=3>")
For intOBLoo = 1 To SearchSortSize
If intOBLoo > 1 Then
response.write ("<BR>")
End If
response.write ("<SELECT NAME=""ocdSearchOrderBy_" & GRIDID)
If intOBLoo > 1 Then
response.write (intOBLoo)
End If
response.write ("""><OPTION VALUE=""""></OPTION>")
intTemp = 0
For Each eleTemp In arrSQLSelect
Select Case CInt(arrSQLSelectType(intTemp))
Case 128, 205, 204, 201, 203
Case Else
response.write ("<OPTION VALUE=""" & server.htmlencode(eleTemp) & """>" & eletemp & "</OPTION>")
End Select
intTemp = intTemp + 1
next
response.write ("</SELECT> <SELECT NAME=""ocdSearchOrderByOrder_" & GRIDID)
If intOBLoo > 1 Then
response.write (intOBLoo)
End If
response.write ("""><OPTION VALUE=""ASC"" SELECTED>" & HTMLAscText & "</OPTION><OPTION VALUE=""DESC"">" & HTMLDescText & "</OPTION></SELECT>")
Next
response.write ("</TD></TR>")
response.write ("<TR><TD ALIGN=Right NOWRAP>")
response.write ("<SPAN CLASS=FieldName>Page Size:</SPAN> ")
response.write ("</TD><TD NOWRAP COLSPAN=3>")
response.write ("<INPUT NAME=""ocdSearchPageSize_" & GRIDID & """ SIZE=5 VALUE=""" & server.htmlencode(SQLPageSize) & """> ")
response.write ("</TR>")
response.write ("</TABLE>")
response.write ("</FORM>")
End Sub
Private Sub DisplaySearchItem(byVal strName, byVal fldType, byVal fldSize, byVal blnUseDropDown)
dim strSearchSQL
dim stintI
dim strsConstraint
dim starrGetRows
dim eleTcomps
dim arrTComps
' response.write blnUseDropDown
If blnUseDropDown and not SaferSQLServer Then
Set strsConstraint = server.CreateObject("ADODB.Recordset")
strSearchSQL = "SELECT DISTINCT" & FormatForSQL(strName, DatabaseType, "AddSQLIdentifier")
strSearchSQL = strSearchSQL & " FROM "
If InStr(1, SQLFrom ,",") = 0 and InStr(1, SQLFrom,"=") = 0 Then
SQLFrom = FormatForSQL(SQLFrom, DatabaseType, "AddSQLIdentifier")
End If
strSearchSQL = strSearchSQL & SQLFrom
If SQLWhereExtra <> "" Then
strSearchSQL = strSearchSQL & " WHERE " & SQLWHEREEXTRA & " AND (" & FormatForSQL(strName, DatabaseType, "AddSQLIdentifier") & " Is Not Null)"
Else
strSearchSQL = strSearchSQL & " WHERE " & FormatForSQL(strName, DatabaseType, "AddSQLIdentifier") & " Is Not Null"
End If
strSearchSQL = strSearchSQL & " ORDER BY " & FormatForSQL(strName, DatabaseType, "AddSQLIdentifier")
'response.write strSearchSQL
'response.write err.number
Call strsConstraint.open (strSearchSQL, ADOConnection)
if strsConstraint.eof Then
strsConstraint.close
Set strsConstraint = nothing
Response.write " -- "
Else
starrGetRows = strsConstraint.getrows
strsConstraint.close
Set strsConstraint = nothing
response.write (" = <SELECT name=""ocdSearchtxt_" & GRIDID & server.HTMLEncode(strName) & """>")
response.write ("<OPTION VALUE="""" SELECTED></OPTION>")
For stintI = 0 To UBound(starrGetRows,2)
response.write ("<OPTION VALUE=""")
response.write (server.HTMLEncode(starrGetRows(0,stIntI)))
response.write (""" >")
response.write (server.HTMLEncode(starrGetRows(0,stIntI)))
response.write ("</OPTION>")
Next
response.write ("</select>")
end if
Else
Select Case fldtype
Case 7, 133, 134, 135 'adDBTimeStamp, adDate, adDBDate, adDBTime
response.write ("<SELECT NAME=""ocdSearchslg_" & GRIDID & server.HTMLEncode(strName) & """><OPTION VALUE="""" SELECTED></OPTION><OPTION VALUE=""NOT"">NOT</OPTION></SELECT> " & HTMLSearchBetween & " <INPUT type=""text"" Size=12 Maxlength=50 name=""ocdSearchtxt_" & GRIDID & server.HTMLEncode(strName) & """ > " & HTMLSearchBetweenAnd &" <INPUT type=""text"" Size=12 Maxlength=50 name=""ocdSearchtx2_" & GRIDID & server.HTMLEncode(strName ) & """ >" )
Case 11 'adBoolean
response.write ("<SELECT NAME=""ocdSearchsec_" & GRIDID & server.HTMLEncode(strName) & """><OPTION VALUE=""="" selected>=</OPTION></select>")
if DatabaseType = "SQLServer" Then
response.write ("<SELECT name=""ocdSearchtxt_" & GRIDID & server.HTMLEncode(strName) & """ ><OPTION VALUE=""""></OPTION><OPTION VALUE=""1"">True</OPTION><OPTION VALUE=""0"">False</OPTION></SELECT>" )
Else
response.write ("<SELECT name=""ocdSearchtxt_" & GRIDID & server.HTMLEncode(strName) & """ ><OPTION VALUE=""""></OPTION><OPTION VALUE=""True"">True</OPTION><OPTION VALUE=""False"">False</OPTION></SELECT>" )
End if
Case 16, 2, 3, 20, 17, 18, 19, 21, 4, 5, 6, 14, 131'adTinyInt, adSmallInt, adInteger,adBigInt,adUnsignedTinyInt, adUnsignedSmallInt,adCurrency,adSingle,adDouble,adDecimal,adNumeric
response.write ("<SELECT NAME=""ocdSearchsec_" & GRIDID & server.HTMLEncode(strName) & """ ><OPTION VALUE=""="" selected>=<OPTION VALUE="">"">><OPTION VALUE=""<""><<OPTION VALUE=""<=""><=<OPTION VALUE="">="">>=<OPTION VALUE=""<>""><><OPTION VALUE=""Is Null"">Is Null<OPTION VALUE=""Is Not Null"">Is Not Null</select><INPUT type=""text"" name=""ocdSearchtxt_" & GRIDID & server.HTMLEncode(strName) & """ >")
Case Else
arrTcomps = Split(HTMLTextCompare,";;")
response.write ("<SELECT NAME=""ocdSearchslg_" & GRIDID & server.HTMLEncode(strName) & """ ><OPTION VALUE="""" SELECTED></OPTION><OPTION VALUE=""NOT"">NOT</OPTION></SELECT> <SELECT NAME=""ocdSearchsec_" & GRIDID & server.HTMLEncode(strName) & """>")
For Each eleTcomps In arrTComps
If not ((Left(eleTcomps,InStr(eleTcomps,"|")-1) = "=" or UCase(Left(eleTcomps,InStr(eleTcomps,"|")-1)) = "IN") and (DatabaseType = "SQLServer" and (fldType = 201 or fldType = 203))) Then
response.write ("<OPTION VALUE=""" & Left(eleTcomps,InStr(eleTcomps,"|")-1) & """")
If UCase(SearchDefaultTextCompare) = UCase(Left(eleTcomps,InStr(eleTcomps,"|")-1)) Then
response.write (" SELECTED")
End If
response.write (">" & mid(eleTcomps,InStr(eleTcomps,"|")+1) & "</OPTION>")
End If
Next
response.write ("</SELECT>")
response.write ("<INPUT TYPE=""TEXT"" NAME=""ocdSearchtxt_" & GRIDID & server.HTMLEncode(strName) & """>" )
End Select
End If
End Sub
End Class
%>