我希望能夠讓所有用戶創建表單(QCR),但除了我和另一個用戶之外,沒有人應該能夠編輯該表單。我一直在修改ACL和作者和讀者領域,但沒有運氣。在Lotus Notes表單中限制訪問
更多背景信息: 1.此表單是通過單擊單獨數據庫中的按鈕創建的,因爲此QCR表單中的某些信息是從該數據庫繼承的。 2. All組中的用戶應該能夠創建此表格 3.用戶應該能夠讀取QCR數據庫中的所有文檔,但不能編輯它們 4.我和另外一個用戶應該能夠讀取和編輯的所有文件 5.有在QuerySave的事件前,一個文件正在編輯
後比較值的一些代碼我曾嘗試: 我創建了一個組QCR_Access有我和其他用戶1作爲成員。然後我創建了一個作者字段,用'QCR_Access'作爲QCR表格中的公式計算出來。但是,無論我給所有組(存儲者或作者)提供什麼類型的訪問類型,每當我嘗試使用ALL組中的一個用戶保存數據庫中的新文檔時,應用程序都會給我提供錯誤。
以下是Querysave中的代碼,可能會幫助您瞭解我在做什麼。
Sub Querysave(Source As Notesuidocument, Continue As Variant)
' Compare the values in the form after it is saved with its original values when the document is not a new document.
Dim doc As NotesDocument
Set doc = Source.Document
Dim session As New NotesSession
Dim user As String
user = session.CommonUserName
If newDoc Then
doc.Log_Date = Cstr(Now())
doc.Log_User = user
doc.Log_Actions = "New document created."
Else
' Load fields value to the array
lastValues(0) = doc.QCR_Requestor(0)
lastValues(1) = doc.QCR_No(0)
...
lastValues(31) = doc.QCR_Tracking_Info(0)
' Compared each value in the array to see if there is any difference
Dim i As Integer
For i = 0 To 31
If lastValues(i) <> originalValues(i) Then
Call UpdateLogFields(doc,user,i)
End If
Next
End If
End Sub
Sub UpdateLogFields (doc As NotesDocument, user As String, i As Integer)
Dim logDate As NotesItem
Dim logUser As NotesItem
Dim logActions As NotesItem
Set logDate = doc.GetFirstItem("Log_Date")
Set logUser = doc.GetFirstItem("Log_User")
Set logActions = doc.GetFirstItem("Log_Actions")
' a space is needed otherwise the appended text is right next to the border
Call logDate.AppendToTextList(" " & Cstr(Now()))
Call logUser.AppendToTextList(" " & user)
Select Case i
Case 0: Call logActions.AppendToTextList(" Requestor is changed.")
Case 1: Call logActions.AppendToTextList(" QCR No is changed.")
...
Case 30: Call logActions.AppendToTextList(" Follow Up information is changed.")
Case 31: Call logActions.AppendToTextList(" Tracking information is changed.")
End Select
End Sub
這是更好的方法。角色意味着如果名稱/組更改(只有ACL),則不必在以後更改代碼。 – 2012-02-29 19:09:03