?? share-script.asp
字號:
table = "<!--##=TABLE.TblName##-->"
' Get key value
Dim sKey
sKey = ""
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
sFldName = FIELD.FldName
sFldVar = FIELD.FldVar
If FIELD.FldIsPrimaryKey Then
##-->
If sKey <> "" Then sKey = sKey & ","
sKey = sKey & rsnew.Fields("<!--##=sFldName##-->")
<!--##
End If
If FIELD.FldAutoIncrement Then
##-->
<!--##=sFldVar##--> = rsnew.Fields("<!--##=sFldName##-->")
<!--##
End If
Next
##-->
<!--## If TABLE.TblAuditTrail Then ##-->
' Write Audit Trail
Dim filePfx, curDate, curTime, id, user, action, field, keyvalue, oldvalue, newvalue
Dim i
filePfx = "event"
curDate = ewZeroPad(Year(Date), 4) & "/" & ewZeroPad(Month(Date), 2) & "/" & ewZeroPad(Day(Date), 2)
curTime = ewZeroPad(Hour(Time), 2) & ":" & ewZeroPad(Minute(Time), 2) & ":" & ewZeroPad(Second(Time), 2)
id = Request.ServerVariables("SCRIPT_NAME")
user = CurrentUserID
action = "A"
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldType <> 205 Then
##-->
'<!--##= FIELD.FldName##--> Field
field = "<!--##=FIELD.FldName##-->"
keyvalue = sKey: oldvalue = ""
<!--##
If FIELD.FldType = 201 Or FIELD.FldType = 203 Then ' Memo Field
##-->
newvalue = "<MEMO>"
<!--##
Else
##-->
newvalue = rsnew.Fields(field).Value
<!--##
End If
##-->
Call ewWriteAuditTrail(filePfx, curDate, curTime, id, user, action, table, field, keyvalue, oldvalue, newvalue)
<!--##
End If
Next
##-->
<!--## End If ##-->
<!--## If TABLE.TblSendMailOnAdd Then ##-->
' Send Email
Dim sSenderEmail, sReceiverEmail
sSenderEmail = "<!--##=PROJ.SecSenderEmail##-->" ' sender email
sReceiverEmail = "<!--##=PROJ.RecipientEmail##-->" ' receiver email
If sSenderEmail <> "" And sReceiverEmail <> "" Then
Call LoadEmail("notify.txt")
sEmailFrom = Replace(sEmailFrom, "<!--$From-->", sSenderEmail) ' Replace Sender
sEmailTo = Replace(sEmailTo, "<!--$To-->", sReceiverEmail) ' Replace Receiver
sEmailSubject = Replace(sEmailSubject, "<!--$Subject-->", table & " record inserted") ' Replace Subject
sEmailContent = Replace(sEmailContent, "<!--table-->", table)
sEmailContent = Replace(sEmailContent, "<!--key-->", sKey)
sEmailContent = Replace(sEmailContent, "<!--action-->", "Inserted")
Call Send_Email(sEmailFrom, sEmailTo, sEmailCc, sEmailBcc, sEmailSubject, sEmailContent, sEmailFormat)
End If
<!--## End If ##-->
End Sub
%>
<!--## End If ##-->
<!--## If CTRL.CtrlID = "delete" Then ##-->
<%
'-------------------------------------------------------------------------------
' Function LoadRecordCount
' - Load Record Count based on input sql criteria sqlKey
Function LoadRecordCount(sqlKey)
On Error Resume Next
Dim rs, sSql, sFilter
sFilter = sqlKey
<!--##
If bTableHasUserIDFld Or bMasterTableHasUserIDFld Then
##-->
If CurrentUserID <> "-1" And CurrentUserID <> "" Then ' Non system admin
<!--##
If bTableHasUserIDFld Then
If bParentUserID Then
##-->
sParentUserIDQuery = GetParentUserIDQuery(CurrentUserID)
If sParentUserIDQuery <> "" Then
'*** sFilter = sFilter & " AND ((" & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID)) & ") OR (" & sParentUserIDQuery & "))"
sFilter = sFilter & " AND ((" & ewSqlUserIDFilter & ") OR (" & sParentUserIDQuery & "))"
Else
'*** sFilter = sFilter & " AND " & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
sFilter = sFilter & " AND " & ewSqlUserIDFilter
End If
sFilter = Replace(sFilter, "#Key", "<!--##=Quote(sTableUserIDFldName)##-->")
sFilter = Replace(sFilter, "#UserID", AdjustSql(CurrentUserID))
<!--## Else ##-->
'*** sFilter = sFilter & " AND " & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
sFilter = sFilter & " AND " & ewSqlUserIDFilter
sFilter = Replace(sFilter, "#Key", "<!--##=Quote(sTableUserIDFldName)##-->")
sFilter = Replace(sFilter, "#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
##-->
sSql = ewBuildSql(ewSqlSelect, ewSqlWhere, ewSqlGroupBy, ewSqlHaving, ewSqlOrderBy, sFilter, "")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = <!--##=ewCursorLocation##-->
rs.Open sSql, conn, 1, 2
LoadRecordCount = rs.RecordCount
rs.Close
Set rs = Nothing
If Err.Number <> 0 Then
Session(ewSessionMessage) = Err.Description
End If
End Function
%>
<%
'-------------------------------------------------------------------------------
' Function DeleteData
' - Delete Records based on input sql criteria sqlKey
Function DeleteData(sqlKey)
On Error Resume Next
Dim rs, sSql, sFilter
Dim rsold
sFilter = sqlKey
<!--##
If bTableHasUserIDFld Or bMasterTableHasUserIDFld Then
##-->
If CurrentUserID <> "-1" And CurrentUserID <> "" Then ' Non system admin
<!--##
If bTableHasUserIDFld Then
If bParentUserID Then
##-->
sParentUserIDQuery = GetParentUserIDQuery(CurrentUserID)
If sParentUserIDQuery <> "" Then
'*** sFilter = sFilter & " AND ((" & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID)) & ") OR (" & sParentUserIDQuery & "))"
sFilter = sFilter & " AND ((" & ewSqlUserIDFilter & ") OR (" & sParentUserIDQuery & "))"
Else
'*** sFilter = sFilter & " AND " & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
sFilter = sFilter & " AND " & ewSqlUserIDFilter
End If
sFilter = Replace(sFilter, "#Key", "<!--##=Quote(sTableUserIDFldName)##-->")
sFilter = Replace(sFilter, "#UserID", AdjustSql(CurrentUserID))
<!--## Else ##-->
'*** sFilter = sFilter & " AND " & Replace(ewSqlUserIDFilter, "#UserID", AdjustSql(CurrentUserID))
sFilter = sFilter & " AND " & ewSqlUserIDFilter
sFilter = Replace(sFilter, "#Key", "<!--##=Quote(sTableUserIDFldName)##-->")
sFilter = Replace(sFilter, "#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
##-->
sSql = ewBuildSql(ewSqlSelect, ewSqlWhere, ewSqlGroupBy, ewSqlHaving, ewSqlOrderBy, sFilter, "")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = <!--##=ewCursorLocation##-->
rs.Open sSql, conn, 1, 2
If Err.Number <> 0 Then
Session(ewSessionMessage) = Err.Description
rs.Close
Set rs = Nothing
DeleteData = False
Exit Function
End If
' Clone old rs object
Set rsold = CloneRs(rs)
' Call recordset deleting event
DeleteData = Recordset_Deleting(rs)
If DeleteData Then
Do While Not rs.Eof
<!--##
For i = 1 to TABLE.Fields.Count
SET FIELD = TABLE.Fields.Seq(i)
If FIELD.FldType <> 205 And FIELD.FldHtmlTag="FILE" Then
If PROJ.DeleteUploadedFile Then
If FIELD.FldUploadPath <> "" Then
sFldUploadPath = DoubleQuote(FIELD.FldUploadPath, 1)
Else
sFldUploadPath = "EW_UploadDestPath"
End If
##-->
ewDeleteFile ewUploadPathEx(True, <!--##=sFldUploadPath##-->) & rs("<!--##=FIELD.FldName##-->")
<!--##
End If
End If
Next
If bDynamicUserLevel And TABLE.TblName = DB.UserLevelTbl Then
Set FIELD = TABLE.Fields(DB.UserLevelIdFld)
sUserLevelIDFldVar = FIELD.FldVar
##-->
<!--##=sUserLevelIDFldVar##--> = rs("<!--##=DB.UserLevelIdFld##-->") ' Get user level id
<!--##
End If
##-->
rs.Delete
If Err.Number <> 0 Then
Session(ewSessionMessage) = Err.Description
DeleteData = False
Exit Do
End If
<!--##
If bDynamicUserLevel And TABLE.TblName = DB.UserLevelTbl Then
Set FIELD = TABLE.Fields(DB.UserLevelIdFld)
sUserLevelIDFldVar = FIELD.FldVar
##-->
If Not IsNull(<!--##=sUserLevelIDFldVar##-->) Then
conn.Execute("DELETE FROM " & ewUsrLvlPrivTbl & " WHERE " & ewUsrLvlPrivUsrLvlIdFld & " = " & <!--##=sUserLevelIDFldVar##-->) ' Delete user rights as well
End If
<!--##
End If
##-->
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing
' Call recordset deleted event
If DeleteData Then
Call Recordset_Deleted(rsold)
End If
rsold.Close
Set rsold = Nothing
End Function
'-------------------------------------------------------------------------------
' Recordset deleting event
Function Recordset_Deleting(rsold)
On Error Resume Next
' Please enter your customized codes here
Recordset_Deleting = True
End Function
'-------------------------------------------------------------------------------
' Recordset deleted event
Sub Recordset_Deleted(rsold)
On Error Resume Next
Dim table
table = "<!--##=TABLE.TblName##-->"
<!--## If TABLE.TblAuditTrail Or TABLE.TblSendMailOnDelete Then ##-->
' Get key value
Dim sKey
sKey = ""
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldIsPrimaryKey Then
sFldName = FIELD.FldName
##-->
If sKey <> "" Then sKey = sKey & ","
sKey = sKey & rsold.Fields("<!--##=sFldName##-->")
<!--##
End If
Next
##-->
<!--## End If ##-->
<!--## If TABLE.TblAuditTrail Then ##-->
' Write Audit Trail
Dim filePfx, curDate, curTime, id, user, action, field, keyvalue, oldvalue, newvalue
Dim i
filePfx = "event"
curDate = ewZeroPad(Year(Date), 4) & "/" & ewZeroPad(Month(Date), 2) & "/" & ewZeroPad(Day(Date), 2)
curTime = ewZeroPad(Hour(Time), 2) & ":" & ewZeroPad(Minute(Time), 2) & ":" & ewZeroPad(Second(Time), 2)
id = Request.ServerVariables("SCRIPT_NAME")
user = CurrentUserID
action = "D"
rsold.MoveFirst
Do While Not rsold.Eof
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldType <> 205 Then
##-->
'<!--##= FIELD.FldName##--> Field
field = "<!--##=FIELD.FldName##-->"
keyvalue = sKey: newvalue = ""
If rsold.Fields(field).Type = 201 Or rsold.Fields(field).Type = 203 Then ' Memo Field
oldvalue = "<MEMO>"
Else
oldvalue = rsold.Fields(field).Value
End If
Call ewWriteAuditTrail(filePfx, curDate, curTime, id, user, action, table, field, keyvalue, oldvalue, newvalue)
<!--##
End If
Next
##-->
rsold.MoveNext
Loop
<!--## End If ##-->
<!--## If TABLE.TblSendMailOnDelete Then ##-->
' Send Email
Dim sSenderEmail, sReceiverEmail
sSenderEmail = "<!--##=PROJ.SecSenderEmail##-->" ' sender email
sReceiverEmail = "<!--##=PROJ.RecipientEmail##-->" ' receiver email
rsold.MoveFirst
Do While Not rsold.Eof
If sSenderEmail <> "" And sReceiverEmail <> "" Then
Call LoadEmail("notify.txt")
sEmailFrom = Replace(sEmailFrom, "<!--$From-->", sSenderEmail) ' Replace Sender
sEmailTo = Replace(sEmailTo, "<!--$To-->", sReceiverEmail) ' Replace Receiver
sEmailSubject = Replace(sEmailSubject, "<!--$Subject-->", table & " record deleted") ' Replace Subject
sEmailContent = Replace(sEmailContent, "<!--table-->", table)
sEmailContent = Replace(sEmailContent, "<!--key-->", sKey)
sEmailContent = Replace(sEmailContent, "<!--action-->", "Deleted")
Call Send_Email(sEmailFrom, sEmailTo, sEmailCc, sEmailBcc, sEmailSubject, sEmailContent, sEmailFormat)
End If
rsold.MoveNext
Loop
<!--## End If ##-->
End Sub
%>
<!--## End If ##-->
<!--##/session##-->
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -