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

📄 list-script-function.asp

📁 AspMaker调用的自定义包
💻 ASP
📖 第 1 页 / 共 2 页
字号:
<!--##session listfunction##-->
<%
<!--## If sRecPerPageList <> "" Then  ##-->
'-------------------------------------------------------------------------------
' Function SetUpDisplayRecs
' - Set up Number of Records displayed per page based on Form element RecPerPage
' - Variables setup: nDisplayRecs

Sub SetUpDisplayRecs()
	Dim sWrk
	sWrk = Request.QueryString(ewTblRecPerPage)
	If sWrk <> "" Then
		If IsNumeric(sWrk) Then
			nDisplayRecs = CInt(sWrk)
		Else
			If LCase(sWrk) = "all" Then ' Display All Records
				nDisplayRecs = -1
			Else
				nDisplayRecs = <!--##=iRecPerPage##--> ' Non-numeric, Load Default
			End If
		End If
		Session(ewSessionTblRecPerPage) = nDisplayRecs ' Save to Session
		' Reset Start Position (Reset Command)
		nStartRec = 1
		Session(ewSessionTblStartRec) = nStartRec
	Else
		If Session(ewSessionTblRecPerPage) <> "" Then
			nDisplayRecs = Session(ewSessionTblRecPerPage) ' Restore from Session
		Else
			nDisplayRecs = <!--##=iRecPerPage##--> ' Load Default
		End If
	End If
End Sub
<!--## End If ##-->
<!--##
If bMasterTableExist Then
	Set MASTERTABLE = DB.Tables(TABLE.TblMasterTbl)
##-->
'-------------------------------------------------------------------------------
' Function SetUpMasterDetail
' - Set up Master Detail criteria based on querystring parameter showmaster
' - Variables setup: sDbWhereMaster, Session(TblMasterWhere), sDbWhereDetail, Session(TblDetailWhere)

Sub SetUpMasterDetail()
	' Get the keys for master table
	If Request.QueryString(ewTblShowMaster).Count > 0 Then
		' Reset start record counter (new master key)
		nStartRec = 1
		Session(ewSessionTblStartRec) = nStartRec
		sDbWhereMaster = ewSqlMasterFilter
		sDbWhereDetail = ewSqlDetailFilter
<!--##
For i = 0 to UBound(arDetailFlds)
	Set FIELD = TABLE.Fields(arDetailFlds(i))
	sDetailFldVar = FIELD.FldVar
	sDetailFldVar2 = Mid(sDetailFldVar, 3)
