?? share-script.asp
字號:
<!--##session aspfunction##-->
<!--## If ewCond_HasFileField() And ((CTRL.CtrlID = "list" And TABLE.TblInlineEdit) Or CTRL.CtrlID = "add" Or CTRL.CtrlID = "edit" Or CTRL.CtrlID = "register") Then ' Blob Field Exists ##-->
<%
'-------------------------------------------------------------------------------
' Function RequestBlobData
' - Handle mult-part data (for file upload)
' - Variables setup: sAction, field variables, EW_Max_File_Size
Function RequestBlobData()
Dim rawData, separator, lenSeparator, dict
Dim currentPos, inStrByte, tempValue, mValue, value
Dim intDict, begPos, endPos
Dim nameN, isValid, nameValue, midValue
Dim rawStream
If Request.TotalBytes > 0 Then
Set rawStream = Server.CreateObject("ADODB.Stream")
rawStream.Type = 1 'adTypeBinary
rawStream.Mode = 3 'adModeReadWrite
rawStream.Open
rawStream.Write Request.BinaryRead(Request.TotalBytes)
rawStream.Position = 0
rawData = rawStream.Read
separator = MidB(rawData, 1, InStrB(1, rawData, ChrB(13)) - 1)
lenSeparator = LenB(separator)
Set dict = Server.CreateObject("Scripting.Dictionary")
currentPos = 1
inStrByte = 1
tempValue = ""
While inStrByte > 0
inStrByte = InStrB(currentPos, rawData, separator)
mValue = inStrByte - currentPos
If mValue > 1 Then
value = MidB(rawData, currentPos, mValue)
Set intDict = Server.CreateObject("Scripting.Dictionary")
begPos = 1 + InStrB(1, value, ChrB(34))
endPos = InStrB(begPos + 1, value, ChrB(34))
nameN = MidB(value, begPos, endPos - begPos)
isValid = True
If InStrB(1, value, stringToByte("Content-Type")) > 1 Then
begPos = 1 + InStrB(endPos + 1, value, ChrB(34))
endPos = InStrB(begPos + 1, value, ChrB(34))
If endPos > 0 Then
intDict.Add "FileName", ConvertToText(rawStream, currentPos + begPos - 2, endPos - begPos, MidB(value, begPos, endPos - begPos))
begPos = 14 + InStrB(endPos + 1, value, StringToByte("Content-Type:"))
endPos = InStrB(begPos, value, ChrB(13))
intDict.Add "ContentType", ConvertToText(rawStream, currentPos + begPos - 2, endPos - begPos, MidB(value, begPos, endPos - begPos))
begPos = endPos + 4
endPos = LenB(value)
nameValue = MidB(value, begPos, ((endPos - begPos) - 1))
Else
endPos = begPos + 1
isValid = False
End If
Else
nameValue = ConvertToText(rawStream, currentPos + endPos + 3, mValue - endPos - 4, MidB(value, endPos + 5))
End If
If isValid = True Then
If dict.Exists(byteToString(nameN)) Then
Set intDict = dict.Item(byteToString(nameN))
If Right(intDict.Item("Value"), 2) = vbCrLf Then
intDict.Item("Value") = Left(intDict.Item("Value"), Len(intDict.Item("Value"))-2)
End If
intDict.Item("Value") = intDict.Item("Value") & ", " & nameValue
Else
intDict.Add "Name", nameN
dict.Add byteToString(nameN), intDict
End If
End If
End If
currentPos = lenSeparator + inStrByte
Wend
rawStream.Close
Set rawStream = Nothing
' Get action
<!--## If CTRL.CtrlID = "list" Then ##-->
sAction = getValue(dict, "a_list")
<!--## ElseIf CTRL.CtrlID = "add" Then ##-->
sAction = getValue(dict, "a_add")
<!--## ElseIf CTRL.CtrlID = "edit" Then ##-->
sAction = getValue(dict, "a_edit")
<!--## ElseIf CTRL.CtrlID = "register" Then ##-->
sAction = getValue(dict, "a_register")
<!--## End If ##-->
EW_Max_File_Size = getValue(dict, "EW_Max_File_Size")
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldHtmlTag = "FILE" Then ' Blob Field
##-->
fs_<!--##=FIELD.FldVar##--> = getFileSize(dict, "<!--##=FIELD.FldVar##-->")
' Check the file size
If fs_<!--##=FIELD.FldVar##--> > 0 And CLng(EW_Max_File_Size) > 0 Then
If fs_<!--##=FIELD.FldVar##--> > CLng(EW_Max_File_Size) Then
Response.Write Replace("<!--##@MaxFileSize##-->", "%s", EW_Max_File_Size)
Response.End
End If
End If
fn_<!--##=FIELD.FldVar##--> = getFileName(dict, "<!--##=FIELD.FldVar##-->")
' Check the file type
If Not ewUploadAllowedFileExt(fn_<!--##=FIELD.FldVar##-->) Then
Response.Write "<!--##@WrongFileType##-->"
Response.End
End If
ct_<!--##=FIELD.FldVar##--> = getFileContentType(dict, "<!--##=FIELD.FldVar##-->")
<!--##=FIELD.FldVar##--> = getFileData(dict, "<!--##=FIELD.FldVar##-->")
Call ewGetImageDimension(<!--##=FIELD.FldVar##-->, wd_<!--##=FIELD.FldVar##-->, ht_<!--##=FIELD.FldVar##-->)
If wd_<!--##=FIELD.FldVar##--> < 0 Or ht_<!--##=FIELD.FldVar##--> < 0 Then
wd_<!--##=FIELD.FldVar##--> = getValue(dict, "wd_<!--##=FIELD.FldVar##-->")
ht_<!--##=FIELD.FldVar##--> = getValue(dict, "ht_<!--##=FIELD.FldVar##-->")
End If
a_<!--##=FIELD.FldVar##--> = getValue(dict, "a_<!--##=FIELD.FldVar##-->")
<!--##
Else ' Non-Blob Field
##-->
<!--##=FIELD.FldVar##--> = getValue(dict, "<!--##=FIELD.FldVar##-->")
<!--##
End If
Next
##-->
If IsObject(intDict) Then
intDict.RemoveAll
Set intDict = Nothing
End If
dict.RemoveAll
Set dict = Nothing
RequestBlobData = True
Else
RequestBlobData = False
End If
End Function
%>
<!--## End If ##-->
<!--## If ((CTRL.CtrlID = "list" And TABLE.TblInlineEdit) Or CTRL.CtrlID = "view" Or CTRL.CtrlID = "edit" Or Ctrl.CtrlID = "add" Or Ctrl.CtrlID = "delete") Then ##-->
<%
'-------------------------------------------------------------------------------
' Function LoadData
' - Load Data based on Key Value
' - Variables setup: field variables
Function LoadData()
Dim rs, sSql, sFilter
sFilter = ewSqlKeyWhere
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldIsPrimaryKey Then
sFldVar = FIELD.FldVar
sFldVar2 = Mid(sFldVar, 3)
If ewGetFieldType(FIELD.FldType) = 1 Then 'Numeric
##-->
If Not IsNumeric(<!--##=sFldVar##-->) Then
LoadData = False
Exit Function
End If
<!--##
End If
##-->
sFilter = Replace(sFilter, "@<!--##=sFldVar2##-->", AdjustSql(<!--##=sFldVar##-->)) ' Replace key value
<!--##
End If
Next
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.Open sSql, conn
If rs.Eof Then
LoadData = False
Else
LoadData = True
rs.MoveFirst
' Get the field contents
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
##-->
<!--##=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
If FIELD.ImageWidthFld <> "" And FIELD.ImageHeightFld <> "" Then
##-->
' Get BLOB field width & height
wd_<!--##=FIELD.FldVar##--> = rs("<!--##=FIELD.ImageWidthFld##-->")
ht_<!--##=FIELD.FldVar##--> = rs("<!--##=FIELD.ImageHeightFld##-->")
<!--##
End If
Next
##-->
End If
rs.Close
Set rs = Nothing
End Function
%>
<!--## End If ##-->
<!--##
If CTRL.CtrlID = "list" And TABLE.TblInlineEdit Then
sFunctionName = "InlineEditData"
bGenerate = True
ElseIf CTRL.CtrlID = "edit" Then
sFunctionName = "EditData"
bGenerate = True
Else
bGenerate = False
End If
If bGenerate Then
##-->
<%
'-------------------------------------------------------------------------------
' Function <!--##=sFunctionName##-->
' - Edit Data based on Key Value
' - Variables used: field variables
Function <!--##=sFunctionName##-->()
On Error Resume Next
Dim rs, sSql, sFilter
Dim rsold, rsnew
sFilter = ewSqlKeyWhere
<!--##
For i = 1 to TABLE.Fields.Count
Set FIELD = TABLE.Fields.Seq(i)
If FIELD.FldIsPrimaryKey Then
sFldVar = FIELD.FldVar
sFldVar2 = Mid(sFldVar, 3)
If ewGetFieldType(FIELD.FldType) = 1 Then 'Numeric
##-->
If Not IsNumeric(<!--##=sFldVar##-->) Then
<!--##=sFunctionName##--> = False
Exit Function
End If
<!--##
End If
##-->
sFilter = Replace(sFilter, "@<!--##=sFldVar2##-->", AdjustSql(<!--##=sFldVar##-->)) ' Replace key value
<!--##
End If
Next
##-->
<!--##
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
<!--##=sFunctionName##--> = False
Exit Function
End If
' clone old rs object
Set rsold = CloneRs(rs)
If rs.Eof Then
<!--##=sFunctionName##--> = False ' Update Failed
Else
<!--##
For i = 1 to TABLE.Fields.Count
SET FIELD = TABLE.Fields.Seq(i)
If FIELD.FldGenerate And Not FIELD.FldHtmlTagReadOnly Then
If (CTRL.CtrlID = "list" And FIELD.FldList And FIELD.FldEdit) Or (CTRL.CtrlID = "edit" And FIELD.FldEdit) Then ' InlineEdit / FldList + FldEdit, Edit / FldEdit
##-->
' Field <!--##=FIELD.FldName##-->
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -