2011-01-16 1 views
0

아래 코드를 사용하여 서식있는 텍스트의 첨부 파일 필드의 유효성을 검사합니다.서식있는 텍스트의 첨부 파일 확인

소스를 호출하지 않는 경우. 새로 고침 (참) 유효성 검사가 작동하지 않지만 버튼에서 querysave가 호출 될 때마다이 코드가 문서를 새로 고침합니다.

그래서이 새로 고침 부분이나 유효성을 검사 할 전체 코드를 사용자가해서는 안되는 옵션이나 다른 생각이 있습니다.

누구든지 더 효율적인 코드가 있다면 이것을 공유하십시오.

If Source.Document.YesNo20(0)="Yes" Then 
    Call source.Refresh(True) 
    Dim rtitem As NotesRichTextItem 
    Set rtitem = source.Document.GetFirstItem("Atchmnt20") 
    NotesEmbeddedObjectArray = rtitem.EmbeddedObjects 
    If Isempty (NotesEmbeddedObjectArray) Then 
     Messagebox "Please enter an attachment in 20a. As you selected option Yes" 
     continue=False 
     Exit Sub 
    End If 
End If 

답변

0

당신이 공식 RT 필드 유효성을 검사 할 수 있습니다 : 첨부 파일, 텍스트, 포함 된 개체, 모든 종류의 커버이 로터스 개발자 도메인 게시물을 확인?

내가이 입력 유효성 식으로 내 리치 텍스트 필드 아래에 숨겨진 필드를 만들 :

REM {Validate just when saving}; 
@If([email protected]; @Return(@Success); ""); 

REM {Should contain some file}; 
_filenames := @AttachmentNames; 
@If(
    @Elements(_filenames)=0; 
    @Return(@Failure("You should attach at least one file")); 
    @Success); 
0

당신이 여기에 너무 오래 걸리기 때문에 새로 고침을 피하려는 가정 당신이보고 할 수 있습니다 것입니다 그리고 가능하다면, 변경하려고 :

  1. 은 아마 당신은 당신의 코드에서 새로 고침을 건너 (형태) 전역 변수와 연계하여 서식있는 텍스트 필드의 이벤트를 "입력"을 사용할 수있는 서식있는 텍스트 필드의 경우 전혀 건드리지 않았다.
  2. '문서 새로 ​​고침시 새로 고침 선택 사항'옵션을 사용하는 것이 안전 할 수있는 키워드 입력란이 있습니까? 또는 대화 상자를 불러와 선택한 키워드로 필드를 채우는 버튼을 배치하십시오. @ DbColumn/@ DbLookup을 통해 항상 최신 선택 사항을 제공 할 수 있기 때문에 선택 사항을 새로 고침 할 필요는 없습니다. 또는 NotesUIWorkspace.PickListStrings입니다.
  3. 최적화 할 수있는 "Queryrecalc"및/또는 "Postrecalc"양식 이벤트에 코드 (LotusScript 또는 Formula)가 있습니까? 예를 들어 전역 변수를 플래그로 사용하여 Queryrecalc/Postrecalc에서 코드를 실행할지 여부를 코드에서 Refresh를 호출하기 직전에 false로 설정 한 다음 다시 설정해야합니다 (이 새로 고침은 RichText 필드를 백엔드 문서로 업데이트).
0

새 (저장되지 않은) 문서에 대해서도 첨부 파일 존재를 확인하는 방법이 있습니다. 식

예를 들어, 숨겨진 계산 필드 만들기 AttachmentNames (! @AttachmentNames = ""; "1", "")

@if;

'in new documents Form field may be empty 
If doc.Form(0) = "" then  
    doc.Form = "YourFormAlias"  
End If 

'computing doc contents with the form 
call doc.ComputeWithForm(false, false) 

If doc.AttachmentNames(0) = "" then  
MsgBox "Please attach a file",,"Attention" 
Continue = False 'if you are running this code in QuerySave 
Exit Sub 
End If 
: LotusScript와에서

다음을 수행