2015-01-20 16 views
0

Genexus에서 스마트 장치 개발. 내가로드 이벤트 (일부 타사 레이아웃이있을 수 있습니다) 그리드에 (제 3 자 webService에 의해 반환 된) 레코드의 수백을로드하는 데 사용하고 있습니다.로드 이벤트 중 진행 표시기 - 가능합니까?

사용자가 검색 버튼을 누르면 ProgressIndicator가 즉시 표시됩니다 (프로 시저 실행 중). 프로 시저가 끝나면 (데이터 검색) ProgressIndicator가 사라지지만 그리드가 새 데이터를 표시하는 데 4-5 초가 더 소요될 수 있습니다.

이렇게하면 사용자가 검색에 문제가 있다고 생각하게됩니다. 그런 다음 예기치 않게 그리드가 새로 고쳐집니다.

로드 또는 새로 고침 이벤트 중에 ProgressIndication을 표시 할 수 있습니까? 또는이 동작을 방지하기위한 제안 사항이 있습니까?

답변

1

주요 문제는 새로 고침 및로드 이벤트가 SD 아키텍처의 "서버"이벤트이므로 장치의 API 또는 진행률 표시기와 같은 리소스에 액세스 할 수 없다는 것입니다.

우리는 iOS에서 동일한 요구 사항 을 가지고 있으며 GXRefresh 이벤트를 사용했습니다.

Event 'gxrefresh' 
    Composite 
     //Your code. Example: ProgressIndicator.Hide() 
    EndComposite 
EndEvent 

Gxrefresh는 새로 고침 및로드 후에 실행되는 로컬 이벤트입니다. 은이 작업을 수행하는 데 도움이 된 이벤트입니다.

    그 패널의 ClientStart 이벤트에 진행률 표시기를 시작
  • : 은 그래서 솔루션입니다 (이것은 공식 행사하지 않으며 그것은 GeneXus의 모든 버전에서 취할 수 있습니다).
  • 해당 패널의 'gxrefresh'이벤트에서 진행 표시기를 숨 깁니다.

참고 : gxrefresh 이벤트를 사용하려면 'gxrefresh'라는 숨겨진 버튼을 추가해야합니다. UI에서이 단추를 숨길 수 있으므로이 단추를 숨길 수 있습니다 (응용 프로그램 막대에 Visible = false로 설정).

어떤 이유로 든 해당 솔루션을 사용할 수없는 경우 (예 : gxrefresh 이벤트가 더 이상 사용되지 않거나 Android 용으로 개발 됨) 나는 우아하지는 않지만 작동해야하는 보조 WA를 생각할 수 있습니다.

  • 시작 제어 방식의 SD 크로노 미터와 숨겨진 변수를 넣어 패널
  • 의 클라이언트 시작 이벤트의 진행률 표시기.
  • 타이머를 6 초로 설정
  • SD 크로노 미터의 틱 이벤트에서 진행 표시기를 중지하고 틱 이벤트가 더 이상 실행되지 않도록 크로노 미터를 중지합니다.

다음은 내가 생각할 수있는 두 가지 옵션입니다. 아마 쉬운 방법이 있지만 나는 그것에 대해 들어 보지 못했습니다. 이 시나리오에서는 Grid.DidLoad 이벤트가 유용 할 것입니다. 우리가 곧이 문제에 대한 해결책을 갖게 될 것입니다.

링크 :

SD 크로노 미터 : http://wiki.genexus.com/commwiki/servlet/hwikibypageid?25058

SD 이벤트 : http://wiki.genexus.com/commwiki/servlet/hwikibypageid?17042

서버 부대 행사 : http://wiki.genexus.com/commwiki/servlet/hwikibypageid?24234

+0

안녕하세요. 귀하의 의견에 감사 드리며 매우 유익했습니다. 따라서 내 이벤트 'search'는 "ProgressIndicator.ShowWithTitleAndDescription ('MyApp', 'Please wait ...') 명령으로 시작하고 프로 시저가 호출됩니다. 그러나 "ProgressIndicator.Hide()"명령을 생략해도 ProgressIndicator가 endEvent 행에 자동으로 숨겨지는 것으로 보입니다. 따라서 다음 SDEvent (gxrefresh 또는 chronometer.tick)가 나타나면 진행 표시기가 이미 숨겨져 있습니다. 내가 할 수있는 다른 것이 있습니까? – Jaime

+0

사실입니다. 진행률 표시기는 종료 이벤트 후에 자동으로 숨겨집니다. 검색 이벤트에서 새로 고침을 실행합니까? – Franklin

+0

예, 검색 이벤트 직후 (그리드의 데이터 새로 고침). – Jaime