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

📄 list-script-function.asp

📁 AspMaker调用的自定义包
💻 ASP
📖 第 1 页 / 共 2 页
字号:
			sFldVar2 = "y_" & Mid(sFldVar, 3): sFldOpr2 = "w_" & Mid(sFldVar, 3)
			sFldCond = "v_" & Mid(sFldVar, 3)
			sFldSrchOpr = FIELD.FldSrchOpr
			sFldSrchOpr2 = FIELD.FldSrchOpr2
	##-->
	Session(ewSessionTblAdvSrch & "_<!--##=sFldVar##-->") = ""
	<!--## If sFldSrchOpr = "USER SELECT" Then ##-->
	Session(ewSessionTblAdvSrch & "_<!--##=sFldOpr##-->") = ""
	<!--## End If ##-->
	<!--## If sFldSrchOpr2 <> "" Then ##-->
	Session(ewSessionTblAdvSrch & "_<!--##=sFldCond##-->") = "AND"
	<!--## End If ##-->
	<!--## If sFldSrchOpr = "BETWEEN" Or sFldSrchOpr2 <> "" Then ##-->
	Session(ewSessionTblAdvSrch & "_<!--##=sFldVar2##-->") = ""
		<!--## If sFldSrchOpr2 = "USER SELECT" Then ##-->
	Session(ewSessionTblAdvSrch & "_<!--##=sFldOpr2##-->") = ""
		<!--## End If ##-->
	<!--## End If ##-->
	<!--##
		End If
	Next
	##-->
	Session(ewSessionTblBasicSrch) = ""
	Session(ewSessionTblBasicSrchType) = ""
End Sub

'-------------------------------------------------------------------------------
' Function RestoreSearch
' - Restore all search parameters
'
Sub RestoreSearch()

	' Restore advanced search settings
	<!--##
	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)
			sFldSrchOpr = FIELD.FldSrchOpr
			sFldSrchOpr2 = FIELD.FldSrchOpr2
	##-->
	<!--##=sFldVar##--> = Session(ewSessionTblAdvSrch & "_<!--##=sFldVar##-->")
	<!--## If sFldSrchOpr = "USER SELECT" Then ##-->
	<!--##=sFldOpr##--> = Session(ewSessionTblAdvSrch & "_<!--##=sFldOpr##-->")
	<!--## End If ##-->
	<!--## If sFldSrchOpr2 <> "" Then ##-->
	<!--##=sFldCond##--> = Session(ewSessionTblAdvSrch & "_<!--##=sFldCond##-->")
	<!--## End If ##-->
	<!--## If sFldSrchOpr = "BETWEEN" Or sFldSrchOpr2 <> "" Then ##-->
	<!--##=sFldVar2##--> = Session(ewSessionTblAdvSrch & "_<!--##=sFldVar2##-->")
		<!--## If sFldSrchOpr2 = "USER SELECT" Then ##-->
	<!--##=sFldOpr2##--> = Session(ewSessionTblAdvSrch & "_<!--##=sFldOpr2##-->")
		<!--## End If ##-->
	<!--## End If ##-->
	<!--##
		End If
	Next
	##-->
	psearch = Session(ewSessionTblBasicSrch)
	psearchtype = Session(ewSessionTblBasicSrchType)
End Sub

'-------------------------------------------------------------------------------
' Function SetUpSortOrder
' - Set up Sort parameters based on Sort Links clicked
' - Variables setup: sOrderBy, Session(TblOrderBy), Session(Tbl_Field_Sort)

Sub SetUpSortOrder()

	Dim sOrder, sSortField, sLastSort, sThisSort
	Dim bCtrl

<!--## If iSortType = 2 Then ##-->
	' Check for Ctrl pressed
	If Request.QueryString("ctrl").Count > 0 Then
		bCtrl = True
	Else
		bCtrl = False
	End If
<!--## End If ##-->
	' Check for an Order parameter
	If Request.QueryString("order").Count > 0 Then
		sOrder = Request.QueryString("order")
