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

📄 report.asp

📁 AspMaker调用的自定义包
💻 ASP
📖 第 1 页 / 共 3 页
字号:
		End If
	End If
<!--##
End If
##-->

	sSqlMaster = ewBuildSql(ewSqlMasterSelect, ewSqlMasterWhere, ewSqlMasterGroupBy, ewSqlMasterHaving, ewSqlMasterOrderBy, sDbWhereMaster, "")

	Set rs = Server.CreateObject("ADODB.Recordset")
	rs.CursorLocation = <!--##=ewCursorLocation##-->
	rs.Open sSqlMaster, conn
	bMasterRecordExist = (Not rs.Eof)
	If Not bMasterRecordExist Then
		Session(ewSessionTblMasterWhere) = ""
		Session(ewSessionTblDetailWhere) = ""
		Session(ewSessionMessage) = "<!--##@NoRecord##-->"
		conn.Close ' Close Connection
		Set conn = Nothing
		Response.Redirect "<!--##=fn_list##-->"
	End If
	rs.Close
	Set rs = Nothing
End If
%>
<!--##
	' Restore Current Table
	Set TABLE = DETAILTABLE
End If
##-->
<!--##/session##-->
<!--##session reportcontent##-->
<!--##
 If bMasterTableExist Then
	sTblVar = TABLE.TblVar ' Get detail table var
	Set DETAILTABLE = TABLE ' Save current table
	Set TABLE = MASTERTABLE
	If bExportHtml Or bExportWord Or bExportExcel Then
		sExpStart = "<% If sExport = """" Then %>"
		sExpEnd = "<% End If %>"
	Else
		sExpStart = ""
		sExpEnd = ""
	End If
##-->
<% If sDbWhereMaster <> "" Then %>
<!--##=sExpStart##-->
<p><span class="aspmaker"><a href="<!--##=fn_list##-->"><!--##@BackToMasterPage##--></a></span></p>
<!--##=sExpEnd##-->
<% End If %>
<!--##
	' Restore Current Table
	Set TABLE = DETAILTABLE
End If
##-->
<p><span class="aspmaker"><!--##@Report##-->: <!--##=TABLE.TblCaption##-->
<!--## If bExportHtml Or bExportWord Or bExportExcel Then ##-->
<% If sExport = "" Then %>
<!--## If bExportHtml Then ##-->
&nbsp;&nbsp;<a href="<!--##=fn_report##-->?export=html"><!--##@PrinterFriendly##--></a>
<!--## End If ##-->
<!--## If bExportExcel Then ##-->
&nbsp;&nbsp;<a href="<!--##=fn_report##-->?export=excel"><!--##@ExportToExcel##--></a>
<!--## End If ##-->
<!--## If bExportWord Then ##-->
&nbsp;&nbsp;<a href="<!--##=fn_report##-->?export=word"><!--##@ExportToWord##--></a>
<!--## End If ##-->
<% End If %>
<!--## End If ##-->
</span></p>
<form method="post">
<table class="ewReportTable" cellspacing="-1">
<%
<!--##
If nGroups = 0 Then
##-->
nRecCount = 1 ' No Grouping
<!--##
Else
	' Process Group Level
##-->
sFilter = <!--##=Table_DefaultFilter##-->
<!--## If bUserLevel Then ##-->
If (ewCurSec And ewAllowList) <> ewAllowList Then
	If sFilter <> "" Then sFilter = sFilter & " AND "
	sFilter = sFilter & "(0=1)"
End If
<!--## End If ##-->

<!--##
If bTableHasUserIDFld Or bMasterTableHasUserIDFld Then
##-->
If CurrentUserID <> "-1" And CurrentUserID <> "" Then ' Non system admin
<!--##
	If bTableHasUserIDFld Then
		Set FIELD = TABLE.Fields(TABLE.TblUserIDFld)
		sFldName = ewFieldName()
##-->
	If sFilter <> "" Then sFilter = sFilter & " AND "
	<!--## If bParentUserID Then ##-->
	sParentUserIDQuery = GetParentUserIDQuery(CurrentUserID)
	If sParentUserIDQuery <> "" Then
		sFilter = sFilter & "((" & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID)) & ") OR (" & sParentUserIDQuery & "))"
	Else
		sFilter = sFilter & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
	End If
	<!--## Else ##-->
	sFilter = sFilter & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
<!--##
		End If
	End If
	If bMasterTableHasUserIDFld Then
##-->
	sMasterUserIDQuery = GetMasterUserIDQuery(CurrentUserID)
	If sMasterUserIDQuery <> "" Then
	<!--##
	If Not bUseSubQuery Then
	##-->
		sTmpQuery = sMasterUserIDQuery
	<!--##
		For i = 0 to UBound(arMasterFldNames)
	##-->
		sTmpQuery = Replace(sTmpQuery, "#Key<!--##=i##-->", "<!--##=arDetailFldNames(i)##-->")
	<!--##
		Next
	##-->
		If sFilter <> "" Then sFilter = sFilter & " AND "
		sFilter = sFilter & sTmpQuery
	<!--##
	Else
		For i = 0 to UBound(arMasterFldNames)
	##-->
		If sFilter <> "" Then sFilter = sFilter & " AND "
		sTmpQuery = sMasterUserIDQuery
		sTmpQuery = Replace(sTmpQuery, "#MasterKey", "<!--##=arMasterFldNames(i)##-->")
		sTmpQuery = Replace(sTmpQuery, "#Key", "<!--##=arDetailFldNames(i)##-->")
		sFilter = sFilter & sTmpQuery
	<!--##
		Next
	End If
	##-->
	End If
<!--##
	End If
##-->
End If
<!--##
End If
##-->

If sDbWhereDetail <> "" Then
	If sFilter <> "" Then sFilter = sFilter & " AND "
	sFilter = sFilter & "(" & sDbWhereDetail & ")"
End If

' Set up SQL
sSql = ewBuildSql(ewSqlGrpSelect, ewSqlGrpWhere, ewSqlGrpGroupBy, ewSqlGrpHaving, ewSqlGrpOrderBy, sFilter, "")

'Response.Write sSql

' Set up Record Set
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = <!--##=ewCursorLocation##-->
rs.Open sSql, conn, 1, 2
' Get First Row
If Not rs.Eof Then
	<!--##
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		If FIELD.FldGroupBy > 0 Then
	##-->
	<!--##=FIELD.FldVar##--> = rs("<!--##=FIELD.FldName##-->")
	<!--## If FIELD.FldType = 18 Or FIELD.FldType = 19 Then ##-->
	<!--##=FIELD.FldVar##--> = ewConv(<!--##=FIELD.FldVar##-->, <!--##=FIELD.FldType##-->) ' Convert adUnsignedSmallInt/adUnsignedInt
	<!--## End If ##-->
	grp_<!--##=FIELD.FldVar##--> = <!--##=FIELD.FldVar##-->
	<!--##
		End If
	Next
	##-->
End If
nRecCount = 0
nCntRecs(0) = 0
Call ChkLvlBreak()
Do While (Not rs.Eof)

	' Show Group Headers
	<!--##
	arrGroups = split(sGroupFldNames,",")
	For i = 0 to ubound(arrGroups)
		grpID = i + 1
		sTDIndent = ""
		If sIndent <> "" Then
			For j = 1 to i
				sTDIndent = sTDIndent & sIndent
			Next
			nColSpan = nGroups - i
			nFldSpan = nFlds
		Else
			nColspan = 1
			If bAggregate Then
				nFldSpan = nFlds
			Else
				nFldSpan = nFlds - 1
			End If
		End If
		If nColSpan > 1 Then
			sTDSpan = " colspan=" & nColSpan
		Else
			sTDSpan = ""
		End If
		SET FIELD = TABLE.Fields(arrGroups(i))
	##-->
	If bLvlBreak(<!--##=grpID##-->) Then ' Reset Counter and Aggregation
%>
	<tr><!--##=sTDIndent##--><td<!--##=sTDSpan##--><!--##=ewCSSGroupField##-->><span class="aspmaker"><!--##=FIELD.FldCaption##--></span></td>
	<td colspan=<!--##=nFldSpan##--><!--##=ewCSSGroupName##-->><span class="aspmaker"><!--##=FieldView##--></span></td></tr>
<%
	End If
	<!--##
	Next
End If
' Process Detail Level
sDetailWhere = ""
sOrderBy = sOrderFldSrcs
##-->
	' Get Detail Records
	sFilter = <!--##=Table_DefaultFilter##-->
<!--##
If sGroupFldNames <> "" Then
	arrGroups = split(sGroupFldNames,",")
	For i = 0 to ubound(arrGroups)
		Set FIELD = TABLE.Fields(arrGroups(i))
		sFldVar = FIELD.FldVar
		sFldName = ewFieldName()
		If ewGetFieldType(FIELD.FldType) = 2 And _
			FIELD.FldViewTag = "FORMATTED TEXT" And FIELD.FldFmtType = "Date/Time" Then
			sFilterFld = "EW_UnFormatDateTime(EW_FormatDateTime(" & sFldVar & "," & FIELD.FldDtFormat & ")," & FIELD.FldDtFormat & ")"
		Else
			sFilterFld = sFldVar
		End If
##-->
	If sFilter <> "" Then sFilter = sFilter & " AND "
	If IsNull(<!--##=sFldVar##-->) Then
		sFilter = sFilter & "(<!--##=Quote(sFldName)##--> IS NULL)"
	Else
		sFilter = sFilter & "(<!--##=Quote(sFldName)##--> = <!--##=FIELD.FldQuoteS##-->" & AdjustSql(<!--##=sFilterFld##-->) & "<!--##=FIELD.FldQuoteE##-->)"
	End If
<!--##
	Next
End If
##-->
	If sDbWhereDetail <> "" Then
		If sFilter <> "" Then sFilter = sFilter & " AND "
		sFilter = sFilter & "(" & sDbWhereDetail & ")"
	End If

<!--## If bUserLevel Then ##-->
	If (ewCurSec And ewAllowList) <> ewAllowList Then
		If sFilter <> "" Then sFilter = sFilter & " AND "
		sFilter = sFilter & "(0=1)"
	End If
<!--## End If ##-->

<!--##
If bTableHasUserIDFld Or bMasterTableHasUserIDFld Then
##-->
	If CurrentUserID <> "-1" And CurrentUserID <> "" Then ' Non system admin
<!--##
	If bTableHasUserIDFld Then
		Set FIELD = TABLE.Fields(TABLE.TblUserIDFld)
		sFldName = ewFieldName()
##-->
		If sFilter <> "" Then sFilter = sFilter & " AND "
		<!--## If bParentUserID Then ##-->
		sParentUserIDQuery = GetParentUserIDQuery(CurrentUserID)
		If sParentUserIDQuery <> "" Then
			sFilter = sFilter & "((" & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID)) & ") OR (" & sParentUserIDQuery & "))"
		Else
			sFilter = sFilter & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
		End If
		<!--## Else ##-->
		sFilter = sFilter & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
<!--##
		End If
	End If
	If bMasterTableHasUserIDFld Then
##-->
		sMasterUserIDQuery = GetMasterUserIDQuery(CurrentUserID)
		If sMasterUserIDQuery <> "" Then
	<!--##
	If Not bUseSubQuery Then
	##-->
			sTmpQuery = sMasterUserIDQuery
	<!--##
		For i = 0 to UBound(arMasterFldNames)
	##-->
			sTmpQuery = Replace(sTmpQuery, "#Key<!--##=i##-->", "<!--##=arDetailFldNames(i)##-->")
	<!--##
		Next
	##-->
			If sFilter <> "" Then sFilter = sFilter & " AND "
			sFilter = sFilter & sTmpQuery
	<!--##
	Else
		For i = 0 to UBound(arMasterFldNames)
	##-->
			If sFilter <> "" Then sFilter = sFilter & " AND "
			sTmpQuery = sMasterUserIDQuery
			sTmpQuery = Replace(sTmpQuery, "#MasterKey", "<!--##=arMasterFldNames(i)##-->")
			sTmpQuery = Replace(sTmpQuery, "#Key", "<!--##=arDetailFldNames(i)##-->")
			sFilter = sFilter & sTmpQuery
	<!--##
		Next
	End If
	##-->
		End If
<!--##
	End If
##-->
	End If
<!--##
End If
##-->

	' Set up SQL
	sSql = ewBuildSql(ewSqlDtlSelect, ewSqlDtlWhere, ewSqlDtlGroupBy, ewSqlDtlHaving, ewSqlDtlOrderBy, sFilter, "")

	' Set up Record Set
	Set rsdtl = Server.CreateObject("ADODB.Recordset")
	rsdtl.CursorLocation = <!--##=ewCursorLocation##-->
	rsdtl.Open sSql, conn, 1, 2
	nDtlRecs = rsdtl.RecordCount
	' Initialize Aggregate
	If not rsdtl.eof Then
		nRecCount = nRecCount + 1
<!--##
For i = 1 to TABLE.Fields.Count
	Set FIELD = TABLE.Fields.Seq(i)
	If FIELD.FldList And FIELD.FldGroupBy <= 0 And FIELD.FldGenerate And FIELD.FldHtmlTag <> "FILE" And _
	(FIELD.FldRptAggSum Or FIELD.FldRptAggAvg Or FIELD.FldRptAggMin Or FIELD.FldRptAggMax) Then
##-->
		<!--##=FIELD.FldVar##--> = rsdtl("<!--##=FIELD.FldName##-->")
	<!--## If FIELD.FldType = 18 Or FIELD.FldType = 19 Then ##-->
		<!--##=FIELD.FldVar##--> = ewConv(<!--##=FIELD.FldVar##-->, <!--##=FIELD.FldType##-->) ' Convert adUnsignedSmallInt/adUnsignedInt
	<!--## End If ##-->
<!--##
	End If
Next
##-->
	End If
	If nRecCount = 1 Then
		nCntRecs(0) = 0
<!--##
For i = 1 to TABLE.Fields.Count
	Set FIELD = TABLE.Fields.Seq(i)
	If FIELD.FldList And FIELD.FldGroupBy <= 0 And FIELD.FldGenerate And FIELD.FldHtmlTag <> "FILE" Then
		sFldVar = FIELD.FldVar
		If FIELD.FldRptAggSum Or FIELD.FldRptAggAvg Then
##-->
		s<!--##=sFldVar##-->(0) = 0
<!--##
		End If
		If FIELD.FldRptAggMin Then
##-->
		If not rsdtl.eof Then
			n<!--##=sFldVar##-->(0) = <!--##=sFldVar##-->
		Else
			n<!--##=sFldVar##-->(0) = 0
		End If
<!--##
		End If
		If FIELD.FldRptAggMax Then
##-->
		If not rsdtl.eof Then
			m<!--##=sFldVar##-->(0) = <!--##=sFldVar##-->
		Else
			m<!--##=sFldVar##-->(0) = 0
		End If
<!--##
		End If
	End If
Next
##-->
	End If
<!--##
If nGroups > 0 Then
##-->
	For i = 1 to <!--##=nGroups##-->
		If bLvlBreak(i) Then ' Reset Counter and Aggregation
			nCntRecs(i) = 0
<!--##
	For i = 1 to TABLE.Fields.Count
		Set FIELD = TABLE.Fields.Seq(i)
		If FIELD.FldList And FIELD.FldGroupBy <= 0 And FIELD.FldGenerate And FIELD.FldHtmlTag <> "FILE" Then
			sFldVar = FIELD.FldVar
			If FIELD.FldRptAggSum Or FIELD.FldRptAggAvg Then
##-->
			s<!--##=sFldVar##-->(i) = 0
<!--##
			End If
			If FIELD.FldRptAggMin Then
##-->
			If not rsdtl.eof Then
				n<!--##=sFldVar##-->(i) = <!--##=sFldVar##-->
			Else
				n<!--##=sFldVar##-->(i) = 0
			End If
<!--##
			End If
			If FIELD.FldRptAggMax Then
##-->
			If not rsdtl.eof Then
				m<!--##=sFldVar##-->(i) = <!--##=sFldVar##-->
			Else
				m<!--##=sFldVar##-->(i) = 0
			End If
<!--##
			End If
		End If
	Next
##-->
		End If
	Next
<!--##
End If
##-->

<!--##
For i = 0 to nGroups
##-->
	nCntRecs(<!--##=i##-->) = nCntRecs(<!--##=i##-->) + nDtlRecs
<!--##
Next
##-->
%>
	<tr>
<!--##
If sIndent <> "" Then
	For i = 1 to nGroups
##-->
		<!--##=sIndent##-->
<!--##
	Next
Else
	If bAggregate Then
##-->

⌨️ 快捷键说明

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