PowerApps, 체크박스에서 선택 항목에 일괄 처리
1761 단어 SharePointPowerAppsPowerPlatform
개요
PowerApps의 갤러리에서 아이템에 체크박스를 붙이고 체크를 한 아이템에 대해 일괄처리를 하고 싶은 경우의 방법에 대해 알아보았습니다.
방법
체크를 한 아이템을 일괄 삭제하는 경우를 예로 합니다.
갤러리의 Items에는 다음과 같은 FoodList 컬렉션이 들어 있다고 가정합니다.{Id:1, FoodName:"炒飯"},{Id:2, FoodName:"餃子"}
Id 열과 같은 레코드를 식별할 수 있는 고유한 데이터가 들어 있다고 가정합니다.
삭제 버튼의 OnSelect에서 다음 함수를 입력합니다.
ForAll(
Filter(Gallery1.AllItems, Checkbox1.Value = true) As A,
RemoveIf(FoodList,Id = A.Id)
)
ForAll에서 갤러리 컨트롤 중 체크가 들어있는 항목을 한 줄씩 참조하고 RemoveIf에서 Id로 비교하여 원래 컬렉션에서 삭제 처리를 수행합니다.
포인트는 「As 연산자」로 갤러리 컨트롤의 컬렉션을 A로 변환하고 있는 점입니다.
ThisRecord를 사용하여 RemoveIf(FoodList,Id = ThisRecord.Id)로 작동하지 않았습니다.
왼쪽의 Id가 ThisRecord의 Id(약식)인지 FoodList의 Id인지를 구별할 수 없는 것이 원인인 것 같습니다. SQL과 같습니다.
향후 업데이트로 변경될 수 있습니다.
이번은 삭제의 액션을 실시하는 예입니다만, 다른 액션에도 응용할 수 있다고 생각합니다.
다른 방법
다른 방법으로는, 삭제용의 컬렉션을 작성해 두고, 체크 박스의 OnCheck에서 ThisItem을 삭제 리스트에 추가.
삭제 버튼에 다음과 같은 함수를 넣고 컬렉션에 대해 RemoveIf 함수에서 삭제 목록과 비교하여 삭제하는 방법입니다.
방금 전의 방법보다 조금 번거롭다.
If(IsEmpty(DeleteList),
Notify("削除するアイテムがありません。",NotificationType.Information),
RemoveIf(FoodList,ThisRecord in DeleteList);Clear(DeleteList);
)
나중에 OnCheck가 작동하지 않는 상황에서는이 방법을 사용할 수 없습니다.
예를 들면, 모두에 체크/해제와 같은 버튼을 준비해, 다른 컨트롤로부터 체크의 상태를 제어하는 경우입니다.
※PowerApps로 그런 요건 없다고 생각합니다만・・
Reference
이 문제에 관하여(PowerApps, 체크박스에서 선택 항목에 일괄 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Rambosan/items/175a019f17027fec4a1f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
체크를 한 아이템을 일괄 삭제하는 경우를 예로 합니다.
갤러리의 Items에는 다음과 같은 FoodList 컬렉션이 들어 있다고 가정합니다.
{Id:1, FoodName:"炒飯"},{Id:2, FoodName:"餃子"}
Id 열과 같은 레코드를 식별할 수 있는 고유한 데이터가 들어 있다고 가정합니다.삭제 버튼의 OnSelect에서 다음 함수를 입력합니다.
ForAll(
Filter(Gallery1.AllItems, Checkbox1.Value = true) As A,
RemoveIf(FoodList,Id = A.Id)
)
ForAll에서 갤러리 컨트롤 중 체크가 들어있는 항목을 한 줄씩 참조하고 RemoveIf에서 Id로 비교하여 원래 컬렉션에서 삭제 처리를 수행합니다.
포인트는 「As 연산자」로 갤러리 컨트롤의 컬렉션을 A로 변환하고 있는 점입니다.
ThisRecord를 사용하여 RemoveIf(FoodList,Id = ThisRecord.Id)로 작동하지 않았습니다.
왼쪽의 Id가 ThisRecord의 Id(약식)인지 FoodList의 Id인지를 구별할 수 없는 것이 원인인 것 같습니다. SQL과 같습니다.
향후 업데이트로 변경될 수 있습니다.
이번은 삭제의 액션을 실시하는 예입니다만, 다른 액션에도 응용할 수 있다고 생각합니다.
다른 방법
다른 방법으로는, 삭제용의 컬렉션을 작성해 두고, 체크 박스의 OnCheck에서 ThisItem을 삭제 리스트에 추가.
삭제 버튼에 다음과 같은 함수를 넣고 컬렉션에 대해 RemoveIf 함수에서 삭제 목록과 비교하여 삭제하는 방법입니다.
방금 전의 방법보다 조금 번거롭다.
If(IsEmpty(DeleteList),
Notify("削除するアイテムがありません。",NotificationType.Information),
RemoveIf(FoodList,ThisRecord in DeleteList);Clear(DeleteList);
)
나중에 OnCheck가 작동하지 않는 상황에서는이 방법을 사용할 수 없습니다.
예를 들면, 모두에 체크/해제와 같은 버튼을 준비해, 다른 컨트롤로부터 체크의 상태를 제어하는 경우입니다.
※PowerApps로 그런 요건 없다고 생각합니다만・・
Reference
이 문제에 관하여(PowerApps, 체크박스에서 선택 항목에 일괄 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Rambosan/items/175a019f17027fec4a1f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
If(IsEmpty(DeleteList),
Notify("削除するアイテムがありません。",NotificationType.Information),
RemoveIf(FoodList,ThisRecord in DeleteList);Clear(DeleteList);
)
Reference
이 문제에 관하여(PowerApps, 체크박스에서 선택 항목에 일괄 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Rambosan/items/175a019f17027fec4a1f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)