단기집중과정 101
10 모듈
5 주

테이블

복사하려면 클릭

웹 애플리케이션에서 테이블 사용 및 데이터 가져오기


데이터베이스에 첫 번째 기록이 나타났습니다! 그러나 우리는 그것을 볼 수 없으며 수정해야 합니다. 이렇게 하려면 Table 구성 요소(필요한 데이터를 표시하는 테이블)가 필요합니다. 추가하는 즉시 어떤 데이터가 포함될지 결정하고 모델과 끝점을 선택하라는 메시지가 표시됩니다.

테이블 설정

생성된 테이블은 요구 사항에 따라 즉시 발행되어야 합니다. 예를 들어, 한 페이지의 레코드 수를 제한하고(테이블이 매우 길고 여러 페이지로 구성될 수 있음) 관심 없는 필드를 제거하거나 관련 테이블에서 출력할 원하는 필드를 설정합니다.

동시에 구성 요소를 추가한다고 해서 아직 완전한 작업 준비가 된 것은 아니라는 점을 기억합니다. 적절한 비즈니스 프로세스를 만들어야 합니다. 테이블의 경우 많은 것이 자동으로 생성되지만 교육의 일환으로 자료를 더 잘 이해하기 위해 처음부터 모든 것을 생성합니다.

테이블 트리거

테이블 onDataUpdate , onShowonFilter 의 세 가지 트리거가 있습니다. onShow 로 시작하여 테이블이 화면에 표시될 때 어떤 일이 발생해야 하는지 정의해 보겠습니다. 이렇게 하려면 세 개의 블록이 필요합니다.

1) Table Update Properties . 원하는 테이블 속성을 설정합니다. 예를 들어 여기에서 한 페이지의 레코드 수를 제한할 수 있으며(설정 매개변수 Records per page = 10 ) 페이지가 데이터 로드 모드( Loading = true )에 있음을 표시할 수도 있습니다.

2) Server request GET /country/ . 데이터가 나타나려면 어딘가로 가져와야 합니다. 그리고 이를 수행하려면 해당 엔드포인트에 대해 데이터베이스에 요청하십시오. 동시에 이 끝점의 입력 매개변수 수에 주의하십시오. 쿼리에 더 많은 유연성을 제공하고 실제로 필요한 데이터만 가져옵니다.
우리의 경우 페이지당 항목 수가 10이고 더 로드할 의미가 없기 때문에 _limit = 10 으로 설정합니다. 또한 올바른 출력 순서를 만들고 이름으로 모든 것을 정렬하고( _sort_by = name ) 정렬 순서도 설정합니다. _sort_order 매개변수는 값 ASC (직접 정렬의 경우 단어 Ascending 에서 가장 작은 값에서 가장 큰 값으로) 또는 DESC ( Descending , 역순)를 사용할 수 있습니다. 직접 알파벳순 정렬은 우리에게 적합하므로 _sort_order = ASC 입니다.

_with 매개변수는 특별한 주의를 기울일 필요가 있습니다. 그것 없이 쿼리를 실행하면 국가에 대한 데이터만 얻을 수 있습니다. 그러나 국가 모델은 도시와 관련이 있으며 이 데이터는 요청한 테이블에 속하지 않지만 여전히 보고 싶습니다. 이렇게 하려면 _with = citys 로 설정하고 이 국가에 있는 도시에 대한 데이터를 즉시 가져옵니다.

3) Table Update Data . 데이터를 수신했지만 화면에 표시하려면 테이블로 전송해야 합니다. 이를 위해 테이블에 몇 페이지가 있어야 하는지 이해하기 위해 이전 블록에서 수신한 모든 정보( data )와 총 레코드 수( count - Total Records )를 전달합니다.

다음 트리거는 onDataUpdate 입니다. 테이블의 데이터는 다양한 비즈니스 프로세스의 결과로 업데이트될 수 있습니다. 그리고 이런 일이 발생하면 어떤 일이 일어나야 하는지 한 번만 지정하고 각 비즈니스 프로세스에 동일한 블록을 두지 않는 것이 가장 좋습니다. 우리의 경우에는 Table Update Properties 블록을 다시 사용하는 것이 맞겠지만, 이번에는 앞서 설정한 로딩 모드( Loading = false )를 제거하고 테이블이 작동할 준비가 되었음을 보여주기 위해서입니다.

필요한 마지막 트리거는 onFilter 입니다. 테이블의 다른 페이지로 전환하는 순간에 발생해야 하는 작업을 정의합니다. 이를 위해 페이지 번호에 따라 데이터를 로드할 때 필요한 오프셋을 나타내는 _offset 매개변수가 있습니다.

예를 들어, 우리의 경우 각 페이지에 10개의 항목이 있는 경우 세 번째 페이지에는 21에서 30까지의 항목이 필요합니다. 이 데이터는 _offset 에서 가져오고 Server request GET /country/ 블록으로 전달할 수 있습니다. 그렇지 않으면 비즈니스 프로세스가 TableOnShow 트리거의 프로세스와 완전히 일치합니다. 이러한 상황에서는 두 개의 다른 트리거가 동일한 비즈니스 프로세스를 시작하도록 하는 것이 합리적입니다.

그러나 우리의 경우 중요한 차이점은 _offset 매개변수에 있습니다. 아래 스크린샷과 같이 모든 것을 그대로 두면 onShow 트리거에 따라 프로세스가 시작되지만 _offset 값을 가져올 수 없기 때문에 Server request GET /country/ 블록에서 중지됩니다(다른 트리거에서 전달됨).

이 상황은 변수를 사용하여 가장 잘 해결됩니다. 구체적인 예를 살펴보겠습니다. _offset 값을 저장하려면 Integer 변수가 필요합니다. 따라서 하나의 Integer 블록을 사용하여 이 변수를 선언하지만 두 개의 서로 다른 Set Variable 블록을 사용하여 각각 다른 트리거와 연결된 값을 기록합니다.

Table onShow 트리거에 따르면 오프셋이 필요하지 않으며 테이블의 데이터가 맨 처음부터 표시되고 _offset = 0 이므로 Set Variable 블록에서 Value = 0 을 설정합니다.

Table onFilter 트리거가 시작되면 이미 _offset 값을 받았고 이를 사용하려고 하므로 트리거의 _offset 값을 Value 으로 Set Variable 블록에 전달할 것입니다.

다음 단계에서 트리거의 비즈니스 프로세스는 서로 다르지 않으므로 두 비즈니스 프로세스가 하나로 결합되고 각각 _offset 매개변수에 대한 정수 변수 값이 고유합니다.

Was this article helpful?
아직도 답을 찾고 계십니까?