On this page
calculate
Calculate
XLSForm 및 rtSurvey의 calculate 질문은 양식의 다른 필드나 값을 기반으로 계산을 수행하는 데 사용됩니다. 이 질문은 사용자에게 표시되지 않고 백그라운드에서 실행되어 결과를 나중에 사용하거나 제출할 수 있도록 저장합니다.
구문
XLSForm에서 calculate 질문은 다음과 같이 정의됩니다:
| type | name | label | calculation |
|---|---|---|---|
| calculate | calc_q1 | ${q1} + ${q2} |
- type: 이 질문 유형에는 항상 “calculate"를 사용합니다.
- name: calculate 질문의 고유한 이름.
- label: calculate 질문은 사용자에게 표시되지 않으므로 보통 비워 둡니다.
- calculation: 평가할 수식.
용도
calculate 질문은 일반적으로 다음 용도로 사용됩니다:
- 산술 연산 수행
- 문자열 연결
- 복잡한 로직 또는 함수 적용
- 나중에 사용할 중간 결과 저장
예시
기본 산술
| type | name | calculation |
|-----------|----------|-------------|
| calculate | total | ${price} * ${quantity} |
문자열 연결
| type | name | calculation |
|-----------|----------|-------------|
| calculate | full_name| concat(${first_name}, ' ', ${last_name}) |
함수 사용
| type | name | calculation |
|-----------|----------|-------------|
| calculate | age | int((today() - ${date_of_birth}) / 365.25) |
rtSurvey 고급 사용
pulldata() 함수
rtSurvey는 calculate 필드에서 pulldata() 함수를 지원하며, 외부 CSV 파일에서 데이터를 가져올 수 있습니다:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | city | pulldata('cities', 'city_name', 'zip_code', ${zip_input}) |
구문
pulldata()의 기본 구문은 다음과 같습니다:
pulldata('csv_filename', 'column_to_return', 'key_column', ${matching_value})
- ‘csv_filename’: CSV 파일 이름 (.csv 확장자 제외)
- ‘column_to_return’: 가져올 데이터가 있는 열 이름
- ‘key_column’: 일치 여부를 확인할 열 이름
- ${matching_value}: 키 열에서 찾을 값 (종종 양식의 변수)
중요 참고 사항
- CSV 파일은 설문을 배포할 때 XLSForm과 함께 업로드해야 합니다.
- CSV 파일에서는 세미콜론이 아닌 쉼표를 구분자로 사용합니다.
- 파싱 문제를 방지하기 위해 CSV 데이터 필드 내에 쉼표를 사용하지 않습니다.
- pulldata()는 1대1 관계만 지원합니다. 여러 일치 항목이 발견되면 첫 번째 항목만 반환합니다.
- 가져올 수 있는 텍스트 길이에 제한이 있을 수 있습니다 (약 76자).
- CSV 데이터에 대한 항목을 유효성 검사하기 위해 제약 조건에서 pulldata()를 사용할 수 있습니다.
조건부 계산
조건부 계산에 if() 문을 사용할 수 있습니다:
| type | name | calculation |
|-----------|----------|-------------|
| calculate | discount | if(${total} > 1000, ${total} * 0.1, 0) |
모범 사례
- 양식 가독성을 높이기 위해 calculate 필드에 의미 있는 이름을 사용합니다.
- 단일 필드에서 지나치게 복잡한 계산을 피하고, 필요하다면 분리합니다.
- 복잡한 수식이나 외부 데이터를 사용할 때는 계산을 철저히 테스트합니다.
- calculate 필드는 양식이 평가될 때마다 실행되므로, 매우 복잡하거나 다수의 계산은 성능에 영향을 줄 수 있습니다.
- pulldata()를 사용할 때는 CSV 파일이 올바른 형식인지 확인하고, 특정 데이터와 양식 구조로 철저히 테스트합니다.
제한 사항
- calculate 필드는 사용자가 직접 편집할 수 없습니다.
- calculate 필드의 결과는 표시 필드에서 참조되거나 양식 로직에 사용되지 않으면 즉시 표시되지 않습니다.
이 페이지가 도움이 되었나요?