<!--##
For i = 1 to TABLE.Fields.Count
	SET FIELD = TABLE.Fields.Seq(i)
	sFldName = ewFieldName()
	sFldVar = FIELD.FldVar
	If FIELD.FldGenerate And FIELD.FldList And FIELD.FldType <> 205 Then
		If iSortType = 1 Then ' Single Column Sort
##-->
		' Field <!--##=sFldName##-->
		If sOrder = "<!--##=FIELD.FldName##-->" Then
			sSortField = "<!--##=Quote(sFldName)##-->"
			sLastSort = Session(ewSessionTblSort & "_<!--##=sFldVar##-->")
			If sLastSort = "ASC" Then sThisSort = "DESC" Else sThisSort = "ASC"
			Session(ewSessionTblSort & "_<!--##=sFldVar##-->") = sThisSort
		Else
			If Session(ewSessionTblSort & "_<!--##=sFldVar##-->") <> "" Then Session(ewSessionTblSort & "_<!--##=sFldVar##-->") = ""
		End If
<!--##
		ElseIf iSortType = 2 Then ' Multi Column Sort
##-->
		' Field <!--##=sFldName##-->
		If sOrder = "<!--##=FIELD.FldName##-->" Then
			sSortField = "<!--##=Quote(sFldName)##-->"
			sLastSort = Session(ewSessionTblSort & "_<!--##=sFldVar##-->")
			If sLastSort = "ASC" Then sThisSort = "DESC" Else sThisSort = "ASC"
			Session(ewSessionTblSort & "_<!--##=sFldVar##-->") = sThisSort
		Else
			If Not bCtrl And Session(ewSessionTblSort & "_<!--##=sFldVar##-->") <> "" Then Session(ewSessionTblSort & "_<!--##=sFldVar##-->") = ""
		End If
<!--##
		End If
	End If
Next
If iSortType = 1 Then
##-->
		Session(ewSessionTblOrderBy) = sSortField & " " & sThisSort
		Session(ewSessionTblStartRec) = 1
<!--##
ElseIf iSortType = 2 Then
##-->
		If bCtrl Then
			sOrderBy = Session(ewSessionTblOrderBy)
			If InStr(sOrderBy, sSortField & " " & sLastSort) > 0 Then
				sOrderBy = Replace(sOrderBy, sSortField & " " & sLastSort, sSortField & " " & sThisSort)
			Else
				If sOrderBy <> "" Then sOrderBy = sOrderBy & ", "
				sOrderBy = sOrderBy & sSortField & " " & sThisSort
			End If
			Session(ewSessionTblOrderBy) = sOrderBy
		Else
			Session(ewSessionTblOrderBy) = sSortField & " " & sThisSort
		End If
		Session(ewSessionTblStartRec) = 1
<!--##
End If
##-->
	End If
	sOrderBy = Session(ewSessionTblOrderBy)
	If sOrderBy = "" Then
		If ewSqlOrderBy <> "" And ewSqlOrderBySessions <> "" Then
			sOrderBy = ewSqlOrderBy
			Session(ewSessionTblOrderBy) = sOrderBy
			Dim arOrderBy, i
			arOrderBy = Split(ewSqlOrderBySessions, ",")
			For i = 0 to UBound(arOrderBy)\2
				Session(ewSessionTblSort & "_" & arOrderBy(i*2)) = arOrderBy(i*2+1)
			Next
		End If
	End If
End Sub

'-------------------------------------------------------------------------------
' Function SetUpStartRec
' - Set up Starting Record parameters based on Pager Navigation
' - Variables setup: nStartRec

