📄 ute_class.inc
字号:
End Function
''----------------------------------------------------------------------
'' Name: GetLink
'' =======
''
'' Adds the given parameter to a compelte UTE link. An UTE link includes
'' all possible URL parameters and is used to switch table pages or open
'' the record form.
''
'' Parameter:
'' sScript name of script to be called, e.g. ute.asp
'' sCurrent current link, if "" the function build a complete new link
'' sParam name of parameter to be set
'' sValue value to be set
''
'' return value:
'' string complete link
''
''----------------------------------------------------------------------
Private Function GetLink ( sScript, sCurrent, sParam, sValue )
Dim iPos
Dim sReturn, sLeft, sRight
' check if we already have a complete UTE URL string ?
if InStr(sCurrent, sParamMode) <> 0 then
' use current link
iPos = InStr(sCurrent, "?")
sReturn = "&" & Right(sCurrent, Len(sCurrent)-iPos)
else
' build new link
sReturn = "&" & buildLink(sCurrent)
end if
sReturn = SetURLParameter(sReturn, sParam, sValue)
' add script name, repleace leading "&" by "?"
sReturn = sScript & "?" & Right(sReturn, Len(sReturn)-1)
GetLink = sReturn
End Function
''----------------------------------------------------------------------
'' Name: RemoveParameter
'' ===============
''
'' Removes parameter from given URL string.
''
'' Parameter:
'' sLink string containing the link
'' sParam parameter name
''
'' return value:
'' string
''
''----------------------------------------------------------------------
Private Function RemoveParameter ( sLink, sParam )
Dim sLeft, sRight, sReturn
Dim iPos
sReturn = sLink
while InStr(sReturn, sParam & "=") <> 0
iPos = InStr(sReturn, sParam & "=")
sLeft = Left(sReturn, iPos-1)
iPos = InStr(iPos, sReturn, "&")
sRight = ""
if iPos <> 0 then sRight = Right(sReturn, Len(sReturn)-iPos)
sReturn = sLeft & sRight
wend
if Right(sReturn, 1) = "&" then sReturn = Left(sReturn, Len(sReturn)-1)
RemoveParameter = sReturn
End Function
''----------------------------------------------------------------------
'' Name: RemoveCountedParameters
'' =======================
''
'' Removes so called "counted parameters" like "pkey[n]" or "sort[n]"
'' from the given link. The start counter defines the start value for [n].
'' E.g.: sParam = sort, nStartCounter = 2
'' -> removes all sort2, sort3, sort4, ... from the link
''
'' Parameter:
'' sLink string containing the link
'' sParam parameter name
'' nStarCount start counter
''
'' return value:
'' string
''
''----------------------------------------------------------------------
Private Function RemoveCountedParameters ( sLink, sParam, nStartCount )
Dim sReturn
Dim n
n = nStartCount
sReturn = sLink
while InStr(sReturn, sParam & CStr(n)) <> 0
sReturn = RemoveParameter(sReturn, sParam & CStr(n))
n = n + 1
wend
RemoveCountedParameters = sReturn
End Function
''----------------------------------------------------------------------
'' Name: GetParameter
'' ============
''
'' Gets all parameters from URL and throw excaption if neccessary.
''
'' Parameter:
'' none
''
'' return value:
'' none
''
''----------------------------------------------------------------------
Private Sub GetParameter()
Dim i, j
Dim sTemp
Dim sError
' ---- ODBC connect string ----
if m_sDSN = "" then
'"Invalid ODBC Connection String"
sError = STR_ERR_1001
err.Raise vbObjectError + 1001, "ute_table", sError
end if
' ---- Tablename ----
if Request.QueryString(sParamTable) <> "" then
m_sTable = Request.QueryString(sParamTable)
else
m_nMode = MD_DATABASE
end if
' ---- Tablename ----
m_sTable = Request.QueryString(sParamTable)
if m_bListTables then
' if no table set, display all tables within database
if Request.QueryString(sParamTable) = "" then
m_nMode = MD_DATABASE
end if
else
' if no table set throw error
if Request.QueryString(sParamTable) = "" then
'"Missing ""%1"" URL parameter."
sError = Replace(STR_ERR_1002, "%1", sParamTable)
err.Raise vbObjectError + 1002, "ute_table", sError
end if
end if
' ---- Mode ----
if Request.QueryString(sParamMode) <> "" then
sTemp = Request.QueryString(sParamMode)
if not IsNumeric(sTemp) then
'"Invalid ""%1"" URL parameter. Must be numeric."
sError = Replace(STR_ERR_1003, "%1", sParamMode)
err.Raise vbObjectError + 1003, "ute_table", sError
end if
m_nMode = CInt(sTemp)
if (m_nMode < MD_DATABASE) or (m_nMode > MD_FILTER) then
'"Invalid ""%1"" URL parameter. Must be ""1"", ""2"" or ""3""."
sError = Replace(STR_ERR_1004, "%1", sParamMode)
err.Raise vbObjectError + 1004, "ute_table", sError
end if
end if
' ---- FormMode ----
if Request.QueryString(sParamFormMode) <> "" then
sTemp = Request.QueryString(sParamFormMode)
if not IsNumeric(sTemp) then
'"Invalid ""%1"" URL parameter. Must be numeric."
sError = Replace(STR_ERR_1003, "%1", sParamFormMode)
err.Raise vbObjectError + 1003, "ute_table", sError
end if
m_nFormMode = CInt(sTemp)
if (m_nFormMode < 1) or (m_nFormMode > 3) then
'"Invalid ""%1"" URL parameter. Must be ""1"", ""2"" or ""3""."
sError = Replace(STR_ERR_1004, "%1", sParamFormMode)
err.Raise vbObjectError + 1004, "ute_table", sError
end if
end if
' ---- Page ----
if Request.QueryString(sParamPage) <> "" then
sTemp = Request.QueryString(sParamPage)
if not IsNumeric(sTemp) then
'"Invalid ""%1"" URL parameter. Must be numeric."
sError = Replace(STR_ERR_1003, "%1", sParamPage)
err.Raise vbObjectError + 1003, "ute_table", sError
end if
m_nPage = CInt(sTemp)
end if
' ---- Page Size ----
if Request.QueryString(sParamPageSize) <> "" then
sTemp = Request.QueryString(sParamPageSize)
if not IsNumeric(sTemp) then
'"Invalid ""%1"" URL parameter. Must be numeric."
sError = Replace(STR_ERR_1003, "%1", sParamPageSize)
err.Raise vbObjectError + 1003, "ute_table", sError
end if
m_nPageSize = CInt(sTemp)
end if
' ---- Sort Fields Alphabetically ----
if Request.QueryString(sParamSortFields) <> "" then
sTemp = Request.QueryString(sParamSortFields)
if (sTemp <> "0") and (sTemp <> "1") then
'"Invalid ""%1"" URL parameter. Must be either ""%2"" or ""%3""."
sError = Replace(STR_ERR_1005, "%1", sParamSortDir)
sError = Replace(sError, "%2", "0")
sError = Replace(sError, "%3", "1")
err.Raise vbObjectError + 1005, "ute_table", sError
end if
m_bSortFields = (sTemp = "1")
end if
' ---- View SQL Statement ----
if Request.QueryString(sParamSQL) <> "" then
sTemp = Request.QueryString(sParamSQL)
if (sTemp <> "0") and (sTemp <> "1") then
'"Invalid ""%1"" URL parameter. Must be either ""%2"" or ""%3""."
sError = Replace(STR_ERR_1005, "%1", sParamSQL)
sError = Replace(sError, "%2", "0")
sError = Replace(sError, "%3", "1")
err.Raise vbObjectError + 1005, "ute_table", sError
end if
m_bViewSQL = (sTemp = "1")
end if
' ---- View Field Definitions ----
if Request.QueryString(sParamDefs) <> "" then
sTemp = Request.QueryString(sParamDefs)
if (sTemp <> "0") and (sTemp <> "1") then
'"Invalid ""%1"" URL parameter. Must be either ""%2"" or ""%3""."
sError = Replace(STR_ERR_1005, "%1", sParamDefs)
sError = Replace(sError, "%2", "0")
sError = Replace(sError, "%3", "1")
err.Raise vbObjectError + 1005, "ute_table", sError
end if
m_bViewDefinitions = (sTemp = "1")
end if
' ---- Submitted ----
if Request.QueryString(sParamSubmitted) <> "" then
sTemp = Request.QueryString(sParamSubmitted)
if (sTemp <> "0") and (sTemp <> "1") then
'"Invalid ""%1"" URL parameter. Must be either ""%2"" or ""%3""."
sError = Replace(STR_ERR_1005, "%1", sParamSubmitted)
sError = Replace(sError, "%2", "0")
sError = Replace(sError, "%3", "1")
err.Raise vbObjectError + 1005, "ute_table", sError
end if
m_bSubmitted = (sTemp = "1")
end if
' ---- Record ----
if Request.QueryString(sParamRecord) <> "" then
sTemp = Request.QueryString(sParamRecord)
if not IsNumeric(sTemp) then
'"Invalid ""%1"" URL parameter. Must be numeric."
sError = Replace(STR_ERR_1003, "%1", sParamRecord)
err.Raise vbObjectError + 1003, "ute_table", sError
end if
m_nRecord = CInt(sTemp)
end if
' ---- Primary Keys ----
i = 1
while Request.QueryString(sParamPKey & CStr(i)) <> ""
' switch off auto primary key detection
m_bAutoPKDetection = False
' "-1" will force SetPrimaryKeyFieldType to set the field type properly
AddPrimaryKeyField Request.QueryString(sParamPKey & CStr(i)), -1
i = i + 1
wend
' ---- Sort Field ----
' This can be either "sort" (for compatebility purpose) or "sort[n]"
if Request.QueryString(sParamSort) <> "" then
AddSortField Request.QueryString(sParamSort)
if Request.QueryString(sParamSortDir) <> "" then
sTemp = LCase(Request.QueryString(sParamSortDir))
if (sTemp <> SORT_ASC) and (sTemp <> SORT_DESC) then
'"Invalid ""%1"" URL parameter. Must be either ""%2"" or ""%3""."
sError = Replace(STR_ERR_1005, "%1", sParamSortDir)
sError = Replace(sError, "%2", SORT_ASC)
sError = Replace(sError, "%3", SORT_DESC)
err.Raise vbObjectError + 1005, "ute_table", sError
end if
AddSortOrder sTemp
else
' default sort order
AddSortOrder DEF_SORT_DIR
end if
else
i = 1
while Request.QueryString(sParamSort & CStr(i)) <> ""
AddSortField Request.QueryString(sParamSort & CStr(i))
if Request.QueryString(sParamSortDir & CStr(i)) <> "" then
sTemp = LCase(Request.QueryString(sParamSortDir & CStr(i)))
if (sTemp <> SORT_ASC) and (sTemp <> SORT_DESC) then
'"Invalid ""%1"" URL parameter. Must be either ""%2"" or ""%3""."
sError = Replace(STR_ERR_1005, "%1", sParamSortDir & CStr(i))
sError = Replace(sError, "%2", SORT_ASC)
sError = Replace(sError, "%3", SORT_DESC)
err.Raise vbObjectError + 1005, "ute_table", sError
end if
AddSortOrder sTemp
else
' default sort order
AddSortOrder DEF_SORT_DIR
end if
i = i + 1
wend
end if
' ---- Number of Filters ----
if Request.QueryString(sParamFilterCount) <> "" then
sTemp = Request.QueryString(sParamFilterCount)
if not IsNumeric(sTemp) then
'"Invalid ""%1"" URL parameter. Must be numeric."
sError = Replace(STR_ERR_1003, "%1", sParamFilterCount)
err.Raise vbObjectError + 1003, "ute_table", sError
end if
m_nNumberOfFilters = CInt(sTemp)
end if
' ---- General Filter Parameters ----
if Request.QueryString(sParamFilterCompare & "1") <> "" then
' ---- Filter Compares ----
i = 1
while (Request.QueryString(sParamFilterCompare & CStr(i)) <> "") and (i <= m_nNumberOfFilters)
Redim Preserve m_FilterCompares(UBound(m_FilterCompares)+1)
m_FilterCompares(UBound(m_FilterCompares)) = Request.QueryString(sParamFilterCompare & CStr(i))
i = i + 1
wend
' ---- Filter Fields ----
for j = 1 to i
Redim Preserve m_FilterFields(UBound(m_FilterFields)+1)
m_FilterFields(UBound(m_FilterFields)) = Request.QueryString(sParamFilterField & CStr(j))
next
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -