헤드라인 갤러리 생성

12740 단어 PowerApps


Twitter에서 흘러 온 카테고리 헤더 포함의 데이터를 Gallery에 표시하는 방법을 생각했습니다.
이번 열쇠는 GroupBy 함수ForAll 함수.

데이터의 완성 이미지는 이런 느낌.


시도하다



방법은 아무래도 좋으니까 시험하고 싶은 사람용.

우선 버튼을 3개 준비하고 OnSelect에 아래의 식을 각각 넣어 주세요.

버튼 1원 테이블 생성
ClearCollect(
    元テーブル,
    Table(
        {
            見出し: "見出しA",
            1: 1,
            2: "Z",
            3: "Z1"
        },
        {
            見出し: "見出しA",
            1: 1,
            2: "Z",
            3: "Z1"
        },
        {
            見出し: "見出しA",
            1: 1,
            2: "Z",
            3: "Z1"
        },
        {
            見出し: "見出しB",
            1: 1,
            2: "Z",
            3: "Z1"
        },
        {
            見出し: "見出しB",
            1: 1,
            2: "Z",
            3: "Z1"
        },
        {
            見出し: "見出しC",
            1: 1,
            2: "Z",
            3: "Z1"
        },
        {
            見出し: "見出しC",
            1: 1,
            2: "Z",
            3: "Z1"
        },
        {
            見出し: "見出しC",
            1: 1,
            2: "Z",
            3: "Z1"
        },
        {
            見出し: "見出しC",
            1: 1,
            2: "Z",
            3: "Z1"
        },
        {
            見出し: "見出しC",
            1: 1,
            2: "Z",
            3: "Z1"
        }
    )
)

버튼 2 그룹화 테이블 생성
ClearCollect(
    グループ化テーブル,
    GroupBy(
        元テーブル,
        "見出し",
        "見出し以外"
    )
)

버튼 3 제목 표 생성
Clear(見出し込みテーブル);
ForAll(
    グループ化テーブル,
    Collect(
        見出し込みテーブル,
        {見出しデータ: 見出し}
    );
    Collect(
        見出し込みテーブル,
        見出し以外
    )
)

버튼 1에서 순서대로 누르면 Collection 見出し込みテーブル을 표시하는 Gallery는 다음과 같이 보입니다.


무엇을 했는가



원본 데이터



우선, 카테고리 나누기에 사용하는 표제 첨부의 테이블을 준비합니다.


카테고리별로 그룹화



원래 테이블을 제목으로 GroupBy 합니다.
그러면 각 제목에 속한 레코드가 테이블로 중첩됩니다.

GroupBy 함수의 거동은 이런 느낌.

그룹화 테이블
GroupBy(
    元テーブル,///グループ化するテーブル
    "見出し",///グループ化に使う列
    "見出し以外"///それ以外の列を格納する列の列名
)

제목 레코드를 수집하고 그룹화에 계속 중첩된 테이블을 계속 수집합니다.



그 후에는 그룹화 테이블을 한 줄씩 ForAll 으로 처리해 갈 뿐입니다.
ForAll의 두 번째 인수는 수식이며 ;로 구분하여 여러 수식을 실행할 수 있습니다.

작업 수행

이 수식에는 Patch 및 Collect 함수를 사용하여 데이터 소스의 레코드를 변경하는 등의 작업을 수행하는 함수가 포함될 수 있습니다. 또, 이 수식은, 접속에 대해서 메소드를 호출할 수도 있습니다. ; 연산자를 사용하면 각 레코드에 대해 여러 작업을 수행할 수 있습니다. ForAll 함수의 대상인 테이블은 변경할 수 없습니다.

따라서 ForAll(データソース,Collect();Collect()) 와 같이 순서대로 처리하는 기술이 가능합니다.

이번에는 다음 순서로 Collect하고 있습니다.
  • 제목에 대한 레코드를 컬렉션에 추가
  • 그룹화 테이블의 見出し以外에 중첩 된 테이블을 컬렉션에 추가

  • 이 프로세스가 GroupBy된 각 헤드라인에 대해 회전되어 헤드라인 레코드로 구분된 테이블이 완성됩니다.

    이런 느낌으로 움직이고 있습니다.

    제목 표
    ForAll(
        グループ化テーブル,///これを対象に1レコードずつ処理を繰り返す
        Collect(
            見出し込みテーブル,///見出しレコードを追加
            {見出しデータ: 見出し}
        );
        Collect(
            見出し込みテーブル,///その下に見出しに該当するテーブルを追加
            見出し以外
        )
    )
    

    Gallery에서 표시



    Gallery에서 컨트롤의 Visible에 IsBlank(ThisItem.見出し)를 잘 사용하여 제목과 다른 템플릿을 분리합니다.


    요약


  • GroupBy로 정리
  • 요약 된 데이터를 ForAll에서 레코드별로 처리
  • Collect는 테이블을 두 번째 인수로 사용하면 Collection에 레코드를 추가합니다
  • .

    여러분이 데이터형과 함수의 거동을 배우고 충실한 Power Platform Life를 보낼 수 있도록.
    No Data, No Life.

    좋은 웹페이지 즐겨찾기