2012-04-24 4 views
0

두 개의 편집 가능한 날짜 선택 도구 필드 (Start_Date & End_Date)와 단추가있는 폼 (TrimQuery)이 있습니다. 버튼을 누르면 (Trim_Date) 필드를 폴링하고 (TrimQuery) 양식에서 지정한 날짜 사이에 모든 문서를 표시하는 다른 양식 (트림 트랙)에서 기존의 뷰 (모든 트림 추적)를 가져와야합니다. 날짜 선택 도구를 사용합니다. 아래 코드를 게시했습니다.날짜 선택 도구를 사용한 선택 수식

두 날짜간에 문서를 볼 수있는 다른 방법이 있습니까? 내 문제의 대부분은 코드로 게시 한 선택 수식에 있다고 생각하지만 잘못되었다는 것을 알고 있습니다. 나는 다른 예제에서 코드의 비트를 잡으려고했습니다. 이것을 골라라. 내가 얻을 수있는 도움에 감사드립니다. 감사.

Sub Click(Source As Button) 

Dim session As New NotesSession 
Dim db As NotesDatabase 
Dim view As NotesView 
Dim workspace As NotesUIWorkspace 
Dim doc As NotesDocument 
Dim uidoc As NotesUIDocument 
Dim StartDate As NotesItem 
Dim EndDate As NotesItem 
Dim Trimming As String 

Trimming = "Trim Track" 

Set StartDate = doc.GetFirstItem("Start_Date") 
Set EndDate = doc.GetFirstItem("End_Date") 
Set uidoc=workspace.CurrentDocument 
Set db=session.CurrentDatabase 
Set view=db.GetView("All Trim Tracking") 

SF = {SELECT Trim_Date = "} & StartDate.Text & "&" & EndDate.Text & {" | (Form = }& Trimming & {")} <==I realize this is incorrect, I don't know the correct formula. 

If StartDate.Text <> "" And EndDate.Text <> "" Then 
view.SelectionFormula = SF 
Else 
view.SelectionFormula="select @all" 
End If 

End Sub 

답변

0

당신은 선택 수식에서 날짜 범위를 표현할 수있다 :

SF = {SELECT Trim_Date = [} & StartDate.Text & "-" & EndDate.Text & {] & Form = "} & Trimming & {"} 
0

당신이 (뷰가 즉석에서 수정 될 예정되지 않은 경우)보기 외부 검색을 수행하려면 ' d 전체 텍스트 검색을 사용하는 것이 더 좋습니다. NotesDatabase.FTSearch 구문은 좀 더 복잡하며 선택 수식 가능성과 완전히 호환되지 않습니다. 데이터베이스가 크지 않은 경우 NotesDatabase.Search 메서드를 사용할 수도 있습니다.보기의 경우와 동일한 구문이지만 순차적 (= 느림) 검색입니다.

0

보기에서 문서의 하위 그룹을 가져와야하므로 관심있는 Full-text search on the view을 사용하는 것이 가장 좋습니다. 전체 텍스트 검색 구문은 here입니다. 필자는 특정 뷰에있는 문서에만 관심이 있기 때문에 데이터베이스 FT 검색을 권장합니다. 데이터베이스의 모든 문서가 반드시 필요한 것은 아닙니다.

검색이 완료되면 문서를 보는 방법에 대한 구체적인 내용이 없습니다. 검색 결과에 사용할 유일한 논리적 UI 구조는 Folder입니다. 그렇지 않으면 데이터를 관리하는 사용자 정의 UI를 만드는 길고 복잡한 프로세스에 직면하게됩니다. 검색 양식 자체에보기를 포함하거나 (폴더를 연결할 수도 있음) dialogbox에 폴더를 표시 할 수 있습니다.

폴더를 처리 할 때 폴더의 내용을 제거한 다음 채우는 것을 기억해야합니다. 유일한 단점은 공용 폴더를 사용하는 경우 여러 사용자가 동시에이를 수행 할 수 없다는 것입니다. 또는 처음 사용할 때 폴더를 비공개로 만들 수 있습니다. 폴더 내용을 관리하는 데 도움이되는 NotesDocumentCollection.PutAllInFolder 및 NotesDocumentCollection.RemoveAllFromFolder를 확인하십시오.

0

LotusScript를 사용하여 뷰 선택 수식을 변경하지 않습니다. 주로 이러한 코드를 사용하는 사람이 뷰 디자인을 변경하고 서버 ID로 서명 된 에이전트를 통해 수행하더라도 여러 개가 있으면 문제가 발생할 수 있습니다. 사용자가 날짜 선택기 코드에 동시에 액세스하고있었습니다.

필자는 필 요한 정렬 된 열의 수를 최소로 정렬하여 정렬하고 일치하는 문서의 시작을 스캔하고 notesViewEntry 메소드를 사용하여 끝낼 것입니다. 필자는 매우 자주 문서를 사용하고 사용자가 선택할 수있는 목록으로 쉽게 전환 할 수 있습니다.

본질적으로 기준선은 데이터베이스의 모든 유형의 모든 문서이므로 데이터베이스가 크거나 많은 다른 유형의 문서가 포함되어있는 경우 효율성이 떨어지기 때문에 첫 번째 방법으로 전체 텍스트 검색을 수행합니다.

관련 문제