두 가지 양식이 관련되어 있고이를보기 컨트롤에 결합했습니다. 그리 어렵지 않습니다. 이것은 "1 대 다수"유형 시나리오입니다.정렬 방법 조회 열별로보기 컨트롤
고객 ID 및 고객 이름 열이있는 고객보기가 있습니다. 그런 다음 masterCustomerID, orderNumber, orderDate 컬럼이있는 "많은"문서를 보여주는 뷰가 있습니다.
XPage에서 많은 문서의 뷰 컨트롤을 만들고 masterCustomerID, orderNumber, orderDate 열을 추가합니다. 그런 다음 앞면에 열을 추가하여 DbLookup을 수행하여 고객의 실제 이름을 가져옵니다. 너무 화려하지는 않습니다.
제 조회는이 상황에서 조회 열이 첫 번째 열인 곳입니다. 해당 열을 기준으로보기 열을 정렬하는 전략은 무엇입니까? 기본적으로 주문보기의 키 값은 이름 값과 다를 가능성이 있습니다.
반복 제어를 사용하는 것이 싫으면 쉽게 반대하지 않습니다.
내 첫 번째 생각은 어떻게 든 TreeMaps를 사용하는 것이지만 많은 문서가있는 경우 실용적인지는 알 수 없습니다. 어쩌면 내가 누락 된 것이있을 수 있습니다 ...
어떤 조언을 주시면 감사하겠습니다. 감사합니다.
이름별로 정렬하려면보기가 처음부터 이름순으로 정렬되어야합니다. 그런 다음 나머지 값 (오더)을 조회합니다. –
문제는 뷰가 customerID에 의해 정렬되고 customerName에 의해 뷰를 정렬하려고하지만 고객 문서는 order 문서 (customerID 만)에서 사용할 수 없다고 생각합니다. 이 문제를 해결하는 두 가지 방법을 생각해 볼 수 있습니다 : (1) 큰보기에서 모든 문서를 처리하고, customerID를 해결하고, TreeMap에 저장하고 결과를 datatable/repeat에 바인드합니다 (perf 문제를 줄 수 있습니다) (2) 주문서에 고객 이름을 저장하십시오. BTW : 고객 이름을 검색 한 후에는 캐싱 메커니즘을 구현하여 훨씬 나은 성능을 제공해야합니다. –
진지하게 : 많은 문서에 중복 된 고객 이름을 저장하십시오 (결국 Notes입니다 ;-)). 그런 다음 이름이 변경되었는지 확인하고 업데이트 에이전트를 시작하는 사람 문서의 querysave에 몇 가지 코드가 있습니다. 의사 관계형 접근 방식은 성능을 저하시킵니다. – stwissel