从列表框中删除文件的简单方法 - LOTUS 7

时间:2012-08-30 07:45:57

标签: listbox lotus-notes attachment items

所以我有一个按钮,显示我创建的列表框。此列表框包含一些附件,其中包含一些项目(附件)。此外,我创建了另一个按钮,我想删除我将从列表框中选择的项目。这样做有什么简单的方法/公式吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

请尝试更清楚地解释一下你想要做什么。 我假设“listbox”是指类型列表框的字段。那种字段不能包含附件,只包含文本值。您的意思是列表框包含一个或多个附件的名称吗?

您谈到“显示列表框的按钮”。这与问题有关吗?

列表框是如何创建和填充的?我假设从另一个字段,包含附件的名称?

我使用了一些假设(你真的需要更详细地解释你的问题),这就是我解决它的方法:


字段'ListData':文本字段,隐藏。包含要显示的值(例如附件名称),以分号分隔。

字段'ListBox':列表框字段,允许多个值,刷新文档刷新选项,使用公式进行选择: @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与其他语言没有区别,

注意:代码可能看起来很复杂并且比以前更长,因为我添加了大量注释,因此您(希望)可以理解正在做什么......

答案 1 :(得分:0)

1)对列表框中的选项使用隐藏的多值字段。它的值将根据默认值(@Attachment或其他字段值)计算,并将删除另一个隐藏字段“removed”(@Replace)中提到的所有值。

2)“删除”字段将由“删除”按钮填充,如

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

“listbox”包含当前在列表框中选择的值。

3)我建议提供一些有关删除值和撤消/重置功能的反馈。