Sub SetUpStartRec()
	Dim nPageNo
	' Check for a START parameter
	If Request.QueryString(ewTblStartRec).Count > 0 Then
		nStartRec = Request.QueryString(ewTblStartRec)
		Session(ewSessionTblStartRec) = nStartRec
	ElseIf Request.QueryString("pageno").Count > 0 Then
		nPageNo = Request.QueryString("pageno")
		If IsNumeric(nPageNo) Then
			nStartRec = (nPageNo-1)*nDisplayRecs+1
			If nStartRec <= 0 Then
				nStartRec = 1
			ElseIf nStartRec >= ((nTotalRecs-1)\nDisplayRecs)*nDisplayRecs+1 Then
				nStartRec = ((nTotalRecs-1)\nDisplayRecs)*nDisplayRecs+1
			End If
			Session(ewSessionTblStartRec) = nStartRec
		Else
			nStartRec = Session(ewSessionTblStartRec)
		End If
	Else
		nStartRec = Session(ewSessionTblStartRec)
	End If
	' Check if correct start record counter
	If Not IsNumeric(nStartRec) Or nStartRec = "" Then ' Avoid invalid start record counter
		nStartRec = 1 ' Reset start record counter
		Session(ewSessionTblStartRec) = nStartRec
	ElseIf CLng(nStartRec) > CLng(nTotalRecs) Then ' Avoid starting record > total records
		nStartRec = ((nTotalRecs-1)\nDisplayRecs)*nDisplayRecs+1 ' point to last page first record
		Session(ewSessionTblStartRec) = nStartRec
	End If
End Sub

'-------------------------------------------------------------------------------
' Function ResetCmd
' - Clear list page parameters
' - RESET: reset search parameters
' - RESETALL: reset search & master/detail parameters
' - RESETSORT: reset sort parameters

Sub ResetCmd()

	Dim sCmd

	' Get Reset Cmd
	If Request.QueryString("cmd").Count > 0 Then
		sCmd = Request.QueryString("cmd")
		' Reset Search Criteria
		If LCase(sCmd) = "reset" Then
			Call ResetSearch()
		' Reset Search Criteria & Session Keys
		ElseIf LCase(sCmd) = "resetall" Then
			Call ResetSearch()
<!--##
If TABLE.TblMasterTbl <> "" And TABLE.TblMasterFld <> "" And TABLE.TblDetailFld <> "" Then
##-->
			Session(ewSessionTblMasterWhere) = "" ' Clear master criteria
			sDbWhereMaster = ""
			Session(ewSessionTblDetailWhere) = "" ' Clear detail criteria
			sDbWhereDetail = ""
<!--##
	For i = 0 to UBound(arDetailFlds)
		Set DETAILFIELD = TABLE.Fields(arDetailFlds(i))
		sDetailFldVar = DETAILFIELD.FldVar
		sDetailFldVar2 = Mid(sDetailFldVar, 3)
##-->
		Session(ewSessionTblMasterKey & "_<!--##=sDetailFldVar2##-->") = "" ' Clear Master Key Value
<!--##
	Next
End If
##-->
		' Reset Sort Criteria
		ElseIf LCase(sCmd) = "resetsort" Then
			sOrderBy = ""
			Session(ewSessionTblOrderBy) = sOrderBy
<!--##
If iSortType > 0 Then
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		If FIELD.FldList And FIELD.FldGenerate And FIELD.FldType <> 205 Then
			sFldVar = FIELD.FldVar
##-->
			If Session(ewSessionTblSort & "_<!--##=sFldVar##-->") <> "" Then Session(ewSessionTblSort & "_<!--##=sFldVar##-->") = ""
<!--##
		End If
	Next
End If
##-->
		End If
		' Reset Start Position (Reset Command)
		nStartRec = 1
		Session(ewSessionTblStartRec) = nStartRec
	End If
End Sub

<!--## If bExportXml Or bExportCsv Then ##-->
'-------------------------------------------------------------------------------
' Function ExportData
' - Export Data in Xml or Csv format

Sub ExportData(sExport, sSql)

	Dim oXmlDoc, oXmlTbl, oXmlRec, oXmlFld
	Dim sCsvStr
	Dim rs

	' Set up Record Set
	Set rs = Server.CreateObject("ADODB.Recordset")
	rs.CursorLocation = <!--##=ewCursorLocation##-->
	rs.Open sSql, conn, 1, 2
	nTotalRecs = rs.RecordCount
	nStartRec = 1
	SetUpStartRec() ' Set Up Start Record Position

<!--## If bExportXml Then ##-->
	If sExport = "xml" Then
		Set oXmlDoc = Server.CreateObject("MSXML.DOMDocument")
		Set oXmlTbl = oXmlDoc.createElement("table")
	End If
<!--## End If ##-->

<!--## If bExportCsv Then ##-->
	If sExport = "csv" Then