##-->
		<!--##=sDetailFldVar##--> = Request.QueryString("<!--##=sDetailFldVar2##-->") ' Load Parameter from QueryString
		<!--## If ewGetFieldType(FIELD.FldType) = 1 Then ##-->
		If IsNumeric(<!--##=sDetailFldVar##-->) Then
		<!--## End If ##-->
		sDbWhereMaster = Replace(sDbWhereMaster, "@<!--##=sDetailFldVar2##-->", AdjustSql(<!--##=sDetailFldVar##-->)) ' Replace key value
		sDbWhereDetail = Replace(sDbWhereDetail, "@<!--##=sDetailFldVar2##-->", AdjustSql(<!--##=sDetailFldVar##-->)) ' Replace key value
		Session(ewSessionTblMasterKey & "_<!--##=sDetailFldVar2##-->") = <!--##=sDetailFldVar##--> ' Save Master Key Value
		<!--## If ewGetFieldType(FIELD.FldType) = 1 Then ##-->
		Else
		sDbWhereMaster = "0=1":sDbWhereDetail = "0=1"
		End If
		<!--## End If ##-->
<!--##
Next
##-->
		Session(ewSessionTblMasterWhere) = sDbWhereMaster
		Session(ewSessionTblDetailWhere) = sDbWhereDetail
	Else
		sDbWhereMaster = Session(ewSessionTblMasterWhere)
		sDbWhereDetail = Session(ewSessionTblDetailWhere)
	End If
End Sub
<!--## End If ##-->

<!--## If TABLE.TblInlineEdit Then ##-->
'-------------------------------------------------------------------------------
' Function SetUpInlineEdit
' - Set up Inline Edit parameters based on querystring parameters
' - Variables setup: sAction, Session(TblKeyName)

Sub SetUpInlineEdit()

	Dim bInlineEdit

	' Get the keys for master table
	If Request.QueryString("a").Count > 0 Then
		sAction = Request.QueryString("a")
		If LCase(sAction) = "edit" Then ' Change to Inline Edit Mode
	<!--## If bUserLevel Then ##-->
			If (ewCurSec And ewAllowEdit) <> ewAllowEdit Then Response.Redirect "<!--##=fn_login##-->"
	<!--## End If ##-->
			bInlineEdit = True
<!--##
	For i = 1 to TABLE.Fields.Count
		Set WRKFIELD = TABLE.Fields.Seq(i)
		sFldVar = WRKFIELD.FldVar
		sFldVar2 = Mid(sFldVar, 3)
		If WRKFIELD.FldIsPrimaryKey Then
			sFldVar = WRKFIELD.FldVar
			sFldVar2 = Mid(sFldVar, 3)
##-->
			If Request.QueryString("<!--##=sFldVar2##-->").Count > 0 Then
				<!--##=sFldVar##--> = Request.QueryString("<!--##=sFldVar2##-->")
			Else
				bInlineEdit = False
			End If
<!--##
		End If
	Next
##-->
			If bInlineEdit Then
				If LoadData() Then
<!--##
	For i = 1 to TABLE.Fields.Count
		Set WRKFIELD = TABLE.Fields.Seq(i)
		sFldVar = WRKFIELD.FldVar
		sFldVar2 = Mid(sFldVar, 3)
		If WRKFIELD.FldIsPrimaryKey Then
			sFldVar = WRKFIELD.FldVar
			sFldVar2 = Mid(sFldVar, 3)
##-->
					Session(ewSessionTblKey & "_<!--##=sFldVar2##-->") = <!--##=sFldVar##--> ' Set up Inline Edit key
<!--##
		End If
	Next
##-->
				End If
			End If
		ElseIf LCase(sAction) = "cancel" Then ' Switch out of Inline Edit Mode
<!--##
	For i = 1 to TABLE.Fields.Count
		Set WRKFIELD = TABLE.Fields.Seq(i)
		sFldVar = WRKFIELD.FldVar
		sFldVar2 = Mid(sFldVar, 3)
		If WRKFIELD.FldIsPrimaryKey Then
			sFldVar = WRKFIELD.FldVar
			sFldVar2 = Mid(sFldVar, 3)
##-->
			Session(ewSessionTblKey & "_<!--##=sFldVar2##-->") = "" ' Clear Inline Edit key
<!--##
		End If
	Next
##-->
		End If
	Else
	<!--##
	If ewCond_HasFileField() Then ' Blob Field Exists
	##-->
		If RequestBlobData() Then
			'sAction = sAction ' Set Up Action
		End If
		If LCase(sAction) = "update" Then ' Update Record
	<!--##
	Else ' No Blob Field
	##-->
		sAction = Request.Form("a_list")
		If LCase(sAction) = "update" Then ' Update Record
			' Get fields from form
		<!--##
		For i = 1 to TABLE.Fields.Count
			Set FIELD = TABLE.Fields.Seq(i)
		##-->
			<!--##=FIELD.FldVar##--> = Request.Form("<!--##=FIELD.FldVar##-->")
		<!--##
		Next
	End If
	##-->
			If <!--##=InlineEditKeyCheck##--> Then
				If InlineEditData() Then
					Session(ewSessionMessage) = "<!--##@EditSuccess##-->"
				End If
			End If
		End If
<!--##
	For i = 1 to TABLE.Fields.Count
		Set WRKFIELD = TABLE.Fields.Seq(i)
		If WRKFIELD.FldIsPrimaryKey Then
			sFldVar = WRKFIELD.FldVar
			sFldVar2 = Mid(sFldVar, 3)
##-->
		Session(ewSessionTblKey & "_<!--##=sFldVar2##-->") = "" ' Clear Inline Edit key
<!--##
		End If
	Next
##-->
	End If
End Sub
<!--## End If ##-->

<!--## If bExtendedBasicSearch Or bAdvancedSearch Then ##-->
'-------------------------------------------------------------------------------
' Function SetUpAdvancedSearch
' - Set up Advanced Search parameter based on querystring parameters from Advanced Search Page
' - Variables setup: sSrchAdvanced

Sub SetUpAdvancedSearch()

	Dim arrFldOpr, arrFldOpr2, sSrchStr

	<!--##
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		If FIELD.FldGenerate And (FIELD.FldSearch Or FIELD.FldExtendedBasicSearch) And FIELD.FldHtmlTag <> "FILE" Then
			sFldVar = FIELD.FldVar
			sFldOpr = "z_" & Mid(sFldVar, 3)
			sFldCond = "v_" & Mid(sFldVar, 3)
			sFldVar2 = "y_" & Mid(sFldVar, 3)
			sFldOpr2 = "w_" & Mid(sFldVar, 3)
			sFldName = ewFieldName()
			sFldSrchOpr = FIELD.FldSrchOpr
			sFldSrchOpr2 = FIELD.FldSrchOpr2
			If ewGetFieldType(FIELD.FldType) = 2 Then
				sSrchFld = "EW_UnFormatDateTime(" & sFldVar & ", " & FIELD.FldDtFormat & ")"
				sSrchFld2 = "EW_UnFormatDateTime(" & sFldVar2 & ", " & FIELD.FldDtFormat & ")"
			Else
				sSrchFld = sFldVar
				sSrchFld2 = sFldVar2
			End If
			If ewGetFieldType(FIELD.FldType) = 1 Then
				sNumericFldCond = "And IsNumeric(" & sFldVar & ") "
				sNumericFldCond2 = "And IsNumeric(" & sFldVar2 & ") "
			Else
				sNumericFldCond = ""
				sNumericFldCond2 = ""
			End If
	##-->
	' Field <!--##=FIELD.FldName##-->
	sSrchStr = ""
	<!--##=sFldVar##--> = Request.QueryString("<!--##=sFldVar##-->")
	<!--##=sFldOpr##--> = Request.QueryString("<!--##=sFldOpr##-->")
<!--## If sFldSrchOpr2 <> "" Then ##-->
	<!--##=sFldCond##--> = Request.QueryString("<!--##=sFldCond##-->")
	If <!--##=sFldCond##--> = "" Then <!--##=sFldCond##--> = Session(ewSessionTblAdvSrch & "_<!--##=sFldCond##-->")
<!--## End If ##-->
<!--## If sFldSrchOpr = "BETWEEN" Or sFldSrchOpr2 <> "" Then ##-->
	<!--##=sFldVar2##--> = Request.QueryString("<!--##=sFldVar2##-->")
	<!--##=sFldOpr2##--> = Request.QueryString("<!--##=sFldOpr2##-->")
<!--## End If ##-->
	arrFldOpr = Split(<!--##=sFldOpr##-->, ",")
<!--## If sFldSrchOpr = "BETWEEN" Then ##-->
	If <!--##=sFldVar##--> <> "" <!--##=sNumericFldCond##-->And <!--##=sFldVar2##--> <> "" <!--##=sNumericFldCond2##-->And IsValidOpr(arrFldOpr) Then
		sSrchStr = sSrchStr & "<!--##=Quote(sFldName)##--> BETWEEN " & _
			arrFldOpr(1) & AdjustSql(<!--##=sSrchFld##-->) & arrFldOpr(2) & " AND " & _
			arrFldOpr(1) & AdjustSql(<!--##=sSrchFld2##-->) & arrFldOpr(2)
	End If
<!--## Else ##-->
	If <!--##=sFldVar##--> <> "" <!--##=sNumericFldCond##-->And IsValidOpr(arrFldOpr) Then
		sSrchStr = sSrchStr & "<!--##=Quote(sFldName)##--> " & arrFldOpr(0) & " " & _
			arrFldOpr(1) & AdjustSql(<!--##=sSrchFld##-->) & arrFldOpr(2)
	End If
	<!--## If sFldSrchOpr2 <> "" Then ##-->
	arrFldOpr2 = Split(<!--##=sFldOpr2##-->, ",")
	If <!--##=sFldVar2##--> <> "" <!--##=sNumericFldCond2##-->And IsValidOpr(arrFldOpr2) Then
		If sSrchStr <> "" Then sSrchStr = sSrchStr & " " & ewIIf(<!--##=sFldCond##-->="OR", "OR", "AND") & " "
		sSrchStr = sSrchStr & "<!--##=Quote(sFldName)##--> " & arrFldOpr2(0) & " " & _
			arrFldOpr2(1) & AdjustSql(<!--##=sSrchFld2##-->) & arrFldOpr2(2)
	End If
	<!--## End If ##-->
<!--## End If ##-->
	If sSrchStr <> "" Then
		If sSrchAdvanced <> "" Then sSrchAdvanced = sSrchAdvanced & " AND "
		sSrchAdvanced = sSrchAdvanced & "(" & sSrchStr & ")"
	End If
	<!--##
		End If
	Next
	##-->
	
	If sSrchAdvanced <> "" Then ' save settings
	<!--##
		For j = 1 to TABLE.Fields.Count
			Set FIELD = TABLE.Fields.Seq(j)
			If FIELD.FldGenerate And (FIELD.FldSearch Or FIELD.FldExtendedBasicSearch) And FIELD.FldHtmlTag <> "FILE" Then
				sFldVar = FIELD.FldVar: sFldOpr = "z_" & Mid(sFldVar, 3)
				sFldCond = "v_" & Mid(sFldVar, 3)
				sFldVar2 = "y_" & Mid(sFldVar, 3): sFldOpr2 = "w_" & Mid(sFldVar, 3)
				sFldSrchOpr = FIELD.FldSrchOpr
				sFldSrchOpr2 = FIELD.FldSrchOpr2
	##-->
		Session(ewSessionTblAdvSrch & "_<!--##=sFldVar##-->") = <!--##=sFldVar##-->
		<!--## If sFldSrchOpr = "USER SELECT" Then ##-->
		Session(ewSessionTblAdvSrch & "_<!--##=sFldOpr##-->") = <!--##=sFldOpr##-->
		<!--## End If ##-->
		<!--## If sFldSrchOpr = "BETWEEN" Or sFldSrchOpr2 <> "" Then ##-->
		Session(ewSessionTblAdvSrch & "_<!--##=sFldCond##-->") = <!--##=sFldCond##-->
		Session(ewSessionTblAdvSrch & "_<!--##=sFldVar2##-->") = <!--##=sFldVar2##-->
			<!--## If sFldSrchOpr2 = "USER SELECT" Then ##-->
		Session(ewSessionTblAdvSrch & "_<!--##=sFldOpr2##-->") = <!--##=sFldOpr2##-->
			<!--## End If ##-->
		<!--## End If ##-->
	<!--##
			End If
		Next
	##-->
	End If
	
End Sub

' Function to check if the search operators are valid
Function IsValidOpr(arOpr)
	Dim Opr
	IsValidOpr = IsArray(arOpr)
	If IsValidOpr Then IsValidOpr = (UBound(arOpr) >= 2)
	If IsValidOpr Then
		For Each Opr In arOpr
			Opr = UCase(Trim(Opr))
				If Not (Opr = "=" Or Opr = "<" Or Opr = "<=" Or _
				Opr = ">" Or Opr = ">=" Or Opr = "<>" Or _
				Opr = "LIKE" Or Opr = "NOT LIKE" Or Opr = "BETWEEN" Or _
				Opr = "'" Or Opr = "'%" Or Opr = "%'" Or Opr = "#" Or Opr = "") Then
					IsValidOpr = False
					Exit For
			End If
		Next
	End If
End Function
<!--## End If ##-->

<!--## If bBasicSearch Then ##-->
'-------------------------------------------------------------------------------
' Function BasicSearchSQL
' - Build WHERE clause for a keyword

Function BasicSearchSQL(Keyword)

	Dim sKeyword
	sKeyword = AdjustSql(Keyword)
	BasicSearchSQL = ""
	<!--##
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		sFldName = ewFieldName()
		If FIELD.FldGenerate And FIELD.FldBasicSearch Then
			If ewGetFieldType(FIELD.FldType) = 1 Then ' Numeric fields
	##-->
	If IsNumeric(sKeyword) Then BasicSearchSQL = BasicSearchSQL & "<!--##=Quote(sFldName)##--> = " & sKeyword & " OR "
	<!--##
			Else
	##-->
	BasicSearchSQL = BasicSearchSQL & "<!--##=Quote(sFldName)##--> LIKE '%" & sKeyword & "%' OR "
	<!--##
			End If
		End If
	Next
	##-->
	If Right(BasicSearchSQL, 4) = " OR " Then BasicSearchSQL = Left(BasicSearchSQL, Len(BasicSearchSQL)-4)

End Function

'-------------------------------------------------------------------------------
' Function SetUpBasicSearch
' - Set up Basic Search parameter based on form elements pSearch & pSearchType
' - Variables setup: sSrchBasic

Sub SetUpBasicSearch()
	Dim arKeyword, sKeyword

	psearch = Request.QueryString(ewTblBasicSrch)
	psearchtype = Request.QueryString(ewTblBasicSrchType)
	If psearch <> "" Then
		If psearchtype <> "" Then
			While InStr(psearch, "  ") > 0
				sSearch = Replace(psearch, "  ", " ")
			Wend
			arKeyword = Split(Trim(psearch), " ")
			For Each sKeyword In arKeyword
				sSrchBasic = sSrchBasic & "(" & BasicSearchSQL(sKeyword) & ") " & psearchtype & " "
			Next
		Else
			sSrchBasic = BasicSearchSQL(psearch)
		End If
	End If

	If Right(sSrchBasic, 4) = " OR " Then sSrchBasic = Left(sSrchBasic, Len(sSrchBasic)-4)
	If Right(sSrchBasic, 5) = " AND " Then sSrchBasic = Left(sSrchBasic, Len(sSrchBasic)-5)

	If psearch <> "" then
		Session(ewSessionTblBasicSrch) = psearch
		Session(ewSessionTblBasicSrchType) = psearchtype
	End If
End Sub
<!--## End If ##-->

'-------------------------------------------------------------------------------
' Function ResetSearch
' - Clear all search parameters
'
Sub ResetSearch()

	' Clear search where
	sSrchWhere = ""
	Session(ewSessionTblSearchWhere) = sSrchWhere

	' Clear advanced search parameters
	<!--##
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		If FIELD.FldGenerate And (FIELD.FldSearch Or FIELD.FldExtendedBasicSearch) And FIELD.FldHtmlTag <> "FILE" Then
			sFldVar = FIELD.FldVar: sFldOpr = "z_" & Mid(sFldVar, 3)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -