好像沒有FindFreeResource指令ㄝ....
不過我將我做過的Post 大家參考一下吧(我是初學者..若有錯誤請來信指教)
這是我作在確定送出按鈕的語法...
Sub Click(Source As Button) Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim result As Variant
Set uidoc=ws.currentDocument uidoc.Refresh
If uidoc.FieldGetText("CName") = "" Then Messagebox "目前姓名尚未輸入任何資料,請重新輸入(選擇)姓名",MB_OK,"提示" uidoc.GotoField("Cname") Exit Sub End If
If uidoc.FieldGetText("ResourceType") = "" Then Messagebox "目前預約之會議室尚未輸入任何資料,請重新輸入(選擇)預約之會議室",MB_OK,"提示" uidoc.GotoField("ResourceType") Exit Sub End If
If uidoc.FieldGetText("Duration") = "" Then Messagebox "目前預約時間發生錯誤(時間為0小時),請重新輸入(選擇)預約時間",MB_OK,"提示" uidoc.GotoField("Duration") Exit Sub End If
If uidoc.FieldGetText("Description") = "" Then Messagebox "目前尚未輸入使用說明,請重新輸入(選擇)說明",MB_OK,"提示" uidoc.GotoField("Description") Exit Sub End If
If uidoc.FieldGetText("StartDate") ="" Or uidoc.FieldGetText("StartTime") ="" Or uidoc.FieldGetText("EndDate") ="" Or uidoc.FieldGetText("EndTime") ="" Then Messagebox("請輸入預約時間後再執行") Exit Sub Else
If Cdat(uidoc.FieldGetText("StartDate")) < Date Then Messagebox("目前系統無法預約在今天之前之日期,請重新輸入起始日期,謝謝。") uidoc.GotoField("StartDate") Exit Sub End If
If Cdat(uidoc.FieldGetText("EndDate")) < Date Then Messagebox("目前系統無法預約在今天之前之日期,請重新輸入結束日期,謝謝。") uidoc.GotoField("StartDate") Exit Sub End If
Dim session As New Notessession Dim db As NotesDatabase Set db = Session.CurrentDatabase
Dim dateTime As NotesDateTime Set DateTime = New NotesDatetime("01/01/98") Dim coll As NotesDocumentCollection Dim Formula As String Dim STDateTime As Double , ETDateTime As Double Dim RType As String
Rtype = uidoc.FieldGetText("tmpResourceType") 'Messagebox(Rtype) 'SDateTime As String,EDateTime As String,
If uidoc.FieldGetText("StartDateTime") = "" Or uidoc.FieldGetText("EndDateTime") = "" Then Messagebox "請輸入完資料後再進行檢查執行動作,謝謝....." Else STDateTime = Cdbl(Cdat(uidoc.FieldGetText("StartDateTime"))) ETDateTime = Cdbl(Cdat(uidoc.FieldGetText("EndDateTime")))
'判斷起始時間與結束時間之關係 If STDateTime > ETDateTime Then Messagebox("目前系統發現您的預約結束時間在開始時間之前,請重新輸入預約日期時間,謝謝。") uidoc.GotoField("StartDate") Exit Sub End If
'Messagebox(Cstr(STdatetime)) '在StartDateTime1不要在加@Date這樣好像只會取出日期而不會將StartDatetime 格式會成DateTime format '用view 來try 一下即可 ' ((S <= ST & E > ST) | (S < ET & E >= ET)) & (會議室判斷) 'Formula="((StartDateTime <= ( [" + Cstr(Cdat(STDateTime) )+ "]) & EndDateTime > (["+ Cstr(Cdat(STDateTime)) +"]) ) | (StartDateTime < (["+ Cstr(Cdat(ETDateTime) ) +"]) & EndDateTime >= (["+ Cstr(Cdat(ETDateTime) ) +"]))) & (tmpResourceType ="""+ Rtype +""")" Formula="((StartDateTime <= ( [" + Cstr(Cdat(STDateTime) )+ "]) & EndDateTime > (["+ Cstr(Cdat(STDateTime)) +"]) ) | (StartDateTime < (["+ Cstr(Cdat(ETDateTime) ) +"]) & EndDateTime >= (["+ Cstr(Cdat(ETDateTime) ) +"]))) & (tmpResourceType ="""+ Rtype +""") & (CheckStatus=""Y"")"
Set Coll = db.search(Formula,DateTime,0)
Dim i As Integer Dim doc As NotesDocument Dim aDoc1 As Variant Dim aDoc2 As Variant Dim aDoc3 As Variant Dim aDoc4 As Variant Dim sAll As String
For i =1 To Coll.count Set Doc = coll.GetNthDocument(i)
aDoc1 = Doc.GetItemValue("CName") aDoc2 = Doc.GetItemValue("ResourceName") aDoc3 = Doc.GetItemValue("OptimalDateTime") aDoc4 = Doc.GetItemValue("Description")
sAll = sAll + Chr(10) + Chr(10) + "預約者:"+aDoc1(0)+Chr(10) + "會議室:" + aDoc2(0) + Chr(10) + "時間:" + aDoc3(0)+Chr(10)+"說明:"+aDoc4(0)+Chr(10)
Next If coll.count > 0 Then Call uidoc.FieldSetText("DataTimeFlag","您的預約目前與其他申請者相衝突....請重新修改相關資料") Messagebox sAll,MB_OK,"提示:目前預約資源與下列衝突" Exit Sub Else uidoc.Refresh Call uidoc.FieldSetText("CheckStatus","Y") ' result = Evaluate("@PostedCommand([FileSave])") ' result = Evaluate("@PostedCommand([FileCloseWindow])") End If End If End If uidoc.Refresh If coll.count = 0 Then uidoc.save uidoc.close End If End Sub
|