2012-08-30 2 views
0

그래서 내가 만든 목록 상자를 표시하는 버튼이 있습니다. 이 목록 상자에는 일부 첨부 파일이 있으며 일부 항목 (첨부 파일)이 채워집니다. 또한 목록 상자에서 선택할 항목을 제거하려는 다른 단추를 만들었습니다. 이 작업을 수행하는 간단한 방법/공식이 있습니까? 미리 감사드립니다.목록 상자에서 파일을 제거하는 간단한 방법 - LOTUS 7

+0

코드 샘플을 추가하십시오. 그리고 btw, "listbox"는 "@Prompt"를 의미합니까? –

+0

listbox = 필드 유형 –

+0

첨부 파일 항목을 목록에서 제거하려는 경우 문서에서 첨부 파일을 제거하는 것이 기본 목적입니까? "응답자"는 주어진 응답 유형에 영향을 미치기 때문에 더 많은 정보를 요구합니다. 필드를 편집하거나 첨부 파일을 문서로 수정하기 만하면됩니다. – giulio

답변

0

1) 목록 상자의 옵션에 숨겨진 다중 값 필드 사용. 이 값은 기본값 (@Attachment 또는 다른 필드 값)을 기반으로 계산되며 다른 숨겨진 필드 "removed"(@Replace)에 언급 된 모든 값을 제거합니다.

2) "제거"필드는 현재 목록 상자에서 선택한

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

"목록 상자"를 포함하는 값처럼 제거 단추가 채워집니다.

3) 삭제 된 값에 대한 피드백과 실행 취소/재설정 기능을 제공하는 것이 좋습니다.

2

당신이하려는 일을 좀 더 명확하게 설명하십시오. "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는 다른 언어와 다르지 않습니다.

참고 : 코드는 복잡해 보일 수도 있고 더 길 수도 있습니다. 주석을 많이 추가 했으므로 (잘하면) 수행중인 작업을 이해할 수 있습니다.

관련 문제