Aplikacja ArcGIS Survey123 obsługuje wiele specyfikacji XLSForm. Niniejszy przewodnik zawiera podsumowanie obiektów XLSForm, których można używać w aplikacji Survey123. Ankiety można tworzyć w aplikacji Survey123 Connect lub witrynie Survey123 — niektóre obiekty są dostępne tylko w aplikacji lub tylko w witrynie, a inne są dostępne zarówno w aplikacji, jak i w witrynie.
Typy pytań
Poniższa tabela zawiera opis typów pytań, które są dostępne w aplikacji Survey123 Connect, aplikacji terenowej Survey123, w kreatorze internetowym Survey123 i aplikacji internetowej Survey123. W przypadku niektórych pytań występują różnice w zachowaniu i implementacji na różnych platformach. Różnice są podane w uwagach po tabeli.
Typ pytania Survey123 Connect | Typ pytania w kreatorze internetowym Survey123 | Opis | Obsługiwane w aplikacji terenowej Survey123 | Obsługiwane w aplikacji internetowej Survey123 |
---|---|---|---|---|
audio⁴ | Dźwięk⁴ ⁶ | Nagrywa klip dźwiękowy w aplikacji terenowej. Nagrywa klip dźwiękowy lub akceptuje przesłany plik dźwiękowy w aplikacji internetowej. | Tak | Tak |
barcode | Skanuje kod kreskowy lub kod QR. | Tak | Tak | |
begin group | Rozpoczyna grupę pytań. | Tak | Tak | |
begin repeat | Brak | Rozpoczyna zestaw pytań powtarzalnych. | Tak | Tak |
oblicz | Brak | Wykonuje obliczenia na wartościach w formularzu. Pole calculate (oblicz) zawiera wynik obliczeń. | Tak | Tak |
decimal¹ | Dane wejściowe w postaci dziesiętnej. | Tak | Tak | |
date (data) | Dane wejściowe w postaci daty. | Tak | Tak | |
dateTime | Dane wejściowe w postaci daty i czasu. | Tak | Tak | |
deviceid | Brak | Identyfikator UUID reprezentujący konkretne urządzenie, na którym wypełniono ankietę. | Tak | Nie |
email² | Brak | Po zalogowaniu się na koncie instytucji to pytanie zostanie automatycznie wypełnione adresem e-mail konta. | Tak | Tak |
end | Brak | Data i czas ukończenia ankiety. | Tak | Tak |
end group | Kończy grupę pytań. | Tak | Tak | |
end repeat | Brak | Kończy zestaw pytań powtarzalnych. | Tak | Tak |
plik | Akceptuje plik na urządzeniu. | Tak | Tak | |
geopoint³ | Zbiera określone współrzędne GPS. Wartością domyślną jest lokalizacja bieżąca. | Tak | Tak | |
geoshape³ | Rejestruje poligon na mapie. | Tak | Tak | |
geotrace³ | Rejestruje linię na mapie. | Tak | Tak | |
ukryte | Brak | W warstwie obiektowej tworzy pole, które nie jest wyświetlane na formularzu. Użyj kolumn bind::esri:fieldType i bind::esri:fieldLength, aby określić schemat danych dla tego pola. | Tak | Tak |
integer¹ | Dane wejściowe w postaci liczby całkowitej. | Tak | Tak | |
image | Akceptuje obraz z plików na urządzeniu lub bezpośrednio zrobione zdjęcie. | Tak | Tak | |
note | Wyświetla tekst na ekranie. Notatka może także zawierać ukryte obliczenia. | Tak | Tak | |
zakres | Suwak⁶ | Dane wejściowe w podanym zakresie liczbowym. | Tak | Tak |
rank list_name | Pytanie typu ranking; porządkuje listę możliwości wyboru. Zastąp list_name nazwą listy wyboru. | Tak | Tak | |
select_one list_name | Menu rozwijane⁵ ⁶, Skala Likerta⁵ ⁶, Ocena⁶, Wybór pojedynczy⁶, Siatka typu Wybór pojedynczy⁶ | Pytanie z wieloma możliwościami odpowiedzi, można wybrać tylko jedną odpowiedź. Zastąp list_name nazwą listy wyboru. | Tak | Tak |
select_one_from_file file_name.csv | Brak | Pytanie z wieloma możliwościami odpowiedzi, można wybrać tylko jedną odpowiedź. Zastąp file_name.csv nazwą pliku znajdującego się w folderze multimediów ankiety, który zawiera listę możliwości wyboru. | Tak | Tak |
select_multiple list_name | Pytanie z wieloma możliwościami odpowiedzi, można wybrać wiele odpowiedzi. Zastąp list_name nazwą listy wyboru. | Tak | Tak | |
select_multiple_from_file file_name.csv | Brak | Pytanie z wieloma możliwościami odpowiedzi, można wybrać wiele odpowiedzi. Zastąp file_name.csv nazwą pliku znajdującego się w folderze multimediów ankiety, który zawiera listę możliwości wyboru. | Tak | Tak |
start | Brak | Data i czas rozpoczęcia ankiety. | Tak | Tak |
text | Adres⁶, Adres e-mail⁶, Tekst wielowierszowy⁵ ⁶, Tekst jednowierszowy⁶, Witryna⁶ | Odpowiedź tekstowa. Do adresu e-mail i witryny jest stosowane wyrażenie regularne. Do adresu stosowany jest wygląd geocode (geokodowanie). | Tak | Tak |
czas | Dane wejściowe w postaci czasu. | Tak | Tak | |
username | Brak | Po zalogowaniu się na koncie instytucji to pytanie zostanie automatycznie wypełnione nazwą użytkownika konta. | Tak | Tak |
¹Kreator internetowy łączy pytania typu integer (liczba całkowita) i decimal (wartość dziesiętna) w jeden typ pytania o nazwie Number (liczba). Pole wyboru we właściwościach pytania umożliwia projektantowi ankiety zdefiniowanie, jakie dane wejściowe są wymagane.
²Typy pytań email (adres e-mail) udostępnione w aplikacji Survey123 Connect i w kreatorze internetowym Survey123 są różnie zaimplementowane. Implementacja w aplikacji Survey123 Connect jest zapełniana automatycznie adresem e-mail konta instytucji, do którego jest zalogowany użytkownik. Implementacja w kreatorze internetowym Survey123 jest natomiast polem tekstowym, które przyjmuje tylko formatowanie dopasowane do adresu e-mail.
³Pytania typu geopoint (punkt geograficzny), geotrace (ślad geograficzny) i geoshape (kształt geograficzny) zostały połączone w jeden typ pytania o nazwie map (mapa). Pole wyboru we właściwościach pytania umożliwia projektantowi ankiety zdefiniowanie, jakie dane wejściowe są wymagane. Dodatkowy typ pytania o nazwie address (adres) pozwala na przesyłanie punktów geokodowanych.
⁴Pytania typu audio nie pozwalają na przesyłanie w aplikacji terenowej Survey123 tak jak w aplikacji internetowej. Aby pozwolić na przesyłanie dźwięku w aplikacji terenowej, użyj pytania typu file (plik).
⁵Kilka wyglądów dostępnych w aplikacji Survey123 Connect jest natomiast dostępnych jako oddzielne typy pytań w kreatorze internetowym Survey123. Dotyczy to typów: Tekst wielowierszowy, Menu rozwijane poziome i Skala Likerta.
⁶Dla każdego pytania kreator internetowy udostępnia możliwość zapisania odpowiedzi w pamięci podręcznej. W aplikacji internetowej po przesłaniu rekordu ankiety odpowiedź na pytanie zostanie zapisana w pamięci podręcznej przeglądarki i wstępnie wczytana do następnego przesłania w ramach tej ankiety na danym urządzeniu. Zapisywanie odpowiedzi w pamięci podręcznej może być skonfigurowane dla wszystkich typów pytań z wyjątkiem typów Dźwięk, Obraz, Przesłanie pliku i Podpis.
Kolumny arkusza ankiety
Poniższa tabela zawiera wszystkie kolumny obsługiwane w aplikacji Survey123. Te kolumny są zawarte w arkuszu ankiety w szablonie zaawansowanym i są wymienione w tej tabeli w kolejności, w jakiej występują w arkuszu.
Kolumna | Opis |
---|---|
typ | Wybierz typ pytania z udostępnionej listy. Wprowadź prawidłową nazwę listy, jeśli używane jest pytanie typu select_one (wybierz jedną) lub select_multiple (wybierz wiele). |
name | Nazwa pola w warstwie obiektowej. |
label | Etykieta pytania wyświetlana w ankiecie. |
hint | Informacje ułatwiające udzielenie odpowiedzi na pytanie ankiety. |
guidance_hint | Dodatkowe informacje wyświetlane po wybraniu ikony. |
appearance | Ustala wygląd tego pola w ankiecie. |
required | Wybierz opcję tak, aby wartość w tym polu była wymagana przy wypełnianiu ankiety. |
required_message (wymagany komunikat) | Gdy w wymaganym polu nie zostanie podana odpowiedź, zostanie wyświetlony komunikat zdefiniowany w tej kolumnie monitujący o podanie odpowiedzi. |
readonly | Wybierz opcję tak, aby skonfigurować wartości w tym polu jako tylko do odczytu. Wartości tych nie będzie można edytować w ankiecie. |
default | Konfiguruje wartość domyślną dla tego pola. Powoduje wstępne wypełnienie ankiety wartością domyślną. Pozwala to zaoszczędzić czas poprzez udzielenie często stosowanej odpowiedzi lub przez wskazanie oczekiwanego typu odpowiedzi. |
calculation | Przeprowadza obliczenia z wykorzystaniem wartości zawartych w poprzednich pytaniach (na przykład ${number} * 100). Wskazuje pole obliczeniowe wyświetlające wynik (na przykład The answer is ${calc}). |
constraint | Ogranicz zakres liczb, które można wprowadzać (na przykład .>0 i .<100). Ograniczenia można używać w pytaniach wszystkich typów. |
constraint_message | Gdy warunki w ograniczeniu nie są spełnione, zostanie wyświetlony komunikat z prośbą o podanie prawidłowej odpowiedzi. |
relevant | Umożliwia pomijanie pytań lub wyświetlanie pytań dodatkowych na podstawie odpowiedzi udzielonej na poprzednie pytanie. Pytanie staje się widoczne, jeśli spełnia warunki określone w kolumnie relevant (odpowiednie) (na przykład ${name} = 'value'). Pytanie ukryte przez tę kolumnę przesyła tylko wartości puste. |
choice_filter | Przy stosowaniu kaskadowych wyborów w polu tym przechowywane jest wyrażenie łączące dodatkowe kolumny atrybutów w tabeli możliwości wyboru (na przykład attribute = ${value}). |
repeat_count | Ta wartość określa dopuszczalną liczbę rekordów w powtórzeniu. Po określeniu liczby powtórzeń nie można dodawać ani usuwać rekordów w powtórzeniu. |
media::audio | Skopiuj plik dźwiękowy do podfolderu multimediów w projekcie i wpisz nazwę tego pliku (na przykład audio.mp3), aby w pytaniu umieścić materiał dźwiękowy. |
media::image | Skopiuj plik obrazu do podfolderu multimediów w projekcie i wpisz nazwę tego pliku (na przykład obraz.jpg), aby w pytaniu wyświetlić obraz. |
bind::type | Typ pola zastępujący domyślny typ pola w pytaniu. |
bind::esri:fieldType | Definiuje docelowy typ pola w warstwie obiektowej. Umożliwia zastąpienie domyślnego typu pola (na przykład pola calculate i select_one domyślnie mają typ ciągu znakowego. Aby w warstwie obiektowej zapisywać wartości jako liczby całkowite, wybierz typ esriFieldTypeInteger). |
bind::esri:fieldLength | Definiuje docelową długość pola w warstwie obiektowej. Umożliwia zastąpienie domyślnej długości pola. |
bind::esri:fieldAlias | Określa wartość aliasu pola w warstwie obiektowej. Umożliwia zastąpienie domyślnych wartości aliasu pola pochodzących z etykiety pytania. |
body::esri:style | Definiuje wyrażenie określające styl i zachowanie pytania (na przykład kolor tła dla grup i powtórzeń). |
bind::esri:parameters | Definiuje parametry pytania właściwe dla aplikacji Survey123 (na przykład funkcjonowanie powtórzeń w trakcie edycji ankiety). |
bind::esri:workflow | Zapewnia parametry umożliwiające udostępnienie ankiety w trybie pomiaru dalmierzem. |
parameters | Definiuje standardowe parametry XLSForm dla pytania, na przykład start, end i step dla pytania typu range (zakres). |
body::accept | Określa typy plików akceptowane dla pytania typu file (plik). Akceptuje rozszerzenia nazw plików, przy czym wiele rozszerzeń nazw plików oddzielane jest przecinkami (np. .jpg, .png). |
body::esri:visible | Umożliwia pomijanie pytań lub wyświetlanie pytań dodatkowych na podstawie odpowiedzi udzielonej na poprzednie pytanie. Pytanie staje się widoczne, jeśli spełnia warunki określone w kolumnie body::esri:visible (na przykład ${name} = 'value'). Pytanie ukryte przez tę kolumnę nadal zawiera i przesyła wartości. |
body::esri:inputMask | Definiuje wyrażenie służące jako maska wejściowa ustalonego formatu wprowadzanych danych określona przy użyciu znaków i symboli. |
label::language (xx) | W tym miejscu należy umieścić tłumaczenie etykiet pytań. Język należy zdefiniować za pomocą nazwy i kodu (na przykład label::Español (es)). Dla każdego języka należy dodać nową kolumnę. Lista języków wyświetlana jest w menu rozwijanym w ankiecie. |
hint::language (xx) | W tym miejscu należy umieścić tłumaczenie wskazówek dotyczących pytań. Język należy zdefiniować za pomocą nazwy i kodu (na przykład hint::Español (es)). Dla każdego języka należy dodać nową kolumnę. Lista języków wyświetlana jest w menu rozwijanym w ankiecie. |
guidance_hint::language (xx) | W tym miejscu należy umieścić tłumaczenie wskazówek. Język należy zdefiniować za pomocą nazwy i kodu (na przykład guidance_hint::Español (es)). Dla każdego języka należy dodać nową kolumnę. Lista języków wyświetlana jest w menu rozwijanym w ankiecie. |
required_message::language (xx) | Podaj tłumaczenie komunikatu, który pojawia się w przypadku braku odpowiedzi na wymagane pytanie. Język należy zdefiniować za pomocą nazwy i kodu (na przykład required_message::Español (es)). Dla każdego języka należy dodać nową kolumnę. Lista języków wyświetlana jest w menu rozwijanym w ankiecie. |
body::accuracyThreshold | Podaj wartość liczbową progu (w metrach), powyżej którego wartości pozycji nie będą akceptowane. Dotyczy punktów geograficznych i wierzchołków pytań typu geoshape (kształt geograficzny) i geotrace (ślad geograficzny). |
bind::esri:warning | Stosuje wyrażenie powodujące wyświetlanie ostrzeżeń w przypadku, gdy warunki nie są spełnione. |
bind::esri:warning_message | Komunikat wyświetlany, gdy nie są spełnione warunki wyrażenia bind::esri:warning. |
bind::saveIncomplete | Skonfiguruj jako true (prawda), jeśli aplikacja ma automatycznie zapisywać odpowiedź na pytanie. |
Wyglądy
Poniższe wartości można wprowadzać w kolumnie wyglądu dla konkretnych typów pytań, aby zmienić sposób ich wyświetlania lub działania. Więcej informacji zawiera sekcja Wygląd.
Wygląd | Odpowiedni typ pytania | Opis | Obsługiwane w aplikacji terenowej Survey123 | Obsługiwane w aplikacji internetowej Survey123 |
---|---|---|---|---|
annotate (komentarz) | image | Umożliwia użytkownikowi otwarcie okna, w którym można szkicować. Obsługuje ono także opisy na obrazach. | Tak | Tak |
autocomplete (automatyczne uzupełnianie) | select_one | Możliwości wyboru odpowiedzi są wyświetlane w menu rozwijanym z danymi wejściowymi w postaci tekstu w celu zmniejszenia liczby dostępnych opcji. | Tak | Tak |
calculator (kalkulator) | integer, decimal | Wyświetla niestandardowy widżet kalkulatora dla tego pytania. | Tak | Nie |
compact | select_one, select_multiple, begin group, begin repeat | W przypadku pytań select_one i select_multiple prezentuje wybory poziomo w sposób oszczędzający miejsce. W przypadku grup i powtórzeń po uruchomieniu pytania są prezentowane w postaci zwiniętej i mogą zostać rozwinięte przez użytkownika. | Tak | Tak |
compact-n | select_one, select_multiple | Prezentuje wybory poziomo w sposób oszczędzający miejsce, a maksymalna liczba kolumn jest określona za pomocą wartości n. Na przykład compact-3 ogranicza pytanie do maksymalnie trzech kolumn. | Tak | Tak |
distress | liczba całkowita | Wyświetla pytanie w postaci kolorowej skali przesuwnej. | Tak | Nie |
draw (rysuj) | image | Umożliwia użytkownikowi otwarcie okna, w którym można szkicować. | Tak | Tak |
field-list | begin group, begin repeat | Wyświetla grupę pytań na osobnej stronie, gdy styl ankiety został skonfigurowany jako Strony. | Tak | Tak |
geokodowanie | text | Wyszukanie i przesłanie geokodowanego adresu. | Tak | Tak |
getinframarkerid | text | Pobierz i zapisz unikalny 24-znakowy identyfikator znacznika InfraMarker. | Tak | Nie |
ukryte | Wszystkie | Ukrywa pytanie w widoku, jednak w pytaniu nadal są akceptowane wartości domyślne i obliczenia. | Tak | Tak |
hide-input (ukryj-dane-wejściowe) | geopoint | Zwija sekcję wpisów współrzędnych, gdy ankieta jest otwarta w aplikacji internetowej. | Nie | Tak |
horizontal (poziomo) | select_one, select_multiple | Wyświetla możliwości wyboru odpowiedzi poziomo i w kolumnach. | Tak | Tak |
horizontal-compact | select_one, select_multiple | Tak samo, jak w przypadku wyglądu kompaktowego (compact). | Tak | Tak |
image-map | select_one, select_multiple | Wyświetla dołączony obraz .svg z możliwymi do wybrania regionami. | Tak | Nie |
inframarker | text | Podaj informacje, które mają zostać zapisane w znaczniku InfraMaker. | Tak | Nie |
likert | select_one | Wyświetla możliwości wyboru odpowiedzi w postaci skali Likerta. | Tak | Tak |
minimal (minimalne) | select_one, select_multiple, barcode, begin repeat | Przedstawia wiele odpowiedzi (select_one, select_multiple), wiele pytań (repeats) i pole tekstowe (barcode) w postaci ukrytej lub zminimalizowanej. | Tak | Tak |
minimal compact | begin repeat | Przedstawia pytania w powtórzeniu w postaci zwiniętej (compact) i ukrytej (minimal). | Tak | Tak |
month-year (miesiąc-rok) | date (data) | Wybiera tylko miesiąc i rok dla daty. | Tak | Tak |
multiline (wielowierszowe) | text, image, file | Przedstawia pytanie typu text (tekst) jako wielowierszowe pole tekstowe. Obsługuje wiele załączników w przypadku pytania typu image (obraz) lub file (plik). | Tak | Tak |
new-front (nowy-przedni) | image | Ogranicza pytanie tylko do zrobienia zdjęcia za pomocą aparatu przedniego jako domyślnego. | Tak | Nie |
new-rear (nowy-tylny) | image | Ogranicza pytanie tylko do zrobienia zdjęcia za pomocą aparatu tylnego jako domyślnego. | Tak | Nie |
no-ticks | zakres | Wyświetla suwak zakresu bez pozycji, wartości minimalnych i maksymalnych. | Tak | Tak |
nopredictivetext (bez przewidywania tekstu) | text | Wyłącza funkcję przewidywania tekstu dla urządzeń przenośnych. | Tak | Nie |
numbers (liczby) | integer, decimal | Wyświetla niestandardową klawiaturę numeryczną dla tego pytania. | Tak | Nie |
predictivetext (tekst przewidywany) | text | Włącza funkcję przewidywania tekstu dla urządzeń przenośnych. | Tak | Nie |
press-to-locate | geopoint (geopunkt), geotrace (ślad geograficzny), geoshape (kształt geograficzny) | W pytaniach typu geopoint (geopunkt) lokalizacja jest akceptowana tylko wtedy, gdy użytkownik wykona operacje na pytaniu. W przypadku pytań typu geotrace (ślad geograficzny) lub geoshape (kształt geograficzny) lokalizacja użytkownika zostaje wyśrodkowana podczas pierwszej interakcji z pytaniem, nie jest natomiast rejestrowany punkt. | Tylko geopoint (punkt geograficzny) | Tak |
rangefinder | text | Akceptuje albo pełny obiekt JSON, albo określoną wartość zwracaną z dalmierza. | Tak | Nie |
wyszukiwanie | text | Zapełnia listę wyboru wartościami z tabeli CSV w folderze media ankiety lub z istniejącej warstwy obiektowej albo tabeli. | Tak | Nie |
Podpis | image | Wyświetla interfejs użytkownika służący do przechwytywania podpisu. Podpis jest dodawany do obiektu jako załącznik. | Tak | Tak |
spike | image | Wymaga urządzenia Spike i aplikacji Spike. Wykorzystuje integrację z systemem Spike do pomiaru odległości i lokalizacji na zdjęciu. | Tak | Nie |
spike-full-measure | image | Wymaga urządzenia Spike i aplikacji Spike. Wykorzystuje integrację z systemem Spike do pomiaru odległości, lokalizacji, obszaru i długości na zdjęciu. | Tak | Nie |
spike-point-to-point | image | Wymaga urządzenia Spike i aplikacji Spike. Wykorzystuje integrację z systemem Spike do pomiaru odległości między dwoma sfotografowanymi punktami. | Tak | Nie |
spinner | integer, decimal | Dodaje przyciski umożliwiające zwiększenie lub zmniejszenie wartości. | Tak | Nie |
table-list | begin group | Prezentuje zestaw pytań typu select_one (wybierz jedną) wewnątrz grupy ze wspólną listą wyboru w formie tabeli. | Tak | Tak |
thousands-sep (sep-tysięcy) | decimal | Wyświetla odpowiedzi z separatorami tysięcy. Dotyczy tylko wstępnie wypełnionych odpowiedzi. | Tak | Nie |
week-number (numer-tygodnia) | date (data) | Wybiera numer tygodnia. | Tak | Nie |
year (rok) | date (data) | Wybiera tylko rok dla daty. | Tak | Tak |
Parametry
Niektóre typy pytań w formularzu XLSForm zawierają dodatkowe parametry pozwalające sterować stylem lub zachowaniem pytań w ankiecie. W niektórych przypadkach te parametry uzupełniają wyglądy obsługiwane przez typ pytania. Informacje ogólne na temat parametrów obsługiwanych przez poszczególne typy pytań zawiera sekcja Parametry XLSForm.
Wartości domyślne
Wprowadzenie wartości today() w kolumnie default (wartość domyślna) pytania typu date powoduje ustawienie wartości domyślnej na bieżącą datę.
Wprowadź wybór name (nazwa) — nie wybór label (etykieta) — dla domyślnych wartości pytań typu select_one (wybierz jedną).
Odpowiedzi na pytania typu select_multiple (wybierz wiele) działają inaczej niż w przypadku innych typów. Każda zaznaczona odpowiedź jest wprowadzana w kolejności, w jakiej została wybrana, a do rozdzielania odpowiedzi używane są przecinki. Aby zdefiniować wiele wartości jako wartości domyślne w pytaniu select_multiple, rozdziel je przecinkami, na przykład element1,element2,element3.
Weryfikacja danych
Wprowadzenie wartości yes (tak) w kolumnie required (wymagane) powoduje, że pytanie musi zawierać wartość, aby można było ukończyć wypełnianie formularza.
Operatory
Operatorów podanych w poniższej tabeli można używać w kolumnach XLSForm, które obsługują wyrażenia, włącznie z kolumnami constraint (ograniczenie), calculation (obliczenie) oraz relevant (odpowiednie).
Więcej informacji o obliczeniach i ograniczeniach zawiera sekcja Formuły, a informacje o używaniu kolumny relevant (odpowiednie) można znaleźć w sekcji Wyrażenia formularzy.
Operator | Opis | Przykład |
---|---|---|
. | Bieżąca odpowiedź | .=1 |
+ | Dodawanie | ${question_one} + 4 |
- | Odejmowanie | ${question_one} - 4 |
* | Mnożenie | ${question_one} * 4 |
div | Dzielenie | ${question_one} div 4 |
= | Równy | ${price}=9.80 |
!= | Nierówne | ${price}!=9.80 |
< | Mniejsze niż | ${price}<9.80 |
<= | Mniejsze lub równe | ${price}<=9.80 |
> | Większe niż | ${price}>9.80 |
>= | Większe lub równe | ${price}>=9.80 |
and | I | ${price}>9.00 and ${price}<9.90 |
mod | Dzielenie z resztą (reszta z dzielenia) | ${question_one} mod ${question_two} |
or | Lub | ${price}=9.80 or ${price}=9.70 |
Funkcje
W aplikacji Survey123 są obsługiwane następujące funkcje:
Funkcja | Opis | Przykład |
---|---|---|
boolean(question, expression, or value) | Zwraca wartość prawda (true), jeśli została podana wartość inna niż null. Zalecane jest użycie funkcji boolean-from-string() zamiast tej funkcji. Uwaga:Ta funkcja w aplikacji internetowej Survey123 zawsze zwraca wartość prawda (true). Inne możliwości można znaleźć w sekcji Wartości puste. | boolean(${question_one}) |
boolean-from-string() | Zwraca wartość prawda (true), jeśli został podany ciąg znakowy „true” lub „1”. W przeciwnym razie zwracana jest wartość fałsz (false). | boolean-from-string(${question_one}) |
coalesce(value1, value2) | Zwraca pierwszą wartość niepustą. Ta funkcja obsługuje tylko dwie wartości. | coalesce(${question_one}, ${question_two}) |
concat(value1, value2, …) | Zwraca konkatenację ciągów znakowych. | concat(${question_one}, ' and ', ${question_two}) |
contains(string, substring) | Zwraca wartość prawda (true), jeśli dany ciąg znakowy zawiera określony podciąg. | contains(${question_one}, 'red') |
count(repeat) | Zwraca liczbę odpowiedzi na dane pytanie w powtórzeniach. Więcej informacji na ten temat zawiera sekcja Funkcje agregujące. Notatka:W aplikacji terenowej Survey123 tę funkcję można umieścić w powtórzeniu lub poza nim. Jeśli funkcja ma być używana w aplikacji internetowej Survey123, musi zostać umieszczona poza powtórzeniem. Wartość zliczenia spoza powtórzenia może być przywoływana w obliczeniu wewnątrz powtórzenia. | count(${question}) |
count-selected(question) | Zwraca liczbę wybranych odpowiedzi dla pytań typu select_one (wybierz jedną) i select_multiple (wybierz wiele). Ta funkcja zwraca również liczbę dołączonych plików dla pytań typu image (obraz), audio (dźwięk) oraz file (plik) z wyglądem multiline (wielowierszowy). | count-selected(${question_one}) |
date(question, expression, or value) | Przekształca liczbę lub ciąg znakowy w obiekt daty (bez czasu). | date('2017-05-28T04:39:02+10:00') |
date-time(question, expression, or string) | Przekształca liczbę lub ciąg znakowy w obiekt daty. | date-time('2017-05-28T04:39:02+10:00') |
Przekształca obiekt daty w liczbę dziesiętną reprezentującą datę i czas. | decimal-date-time(${date_question}) | |
decimal-time(question, expression, or string) | Przekształca obiekt czasu w liczbę reprezentującą wartość ułamkową pory dnia w strefie czasowej urządzenia. | decimal-time(${time_question}) |
ends-with(string, substring) | Zwraca wartość prawda (true), jeśli dany ciąg znakowy kończy się określonym podciągiem. | ends-with(${question_one}, 'hand.') |
false() | Fałsz | false() |
Dopasowuje istniejącą wartość daty lub czasu do zdefiniowanego formatu. | format-date(${previous_time}, '%H:%M') | |
if(condition, a, b) | Jeśli warunek przyjmuje wartość prawda (true), zwraca a, w przeciwnym razie zwraca b. | if(selected(${question_one}, 'yes') and selected(${question_two}, 'yes'), 'yes', 'no') |
indexed-repeat(pytanie, powtórzenie, numer indeksu) | Zwraca wartość z konkretnego pytania w rekordzie powtórzeń. Więcej informacji zawiera temat Powtórzenia. | indexed-repeat(${room_no}, ${floor}, 3) |
int(question, expression, or value) | Służy do przekształcania do liczby całkowitej. Przekształcenie zależy od typu danych. Notatka:Jeśli ta funkcja jest pusta, zwróci wartość NaN, a pytanie pozostanie puste. | int(${question_one}) |
join(separator, question) | Łączy wszystkie odpowiedzi na dane pytanie w powtórzeniu, rozdzielając je podanym separatorem. | join(',', ${question_in_repeat}) |
jr:choice-name(choice_name, 'question') | Używana na potrzeby pytań select_one. Zwraca etykietę powiązaną z nazwą możliwości wyboru w danym pytaniu. Należy pamiętać, że pytanie musi być ujęte w cudzysłów. | jr:choice-name(${select_one}, '${select_one}') |
Używana na potrzeby pytań select_multiple. Zwraca etykietę powiązaną z nazwą możliwości wyboru w danym pytaniu. Należy użyć funkcji selected-at() w celu wyodrębnienia etykiet poszczególnych odpowiedzi. Należy pamiętać, że pytanie musi być ujęte w cudzysłów. | jr:choice-name(selected-at(${select_multiple}, 3), '${select_multiple}') | |
max(value1, value2, ...) | Zwraca wartość maksymalną w danym zakresie lub w odpowiedzi na jedno pytanie w powtórzeniach. | max(${question_one}, ${question_two}) |
min(value1, value2, ...) | Zwraca wartość minimalną w danym zakresie lub w odpowiedzi na jedno pytanie w powtórzeniach. | min(${question_one}, ${question_two}) |
not(expression) | Zwraca wartość fałsz (false), jeśli wyrażenie zwróciłoby wartość prawda (true), a wartość prawda (true), jeśli wyrażenie zwróciłoby wartość fałsz (false). | not(selected(., 'yes')) |
now() | Zwraca datownik tej chwili. Ta funkcja jest używana w pytaniach typu time (czas) oraz dateTime (data i czas). Zachowuje się tak samo jak funkcja today() w pytaniach typu date (data). | now() |
number(question, expression, or value) | Służy do przekształcania do liczby. Przekształcenie zależy od typu danych. Notatka:Jeśli ta funkcja jest pusta, zwróci wartość NaN, a pytanie pozostanie puste. | number(${question_one}) |
once() | Jeśli pytanie ma już wartość, zwraca tę istniejącą wartość. Ta funkcja jest przydatna podczas korzystania z funkcji random() lub uuid() w pytaniu powtarzanym w celu zapewnienia, że wartość nie zmienia się podczas przeglądania powtarzanych rekordów w formularzu. | once(uuid()) |
position(..) | Zwraca indeks bieżącego rekordu w powtórzeniu. Więcej informacji zawiera temat Powtórzenia. | position(..) |
pulldata() | Zwraca wartość z zewnętrznego pliku CSV. Więcej informacji zawiera sekcja Pobieranie wartości z pliku CSV. | pulldata('users', 'email', 'name', ${respondent_name}) |
pulldata("@exif") | Zwraca wartość z metadanych EXIF w obrazie. Więcej informacji na ten temat zawiera sekcja Wyodrębnianie metadanych obrazu. | pulldata("@exif", ${photo}, "GpsLatitude") |
pulldata("@geopoint") | Zwraca wartość z pytania typu geopoint (punkt geograficzny). Więcej informacji na ten temat zawiera sekcja Wyodrębnianie wartości punktu geograficznego. | pulldata("@geopoint", ${location}, "horizontalAccuracy") |
pulldata("@javascript") | Uruchamia funkcję JavaScript w formularzu i zwraca wynik. Więcej informacji na ten temat zawiera sekcja Funkcje JavaScript w formularzach ankiety. | pulldata("@javascript", "functions.js", "uniqueID", ${buildings}) |
pulldata("@json") | Zwraca wartość z obiektu JSON. Więcej informacji zawiera sekcja Pobieranie wartości z formatu JSON. | pulldata("@json", ${json_output}, "attributes.ZIP_CODE") |
pulldata("@layer") | Wysyła zapytanie do warstwy obiektowej, tabeli obiektów lub usługi mapowej ArcGIS z włączoną obsługą zapytań i zwraca wynik. Więcej informacji zawiera temat Zapytanie o warstwę obiektową. | pulldata("@layer", "getRecordAt", "https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/World_Time_Zones/FeatureServer/0", ${location}) |
pulldata("@property") | Zwraca informacje na temat zalogowanego użytkownika lub urządzenia. Więcej informacji zawiera sekcja Właściwości urządzenia i użytkownika. | pulldata("@property", 'username') |
random() | Zwraca wartość losową z zakresu od 0 (włącznie) do 1 (wyłącznie). | random() |
regex() | Stosuje wyrażenie regularne względem danych wejściowych pytania. Zwraca wartość true (prawda) w przypadku zgodności ze wzorcem. Więcej informacji można znaleźć w sekcji Wyrażenia regularne. | regex(., '^\d{5}$') |
selected(pytanie, wartość) | Sprawdza, czy wybrano odpowiedź. Ta funkcja jest używana na potrzeby pytań select_one (wybierz jedną) i select_multiple (wybierz wiele). | selected(${question_one}, 'a') |
selected-at(question, number) | Używana na potrzeby pytań select_multiple. Zwraca nazwę możliwości wyboru wskazywanej przez daną liczbę wśród wybranych możliwości wyboru (począwszy od zera), na przykład wartość '2' spowoduje zwrócenie trzeciej spośród wybranych możliwości wyboru. | selected-at(${question_one}, 2) |
starts-with(string, substring) | Zwraca wartość prawda (true), jeśli dany ciąg znakowy rozpoczyna się określonym podciągiem. | starts-with(${question_one}, 'The') |
string(question, expression, or value) | Służy do przekształcania do ciągu znakowego. Przekształcenie zależy od typu danych. | string(${question_one}) |
string-length(question, expression, or value) | Zwraca długość niepustego ciągu znakowego. | string-length(${question_one}) |
substr(question, start, end) | Zwraca podciąg znakowy rozpoczynający się od określonego miejsca początkowego i kończący się na znaku o indeksie wynoszącym koniec -1, gdzie początek i koniec są liczone od pozycji 0. | substr(${question_one}, 1, 2) |
sum(repeat) | Zwraca sumę wszystkich odpowiedzi na dane pytanie w powtórzeniach. Więcej informacji na ten temat zawiera sekcja Funkcje agregujące. Notatka:W aplikacji terenowej Survey123 tę funkcję można umieścić w powtórzeniu lub poza nim. Jeśli funkcja ma być używana w aplikacji internetowej Survey123, musi zostać umieszczona poza powtórzeniem. Wartość sumy spoza powtórzenia może być przywoływana w obliczeniu wewnątrz powtórzenia. | sum(${question}) |
today() | Zwraca bieżącą datę, przechowywaną wewnętrznie jako lokalne południe. Ta funkcja jest używana w pytaniach typu date (data). | today() |
true() | Prawda | true() |
uuid() | Zwraca losowy ciąg znakowy identyfikatora UUID. | uuid() |
version() | Zwraca wersję ankiety zdefiniowaną w arkuszu ustawień. | version() |
W aplikacji Survey123 są obsługiwane następujące funkcje matematyczne:
Funkcja | Opis | Przykład |
---|---|---|
acos(wartość) | Zwraca wartość funkcji arcus cosinus. | acos(${question_one}) |
asin(wartość) | Zwraca wartość funkcji arcus sinus. | asin(${question_one}) |
atan(wartość) | Zwraca wartość funkcji arcus tangens. | atan(${question_one}) |
atan2(wartość1, wartość2) | Zwraca wartość funkcji arcus tangens ilorazu wartości. | atan2(${question_one}, ${question_two}) |
cos(wartość) | Zwraca wartość funkcji cosinus dla kąta wyrażonego w radianach. | cos(${question_one}) |
sin(wartość) | Zwraca wartość funkcji sinus dla kąta wyrażonego w radianach. | sin(${question_one}) |
tan(wartość) | Zwraca wartość funkcji tangens dla kąta wyrażonego w radianach. | tan(${question_one}) |
exp(wartość) | Zwraca wartość naturalną potęgi dla danej wartości. | exp(${question_one}) |
exp10(wartość) | Zwraca 10 do potęgi określonej przez wartość. | exp10(${question_one}) |
log(wartość) | Zwraca logarytm naturalny z wartości. | log(${question_one}) |
log10(wartość) | Zwraca logarytm o podstawie 10 z wartości. | log10(${question_one}) |
pi() | Zwraca wartość pi. | pi() |
pow(wartość, potęga) | Zwraca wartość podniesioną do podanej potęgi. | pow(${question_one}, 3) |
round(wartość, miejsca) | Zwraca wartość zaokrągloną. | round(${question_one}, 5) |
sqrt(wartość) | Zwraca pierwiastek kwadratowy z wartości. | sqrt(${question_one}) |
Formatowanie przy użyciu kodu HTML
Formatowania HTML można używać w etykietach pytań i wskazówkach, jak również w etykietach list możliwości wyboru. Obsługiwane jest następujące formatowanie HTML:
Znacznik | Atrybut |
---|---|
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 |
¹Obsługiwane tylko w aplikacji internetowej Survey123.
Wskazówka:
Domyślnie hiperłącze utworzone w formacie HTML otwierane w aplikacji internetowej Survey123 otwiera obiekt docelowy na tej samej karcie, na której znajduje się ankieta. Aby otwierać to łącze na nowej karcie, należy dodać parametr target="_blank" do znacznika a href, na przykład:
<a href="https://www.esri.com" target="_blank">Link to Esri website</a>
Wyrażenia regularne
Wyrażenia regularne są sekwencjami znaków definiującymi wzorzec wyszukiwania. Można ich używać w pytaniu, aby określić jego wartość na podstawie innych pytań lub ograniczyć wprowadzane dane. Wyrażenie regularne można zbudować z użyciem wyrażeń podrzędnych podanych w następującej tabeli. Więcej informacji na ten temat można znaleźć w temacie Formuły.
Wyrażenie podrzędne | Dopasuj |
---|---|
^ | Dopasowuje początek wiersza. |
$ | Dopasowuje koniec wiersza. |
. | Dopasowuje dowolny pojedynczy znak oprócz znaku nowego wiersza. |
[...] | Dopasowuje dowolny pojedynczy znak, który znajduje się w nawiasach kwadratowych. |
[^...] | Dopasowuje dowolny pojedynczy znak, który nie znajduje się w nawiasach kwadratowych. |
(re) | Grupuje wyrażenia regularne i zapamiętuje dopasowany tekst. |
(?: re) | Grupuje wyrażenia regularne bez zapamiętywania dopasowanego tekstu. |
a| b | Dopasowuje a lub b. |
\A | Początek całego ciągu znakowego. |
\b | Dopasowuje granice słowa poza nawiasami kwadratowymi i dopasowuje backspace (0x08) w nawiasach kwadratowych. |
\B | Dopasowuje znaki poza słowem. |
\d | Dopasowuje cyfry. Jest to odpowiednik [od 0 do 9]. |
\D | Dopasowuje znaki inne niż cyfry. |
\G | Dopasowuje punkt, w którym zakończyło się ostatnie dopasowanie. |
\n, \t, \e itd. | Dopasowuje nowy wiersz, znak tabulacji, znak zmiany znaczenia itp. |
\N | Odwołanie wsteczne w celu przechwycenia numeru N grupy. |
re* | Dopasowuje 0 lub większą liczbę wystąpień poprzedniego wyrażenia. |
re+ | Dopasowuje 1 lub większą liczbę wystąpień poprzedniego wyrażenia. |
re? | Dopasowuje 0 lub 1 wystąpienie poprzedniego wyrażenia. |
re{ n} | Dopasowuje dokładną liczbę wystąpień poprzedniego wyrażenia zdefiniowaną zamiast znaku n. |
re{ n,} | Dopasowuje n lub większą liczbę wystąpień poprzedniego wyrażenia. |
re{ n, m} | Dopasowuje co najmniej n i co najwyżej m wystąpień poprzedniego wyrażenia. |
\s | Dopasowuje biały znak: tabulator, koniec linii, nowa strona, powrót karetki lub spacja. |
\S | Dopasowuje znak inny niż biały znak. |
\w | Dopasowuje znaki słowa. |
\W | Dopasowuje znaki niewystępujące w słowie. |
\z | Koniec całego ciągu znakowego. |
\Z | Koniec całego ciągu znakowego oprócz finalnego znaku kończącego wiersz. |
Na przykład wyrażenie regularne regex(.,'^[A-Za-z]*$') wymaga, aby użytkownik wprowadził do pytania typu string (ciąg znakowy) tylko litery (bez cyfr i znaków specjalnych).
Typy pól Esri
Za pomocą kolumny bind::esri:fieldType można zastąpić domyślny typ pola jedną z następujących wartości. Więcej informacji znajduje się w temacie Kolumny niestandardowe Esri.
Wartość pola | Wynik |
---|---|
esriFieldTypeDate | Wartości daty i czasu |
esriFieldTypeDateOnly | Tylko wartości daty bez wartości czasu |
esriFieldTypeTimeOnly | Tylko wartości czasu bez wartości daty |
esriFieldTypeTimestampOffset | Data, czas i przesunięcie względem wartości UTC |
esriFieldTypeDouble | Zmiennoprzecinkowe liczby o podwójnej precyzji |
esriFieldTypeGUID | Globalny unikatowy identyfikator |
esriFieldTypeInteger | Liczby całkowite (32-bitowe) |
esriFieldTypeBigInteger | Liczby całkowite od (64-bitowe) |
esriFieldTypePointZ | Umożliwia przechwytywanie informacji o wysokości w punktach geograficznych |
esriFieldTypeString | Seria symboli alfanumerycznych |
null | Pole null, nie przechowuje żadnych wartości |
Znaki specjalne
Nazwy pytań i nazwy wyborów nie mogą zawierać znaków specjalnych, takich jak spacje, przecinki, myślniki, nawiasy (także kwadratowe) ani znaków, takich jak $, % oraz #. Istotne jest, aby nazwy wyborów w pytaniach select_multiple nie zawierały spacji ani przecinków.