<!--##
For i = 1 to TABLE.Fields.Count
	Set FIELD = TABLE.Fields.Seq(i)
	If FIELD.FldGenerate And FIELD.FldList And FIELD.FldType <> 205 Then
##-->
		sCsvStr = sCsvStr & ""<!--##=DoubleQuote(FIELD.FldName,1)##-->"" & ","
<!--##
	End If
Next
##-->
		sCsvStr = Left(sCsvStr, Len(sCsvStr)-1) ' Remove last comma
		sCsvStr = sCsvStr & vbCrLf
	End If
<!--## End If ##-->

	' Set the last record to display
	If nDisplayRecs < 0 Then
		nStopRec = nTotalRecs
	Else
		nStopRec = nStartRec + nDisplayRecs - 1
	End If

	' Move to first record directly for performance reason
	nRecCount = nStartRec - 1
	If Not rs.Eof Then
		rs.MoveFirst
		rs.Move nStartRec - 1
	End If
	nRecActual = 0
	Do While (Not rs.Eof) And (nRecCount < nStopRec)
		nRecCount = nRecCount + 1
		If CLng(nRecCount) >= CLng(nStartRec) Then
			nRecActual = nRecActual + 1

<!--##
For i = 1 to TABLE.Fields.Count
	Set FIELD = TABLE.Fields.Seq(i)
	If FIELD.FldGenerate And FIELD.FldList Then
##-->
			<!--##=FIELD.FldVar##--> = rs("<!--##=FIELD.FldName##-->")
<!--##
	End If
Next
##-->

<!--## If bExportXml Then ##-->
			If sExport = "xml" Then

				Set oXmlRec = oXmlDoc.createElement("record")
				Call oXmlTbl.appendChild(oXmlRec)

<!--##
If PROJ.XMLEncoding <> "" Then
	sEncoding = " encoding=""""" & PROJ.XMLEncoding & """"""
Else
	sEncoding = ""
End If
For i = 1 to TABLE.Fields.Count
	Set FIELD = TABLE.Fields.Seq(i)
	If FIELD.FldGenerate And FIELD.FldList And FIELD.FldType <> 205 Then
##-->
				' Field <!--##=FIELD.FldName##-->
				Set oXmlFld = oXmlDoc.createElement("<!--##=Mid(FIELD.FldVar, 3)##-->")
				sTmp = <!--##=FIELD.FldVar##-->
				if IsNull(sTmp) then sTmp = "<Null>"
				oXmlFld.Text = sTmp
				Call oXmlRec.AppendChild(oXmlFld)
<!--##
	End If
Next
##-->

				Set oXmlRec = Nothing

			End If
<!--## End If ##-->

<!--## If bExportCsv Then ##-->
			If sExport = "csv" Then

<!--##
For i = 1 to TABLE.Fields.Count
	Set FIELD = TABLE.Fields.Seq(i)
	If FIELD.FldGenerate And FIELD.FldList And FIELD.FldType <> 205 Then
##-->
				' Field <!--##=FIELD.FldName##-->
				sCsvStr = sCsvStr & """" & Replace(<!--##=FIELD.FldVar##-->&"","""","""""") & """" & ","
<!--##
	End If
Next
##-->
				sCsvStr = Left(sCsvStr, Len(sCsvStr)-1) ' Remove last comma
				sCsvStr = sCsvStr & vbCrLf

			End If
<!--## End If ##-->

		End If
		rs.MoveNext
	Loop

	' Close recordset and connection
	rs.Close
	Set rs = Nothing

<!--## If bExportXml Then ##-->
	If sExport = "xml" Then
		Response.Write "<?xml version=""1.0""<!--##=sEncoding##--> standalone=""yes""?>" & vbcrlf
		Response.Write oXmlTbl.xml
		Set oXmlTbl = Nothing
		Set oXmlDoc = Nothing
	End If
<!--## End If ##-->
<!--## If bExportCsv Then ##-->
	If sExport = "csv" Then
		Response.Write sCsvStr
	End If
<!--## End If ##-->

End Sub
<!--## End If ##-->
%>
<!--##/session##-->

⌨️ 快捷键说明

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