2014-01-31 8 views
1

xpage에 정의 된보기가 있습니다. 또한 사용자가 선택하고 결합하여 뷰의 결과를 필터링 할 수있는 여러 필터 (열을 기반으로 함)가 있습니다. 이 쿼리를 기반으로 dominoView.search에서 생성 한 쿼리 문자열을 생성합니다 (완전 새로 고침). 제가하고 싶은 것은 검색 결과를 얻고 페이지의 다른 곳에 표시된 몇 가지 카운트를 업데이트 할 수 있도록하는 것입니다. 나는이 논리를 어디에서 수행 할 수 있는지 생각하기가 힘듭니다. view.getAllEntries()를 사용하고 컬렉션을 반복하려고합니다. 때로는 효과가있는 것처럼 보이지만 다른 때에는 필터링되지 않은보기가 표시되는 것 같습니다. 누군가가 내가 명시 적으로 view.FTSearch 이벤트 (beforePageLoad?) 내부에 호출하고 내 getAllEntries 호출을 수행 한 후 viewScope에 결과를 저장하겠다고 제안했지만이를 시도 할 때 "Notes 탐색 탐색 중 오류"런타임 오류가 발생합니다. . 어떤 포인터? 티아!필터링 된 xpages보기에서 열 값 가져 오기

편집 : xpages주기를 약간 연구하면 (아직도 약간 혼란 스럽습니다), 제 질문을 잘 조정할 수 있다고 생각합니다. 이것은 내 첫 번째 stackoverflow 질문입니다, 그래서이 작업을 수행하고 괜찮습니다 바랍니다 ....

내가 설명한 것처럼, 내 xpage에 정의 된 dominoView가 있습니다. 반복은 뷰의 행을 반복하면서 문서의 특정 필드를 표시합니다. 검색 속성에서 쿼리를 정의하면 반복을 통해 전체 집합이 아닌 축소 된 문서 집합이 올바르게 표시됩니다. (쿼리는 콤보 상자의 eventHandler에서 viewScope에 정의 된 일부 변수의 SSJS를 통해 검색 속성에서 계산됩니다.) 그러나 myView를 사용하여 반복 렌더링 섹션 (SSJS 사용)의 내부에서 뷰의 현재 항목에 액세스하려고하면 오류가 발생합니다. getAllEntries (여기서 myView는 반복의 "값"으로 정의 됨), 쿼리가 완료 되었더라도 여전히 모든 문서를 가져옵니다. 이 시점에서 뷰 변수에 이미 적용된 검색이 있으므로 (반복 작업 이후) 다른 결과가 나타나는 이유는 무엇입니까? 보기의 행에 액세스하는 또 다른 방법이 있습니까? 이 문제를 더욱 복잡하게 만들려면 문제를 명확히 할 수있는 간단한 실험 일뿐입니다. 이전에 언급했듯이, 실제로 반복 내에서 뷰 데이터에 액세스하지 않으려 고합니다. xpage 파일에서 반복하기 전에 정의 된 일부 콤보 상자의 렌더링 또는 값 섹션에서이 데이터에 액세스하려고합니다.

내가 그 더욱 의미가 희망 ....

편집 # 2 : 내가 수동으로 myView.getAllEntries를 호출하기 전에 FTSearch (또는 FTSearchSorted)를 호출하는 경우, 그 다음 내가이 할 수 있다고 생각하는 것이 추가하는 것을 잊었다 작업. 보기의 기본 제공 검색 외에 추가 작업을 수행 할 필요가없는 것 같습니다.

+0

내 원래 시도는 사용자에게 사용 가능한 필터를 제공하는 콤보 상자에 첨부 된 javascript에서 view.getAllEntries()를 호출하는 것과 관련이 있습니다. 실제로 문서를 반복하고 해당 콤보 상자 필터와 관련된 필드 값을 검색하고 정렬 한 다음 괄호에 넣은 각 값의 수를 계산합니다. 예를 들어 Amazon에서 볼 수있는 패싯 검색과 비슷합니다.사용자가 두 번째 필터를 선택하면 전체 필터링되지 않은 뷰가 표시되는 것처럼 보이므로 뷰의 검색이 수행 된 시점을 이해하고 코드를 삽입해야합니다. –

답변

0

필자는 이전에 필터링 된 뷰의 항목 즉, 결과 항목 콜렉션이 뷰 자체보다 작은 뷰에서 항목을 반복하고 싶습니다.

내가 아직 얻지 못했던 것은 결과로 무엇을하고 싶은지, 아니면 필터링 된보기를 반복하여 얻으려는 것이 무엇인지 (다른 곳에 표시 될 카운트를 언급하는 것입니다.).

아마도 좋은 방법은 반복을 위해 사용할 수있는 NotesViewEntryCollection 객체를 반환하는보기의 .getAllEntriesByKey 메서드를 사용하는 것입니다.

결과 NotesViewEntry 객체를 반드시 재생해야합니다. 그 이유는 여기 stackoverflow에서 여러 번 설명되었습니다.

+0

예, 필터링 된 항목을 반복하고 싶습니다. 그 이유는 왼쪽에 정의 된 몇 가지 필터 (기본적으로보기의 열에 해당)가 있으며 사용자가 결과 중 하나 이상을 선택하여 결과를 요약 할 수 있기 때문입니다. 필터를 선택 했으므로 다른 사용 가능한 필터의 일치 횟수를 업데이트하고 싶습니다. 나는 그것이 희망적이다. 열을 정렬 할 수 없습니다. 추 신 : xpages를 처음 사용하므로 페이지 수명주기 및 필터링 된보기의 내용을 질의 할 준비가되었을 때 명확하지 않습니다. 감사! –

+0

그래서 어떤 종류의 드릴 다운 필터링을 생각하고 있습니까? 이것은 표준 뷰 필터링 방법으로는 매우 복잡해 질 수 있습니다. view.getAllEntries(), view.getAllEntriesByKey() 등은 실제로 LotusScript와 동일한 기능을 수행합니다. 그래서 당신이 고전적인 LS 개발에 익숙하다면, 당신은 당신이 얻을 수있는 것과 그 결과를 어떻게 처리해야 하는지를 알아야합니다. –

+0

저는 실제로 경험이없는 고전적인 Notes 개발자입니다. 내 배경은 자바, 펄, C++ 등으로 더 많습니다. 어쨌든, 고마워요. 다른 주석에서 언급했듯이 주요 문제는 검색 필터가 뷰에 적용될 때와 뷰의 항목을 가져 오는 것이 안전 할 때를 모르는 것일 수 있습니다. –

관련 문제