⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ute_class.inc

📁 UTE - (U)niversal ASP (T)able (E)ditor 万能数据管理(管理后台)
💻 INC
📖 第 1 页 / 共 4 页
字号:
    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 + -