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

PowerApps으로 만드는 조직도 솔루션 - 09. 직원 화면 구성 (왼쪽 메뉴)

by 이완주 2024. 10. 4.

 

 

PowerApps으로 만든 조직도 솔루션 제안서

작년에 Power Apps으로 만들어 아직까지 저희 회사에 잘 쓰고 있는 솔루션 입니다.조직도는 연차 결재 솔루션과 연동하여 사용 중에 있습니다. 해당 솔루션의 구성 방법 입니다. 대략 10개 내외 정

leemcse.tistory.com

 

직원의 정보를 입력 및 수정할 수 있게 구성

 

아래는 실제 사용 중인 앱 화면

 

수정 전 화면

 

왼쪽 메뉴

1. 검색을 이름, 부서 등 다양한 조건으로 검색이 가능해야 한다. (검색 조건을 내 맘대로 추가하고 싶다.)

2. 재직과 퇴직자를 구분하여 설정 할 수 있어야 한다. (퇴직일 설정되면 퇴직자)

3. 회사 이름의 아이콘을 클릭하면 아래 직원이 접힐 수 있게 구성 (회사가 여러개일 경우 회사별 그룹 설정)

 

데이터 새로 고침

App을 실행 할때와 동일하게 직원 화면을 선택하면 데이터를 새롭게 불러와 최신 데이터를 적용 할 수 있게 구성

OnVisible

// ColDepartment 초기화 및 생성
ClearCollect(ColDepartment,AddColumns(OrgDepartment,NewID,ID));

// OrgCompany의 회사 정보를 ColDepartment에 추가
ForAll(
    OrgCompany,
    Collect(
        ColDepartment,
        {
            No: Text(OrderNo,"00"),
            CompanyID : ID,
            Name: Name,
            Level: 0,
            OrderNo: Text(OrderNo,"00") & "000000000000000000000000000000",
            Visible:true
        }
    )
);

// ColEmployee 초기화 및 생성
ClearCollect(ColEmployee,AddColumns(OrgEmployee,NewID,ID));
ForAll(
    OrgCompany,
    Collect(
        ColEmployee,
        {
            No: Text(OrderNo,"00"),
            CompanyID : ID,
            Name: Name,
            Level: 0,
            OrderNo: Text(OrderNo,"00") & "000000000000000000000000000000",
            Visible:true
        }
    )
);

 

재직 / 퇴사 선택 갤러리

 

갤러리 Items 설정

Items = Table({ID:1,Name:"재직"},{ID:2,Name:"퇴사"})

 

Button Mouse Over 설정

HoverFill = ColorFade(RGBA(248, 248, 255, 0.8), -30%)

 

갤러리 설정

EmployeeGallery Items 설정

검색 조건을 이름과 부서명을 설정 Or 조건으로 원하는 조건을 추가 할 수 있다.

//Search([@OrgEmployee], SearchInput1.Text, Name, Name)
/*
If(TitleMenuGallery_2.Selected.ID = 1,
    Sort(Filter(ColEmployee,Visible=true And IsBlank(ResignationDate) Or Level=0),OrderNo),
    Sort(Filter(ColEmployee,Visible=true And !IsBlank(ResignationDate) Or Level=0),OrderNo)
)
*/

If(TitleMenuGallery_2.Selected.ID = 1,
    Sort(
        // Visible 값이 true이고 퇴사일자에 값이 없을 때
        Filter(ColEmployee,Visible=true And IsBlank(ResignationDate) And
        (
            // 이름에 검색 키워드가 있으면 표시
            Name in Search(ColEmployee,EmployeeSearch.Text,Name).Name Or

            // 부서 이름에 검색 키워드가 있으면 표시
            Department in Search(ColEmployee,EmployeeSearch.Text,Department).Department

            // 원하는 값은 계속 추가 가능 전화번호 등등

        ) Or
        // Level=0 회사명은 표시
        Level=0 ) ,
       
        // OrderNo로 정렬
        OrderNo
    ),
    Sort(
        // Visible 값이 true이고 퇴사일자에 값이 있을 때
        Filter(ColEmployee,Visible=true And !IsBlank(ResignationDate) And
        (
            // 이름에 검색 키워드가 있으면 표시
            Name in Search(ColEmployee,EmployeeSearch.Text,Name).Name Or

            // 부서 이름에 검색 키워드가 있으면 표시
            Department in Search(ColEmployee,EmployeeSearch.Text,Department).Department

            // 원하는 값은 계속 추가 가능 전화번호 등등

        ) Or
        // Level=0 회사명은 표시
        Level=0 ) ,
       
        // OrderNo로 정렬
        OrderNo
    )
)


 

갤러리 아이콘 설정

회사 앞에만 회사 아이콘 설정 사용자에게 아이콘을 나타내지 않

Icon = If(ThisItem.Level=0,Icon.OfficeBuilding)

 

회사 이름 및 부서 이름

회사 이름과 부서 이름을 표시

Text = If(ThisItem.Level=0,ThisItem.Name,ThisItem.Department)

 

댓글