헤드라인 갤러리 생성
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하고 있습니다.
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"
}
)
)
ClearCollect(
グループ化テーブル,
GroupBy(
元テーブル,
"見出し",
"見出し以外"
)
)
Clear(見出し込みテーブル);
ForAll(
グループ化テーブル,
Collect(
見出し込みテーブル,
{見出しデータ: 見出し}
);
Collect(
見出し込みテーブル,
見出し以外
)
)
원본 데이터
우선, 카테고리 나누기에 사용하는 표제 첨부의 테이블을 준비합니다.
카테고리별로 그룹화
원래 테이블을 제목으로 GroupBy 합니다.
그러면 각 제목에 속한 레코드가 테이블로 중첩됩니다.
GroupBy 함수의 거동은 이런 느낌.
그룹화 테이블
GroupBy(
元テーブル,///グループ化するテーブル
"見出し",///グループ化に使う列
"見出し以外"///それ以外の列を格納する列の列名
)
제목 레코드를 수집하고 그룹화에 계속 중첩된 테이블을 계속 수집합니다.
그 후에는 그룹화 테이블을 한 줄씩 ForAll 으로 처리해 갈 뿐입니다.
ForAll의 두 번째 인수는 수식이며
;
로 구분하여 여러 수식을 실행할 수 있습니다.작업 수행
이 수식에는 Patch 및 Collect 함수를 사용하여 데이터 소스의 레코드를 변경하는 등의 작업을 수행하는 함수가 포함될 수 있습니다. 또, 이 수식은, 접속에 대해서 메소드를 호출할 수도 있습니다. ; 연산자를 사용하면 각 레코드에 대해 여러 작업을 수행할 수 있습니다. ForAll 함수의 대상인 테이블은 변경할 수 없습니다.
따라서
ForAll(データソース,Collect();Collect())
와 같이 순서대로 처리하는 기술이 가능합니다.이번에는 다음 순서로 Collect하고 있습니다.
見出し以外
에 중첩 된 테이블을 컬렉션에 추가 이 프로세스가 GroupBy된 각 헤드라인에 대해 회전되어 헤드라인 레코드로 구분된 테이블이 완성됩니다.
이런 느낌으로 움직이고 있습니다.
제목 표
ForAll(
グループ化テーブル,///これを対象に1レコードずつ処理を繰り返す
Collect(
見出し込みテーブル,///見出しレコードを追加
{見出しデータ: 見出し}
);
Collect(
見出し込みテーブル,///その下に見出しに該当するテーブルを追加
見出し以外
)
)
Gallery에서 표시
Gallery에서 컨트롤의 Visible에 IsBlank(ThisItem.見出し)
를 잘 사용하여 제목과 다른 템플릿을 분리합니다.
요약
여러분이 데이터형과 함수의 거동을 배우고 충실한 Power Platform Life를 보낼 수 있도록.
No Data, No Life.
Reference
이 문제에 관하여(헤드라인 갤러리 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Yellow11/items/28ee9a52ba57829623cd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)