2012-08-30 88 views
0

所以我有一個按鈕,顯示我創建的列表框。這個列表框有一些附件,它被填充一些項目(附件)。此外,我創建了另一個按鈕,我想刪除我將從列表框中選擇的項目。有沒有簡單的方法/公式來做到這一點?提前致謝。從列表框中刪除文件的簡單方法 - LOTUS 7

+0

請更具體地添加代碼示例。順便說一下,「列表框」的意思是「@Prompt」? –

+0

listbox =一個字段類型 –

+0

通過想要從列表中刪除附件項目,是從文檔中刪除文件附件的基本目的? 「Answerers」正在詢問更多信息,因爲這會影響給出的響應類型。您可能只想編輯一個字段,或將附件修改爲文檔。 – giulio

回答

0

1)對列表框中的選項使用隱藏的多值字段。它的值將根據默認值(@Attachment或另一個字段值)進行計算,並將刪除另一個隱藏字段「removed」(@Replace)中提到的所有值。

2)「已刪除」字段將通過您的刪除按鈕就像目前在列表框中選擇

FIELD removed := @Trim(@Unique(removed:listbox));@All 

「列表框」中包含的值來填充。

3)我建議提供一些移除值的反饋和撤消/重置的能力。

2

請嘗試更清楚地解釋你正在嘗試做什麼。 我假設你所說的「listbox」是指一個類型爲listbox的字段。這種字段不能包含附件,只能是文本值。你的意思是列表框包含一個或多個附件的名稱?

你說的是「一個顯示列表框的按鈕」。這與問題有關嗎?

如何創建和填充列表框?我從另一個領域假設,包含附件的名稱?

我使用了一些假設(你真的需要更加詳細地解釋你的問題),這是我如何解決它:


場「的ListData」:文本字段,隱藏。包含要顯示的值(例如附件名稱),用分號分隔。

字段 '列表框':列表框字段,允許多個值,刷新文件刷新,使用公式選擇選擇: @Explode(的ListData; 「;」)

按鈕 「刪除選定」:

Sub Click(Source As Button) 
    Dim ws As New NotesUIWorkspace 
    Dim uidoc As NotesUIDocument 
    Dim selected As Variant 
    Dim listdata As Variant 
    Dim files List As String 
    Dim newlistdata As String 
    Dim i As Integer 

    Set uidoc = ws.CurrentDocument 
    '*** Read the field values and split into arrays 
    listdata = Split(uidoc.FieldGetText("ListData"), ";") 
    selected = Split(uidoc.FieldGetText("ListBox"), ";") 
    '*** Convert listdata array into a Lotusscript list 
    Forall file In listdata 
     files(file) = file 
    End Forall 
    '*** Loop through the array of selected values 
    For i = 0 To Ubound(selected) 
     '*** Check if the currently processed value is in the files list 
     If Iselement(files(selected(i))) Then 
      Erase files(selected(i)) ' Remove/erase from the list 
      '*** Add code here to remove attachments from document 
      '*** if that is what you actually want to do. 
      '*** Use notesEmbeddedObject.Remove method for that. 
     End If 
    Next 
    '*** Now we have the files list with the selected items removed. 
    '*** Loop though the list and build a string of remaining values 
    Forall ff In files 
     newlistdata = newlistdata + ff + ";"  
    End Forall 
    '*** Write the new string of remaining attachments back to the listdata field 
    Call uidoc.FieldSetText("ListData", newlistdata) 
    Call uidoc.Refresh 
End Sub 

你只需要仔細考慮問題並找出你真正想做的事情,然後將其分解爲更小的步驟,解決其中的每一個問題等。Lotusscript與其他語言沒有區別,

注意:該代碼可能看起來很複雜,並且比它必須更長,因爲我添加了大量評論,因此您(希望)能夠理解正在做什麼......

相關問題