2014-09-07 1 views
2

TListView를 사용하여 응용 프로그램을 작성하여 주 데이터 세트를 레코드 탐색 방법 목록으로 표시했습니다. Sync < -> * 연결을 사용하여 LiveBinding을 사용했습니다.요청시로드되는 TListView 레코드

큰 문제는 전체 테이블을 메모리에로드한다는 것입니다. 그것은 대부분의 경우 느려지고 이제는 최악의 경우에도 안드로이드로 가져갑니다.

나는 그것을 페이지하는 방법에 대한 예제를 찾지 못했습니다. 나는 sql을 사용하지 않고 필요에 따라 레코드를 검색하는 사용자 정의 DataSet (Aurelius)을 사용하고있다.

나는 어떤 문서도 찾지 못했기 때문에 공유 할 출발점이나 코드가 없습니다.

요청시 TListView로드 레코드를 만드는 방법은 무엇입니까?

추신. similar SO 질문이 있지만 SQL 문으로 해결할 수 있습니다. 나는 SQL을 사용할 수 없으며 더 나은 접근 방법이 될 수있는 FMX의 실제 버전을 가지고 있는지 궁금합니다.

+0

'LiveBindings '을 사용하여 데이터베이스에서로드를 동기화 할 수 있어야합니다. [updates-listview-item-on-the-fly-on-using-live-bindings] (http://delphi.radsoft.com.au/2013/09/updating-listview-item-attributes-on-the)을 참조하십시오. -fly-using-livebindings /). [Mobile Tutorial : 라이브 바인딩을 사용하여 ListView (iOS 및 Android) 생성하기] (http://docwiki.embarcadero.com/RADStudio/XE6/en/Mobile_Tutorial:_Using_LiveBindings_to_Populate_a_ListView_ (iOS_and_Android))를 참조하십시오. –

+0

@LURD 이미 LiveBinding을 사용하고 있습니다. LiveBindings가 FMX의 기본 표준이라고 가정했기 때문에 제 질문을 편집했습니다. TListView의 Sync 속성을 사용하면 작동하지만 전체 DataSet을로드하므로 디스플레이에 필요한 항목을로드하거나 적어도 작은 숫자 (페이지) –

+1

을 다운 voter에로드합니다. 다운 투표를 정당화하십시오. 당신이 틀린 것을 발견 한 이래로 당신은 확실히 나의 질문에 대한 답을 알고 있습니다. –

답변

0

¨ 귀하의 문제는 목록보기에 있지만 귀하의 데이터 세트에 없습니다. 데이터 집합 속성을 구성합니다

  1. FetchOptions.AutoFetchAll = 사용 안함
  2. FetchOptios.RecRowSet = 20; // 버튼 페이지
  3. FetchOptions.Fetchmode = fmManual

당 행의 수 또는 ListViewl.PullRefresh 이벤트에 *

begin 
FDQuery.EmptyDataSet; 
FDQuery.FetchNext; 
end 

  • Pullrefresh 이벤트는 Iphone/Android 앱에서 매우 일반적인 새로운 레코드를 얻기 위해 listview에서 푸시 다운됨을 의미합니다. PullToRefresh 속성을 True로 체크해야합니다.
관련 문제