ArcGIS Survey123에서는 다양한 XLSForm 사양이 지원됩니다. 이 참조 가이드에는 Survey123에서 사용할 수 있는 XLSForm 기능이 요약되어 있습니다. 현장조사는 Survey123 Connect 또는 Survey123 웹사이트에서 생성할 수 있습니다. 몇몇 기능은 한 곳에서만 제공되며 또 다른 몇몇 기능은 Survey 123 Connect와 Survey123에서 모두 사용 가능합니다.
질문 유형
다음 테이블에서는 Survey123 Connect, Survey123 현장 앱, Survey123 웹 디자이너, Survey123 웹 앱에서 사용할 수 있는 질문 유형에 대해 설명합니다. 일부 질문의 경우 플랫폼 간 동작 및 구현에 차이가 있으며, 이러한 차이점은 테이블 뒤의 메모를 참조하세요.
Survey123 Connect 질문 유형 | Survey123 웹 디자이너 질문 유형 | 설명 | Survey123 현장 앱에서 지원됨 | Survey123 웹 앱에서 지원됨 |
---|---|---|---|---|
오디오⁴ | 오디오⁴ ⁶ | 현장 앱에서 오디오 클립을 녹음합니다. 오디오 클립을 녹음하거나 웹 앱에서 업로드된 오디오 파일을 사용합니다. | 예 | 예 |
바코드 | 바코드 또는 QR 코드를 스캔합니다. | 예 | 예 | |
그룹 시작 | 질문 그룹을 시작합니다. | 예 | 예 | |
반복 시작 | N/A | 일련의 반복 질문을 시작합니다. | 예 | 예 |
계산 | N/A | 양식의 값에 대해 계산을 수행합니다. 계산 필드에는 계산 결과가 포함됩니다. | 예 | 예 |
소수¹ | 소수 입력입니다. | 예 | 예 | |
날짜 | 날짜 입력입니다. | 예 | 예 | |
날짜 및 시간 | 날짜와 시간 입력입니다. | 예 | 예 | |
deviceid | N/A | 현장조사가 수행된 특정 기기를 나타내는 UUID입니다. | 예 | 아니요 |
이메일² | N/A | 기관 계정으로 로그인하는 경우 이 질문에는 계정 이메일 주소가 자동으로 채워집니다. | 예 | 예 |
종료 | N/A | 현장조사 종료일과 시간입니다. | 예 | 예 |
그룹 종료 | 질문 그룹을 종료합니다. | 예 | 예 | |
반복 종료 | N/A | 일련의 반복 질문을 종료합니다. | 예 | 예 |
파일 | 기기의 파일을 사용할 수 있습니다. | 예 | 예 | |
지오포인트³ | 제공된 GPS 좌표를 수집합니다. 기본값은 현재 위치입니다. | 예 | 예 | |
지오쉐이프³ | 맵에서 폴리곤을 수집합니다. | 예 | 예 | |
지오추적³ | 맵에서 라인을 수집합니다. | 예 | 예 | |
숨김 | N/A | 양식에 표시되지 않는 피처 레이어 필드를 생성합니다. 이 필드의 데이터 스키마는 bind::esri:fieldType 및 bind::esri:fieldLength 열을 사용하여 지정합니다. | 예 | 예 |
정수¹ | 정수 입력입니다. | 예 | 예 | |
이미지 | 기기의 파일에서 가져온 이미지 또는 직접 촬영한 사진을 사용할 수 있습니다. | 예 | 예 | |
메모 | 화면에 텍스트를 표시합니다. 비고는 숨겨진 계산을 처리할 수도 있습니다. | 예 | 예 | |
범위 | 슬라이더⁶ | 지정된 숫자 범위의 입력입니다. | 예 | 예 |
rank list_name | 순위 질문으로, 선택 항목을 순위대로 나열할 수 있습니다. list_name을 선택 목록의 이름으로 바꿉니다. | 예 | 예 | |
select_one list_name | 선다형 질문으로, 한 개의 답변만 선택할 수 있습니다. list_name을 선택 목록의 이름으로 바꿉니다. | 예 | 예 | |
select_one_from_file file_name.csv | N/A | 선다형 질문으로, 한 개의 답변만 선택할 수 있습니다. file_name.csv를 선택 항목의 목록이 포함된 현장조사의 미디어 폴더에 있는 파일 이름으로 바꿉니다. | 예 | 예 |
select_multiple list_name | 선다형 질문으로, 여러 개의 답변을 선택할 수 있습니다. list_name을 선택 목록의 이름으로 바꿉니다. | 예 | 예 | |
select_multiple_from_file file_name.csv | N/A | 선다형 질문으로, 여러 개의 답변을 선택할 수 있습니다. file_name.csv를 선택 항목의 목록이 포함된 현장조사의 미디어 폴더에 있는 파일 이름으로 바꿉니다. | 예 | 예 |
시작 | N/A | 현장조사 시작일과 시간입니다. | 예 | 예 |
텍스트 | 주소⁶, 이메일⁶, 여러 줄 텍스트⁵ ⁶, 한 줄 텍스트⁶, 웹사이트⁶ | 텍스트 입력입니다. 정규식이 이메일 및 웹사이트에 적용됩니다. 지오코드 모양은 주소에 적용됩니다. | 예 | 예 |
시간 | 시간 입력입니다. | 예 | 예 | |
사용자 이름 | N/A | 기관 계정으로 로그인하는 경우 이 질문에는 계정 사용자 이름이 자동으로 채워집니다. | 예 | 예 |
¹웹 디자이너에서는 정수 질문과 소수 질문이 숫자라는 단일 질문 유형으로 결합되었습니다. 현장조사 디자이너는 질문 등록정보의 체크 박스를 사용하여 필수 입력을 정의할 수 있습니다.
²Survey123 Connect와 Survey123 웹 디자이너에 제공되는 이메일 질문 유형은 서로 다르게 구현됩니다. Survey123 Connect의 구현에서는 사용자가 로그인한 기관 계정의 이메일 주소로 자동으로 채워지는 반면, Survey123 웹 디자이너의 경우 이메일 주소와 일치하는 형식만 허용되는 텍스트 필드로 구현됩니다.
³지오포인트, 지오추적, 지오쉐이프 질문은 맵이라는 단일 질문 유형으로 결합되었습니다. 현장조사 디자이너는 질문 등록정보의 체크 박스를 사용하여 필수 입력을 정의할 수 있습니다. 주소라는 추가 질문 유형을 사용하면 지오코딩된 포인트를 제출할 수 있습니다.
⁴오디오 질문은 웹 앱에서와 같이 Survey123 현장 앱에서 업로드할 수 없습니다. 현장 앱에서 오디오 업로드를 허용하려면 파일 질문을 사용합니다.
⁵Survey123 Connect에 있는 일부 모양은 Survey123 웹 디자이너에서 개별 질문 유형으로 제공됩니다. 여기에는 여러 줄 텍스트, 드롭다운, 리커트 척도가 해당됩니다.
⁶웹 디자이너는 각 질문에 대해 답변 캐싱 옵션을 제공합니다. 웹 앱에서 현장조사 레코드를 제출한 후 질문에 대한 답변이 브라우저에 캐시되며 기기에서 이 현장조사에 대해 작성된 이후 제출 항목에 답변을 미리 불러옵니다. 답변 캐싱은 오디오, 이미지, 파일 업로드, 시그니처를 제외한 모든 질문 유형에 설정할 수 있습니다.
현장조사 워크시트 열
Survey123이 지원하는 열이 다음 테이블에 모두 포함되어 있습니다. 이러한 열은 고급 템플릿의 현장조사 워크시트에 포함되어 있으며 워크시트에 나타나는 순서대로 이 테이블에 나열됩니다.
열 | 설명 |
---|---|
유형 | 제공된 목록에서 질문 유형을 선택합니다. 단답형(select_one)이나 선다형(select_multiple) 질문을 사용할 경우 유효한 목록 이름을 입력합니다. |
이름 | 피처 레이어의 필드 이름입니다. |
레이블 | 현장조사에 표시되는 질문 레이블입니다. |
힌트 | 현장조사 질문에 쉽게 답변할 수 있도록 도와주는 정보입니다. |
안내 힌트 | 아이콘을 눌러야 표시되는 추가 정보입니다. |
모양 | 현장조사 내 해당 필드의 모양을 선택합니다. |
필수 정보 | 현장조사를 완료하기 전에 해당 필드의 값이 필요한 경우 예를 선택합니다. |
필수 정보 메시지 | 필수 필드에 대한 응답이 없는 경우 해당 열의 메시지가 표시되어 답변을 요청합니다. |
읽기 전용 | 해당 필드의 값을 읽기 전용으로 설정하려면 예를 선택합니다. 이러한 값은 현장조사에서 편집할 수 없습니다. |
기본 | 해당 필드의 기본값을 설정합니다. 해당 열은 현장조사를 기본값으로 미리 채웁니다. 따라서 주로 사용되는 답변을 입력하거나 사용할 답변 선택 항목 유형을 표시하여 시간을 절약할 수 있습니다. |
calculation | 이전 질문의 값을 사용하여 계산을 수행합니다(예시: ${number} * 100). 계산 필드를 참조하여 결과를 표시합니다(예시: The answer is ${calc}). |
constraint | 입력 가능한 숫자 범위를 제한합니다(예시: .>0 및 .<100). 해당 열은 모든 질문 유형에 사용할 수 있습니다. |
constraint_message | 제약 조건이 충족되지 않은 경우 해당 메시지가 표시되어 유효한 답변을 요청합니다. |
relevant | 이렇게 하면 이전 질문에 대한 응답에 따라 질문을 건너뛰거나 추가 질문이 나타나도록 설정할 수 있습니다. 관련 열의 조건을 충족하면 질문이 표시됩니다(예시: ${name} = 'value'). 이 열에 의해 숨겨진 질문은 null 값만 제출합니다. |
choice_filter | 계단식 선택을 사용하는 경우 해당 필드에는 선택 항목 탭의 추가 속성 열과 일치하는 식이 포함됩니다(예시: attribute = ${value}). |
repeat_count | 해당 값은 반복에 사용할 수 있는 레코드의 개수를 지정합니다. 반복 개수가 지정된 후에는 레코드를 반복에 추가하거나 반복에서 삭제할 수 없습니다. |
media::audio | 오디오 파일을 프로젝트의 미디어 하위 폴더로 복사하고 오디오 파일 이름(예시: audio.mp3)을 입력하여 질문에 오디오를 제공할 수 있습니다. |
media::image | 이미지 파일을 프로젝트의 미디어 하위 폴더로 복사하고 이미지 파일의 이름(예시: image.jpg)을 입력하여 질문에 이미지를 표시할 수 있습니다. |
bind::type | 질문에 대한 기본 필드 유형을 덮어쓰는 필드 유형입니다. |
bind::esri:fieldType | 피처 레이어의 대상 필드 유형을 정의합니다. 해당 열은 기본 필드 유형을 덮어쓰는 데 사용할 수 있습니다. 예를 들어 기본 설정에 따라 계산 필드와 단답형 필드가 문자열인 경우 피처 레이어의 값을 정수(Integer)로 저장하려면 esriFieldTypeInteger를 선택합니다. |
bind::esri:fieldLength | 피처 레이어의 대상 필드 길이를 정의합니다. 해당 열은 기본 필드 길이를 덮어쓰는 데 사용할 수 있습니다. |
bind::esri:fieldAlias | 피처 레이어의 필드 별칭에 대한 값을 입력합니다. 해당 열은 질문 레이블에서 파생되는 기본 필드 별칭 값을 덮어쓰는 데 사용할 수 있습니다. |
body::esri:style | 질문 스타일 및 동작(예시: 그룹 및 반복의 배경 색상)을 정의하는 식을 입력합니다. |
bind::esri:parameters | Survey123에 특정한 질문에 대한 매개변수를 입력합니다(예시: 현장조사 편집 시 반복 동작을 제어하는 매개변수). |
bind::esri:workflow | 거리 측정기 측정 모드에서 현장조사를 사용할 수 있도록 지원하는 매개변수를 입력합니다. |
매개변수 | 질문에 대한 표준 XLSForm 매개변수를 입력합니다(예시: 범위 질문에 대한 start, end, step 매개변수). |
body::accept | 파일 질문에 허용되는 파일 유형을 설정합니다. 여러 파일 확장자가 쉼표로 구분된 파일 확장자를 허용합니다(예시: .jpg, .png). |
body::esri:visible | 이렇게 하면 이전 질문에 대한 응답에 따라 질문을 건너뛰거나 추가 질문이 나타나도록 설정할 수 있습니다. body::esri:visible 열의 조건을 충족하면 질문이 표시됩니다(예시: ${name} = 'value'). 이 열에 의해 숨겨진 질문은 계속하여 값을 포함하며 제출합니다. |
body::esri:inputMask | 문자와 심볼을 사용하여 데이터 입력에 대한 일련의 형식을 제공하는 입력 마스크를 사용할 수 있도록 식을 입력합니다. |
label::language(xx) | 질문 레이블에 대한 번역을 입력합니다. 언어는 해당 이름과 코드로 지정해야 합니다(예시: label::Español (es)). 각 언어에 대한 새 열을 추가합니다. 언어 목록은 현장조사의 드롭다운 메뉴에서 나타납니다. |
hint::language(xx) | 질문 힌트에 대한 번역을 입력합니다. 언어는 해당 이름과 코드로 지정해야 합니다(예시: hint::Español(es)). 각 언어에 대한 새 열을 추가합니다. 언어 목록은 현장조사의 드롭다운 메뉴에서 나타납니다. |
guidance_hint::language(xx) | 안내 힌트에 대한 번역을 입력합니다. 언어는 해당 이름과 코드로 지정해야 합니다(예시: guidance_hint::Español(es)). 각 언어에 대한 새 열을 추가합니다. 언어 목록은 현장조사의 드롭다운 메뉴에서 나타납니다. |
required_message::language(xx) | 필수 질문에 대한 답변이 없는 경우 표시되는 메시지에 대한 번역을 입력합니다. 언어는 해당 이름과 코드로 지정해야 합니다(예시: required_message::Español(es)). 각 언어에 대한 새 열을 추가합니다. 언어 목록은 현장조사의 드롭다운 메뉴에서 나타납니다. |
body::accuracyThreshold | 위치 값에 대한 임계값(미터 단위)을 입력합니다. 이 수치보다 클 경우 위치 값이 허용되지 않습니다. 지오쉐이프 및 지오추적 질문의 버텍스와 지오포인트에 적용됩니다. |
bind::esri:warning | 조건이 충족되지 않은 경우에 경고를 표시하는 식을 적용합니다. |
bind::esri:warning_message | bind::esri:warning 조건이 충족되지 않은 경우 표시되는 메시지입니다. |
bind::saveIncomplete | 앱에서 질문 후 응답이 자동으로 저장되도록 하려면 true로 설정합니다. |
모양
특정 유형 질문의 모양 열에 다음 값을 입력하여 해당 질문의 모양과 동작을 변경할 수 있습니다. 각 모양에 대한 자세한 내용은 모양을 참고하세요.
모양 | 적용 가능한 질문 유형 | 설명 | Survey123 현장 앱에서 지원됨 | Survey123 웹 앱에서 지원됨 |
---|---|---|---|---|
애노테이트 | 이미지 | 사용자가 스케치할 캔버스 창을 열 수 있습니다(이미지 애노테이션도 지원됨). | 예 | 예 |
autocomplete | 단답형 | 답변 선택 항목이 드롭다운 메뉴로 나타나며 옵션의 범위를 좁히기 위한 텍스트 입력 필드가 함께 표시됩니다. | 예 | 예 |
계산기 | 정수(integer), 소수(decimal) | 이 질문에 대한 사용자 정의 계산기 위젯을 표시합니다. | 예 | 아니요 |
compact | 단답형, 선다형, 그룹 시작, 반복 시작 | 단답형과 선다형 질문의 경우, 공간 효율을 위해 선택 항목을 가로로 제시합니다. 그룹 및 반복의 경우, 시작할 때 질문을 축소된 상태로 표시합니다. 나중에 사용자가 질문을 확장할 수 있습니다. | 예 | 예 |
compact-n | select_one, select_multiple | 공간 효율을 위해 선택 항목을 가로로 제시하며, n은 열의 최대 개수를 지정합니다. 예를 들어, compact-3은 질문의 열을 최대 3개로 제한합니다. | 예 | 예 |
distress | 정수 | 질문을 색상이 지정된 차등제로 표시합니다. | 예 | 아니요 |
그리기 | 이미지 | 사용자가 스케치할 캔버스 창을 열 수 있습니다. | 예 | 예 |
필드 목록 | 그룹 시작, 반복 시작 | 현장조사 스타일이 페이지로 설정된 경우 질문 그룹을 별도의 페이지에 표시합니다. | 예 | 예 |
지오코드 | 텍스트 | 지오코딩된 주소를 검색하고 제출합니다. | 예 | 예 |
getinframarkerid | 텍스트 | 고유한 24자의 InfraMarker 태그 ID를 검색하고 저장합니다. | 예 | 아니요 |
숨김 | 모두 | 뷰에서 질문을 숨기는 한편 기본값과 계산은 계속 사용합니다. | 예 | 예 |
hide-input | 지오포인트 | 웹 앱에서 현장조사를 연 경우 좌표 항목 섹션을 축소합니다. | 아니요 | 예 |
horizontal | select_one, select_multiple | 답변 선택 항목을 수평으로 열을 지어 표시합니다. | 예 | 예 |
horizontal-compact | select_one, select_multiple | 축소 모양과 같습니다. | 예 | 예 |
image-map | select_one, select_multiple | 선택 가능한 영역이 있는 첨부된 .svg 이미지를 표시합니다. | 예 | 아니요 |
inframarker | 텍스트 | InfraMaker 태그에 입력 정보를 작성해야 합니다. | 예 | 아니요 |
likert | 단답형 | 답변 선택 항목을 리커트 척도로 나타냅니다. | 예 | 예 |
최소 | 단답형, 선다형, 바코드, 반복 시작 | 여러 응답(select_one, select_multiple), 여러 질문(반복), 텍스트 상자(바코드)를 숨겨지거나 최소화된 스타일로 표시합니다. | 예 | 예 |
minimal compact | 반복 시작 | 질문을 축소된 방식과 숨겨진 방식 둘 다로 반복에 표시합니다. | 예 | 예 |
month-year | 날짜 | 날짜의 달과 연도만 선택합니다. | 예 | 예 |
다중 행 | 텍스트, 이미지, 파일 | 여러 줄 텍스트 상자로 텍스트 질문을 표시합니다. 이미지 또는 파일 질문에 대해 여러 개의 첨부 파일을 허용합니다. | 예 | 예 |
new-front | 이미지 | 기본 설정에 따라 전면 카메라를 사용하여 사진 촬영으로만 질문을 제한합니다. | 예 | 아니요 |
new-rear | 이미지 | 기본 설정에 따라 후면 카메라를 사용하여 사진 촬영으로만 질문을 제한합니다. | 예 | 아니요 |
눈금 없음(no-ticks) | 범위 | 위치, 최소값 또는 최대값 없이 범위 슬라이더를 표시합니다. | 예 | 예 |
nopredictivetext | 텍스트 | 모바일 기기에 대한 예측 텍스트를 비활성화합니다. | 예 | 아니요 |
숫자 | 정수(integer), 소수(decimal) | 이 질문에 대한 사용자 정의 숫자 키보드를 표시합니다. | 예 | 아니요 |
predictivetext | 텍스트 | 모바일 기기에 대한 예측 텍스트를 활성화합니다. | 예 | 아니요 |
눌러서 찾기 | 지오포인트, 지오추적, 지오쉐이프 | 지오포인트 질문은 사용자가 질문과 상호작용한 후에만 위치를 허용합니다. 지오추적 및 지오쉐이프 질문은 질문과 처음 상호작용할 때 포인트를 취득하지 않고 사용자 위치에 중심이 맞춰집니다. | 지오포인트 한정 | 예 |
거리 측정기 | 텍스트 | 전체 JSON 객체 또는 거리 측정기에서 반환된 지정된 값을 사용합니다. | 예 | 아니요 |
검색 | 텍스트 | 현장조사 미디어 폴더의 CSV 테이블 또는 기존 피처 레이어나 테이블 값으로 선택 목록을 채웁니다. | 예 | 아니요 |
서명 | 이미지 | 서명을 취득할 수 있는 UI를 제공합니다. 서명은 첨부 파일로 기능에 추가됩니다. | 예 | 예 |
spike | 이미지 | Spike 기기 및 Spike 앱이 필요합니다. Spike 통합을 사용하여 사진의 거리와 위치를 측정합니다. | 예 | 아니요 |
spike-full-measure | 이미지 | Spike 기기 및 Spike 앱이 필요합니다. Spike 통합을 사용하여 사진의 거리, 위치, 영역, 길이를 측정합니다. | 예 | 아니요 |
spike-point-to-point | 이미지 | Spike 기기 및 Spike 앱이 필요합니다. Spike 통합을 사용하여 촬영된 두 포인트 간의 거리를 측정합니다. | 예 | 아니요 |
스피너 | 정수(integer), 소수(decimal) | 값을 늘리고 줄이는 버튼을 추가합니다. | 예 | 아니요 |
table-list | 그룹 시작 | 테이블 형식의 공통 선택 목록이 있는 그룹 내에서 일련의 단답형(select_one) 질문을 표시합니다. | 예 | 예 |
thousands-sep | decimal | 1,000단위의 구분 기호를 사용해 답변을 표시합니다. 미리 채워진 답변에만 적용됩니다. | 예 | 아니요 |
week-number | 날짜 | 몇 주차인지 선택합니다. | 예 | 아니요 |
연도 | 날짜 | 날짜의 연도만 선택합니다. | 예 | 예 |
매개변수
XLSForm의 질문 유형 중 일부에는 현장조사에서 질문의 스타일 또는 동작을 제어할 수 있는 추가 매개변수가 있습니다. 이러한 매개변수는 어떤 경우에는 질문 유형이 지원하는 모양을 보완합니다. 각 질문 유형이 지원하는 매개변수의 오버뷰는 XLSForm 매개변수를 참고하세요.
기본값
날짜 질문의 기본 열에 today()를 입력하면 기본값이 오늘 날짜로 설정됩니다.
단답형 질문의 기본값에 대해 선택 항목 이름(선택 항목 레이블이 아님)을 입력합니다.
select_multiple 질문 유형에 대한 응답은 다른 질문과 다르게 설정됩니다. 선택한 각 답변은 선택된 순서대로 입력되며 쉼표로 구분됩니다. 여러 값을 select_multiple 질문의 기본값으로 정의하려면 각 값을 쉼표로 구분합니다(예시: item1,item2,item3).
데이터 유효성 검사
필수 열의 값으로 예를 입력한 경우 을 선택한 경우 해당 설문조사 질문은 질문에 값이 포함되어 있는 경우에만 양식을 완성할 수 있습니다.
연산자
다음 테이블에 나열된 연산자는 제약 조건, 계산, 관련성 열을 포함하여 식을 지원하는 XLSForm 열에서 사용할 수 있습니다.
계산 및 제약 조건에 대한 자세한 내용은 공식을, 관련성 열 사용에 대한 자세한 내용은 양식 식을 참고하세요.
연산자 | 설명 | 예시 |
---|---|---|
. | 현재 답 | .=1 |
+ | 더하기 | ${question_one} + 4 |
- | 빼기 | ${question_one} - 4 |
* | 곱하기 | ${question_one} * 4 |
div | 나누기 | ${question_one} div 4 |
= | 같음 | ${price}=9.80 |
!= | 같지 않음 | ${price}!=9.80 |
< | 다음보다 작음 | ${price}<9.80 |
<= | 다음보다 작거나 같음 | ${price}<=9.80 |
> | 다음보다 큼 | ${price}>9.80 |
>= | 보다 크거나 같음 | ${price}>=9.80 |
and | 및 | ${price}>9.00 and ${price}<9.90 |
mod | 모듈러스(나눈 후 나머지) | ${question_one} mod ${question_two} |
or | 또는 | ${price}=9.80 or ${price}=9.70 |
함수
Survey123에 지원되는 함수는 다음과 같습니다.
함수 | 설명 | 예시 |
---|---|---|
boolean(question, expression, or value) | 제공된 값이 Null이 아니면 true를 반환합니다. boolean-from-string()을 대신 사용하는 것을 권장합니다. 주의:이 함수는 항상 Survey123 웹 앱에서 true를 반환합니다. 대안으로 빈 값을 참고하세요. | boolean(${question_one}) |
boolean-from-string() | 지정된 문자열이 'true' 또는 '1'이면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. | boolean-from-string(${question_one}) |
coalesce(value1, value2) | 비어 있지 않은 첫 번째 값을 반환합니다. 이 함수는 두 개의 값만 지원합니다. | coalesce(${question_one}, ${question_two}) |
concat(value1, value2, …) | 문자열 값의 연결을 반환합니다. | concat(${question_one}, ' and ', ${question_two}) |
contains(string, substring) | 지정된 문자열에 하위 문자열이 포함된 경우 true를 반환합니다. | contains(${question_one}, 'red') |
count(repeat) | 반복 전반의 지정된 질문에 대한 응답 개수를 반환합니다. 자세한 내용은 집계 함수를 참고하세요. 비고:Survey123 현장 앱에서 사용하는 경우, 이 함수는 반복 내부 또는 외부에 배치할 수 있습니다. 함수를 Survey123 웹 앱에서 사용하려는 경우 반복 외부에 배치해야 합니다. 반복 외부의 횟수 값은 반복 내부의 계산에서 참조될 수 있습니다. | count(${question}) |
count-selected(question) | select_one 및 select_multiple 질문에 선택한 답변의 수를 반환합니다. 이 함수는 또한 다중 행 모양을 사용하여 이미지, 오디오, 파일 질문에 대한 첨부 파일 수를 반환합니다. | count-selected(${question_one}) |
date(question, expression, or value) | 시간은 유지하지 않고 숫자 또는 문자열을 날짜 객체로 변환합니다. | date('2017-05-28T04:39:02+10:00') |
date-time(question, expression, or string) | 숫자 또는 문자열을 날짜 객체로 변환합니다. | date-time('2017-05-28T04:39:02+10:00') |
날짜 객체를 소수 날짜-시간 숫자로 변환합니다. | decimal-date-time(${date_question}) | |
decimal-time(question, expression, or string) | 시간 객체를 기기 표준 시간대의 시간(소수 형식)을 나타내는 숫자로 변환합니다. | decimal-time(${time_question}) |
ends-with(string, substring) | 지정된 문자열이 하위 문자열로 끝나는 경우 true를 반환합니다. | ends-with(${question_one}, 'hand.') |
false() | False | false() |
기존 날짜 또는 시간 값을 정의된 형식에 맞춥니다. | format-date(${previous_time}, '%H:%M') | |
if(condition, a, b) | 조건이 true를 평가하면 a;를 반환하고 그렇지 않으면 b를 반환합니다. | if(selected(${question_one}, 'yes') and selected(${question_two}, 'yes'), 'yes', 'no') |
indexed-repeat(질문, 반복, 색인 번호) | 반복 레코드에서 특정 질문의 값을 반환합니다. 자세한 내용은 반복을 참고하세요. | indexed-repeat(${room_no}, ${floor}, 3) |
int(question, expression, or value) | 정수로 변환합니다. 변환은 데이터 유형에 따라 다릅니다. 비고:이 함수가 비어 있는 경우 NaN을 반환하며 질문은 빈 상태로 남게 됩니다. | int(${question_one}) |
join(separator, question) | 반복 내 지정된 질문에 대한 모든 답변을 지정된 구분 기호로 구분하여 연결합니다. | join(',', ${question_in_repeat}) |
jr:choice-name(choice_name, 'question') | 단답형(select_one) 질문에 사용됩니다. 지정된 질문의 선택 항목 이름과 연관된 레이블을 반환합니다. 질문은 따옴표 안에 정의해야 합니다. | jr:choice-name(${select_one}, '${select_one}') |
select_multiple 질문에 사용됩니다. 지정된 질문의 선택 항목 이름과 연관된 레이블을 반환합니다. 개별 답변에 대한 레이블을 추출하는 데 selected-at() 함수를 사용해야 합니다. 질문은 따옴표 안에 정의해야 합니다. | jr:choice-name(selected-at(${select_multiple}, 3), '${select_multiple}') | |
max(value1, value2, ...) | 반복 전반의 지정된 범위 즉 단일 질문의 최대값을 반환합니다. | max(${question_one}, ${question_two}) |
min(value1, value2, ...) | 반복 전반의 지정된 범위 즉 단일 질문의 최소값을 반환합니다. | min(${question_one}, ${question_two}) |
not(expression) | 식이 true를 반환하면 false 값을 반환하고 식이 false를 반환하면 true 값을 반환합니다. | not(selected(., 'yes')) |
now() | 이 인스턴트의 타임스탬프를 반환합니다. 이 함수는 시간 및 날짜와 시간 질문에 사용됩니다. 날짜 질문의 today()와 동일하게 작동합니다. | now() |
number(question, expression, or value) | 숫자로 변환합니다. 변환은 데이터 유형에 따라 다릅니다. 비고:이 함수가 비어 있는 경우 NaN을 반환하며 질문은 빈 상태로 남게 됩니다. | number(${question_one}) |
once() | 질문에 값이 이미 있으면 기존 값을 반환합니다. 이 함수는 양식에서 반복 레코드를 탐색할 때 값이 변경되지 않도록 하기 위해 반복 질문에 random() 또는 uuid()를 사용하는 경우에 유용합니다. | once(uuid()) |
position(..) | 반복 안에 있는 현재 레코드의 색인을 반환합니다. 자세한 내용은 반복을 참고하세요. | position(..) |
pulldata() | 외부 CSV 파일에서 값을 반환합니다. 자세한 내용은 CSV에서 값 가져오기를 참고하세요. | pulldata('users', 'email', 'name', ${respondent_name}) |
pulldata("@exif") | 이미지의 EXIF 메타데이터에서 값을 반환합니다. 자세한 내용은 이미지 메타데이터 추출을 참고하세요. | pulldata("@exif", ${photo}, "GpsLatitude") |
pulldata("@geopoint") | 지오포인트 질문에서 값을 반환합니다. 자세한 내용은 지오포인트 값 추출을 참고하세요. | pulldata("@geopoint", ${location}, "horizontalAccuracy") |
pulldata("@javascript") | 양식에서 JavaScript 함수를 실행하고 결과를 반환합니다. 자세한 내용은 현장조사 양식의 JavaScript 함수를 참고하세요. | pulldata("@javascript", "functions.js", "uniqueID", ${buildings}) |
pulldata("@json") | JSON 객체에서 값을 반환합니다. 자세한 내용은 JSON에서 값 가져오기를 참고하세요. | pulldata("@json", ${json_output}, "attributes.ZIP_CODE") |
pulldata("@layer") | ArcGIS 피처 레이어, 피처 테이블 또는 쿼리 지원 맵 서비스를 쿼리하고 결과를 반환합니다. 자세한 내용은 피처 레이어 쿼리를 참고하세요. | pulldata("@layer", "getRecordAt", "https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/World_Time_Zones/FeatureServer/0", ${location}) |
pulldata("@property") | 기기 또는 로그인한 사용자에 대한 정보를 반환합니다. 자세한 내용은 기기 및 사용자 등록정보를 참고하세요. | pulldata("@property", 'username') |
random() | 0(포함)에서 1(제외) 사이의 무작위 값을 반환합니다. | random() |
regex() | 질문의 입력에 정규식을 적용합니다. 패턴이 일치하는 경우 true를 반환합니다. 자세한 내용은 정규식을 참고하세요. | regex(., '^\d{5}$') |
selected(question, value) | 답변을 선택했는지 확인합니다. 이 함수는 단답형 및 선다형 질문에 사용됩니다. | selected(${question_one}, 'a') |
selected-at(question, number) | select_multiple 질문에 사용됩니다. 지정된 숫자에 대한 선택 항목의 이름을 반환하며 계산은 0에서부터 시작합니다. 예를 들어 '2'의 경우 세 번째 선택 항목을 반환합니다. | selected-at(${question_one}, 2) |
starts-with(string, substring) | 지정된 문자열이 하위 문자열로 시작하는 경우 true를 반환합니다. | starts-with(${question_one}, 'The') |
string(question, expression, or value) | 문자열로 변환합니다. 변환은 데이터 유형에 따라 다릅니다. | string(${question_one}) |
string-length(question, expression, or value) | 비어 있지 않은 문자열의 길이를 반환합니다. | string-length(${question_one}) |
substr(question, start, end) | 특정 시작의 하위 문자열 시작을 반환하고 지수 끝 -1의 문자로 확장합니다. 여기서 시작과 끝이 0에서 시작합니다. | substr(${question_one}, 1, 2) |
sum(repeat) | 반복 전반의 지정된 질문에 대한 모든 응답의 합을 반환합니다. 자세한 내용은 집계 함수를 참고하세요. 비고:Survey123 현장 앱에서 사용하는 경우, 이 함수는 반복 내부 또는 외부에 배치할 수 있습니다. 함수를 Survey123 웹 앱에서 사용하려는 경우 반복 외부에 배치해야 합니다. 반복 외부의 합계 값은 반복 내부의 계산에서 참조될 수 있습니다. | sum(${question}) |
today() | 현지 정오로 내부에 저장되어 있는 오늘 날짜를 반환합니다. 이 함수는 날짜 질문에 사용됩니다. | today() |
true() | True | true() |
uuid() | 무작위 UUID 문자열을 반환합니다. | uuid() |
version() | 설정 워크시트에 정의된 설문조사의 버전을 반환합니다. | version() |
Survey123에서는 다음과 같은 계산 함수가 지원됩니다.
함수 | 설명 | 예시 |
---|---|---|
acos(value) | 값의 아크 코사인을 반환합니다. | acos(${question_one}) |
asin(value) | 값의 아크 사인을 반환합니다. | asin(${question_one}) |
atan(value) | 값의 아크 탄젠트를 반환합니다. | atan(${question_one}) |
atan2(value1, value2) | 값의 몫에 대한 아크 탄젠트를 반환합니다. | atan2(${question_one}, ${question_two}) |
cos(value) | 값의 코사인을 라디안 단위 각도로 반환합니다. | cos(${question_one}) |
sin(value) | 값의 사인을 라디안 단위 각도로 반환합니다. | sin(${question_one}) |
tan(value) | 값의 탄젠트를 라디안 단위 각도로 반환합니다. | tan(${question_one}) |
exp(value) | 값의 자연 지수를 반환합니다. | exp(${question_one}) |
exp10(value) | 10의 거듭제곱 값을 반환합니다. | exp10(${question_one}) |
log(value) | 값의 자연 로그를 반환합니다. | log(${question_one}) |
log10(value) | 값의 상용 로그를 반환합니다. | log10(${question_one}) |
pi() | pi를 반환합니다. | pi() |
pow(value, power) | 지정된 값으로 거듭제곱한 값을 반환합니다. | pow(${question_one}, 3) |
round(value, places) | 반올림 값을 반환합니다. | round(${question_one}, 5) |
sqrt(value) | 값의 제곱근을 반환합니다. | sqrt(${question_one}) |
HTML 서식
HTML 서식은 질문 레이블과 힌트, 선택 항목 목록의 레이블에 사용할 수 있습니다. 다음과 같은 HTML 서식이 지원됩니다.
태그 | 속성 |
---|---|
a | href, style |
abbr | title |
audio¹ | autoplay, controls, loop, muted, preload |
b, strong, i, em, u, ul, ol, li, tbody, br, hr | |
dd, dl, dt | style |
div¹ | style, align |
figcaption | style |
figure | style |
font | size, color, style |
h1, h2, h3, h4, h5, h6 | style |
img | src, width, height, border, alt, style |
p | style |
source¹ | media, src, type |
span | style |
sub | style |
sup | style |
table | width, height, cellpadding, cellspacing, border, style |
td, th | height, width, valign, align, colspan, rowspan, nowrap, style |
tr | height, valign, align, style |
video¹ | autoplay, controls, height, loop, muted, poster, preload, width |
¹Survey123 웹 앱에서만 지원됩니다.
팁:
기본 설정에 따라 Survey123 웹 앱에 열려 있는 HTML 서식으로 생성된 하이퍼링크를 클릭하면 현장조사와 동일한 탭에 목적지가 열립니다. 새 탭에 이 링크를 열려면 target="_blank"를 a href 태그에 추가합니다. 예시는 다음과 같습니다.
<a href="https://www.esri.com" target="_blank">Link to Esri website</a>
정규식
정규식은 검색 패턴을 정의하는 문자 시퀀스입니다. 질문에 이러한 정규식을 사용하여 다른 질문을 기반으로 하는 값을 구하거나 데이터 입력을 제한할 수 있습니다. 정규식은 다음 테이블에 나와 있는 하위식을 사용하여 만들 수 있습니다. 자세한 내용은 공식을 참고하세요.
하위식 | 일치 |
---|---|
^ | 라인의 시작 문자와 일치합니다. |
$ | 라인의 끝 문자와 일치합니다. |
. | 줄 바꿈 문자 이외 임의의 단일 문자와 일치합니다. |
[...] | 괄호 안 임의의 단일 문자와 일치합니다. |
[^...] | 괄호 안 문자가 아닌 임의의 단일 문자와 일치합니다. |
(re) | 정규식을 그룹화하고 일치된 텍스트를 기억합니다. |
(?: re) | 정규식을 그룹화하고 일치된 텍스트를 기억하지 않습니다. |
a| b | a 또는 b와 일치합니다. |
\A | 전체 문자열의 첫 문자입니다. |
\b | 괄호 외부인 경우 단어 경계와 일치하고, 괄호 내부인 경우 백스페이스(0x08)와 일치합니다. |
\B | 단어가 아닌 경계와 일치합니다. |
\d | 숫자와 일치합니다. [0~9]와 같습니다. |
\D | 숫자가 아닌 문자와 일치합니다. |
\G | 마지막 일치가 끝난 지점과 일치합니다. |
\n, \t, \e 등 | 새 행, 탭, 이스케이프 등과 일치합니다. |
\N | 그룹 번호 N을 캡처하는 역참조입니다. |
re* | 이전 식의 0회 이상의 발생과 일치합니다. |
re+ | 이전 식의 1회 이상의 발생과 일치합니다. |
re? | 이전 식의 0회 또는 1회 발생과 일치합니다. |
re{ n} | 이전 식의 정의된 n회 발생과 일치합니다. |
re{ n,} | 이전 식의 n회 이상의 발생과 일치합니다. |
re{ n, m} | 이전 식의 정의된 n회 이상, m회 이하의 발생과 일치합니다. |
\s | 공백 문자와 일치합니다(탭, 라인 피드, 폼 피드, 캐리지 리턴 또는 공백). |
\S | 공백이 아닌 문자와 일치합니다. |
\w | 단어 문자와 일치합니다. |
\W | 단어가 아닌 문자와 일치합니다. |
\z | 전체 문자열의 마지막 문자입니다. |
\Z | 허용되는 최종 라인 종결자를 제외한 전체 문자열의 마지막 문자입니다. |
예를 들어 regex(.,'^[A-Za-z]*$') 정규식의 경우 사용자는 숫자나 특수 문자를 제외한 문자만 문자열 질문에 입력할 수 있습니다.
Esri 필드 유형
bind::esri:fieldType 열을 사용하면 기본 필드 유형을 다음 값 중 하나로 덮어쓸 수 있습니다. 자세한 내용은 Esri 사용자 설정 열을 참고하세요.
필드 값 | 결과 |
---|---|
esriFieldTypeDate | 날짜 및 시간 값 |
esriFieldTypeDateOnly | 시간 값 없이 날짜 값만 |
esriFieldTypeTimeOnly | 날짜 값 없이 시간 값만 |
esriFieldTypeTimestampOffset | 협정 세계시(UTC)로부터의 날짜, 시간, 오프셋 값 |
esriFieldTypeDouble | 2배 정밀도 부동 소수점 수 |
esriFieldTypeGUID | GUID(Globally Unique Identifier) |
esriFieldTypeInteger | 숫자(32비트) |
esriFieldTypeBigInteger | 다음으로부터의 숫자(64비트) |
esriFieldTypePointZ | 지오포인트의 고도 캡처 활성화 |
esriFieldTypeString | 일련의 영숫자 심볼 |
null | Null 필드이며, 값을 저장하지 않습니다. |
특수 문자
질문 이름 및 선택 이름은 공백, 쉼표, 하이픈, 괄호, 중괄호 같은 특수 문자 또는 $, %, # 등의 문자를 포함할 수 없습니다. select_multiple 질문의 선택 이름에는 공백이나 쉼표가 포함되지 않는 것이 중요합니다.