앱시트로 팀관리 앱(프로그램, 명단, 안내, 출결 관리) 제작 일지3
[목차]
1. 출석 체크 액션 (요구 기능)
2. Data: add a new row to another table using values from this row
앱시트로 앱을 제작하실 때 많이 사용하는 기능이 바로 액션 기능입니다. 그 가운데, 출석체크 기능을 위한 Data 액션에 대해 구체적인 적용 예시와 함께 사용법을 알아보아요.
지난번 포스팅에서 프로그램 및 출결 관리 앱 제작 시 고려했던 앱의 기능과 테이블 구성, 사용된 함수의 종류와 액션, Contains함수에 대해 알아보았습니다. 이 번 포스팅에서는 출석체크 기능을 위한 Data: add a new row to another table values from this row (현재 있는 행의 데이터를 기준으로 다른 테이블의 새로운 행 생성 기능)에 대해 알아보겠습니다.
1. 출석 체크 액션 (요구 기능)
출석 체크 액션에 어떤 기능을 넣을지에 대해 알아보겠습니다.
이 기능을 이해하기 위해서는 앱이 어떻게 작동되는지에 대해 먼저 알아야 합니다.
- 프로그램 목록 화면입니다.
프로그램이 운영 날짜에 따라 Deck 형식으로 있습니다. 오른쪽 상단에는 참여 팀이 표시되도록 했습니다.
- 프로그램을 클릭했을 때 상세 뷰 화면입니다.
프로그램 정보에 대한 안내가 있으며 아래로 스크롤 시 해당 프로그램을 수강하는 수강자의 명단이 나옵니다.
![]() |
![]() |
프로그램 상세 뷰의 참여자 명단에서 바로 출석체크가 가능하도록 액션을 설정해 두었습니다.
- 출석체크 기능은 다음과 같습니다.
출석 체크 클릭 시 [출결확인] 테이블의 다음 정보를 행으로 입력 (한 사람의 출결기록이 하나의 행으로 구성)
- 이름, 팀명, 날짜, 출석체크 누른 시간, 프로그램명, 이메일
>> [구현] 해당 기능을 위해 액션의 Data: add a new row to another table using values from this row를 사용
- 출석체크의 조건은 다음과 같습니다.
① 프로그램의 운영날짜가 오늘날짜와 동일한 경우에만 출석체크 버튼 활성화
한 사람이 여러 개 프로그램 (운영날짜가 다름)에 참여할 경우 오늘 날짜에 해당하는 프로그램 참여 시, 다른 프로그램의 상세화면에도 해당 참여자가 표시되지만 출석체크 시 오늘 날짜의 프로그램 명으로 기록됨
② 아직 출결체크를 하지 않은 경우에만 출석체크 버튼 활성화
③ 출결버튼은 관리자, 혹은 운영자 로그인 시에만 버튼 활성화
>>[구현] 출석체크 액션 - Behavior-Only if this condition is true 조건을 다음과 같이 설정
and(contains(
select(프로그램[참여 팀],[운영날짜]=today()),[_thisrow].[팀명]),[_thisrow].[출석체크]="FALSE",
or(any(select(명단[팀명],[이메일]=useremail()))="관리자",
any(select(명단[팀명],[이메일]=useremail()))="운영자"))
위의 코드를 자세히 살펴보면,
select(프로그램[참여 팀],[운영날짜]=today()),[_thisrow].[팀명])
프로그램 운영날짜가 오늘 날짜와 동일한 프로그램의 참여팀에 참여자의 팀명이 포함되어 있을 경우
[_thisrow].[출석체크]="FALSE"
출석체크 기록이 있는지를 판단하는 가상칼럼을 만들고, [출결]테이블에 오늘 날짜의 출석 기록이 있을 경우 "TRUE"로 값 설정. 해당 값이 FALSE일 때만, (오늘의 출결 기록이 없을 때만) 출석 버튼 활성화
tip. 가상칼럼 작성 함수: contains(select(출결[이름],[날짜]=today()),[_thisrow].[이름])
or(any(select(명단[팀명],[이메일]=useremail()))="관리자",
any(select(명단[팀명],[이메일]=useremail()))="운영자"))
로그인되어 있는 이메일 주소를 명단 테이블에서 찾았을 때, 팀명이 "관리자"이거나 "운영자" 일 때
결과적으로 오늘 운영하는 프로그램 중에서 참여자의 출결기록이 없을 때 출석체크 버튼이 활성화되는데, 이때 로그인한 이메일 주소가 관리자 혹은 운영자일 때 버튼이 활성화됨.
2. Data: add a new row to another table using values from this row
해당 액션은 현재 선택된 행의 값을 다른 테이블의 새로운 행에 넣는 기능입니다.
위에서 출석체크 버튼을 통해 현재 선택된 [명단] 테이블의 정보를 기준으로 다른 테이블인 [출결] 테이블의 새로운 행을 추가합니다.
- Do this 에서 Data: add a now row to another table using values from this row 선택 후
- Table to add to에서 어떤 테이블에 데이터를 추가할지 선택합니다.
출석체크의 경우 명단테이블의 정보를 기준으로 [출결] 테이블에 출결기록을 작성할 예정이라 [출결] 테이블을 선택해 주었습니다.
출결테이블의 구성은 다음과 같습니다.
- Set these columns
출결테이블에 있는 칼럼 값을 기준으로 데이터를 추가할 수 있습니다.
왼쪽은 [출결] 테이블의 칼럼이고, 오른쪽 값은 [명단] 테이블의 어떤 값을 넣어줄 것인지 작성하는 칸입니다.
tip. [칼럼명]만 작성하는 경우 현재 테이블 기준의 해당 칼럼 값이 입력되고, 다른 수식을 적어 주는 경우 해당 값이 입력됩니다.
이 가운데, [출결] 테이블의 "프로그램" 칼럼 값은 다음과 같이 작성합니다.
참여자가 속한 프로그램 중 오늘 날짜에 운영되는 프로그램명을 입력하기 위함입니다.
지금까지 출석체크를 위한 Data: add a new row to another table using values from this row 액션 설정에 관해 알아보았습니다.
프로그램 및 참여자, 출결관리 앱 제작의 다른 포스팅을 보기 위해서는 아래의 링크를 확인해 주세요.
- 앱 제작에 관한 기능 설명 및 테이블 구성
2023.11.07 - [Appsheet(앱시트) 활용하기] - 앱시트로 팀관리 앱 (프로그램, 명단, 안내, 출결 관리) 제작 일지 1 |
- Contains함수 사용법에 대한 안네
2023.11.09 - [Appsheet(앱시트) 활용하기] - 앱시트로 팀관리 앱 (프로그램, 명단, 안내, 출결 관리) 제작 일지 2 |
.