본문 바로가기
기술자료 (KB)/Power Platform

PowerApps 드롭다운에 년도 선택 만들기

by 이완주 2024. 11. 30.

드롭다운 메뉴에 현재 년도 부터 이전 10년까지 년도를 표시하여 선택 할 수 있게 하고 싶다.

기본 값은 올해 표시

Default = Text(Today(),"yyyy")

 

Items에 다음과 같은 다양한 방법으로 표시 가능

 

1. 직접 입력

 단점 : 2025년이 되면 아래 값을 수정해야 함.

Items =  [2022,2023,2024]

 

2. 데이터에서 값을 가져와서 중복 필터링

Sharepoint 데이터를 가져오는 경우 [데이터 행 제한]으로 인해 중복 필터링이 안될 수 있음

Items =  Distinct(colYear,Value)

 

3. ForAll 함수로 10번을 실행하고 현재 년도에서 -1씩 반복하여 값을 나타내기

Items = ForAll( Sequence( 10 ), Text(DateAdd( Today(), -Value, TimeUnit.Years ),"yyyy") +1 )

 

4. 데이터 행제한 문제 해결을 위한 방법 

전체 데이터가 [데이터 행 제한]으로 인해 가져오지 못하는 경우는 

해당 년도의 데이터 개수가 [데이터 행 제한] 값인 최대 값인 2,000개를 넘지 않으면 아래 방법으로 해결 가능

 

앱이 실행될때 colTrueYear 컬렉션을 만들어서 문제 해결 가능.

 

OnStart =

// 컬렉션의 모든 데이터를 지운다.
Clear(colTrueYear);

With(
    {
        // 현재 년도 부터 이전 10년까지의 년도를 yearDate에 넣는다.
        yearDate : ForAll( Sequence( 10 ), Text(DateAdd( Today(), -Value, TimeUnit.Years ),"yyyy") +1 )
    },

    ForAll(
        // 10번 반복 실행
        Sequence(10),
        With(
            // varYear에 현재 년도를 차례대로 넣는다.
            {varYear:Index(yearDate,Value).Value},
     
            If(
                // 해당 년도의 데이터가 있는지 확인하고 있으면 아래값을 실행
                !IsBlank(First(Filter('Test-ManagementReport',년도=varYear)).본부),
                Collect(
                    colTrueYear,
                    {
                        // Value 변수에 값이 있는 년도를 컬렉션에 저장한다.
                        Value:varYear
                    }
                )
            )
        )
    )
)

댓글