Szablony raportów

Funkcja raportowania w witrynie Survey123 pozwala projektować własne spersonalizowane szablony i generować wiele raportów naraz.

Raport może zawierać następujące elementy:

  • Sekcja podsumowania
  • Pojedynczy rekord ankiety
  • Pojedynczy rekord ankiety i sekcja podsumowania
  • Wiele rekordów ankiety
  • Wiele rekordów ankiety i sekcja podsumowania
Notatka:

Drukowanie raportów jest usługą premium w usłudze ArcGIS Online i z tego względu powoduje wykorzystanie kredytów. Więcej informacji można znaleźć w temacie Drukowanie raportów.

Drukowanie raportów w oprogramowaniu ArcGIS Enterprise nie powoduje wykorzystania kredytów, ale ma pewne ograniczenia.

Szablon raportu jest plikiem programu Microsoft Word (.docx) udostępniającym tekst zastępczy o określonej składni. Podczas drukowania raportu ten tekst zastępczy zostaje zastąpiony zawartością odpowiednich pól odpowiedzi na ankietę. Do tego tekstu zastępczego można zastosować dowolne formatowanie, dodawać tabele, obrazy i inne elementy zapewniające personalizację w celu utworzenia szablonu dostosowanego do Twoich wymagań.

Aby utworzyć szablon, kliknij przycisk Raport na pasku znajdującym się powyżej mapy na karcie Dane, a następnie kliknij opcję Zarządzaj szablonami. Pojawi się nowe okno umożliwiające pobranie przykładu, przesłanie nowego szablonu lub edytowanie nazwy i podsumowania istniejącego szablonu. Kliknij przycisk Nowy szablon, aby przesłać nowy szablon raportu i podać nazwę oraz podsumowanie szablonu po jego przesłaniu. Alternatywnie można użyć łącza Pobierz przykładowy szablon, aby pobrać przykładowy szablon utworzony na podstawie ankiety.

Notatka:

Szablony raportów mogą być przesyłane tylko przez właściciela ankiety i administratorów instytucji.

Udostępnienie wyników ankiety wszystkim, instytucji lub grupie spowoduje również udostępnienie szablonów raportów powiązanych z tą ankietą.

Wyrażenia

Odpowiedź na pytanie może zostać wyświetlona w szablonie raportu przez podanie jej nazwy ujętej w nawiasy klamrowe, na przykład { oraz } i poprzedzona znakiem dolara. W poniższym wyrażeniu zostanie wyświetlona odpowiedź na pytanie typu tekst o nazwie firstname.

${firstname}

Do zdefiniowania odpowiedzi na dane wyświetlone w raporcie oraz do zmiany sposobu ich wyświetlenia można również użyć wyrażeń. Wyrażeniem może być jedna nazwa pytania, obliczenie obejmujące jedno lub więcej pytań albo nazwa pytania z metodami i parametrami do ograniczenia lub zastosowania stylu względem odpowiedzi. W wyrażeniu jest stosowana następująca notacja:

${questionname | method:parameter}

Wyrażenie może zawierać wiele metod i parametrów lub może wcale ich nie zawierać. Parametry mogą być albo wartościami pochodzącymi z innych pytań, albo wartościami stałymi.

W poniższym wyrażeniu zostanie wyświetlone obliczenie wyniku dzielenia pytania typu liczba o nazwie floweringtrees przez pytanie typu liczba o nazwie totaltrees. Przy odwoływaniu się do wielu pytań w tym samym wyrażeniu poszczególne nazwy pytań wymagają bezpośredniego nazwania i nie są potrzebne dodatkowe nawiasy klamrowe.

${floweringtrees / totaltrees}

W poniższym wyrażeniu zostanie wyświetlona wartość współrzędnej x z pytania o lokalizację, w którym getValue jest metodą, a x jest parametrem.

${location | getValue:"x"}

Ciągi znakowe można sklejać w wyrażeniu, łącząc je za pomocą znaku plus. W tym wyrażeniu konkatenacja (czyli sklejenie ciągów znakowych) umożliwia przekazanie treści zapytania o nazwie field_0 do usługi generowania kodów QR w celu utworzenia kodu QR dla odpowiedzi na pytanie.

${$image | src:"https://barcode.tec-it.com/barcode.ashx?code=QRCode&data="+field_0}

Nie wszystkie typy pytań obsługują wyrażenia i metody. Poniższa tabela zawiera listę określającą, które metody i parametry mogą być używane z którymi typami pytań.

MetodaParametryTyp pytania w aplikacji ConnectTyp pytania w kreatorze internetowymOpis

getValue

-

Wszystkie typy pytań

Wszystkie typy pytań

Pobiera wartość nieprzetworzonych danych z warstwy obiektowej lub nieprzetworzony obraz załącznika.

getValue

x, y, z, wkid

geopoint

Mapa

Pobierz poszczególne współrzędne x, y oraz z w podanym odniesieniu przestrzennym. Parametr wkid jest opcjonalny i jeśli zostanie pominięty, jego wartość będzie taka sama jak odniesienie przestrzenne warstwy obiektowej.

getValue

długość, pole powierzchni, jednostka, typ pomiaru

ślad geograficzny, kształt geograficzny

Mapa

Zwraca długość polilinii albo obwód lub pole powierzchni poligonu, w podanych jednostkach, a także informację o tym, czy pomiary są planarne, czy geodezyjne. Domyślny typ to pomiar geodezyjny.

getValue

nazwa, rozmiar

obraz, dźwięk, plik

Obraz, Podpis, Dźwięk, Plik

Zwraca nazwę pliku lub rozmiar załącznika.

getValue

szerokość, wysokość, x, y, data, czas, kierunek

obraz

Obraz, Podpis

Szerokość i wysokość zwracają wartość całkowitą szerokości i wysokości obrazu w pikselach, a x, y, data, czas i kierunek zwracają wartości odczytane z informacji EXIF obrazu, jeśli istnieją.

getValue

liczba

rozpocznij powtórzenie, obraz, dźwięk, plik

Powtórzenie, Obraz, Podpis, Dźwięk, Plik

Zwraca łączną liczbę powtórzeń lub załączników.

getValue

czas trwania

dźwięk, plik

Dźwięk, Plik

Zwraca długość nagrań dźwiękowych w sekundach

Uwaga:

Czas trwania nie zostanie zwrócony w odpowiedziach zgromadzonych w aplikacji internetowej, jeśli jest używana przeglądarka Safari.

appearance (wygląd)

multiline (wielowierszowe)

tekst

Tekst wielowierszowy

Służy do zachowania podziału wierszy w ciągu znakowym. Jeśli nie zostanie podany wygląd, odpowiedź zwróci jednowierszowy ciąg znakowy.

appearance (wygląd)

punktory

select_multiple

Wybór wielokrotny

Zwraca odpowiedź w formacie listy wypunktowanej.

zaznaczone

wartość wyboru

select_one, select_multiple

Wybór wielokrotny, Wybór pojedynczy, Siatka typu Wybór pojedynczy, Menu rozwijane, Skala Likerta, Ocena

Zwraca zaznaczone pole wyboru, jeśli wartość pola jest równa choiceValue, w przeciwnym razie zwraca niezaznaczone pole wyboru.

wybrane

wartość wyboru

select_one, select_multiple

Wybór wielokrotny, Wybór pojedynczy, Siatka typu Wybór pojedynczy, Menu rozwijane, Skala Likerta, Ocena

Jeśli istnieje domena wartości kodowych, zwraca wartość prawda (true), jeśli wartość pola jest równa wartości wyboru, w przeciwnym razie zwraca wartość fałsz (false).

countSelected

-

select_one, select_multiple

Wybór wielokrotny, Wybór pojedynczy, Siatka typu Wybór pojedynczy, Menu rozwijane, Skala Likerta, Ocena

Zwraca liczbę wybranych możliwości wyboru.

selectedAt

indeks

select_one, select_multiple

Wybór wielokrotny, Wybór pojedynczy, Siatka typu Wybór pojedynczy, Menu rozwijane, Skala Likerta, Ocena

Zwraca ciąg znakowy w pozycji indeksu na liście wyboru. Indeks rozpoczyna się od zera.

ustawienia regionalne

kod języka

data, dateTime (data i czas), początek, koniec, decimal

Data, Data i czas, Liczba

Zwraca zlokalizowaną datę, czas i liczbę.

format

formatuj ciąg znakowy

data, dateTime (data i czas), liczba całkowita, liczba dziesiętna, początek, koniec

Data, Data i czas

Zwraca sformatowany ciąg znakowy

utcOffset

wartość przesunięcia

data, dateTime (data i czas), początek, koniec

Data, Data i czas

Zwraca wartość daty lub daty i czasu przesuniętą o wartość przesunięcia UTC.

mapSettings

ID elementu mapy internetowej, skala mapy

geopoint (geopunkt), geotrace (ślad geograficzny), geoshape (kształt geograficzny)

Mapa

Określa mapę bazową i skalę przy drukowaniu obrazu mapy.

Wcześniejsze:

Zastąpione przez map (mapa) i mapScale (skala mapy).

mapExtent

xmin, ymin, xmax, ymax, wkid

geopoint (geopunkt), geotrace (ślad geograficzny), geoshape (kształt geograficzny)

Mapa

Określa ustalony zasięg mapy przy drukowaniu obrazu mapy. Parametr wkid jest opcjonalny i w przypadku jego pominięcia zostanie skonfigurowany na wartość 4326 (WGS 1984).

mapa

ID elementu mapy internetowej

geopoint (geopunkt), geotrace (ślad geograficzny), geoshape (kształt geograficzny)

Mapa

Określa mapę bazową przy drukowaniu obrazu mapy.

mapScale

skala mapy

geopoint (geopunkt), geotrace (ślad geograficzny), geoshape (kształt geograficzny)

Mapa

Określa skalę przy drukowaniu obrazu mapy.

obróć

stopnie

geopoint (geopunkt), geotrace (ślad geograficzny), geoshape (kształt geograficzny), image (obraz)

Mapa, Obraz

Określa kąt obrotu mapy lub obrazu.

drawingInfo (informacje o rysunku)

currentLayer (bieżąca warstwa), adres URL warstwy obiektowej

geopoint (geopunkt), geotrace (ślad geograficzny), geoshape (kształt geograficzny)

Mapa

Określa informacje o rysunku przy drukowaniu obrazu mapy, włącznie z symbolem, etykietą i przezroczystością.

src

adres URL obrazu

-

-

Określa źródłowy adres URL dynamicznego elementu obrazu.

rozmiar

szerokość, wysokość, szerokość maksymalna, wysokość maksymalna

obraz

Obraz

Określa rozmiar drukowanego obrazu.

okrągłe

miejsca

liczba dziesiętna, geopoint (geopunkt), geoshape (kształt geograficzny), geotrace (ślad geograficzny)

Liczba

Służy do zaokrąglania liczby dziesiętnej do podanych miejsc dziesiętnych.

useGrouping

wartość logiczna

decimal

Liczba

Jeśli ma wartość true, zwracana jest liczba z separatorami grupowania określonymi przez ustawienia regionalne. W przeciwnym razie, jeśli ma wartość false, separatory nie są używane.

toFixed

miejsca

liczba dziesiętna, geopoint (geopunkt), geoshape (kształt geograficzny), geotrace (ślad geograficzny)

Liczba

Określa stałą liczbę cyfr po separatorze dziesiętnym. Jeśli będzie to konieczne, nastąpi dopełnienie zerami, aby osiągnąć stałą liczbę cyfr.

W oknie Zarządzaj szablonami wybierz opcję Wskazówki, aby otworzyć stronę zawierającą przykłady składni wyrażeń modyfikujących wyświetlane w raporcie odpowiedzi na poszczególne pytania ankiety. Aby skopiować tę składnię, kliknij przycisk Skopiuj do schowka, a następnie wklej ją do dokumentu szablonu. Po przesłaniu szablonu użyj opcji na panelu Raport, aby utworzyć raport. Więcej informacji można znaleźć w temacie Drukowanie raportów.

Wskazówki dotyczące raportów zawierające przykłady składni

Poniższe sekcje zawierają opis często spotykanych scenariuszy użycia wyrażeń dla każdego typu pytania oraz przykłady.

Tekst

Pytania typu tekst wielowierszowy, które są tworzone przez dodanie pytania typu Tekst wielowierszowy w kreatorze internetowym aplikacji Survey123 lub przez zastosowanie wyglądu multiline (wielowierszowy) w stosunku do pytania typu text (tekst) w aplikacji Survey123 Connect. Domyślnie ignorują one znaki powrotu karetki. Odpowiedź jest wyświetlana jako pojedynczy blok tekstu. Aby odpowiedź na pytanie była wyświetlana z użyciem znaków powrotu karetki, należy użyć następującego wyrażenia:

${multilinetext1 | appearance:"multiline"}

Wyrażenie to należy umieścić w dedykowanym wierszu, gdyż w przeciwnym razie wystąpią błędy.

Wartości

W pytaniach liczbowych można używać podstawowych operatorów matematycznych na potrzeby dodawania, odejmowania, mnożenia i dzielenia, a także znajdowania modułów odpowiedzi na te pytania. Przykłady:

${number1 - 15}

${number1 * 6}

${number1 / number2}

${number1 % number2}

Wskazówka:

Jeśli wyrażenie zawiera złożone wyrażenie matematyczne, należy rozważyć zastosowanie nawiasów, aby zapewnić oczekiwane wyniki w generowanym raporcie.

W pytaniach typu decimal (wartość dziesiętna) można użyć wyrażenia round do skonfigurowania maksymalnej liczby miejsc dziesiętnych, do jakiej dana wartość jest zaokrąglana. W następującym przykładzie liczba 3,141592 jest zaokrąglana do czterech miejsc dziesiętnych, czyli do wartości 3,1416:

${decimal1 | round:4}

Wyrażenia toFixed można użyć do skonfigurowania maksymalnej liczby miejsc dziesiętnych, do jakiej dana wartość jest zaokrąglana. W następującym przykładzie ustalana jest liczba miejsc dziesiętnych w liczbie 3,14, w wyniku czego powstaje liczba 3,140:

${decimal1 | toFixed:3}

Wyrażenia formatującego można użyć do wyświetlenia odpowiedzi na pytanie typu number (liczba) w konkretny sposób z użyciem znaków zastępczych. Obsługiwane są następujące znaki zastępcze.

ZnakOpis

.

Separator dziesiętny.

,

Jeśli zostanie umieszczony w formatowaniu, dodaje separatory grupujące, gdzie wielkość grupy jest określona przez liczbę cyfr między znakiem zastępczym separatora pierwszej grupy i znakiem zastępczym separatora dziesiętnego lub końcem wyrażenia. Jeśli nie zostanie dodany, nie będą używane żadne separatory grupujące.

0

Wymagane cyfry. Jeśli odpowiedź będzie krótsza niż wymagana liczba cyfr, zostanie dopełniona zerami.

#

Cyfry opcjonalne. Jeśli odpowiedź będzie zawierać więcej cyfr, niż podano, liczba zostanie zaokrąglona.

Wskazówka:

Separatory dziesiątek i tysięcy na wydruku będą zależeć od wybranych ustawień regionalnych.

W poniższym przykładzie jest zwracana odpowiedź dla maksymalnie trzech miejsc dziesiętnych z separatorami tysięcy, w razie potrzeby zaokrąglona.

${decimal1 | format:"#,##0.###"}

Obrazy i inne załączniki

W przypadku pytań typu image (obraz) można tak skonfigurować rozmiary, by raporty zawierały obrazy o tej samej wielkości. Format tych wyrażeń jest następujący:

${image1 | size:width:height:max_width:max_height}

Wartości szerokości i wysokości określają skonfigurowany rozmiar obrazu wyrażony w pikselach. Wymagane jest określenie tych wartości w wyrażeniu, podanie wartości 0 oznacza brak ograniczenia na dany wymiar obrazu. Poniższe przykładowe wyrażenie wymusza szerokość obrazu wynoszącą 300 pikseli przy zachowaniu współczynnika proporcji obrazu:

${image1 | size:300:0}

Maksymalne wartości wysokości i szerokości ograniczają maksymalny rozmiar obrazu i są one wartościami domyślnymi. W poniższym przykładzie zostaje wymuszona szerokość obrazu wynosząca 300 pikseli, a wysokość obrazu jest ograniczona do wartości nieprzekraczającej 200 pikseli:

${image1 | size:300:0:0:200}

Można używać metody rotate do definiowania obrotu obrazu zgodnie z ruchem wskazówek zegara. Przyjmowane są wartości od 0 do 360.

${image1 | size:300:0:0:200 | rotate:90}

W pytaniach typu image (obraz) mogą zostać także wyodrębnione szczegółowe informacje o obrazie, które można następnie wyświetlić w odpowiedzi na ankietę. Ta funkcja może być używana do wyświetlania nazwy pliku i wielkości obrazu, jak podano poniżej:

${image1 | getValue:"name"}

${image1 | getValue:"size"}

${image1 | getValue:"width"}

${image1 | getValue:"height"}

Tej samej metody można także użyć w celu wyświetlenia znajdujących się w obrazie danych EXIF informujących o tym, gdzie i kiedy zostało zrobione zdjęcie, jak podano poniżej:

${image1 | getValue:"x"}

${image1 | getValue:"y"}

${image1 | getValue:"date"}

${image1 | getValue:"time"}

${image1 | getValue:"direction"}

Aby wyświetlić oryginalny obraz z zachowaniem pełnego rozmiaru i jakości, użyj wyrażenia bez żadnej metody lub wyrażenia getValue bez żadnej wartości:

${image1} lub ${image1 | getValue:""}

Aby wyświetlić oryginalny obraz w pełnej jakości, ale ustawić rozmiar, użyj razem wyrażeń getValue i size.

${image1 | getValue:"" | size:300:0}

Notatka:

Jeśli rozmiar obrazu jest konfigurowany z użyciem dowolnego innego parametru wyrażenia, parametr size musi być umieszczony na końcu wyrażenia.

Daty i czas są przechowywane jako ciągi znakowe danych EXIF, więc wartości te nie mogą być formatowane w raporcie przy użyciu wyrażenia format dla pytań związanych z datą i czasem. Jeśli formatowanie tych wartości jest ważne, należy rozważyć przeprowadzenie wydzielenia EXIF w ramach ankiety za pomocą funkcji pulldata("@exif"). Więcej informacji zawiera temat Obrazy.

Powyższych wyrażeń getValue można również używać do wyodrębniania danych z dowolnych prawidłowych właściwości w załącznikach dowolnego typu, w tym wyników pytań typu image (obraz), audio (dźwięk) oraz file (plik). Następujące właściwości można wyodrębniać ze wszystkich załączników:

${file1 | getValue:"name"}

${file1 | getValue:"size"}

${file1 | getValue:"globalId"}

${file1 | getValue:"id"}

${file1 | getValue:"contentType"}

${file1 | getValue:"keywords"}

Jeśli wszystkimi załącznikami obiektu są obrazy, należy użyć poniższych symboli zastępczych, umieszczając każdy w dedykowanym wierszu:

${#$attachment}
${$file}
${/}

Aby zwrócić w odpowiedzi wiele obrazów przesłanych do tego samego pytania, należy użyć nazwy pytania typu image (obraz) zamiast $attachment:

${#image1}
${$file}
${/}

Ta metoda jest przydatna do wyświetlania obrazów w oprogramowaniu ArcGIS Enterprise w wersjach wcześniejszych niż 10.8.1 lub do wyświetlania obrazów, które zostały dodane do obiektu poza aplikacją Survey123. W poniższym przykładzie wyświetlane są nazwy plików wszystkich załączników dołączonych do obiektu:

${#$attachment}
${$file|getValue:"name"}
${/}

Aby wyświetlić obraz z Internetu, podaj jego źródłowy adres URL w wyrażeniu src, odnosząc się do słowa kluczowego $image, a nie nazwy pytania:

${$image |
src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"
| size:400:0}

Pytania typu map (mapa)

Wszystkie pytania wykorzystujące mapę, w tym typu geopoint (punkt geograficzny), geotrace (ślad geograficzny) i geoshape (kształt geograficzny), mają wspólne metody i parametry, za pomocą których można zmienić sposób ich prezentacji w raportach.

Domyślnie mapa w raporcie używa mapy internetowej, która została skonfigurowana dla pytania. Jeśli skala mapy jest skonfigurowana na wartość 0 lub parametr został pominięty, wówczas skala mapy jest określana za pomocą obiektów na mapie w następujący sposób:

  • Jeśli na mapie jest tylko jeden obiekt punktowy, skala mapy jest dopasowana do skali skonfigurowanej dla pytania.
  • Jeśli na mapie jest tylko jeden obiekt liniowy lub poligonowy, skala mapy jest określana przez zasięg obiektu.
  • Jeśli na mapie jest wiele obiektów, skala jest określana przez zasięg wszystkich obiektów.

Pytania typu map (mapa) obsługują konfigurowanie identyfikatora elementu mapy internetowej i skali mapy jako parametrów opcjonalnych. W poniższym przykładzie użyto skali mapy 1:100 000:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}

W przypadku wszystkich pytań typu map (mapa) można używać metody rotate do definiowania obrotu zgodnie z ruchem wskazówek zegara wskazania północy względem widoku. Przyjmowane są wartości od 0 do 360.

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}

Jeśli identyfikator elementu mapy jest pustym ciągiem znakowym, używana jest domyślna mapa bazowa pytania. Jeśli skala mapy zostanie skonfigurowana na 0 lub parametr zostanie pominięty, wówczas na mapie zostanie użyty domyślny zasięg skonfigurowany dla pytania.

Za pomocą metody mapExtent można jawnie skonfigurować zasięg mapy w raporcie. W poniższym przykładzie jest wyświetlony ustalony zasięg mapy Tokio w Japonii:

${location | mapExtent:139.7:35.6:139.9:35.8:4326}

Pytania typu map (mapa) obsługują też wyrażenia określające rozmiar dostępne dla pytań typu image (obraz). Tego wyrażenia można użyć do sterowania rozdzielczością mapy wyświetlanej w raporcie, jak pokazano w poniższym przykładzie:

${location | size:400:400}

Wyrażeń map, mapScale i size można użyć łącznie, udostępniając informacje o identyfikatorze i skali mapy internetowej, jak również o rozdzielczości obrazu mapy, jak pokazano w poniższym przykładzie:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}

Notatka:

Jeśli rozmiar mapy jest konfigurowany z użyciem dowolnej innej metody wyrażenia, należy umieścić metodę size na końcu wyrażenia.

Domyślnie pytanie typu map (mapa) będzie wyświetlane z domyślnym symbolem mapy, niezależnie od symbolizacji skonfigurowanej w warstwie obiektowej. Za pomocą metody drawingInfo można wyodrębnić informacje o rysunku zapisane w konkretnej warstwie obiektowej, włącznie z użytymi symbolem, etykietą i przezroczystością, a także można użyć tych informacji. Za pośrednictwem podanego adresu URL można określić te informacje albo z bieżącej warstwy, albo z konkretnej warstwy obiektowej.

${location | drawingInfo:"currentLayer"}

${location | drawingInfo:"https://.../FeatureServer/0"}

Jeśli pytanie typu map (mapa) nie jest częścią ankiety lub gdy tworzone są raporty dla warstw obiektowych bez powiązanej ankiety, nadal można zwrócić geometrię rekordu przy użyciu symbolu zastępczego ${$shape}.

W sekcji podsumowania wyrażenie dla pytania typu map (mapa) wyświetla wiele geometrii w danych wejściowych pytania. Aby uwzględnić inne odpowiedzi w pojedynczym raporcie, należy podać wyrażenie where ze znacznikiem !important. Więcej informacji na ten temat zawiera sekcja Dodatkowa składnia. Następujące wyrażenie powoduje wyświetlenie wszystkich geometrii w warstwie, w których wartość pola statusu jest równa „broken”:

${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}

Notatka:

W przykładzie poniżej skala mapy jest pominięta. Jeśli skala mapy zostanie skonfigurowana na 0 lub parametr zostanie pominięty, a mapa zawiera wiele rekordów, wówczas na mapie zostanie użyty połączony zasięg dla wszystkich rekordów.

Można skonfigurować wyrażenie where w taki sposób, aby miało zawsze wartość true, co spowoduje, że wyświetlana będzie każda geometria w warstwie:

${location | where:"1=1 !important"}

Umożliwia to również wyświetlenie wszystkich punktów w obrębie powtórzenia:

${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}

Do zwrócenia wielu geometrii mapy można również użyć symbolu zastępczego ${$shape}.

${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}

Punkty geograficzne

W przypadku pytań typu geopoint (punkt geograficzny) w celu wyświetlenia wartości szerokości i długości geograficznej pochodzących z pytania można użyć wyrażeń, jak podano poniżej:

${location | getValue:"x"}

${location | getValue:"y"}

Nie można wyświetlić obu tych wartości za pomocą jednego wyrażenia, w celu wyświetlenia obu wartości należy użyć dwóch wyrażeń.

Wskazówka:

Za pomocą podobnego wyrażenia można także wyświetlić wartość wysokości, ale tylko wtedy, gdy bazowa warstwa obiektowa obsługuje wartości Z:

${location | getValue:"z"}

Domyślnie wartości szerokości i długości geograficznej oraz wysokości zwracają wartość oryginalną podaną w odpowiedzi na ankietę, bez obcięcia. Z uwagi na to, że te wartości często będą dłuższe niż potrzeba w raporcie, rozważ skorzystanie z wyrażeń round lub toFixed w celu zaokrąglenia wartości do konkretnego miejsca dziesiętnego.

${location | getValue:"x" | round:3}

${location | getValue:"x" | toFixed:3}

Domyślnie te wartości są wyprowadzane w tym samym odniesieniu przestrzennym, które jest używane przez warstwę obiektową ankiety. Za pomocą dodatkowego parametru można skonfigurować inne odniesienie przestrzenne, udostępniając jego identyfikator WKID:

${location | getValue:"x":4326}

Geotrace - Ślad geograficzny i geoshape - kształt geograficzny

W przypadku pytań typu geotrace (ślad geograficzny) i geoshape (kształt geograficzny), wyrażenia getValue można użyć odpowiednio do wyświetlania długości linii lub obwodu poligonu:

${polyline1 | getValue:"length":"meters":"planar"}

W przypadku pytań typu geoshape (kształt geograficzny) wyrażenia getValue można użyć także do wyświetlania pola powierzchni poligonu:

${polygon1 | getValue:"area":"hectares":"geodesic"}

Jednostki i metoda obliczania są parametrami opcjonalnymi. Akceptowane są następujące jednostki długości:

  • feet
  • kilometers
  • meters
  • miles
  • nautical-miles
  • yards

Akceptowane są następujące jednostki pola powierzchni:

  • acres
  • hectares
  • square-miles
  • square-kilometers
  • square-meters
  • square-feet
  • square-yards

Można również użyć dowolnej stałej esriSRUnitType lub stałej esriSRUnit2Type obsługiwanej przez interfejs ArcGIS REST API. W wyrażeniu należy użyć kodu liczbowego stałej bez cudzysłowu:

${polyline1 | getValue:"length":109002:"geodesic"}

Jeśli nie zostaną podane żadne jednostki, domyślną jednostką długości jest kilometers, a jednostką pola powierzchni — square-kilometers.

Metodą może być geodesic lub planar. Jeśli nie zostanie wskazana żadna metoda, domyślnie jest stosowana metoda geodesic.

Date (data), time (czas) i date-time (data-czas)

Aby upewnić się, że pytania typu date (data) i date-time (data i czas) są prezentowane w sposób zgodny z formatowaniem stosowanym w używanych ustawieniach regionalnych, można użyć wyrażenia formatującego pytanie zgodnie z danymi ustawieniami regionalnymi. Metodę locale należy umieścić na początku wyrażenia, a kod ustawień regionalnych należy zapisać małymi literami.

${datetime | locale:"pt-br"}

Notatka:

Informacje o kodzie ustawień regionalnych dla określonego języka można znaleźć w temacie Wikipedii zatytułowanym List of ISO 639-1 codes (Lista kodów ISO 639-1). Należy jednak pamiętać, że nie wszystkie te języki są obsługiwane w aplikacji Survey123.

Wszystkie wartości daty i czasu w warstwie obiektowej są przechowywane w formacie uniwersalnego czasu koordynowanego (UTC). Domyślnie wszystkie wartości daty i czasu zwracane w raporcie są w tej samej strefie czasowej co przeglądarka internetowa, która zażądała wygenerowania raportu. Metody utcOffset można używać do modyfikowania sposobu wyświetlania tych wartości w raporcie w taki sposób, aby był on zgodny z określoną strefą czasową. W poniższym przykładzie wyświetlana jest odpowiedź na pytanie typu date-time (data-czas), w przypadku której czas został przesunięty o jedną godzinę do przodu w stosunku do czasu UTC:

${datetime | utcOffset:"+01:00"}

Metoda utcOffset obsługuje formaty +01:00, +0100 i +01 oraz zwraca ten sam wynik. Tej metody można także używać do modyfikowania sposobu wyświetlania czasu wypełnienia odpowiedzi. Należy pamiętać o tym, że parametr utcOffset nie działa z pytaniami typu time (czas).

W przypadku pytań typu date (data) lub date-time (data-czas) można użyć wyrażenia do sformatowania daty za pomocą symboli zastępczych DD, MM i RRRR dla określenia formatu odpowiednio dnia, miesiąca i roku. Poniższe wyrażenie powoduje wyświetlenie tylko wartości dnia i miesiąca bez podawania roku:

${date | format:"DD/MM"}

W pytaniach typu date-time (data-czas) można również sformatować czas, używając symboli zastępczych GG, mm i SS odpowiednio dla godzin, minut i sekund. Poniższe wyrażenie powoduje wyświetlenie wartości dnia, miesiąca, godziny i minut:

${datetime | format:"DD/MM HH:mm"}

Notatka:

Metodę format należy umieścić na końcu wyrażenia.

Poniższa tabela zawiera listę najczęściej używanych symboli zastępczych daty i czasu:

Symbol zastępczyOpis

YY

Dwie ostatnie cyfry roku.

Przykład: rok 2023 będzie reprezentowany jako 23.

YYYY

Cztery cyfry roku.

Przykład: rok 2023 będzie reprezentowany jako 2023.

M

Numer miesiąca z przedziału od 1 do 12.

Przykład: styczeń będzie reprezentowany jako 1.

MM

Dwucyfrowy numer miesiąca.

Przykład: styczeń będzie reprezentowany jako 01.

MMM

Miesiąc przedstawiony za pomocą trzech liter.

Przykład: styczeń będzie reprezentowany jako sty.

MMMM

Miesiąc zapisany w całości.

Przykład: styczeń będzie reprezentowany jako styczeń.

D

Numer dnia z przedziału od 1 do 31.

Przykład: pierwszy dzień miesiąca jest reprezentowany jako 1.

DD

Dwucyfrowy numer dnia.

Przykład: pierwszy dzień miesiąca jest reprezentowany jako 01.

Do

Numer dnia zawierający przyrostki porządkowe.

Przykład: pierwszy dzień miesiąca jest reprezentowany jako 1. (cyfra 1 i kropka).

H

Numer godziny w czasie 24-godzinnym.

Przykład: godzina 11 wieczorem będzie reprezentowana jako 23.

HH

Dwucyfrowy numer godziny w czasie 24-godzinnym.

Przykład: godzina 2 w nocy będzie reprezentowana jako 02.

h

Numer godziny w czasie 12-godzinnym.

Przykład: godzina 11 wieczorem będzie reprezentowana jako 11.

hh

Dwucyfrowy numer godziny w czasie 12-godzinnym.

Przykład: godzina 2 w nocy będzie reprezentowana jako 02.

m

Numer minuty w zakresie od 0 do 59.

Przykład: 8 minut będzie reprezentowane jako 8.

mm

Dwucyfrowy numer minuty.

Przykład: 8 minut będzie reprezentowane jako 08.

Z

Przesunięcie strefy czasowej w godzinach przy użyciu separatora.

Przykłady: -07:00, +13:00

ZZ

Przesunięcie strefy czasowej w godzinach bez separatora.

Przykłady: -0700, +1300

x

Milisekundowy znacznik czasu systemu Unix.

Przykład: godzina 21:00 w dniu 4 maja 2023 r. czasu GMT będzie reprezentowana jako 1683234000000.

X

Znacznik czasu systemu Unix.

Przykład: godzina 21:00 w dniu 4 maja 2023 r. czasu GMT będzie reprezentowana jako 1683234000.

a

Oznaczenie poranka lub popołudnia małymi literami.

Przykład: a.m. będzie reprezentowane jako am, a p.m. będzie reprezentowane jako pm.

A

Oznaczenie poranka lub popołudnia wielkimi literami.

Przykład: a.m. będzie reprezentowane jako AM, a p.m. będzie reprezentowane jako PM.

Wybór wielokrotny

Jeśli pytanie typu select one (wybierz jedną) odnosi się samo do siebie w obiekcie zastępczym, na przykład ${select_one}, zostanie zwrócona etykieta wyboru. Jeśli w wyrażeniu używane jest pytanie typu select one (wybierz jedną) lub jeśli w pytaniu używany jest wybór zewnętrzny, pytanie typu select one (wybierz jedną) zwraca wartość elementu wyboru. W poniższym przykładzie w instrukcji warunkowej używana jest wartość wyboru zamiast etykiety:

${if select_one=="choice1Value"}The user selected the first choice.${/}

Aby w sposób zamierzony wyświetlić wartość wyboru, a nie etykietę, należy użyć wyrażenia getValue:

${select_one | getValue:""}

Zarówno w przypadku pytań typu select one (wybierz jedno), jak i typu select multiple (wybierz wiele), można użyć wyrażenia w celu umieszczenia pola wyboru obok elementu do wyboru. Zostanie ono wypełnione zgodnie z odpowiedzią na pytanie. Poniższe wyrażenie jest wyświetlane, kiedy w pytaniu została wybrana opcja yes:

${select_one | checked:"yes"} Yes

Pytania typu select multiple (wybierz wiele) obsługują wyrażenia służące do wyświetlania łącznej liczby wybranych możliwości wyboru i konkretnej wybranej możliwości wyboru:

${select_multiple | countSelected}

${choiceQuestion1 | selectedAt:2}

Notatka:

Wyrażenie selectedAt rozpoczyna zliczanie wybranych możliwości wyboru od zera. Oznacza to, że wyrażenie ${choiceQuestion1 | selectedAt:2} zwróci trzecią wybraną możliwość wyboru.

Pytania typu Wybierz wiele także mają obsługiwane wyrażenie zwracające wszystkie zaznaczone elementy wyboru w postaci listy wypunktowanej, jak pokazano poniżej:

${select_multiple | appearance:"bullets"}

Notatka:

Jeśli etykieta elementu wyboru zawiera podwójne cudzysłowy, muszą być one poprzedzone ukośnikiem odwrotnym. W przeciwnym razie nie będzie możliwości wydrukowania raportu. Ukośnik odwrotny nie jest konieczny w przypadku pojedynczych cudzysłowów. Poniżej znajduje się przykład:

${select_one | checked:"Service provided by \"Greg's Plumbing\""} Service provided by "Greg's Plumbing"

Powtórzenia

Aby uzyskać dostęp do pytań w powtórzeniu, należy dodać do szablonu sekcję powtarzania. W przypadku nazwanych defektów powtórzenia symbol zastępczy ${#defects} oznacza początek sekcji powtórzenia, natomiast symbol ${/} oznacza jej koniec. Symbole zastępcze wskazujące pytania w powtórzeniu muszą znajdować się między początkowym i końcowym symbolem zastępczym powtarzania.

Notatka:

Aby wydrukować zawartość powtórzenia zawartego w tabeli, należy oba znaczniki — początkowy i końcowy — umieścić wewnątrz tabeli albo na zewnątrz tabeli. Jeśli jeden z tych znaczników zostanie umieszczony wewnątrz tabeli, a drugi na zewnątrz, raport nie zostanie wygenerowany. Przy umieszczaniu znaczników wewnątrz tabeli zwykle znacznik początkowy wstawia się w pierwszej komórce, a znacznik końcowy w ostatniej.

Aby uzyskać dostęp do pytań zawartych w zagnieżdżonym powtórzeniu, umieść ich znaczniki między znacznikami poszczególnych warstw powtórzeń znajdujących się powyżej interesującej sekcji powtarzania. Poniżej znajduje się przykład:

${#repeat1}
${#repeat2}
${#repeat3}
${field1InRepeat3}, ${repeat2.field1}, ${repeat1.field1}, ${mainLayer.field1} 
${/}
${/}
${/}

Wyrażenia raportu nie mogą odczytywać znaków specjalnych, takich jak łączniki, przy odwoływaniu się do nazw warstw z użyciem składni ${layername}. W przypadku odniesień do warstwy zawierającej w swojej nazwie znaki specjalne należy użyć znaków podkreślenia zamiast znaków specjalnych. Można też odwoływać się do warstwy za pomocą słowa kluczowego $layers i nazwy albo identyfikatora warstwy, na przykład ${$layers["my layer name"]} lub ${$layers[0]}. Może to być użyteczne w przypadku zduplikowanych nazw warstw.

Odnosząc się w powtórzeniu do pola o takiej samej nazwie jak powtórzenie nadrzędne, należy użyć składni pełnej ścieżki zawierającej zarówno nazwę pola, jak i nazwę powtórzenia, na przykład ${sharedName.sharedName}.

Aby wyświetlić indeks rekordu powtórzenia, użyj wyrażenia getValue z zarezerwowanym słowem kluczowym $feature. W tym przykładzie zostanie zwrócona wartość 1 dla pierwszego rekordu, wartość 2 dla drugiego rekordu i tak dalej:

${#defects}
${$feature | getValue: "position"}
${/}

Zapytania w raportach

Do tworzenia zapytań o wartości w drukowanych odpowiedziach można użyć funkcji agregujących. Zapytania te najlepiej pasują do sekcji podsumowania, która będzie wyświetlana tylko raz w raporcie, niezależnie od liczby drukowanych odpowiedzi. Więcej informacji zawiera temat Zapytania w raportach.

Aby ograniczyć raport do drukowania konkretnej liczby powtórzeń, a nie do każdego powtórzenia związanego z odpowiedzią, należy użyć metody resultRecordCount do skonfigurowania konkretnej liczby powtórzeń do wydrukowania:

${#defects | resultRecordCount:20}...${/}

Do określenia kolejności, w jakiej będą drukowane powtórzenia, można użyć metody orderByFields. Należy zadeklarować nazwę pola, po której występuje ASC lub DESC, a powtórzenia zostaną wydrukowane odpowiednio w kolejności rosnącej lub malejącej, zgodnie z wartością w tym polu:

${#defects | orderByFields:"state_name ASC, pop2000 DESC"}...${/}

Elementy warunkowe raportu

Korzystając z instrukcji if (jeżeli), można wyświetlać lub ukrywać warunkowo elementy raportu. Instrukcja if (jeżeli) może być używana przez wpisanie wyrażenia w początkowym symbolu zastępczym ${if expression}, gdzie ciąg ${/} wskazuje koniec segmentu warunkowego. Poniżej przedstawiono kilka przykładów instrukcji if (jeżeli), które mogą być używane do wyświetlania lub ukrywania części raportu:

  • ${if photo1} wyświetla sekcję tylko wtedy, gdy udzielono odpowiedzi na pytanie photo1.
  • ${if integer1>0} wyświetla sekcję tylko wtedy, gdy odpowiedź na pytanie integer1 była liczbą dodatnią.
  • ${if ((geopoint1 | getValue:"y")>0)} wyświetla sekcję tylko wtedy, gdy punkt geograficzny znajduje się na półkuli północnej.
  • Wyrażenie ${if multiple_choice1 | selected:"A"} wyświetla sekcję tylko wtedy, gdy dla pytania z wieloma możliwościami odpowiedzi wybrano opcję 'A'.
  • Instrukcja ${if (repeat1 | getValue:"count")>=3} wyświetla sekcję tylko wtedy, gdy powtórzenie repeat1 zawiera trzy lub większą liczbę rekordów.

W poniższym przykładzie tekst w drugim wierszu będzie wyświetlany w raporcie tylko wtedy, gdy jako priorytet pytania typu select one (wybierz jedną) zostanie wybrana wartość high:

${if priority | selected:"high"}
High priority issues must be addressed within seven days.
${/}

Aby sprawdzić, czy odpowiedź zawiera wartość pytania, należy użyć instrukcji if (jeżeli) odwołującej się bezpośrednio tylko do nazwy pola, tzn. bez jakichkolwiek innych operatorów, na przykład ${if photo1}. Dzięki temu formatowi puste ciągi znakowe, wartości null i wartości niezdefiniowane są traktowane jako wartości puste. Ten format ma zastosowanie do pól znakowych, liczbowych, daty i załącznika. Jeśli ten format zostanie użyty z powtórzeniami, sekcja ta pojawi się, gdy wystąpi co najmniej jedno wystąpienie w powtórzeniu.

Aby użyć instrukcji warunkowych z pytaniami dotyczącymi daty i czasu, wykonaj obliczenia w czasie epoki (liczba milisekund od 1 stycznia 1970r.). Na przykład instrukcja ${if (date1|getValue:"") < 1602735375000} wyświetla sekcję tylko wtedy, gdy wartość w polu daty jest starsza niż 14 października 2020r. Pamiętaj, że składnia raportu nie ma odpowiednika funkcji XLSForm today() ani now(), dlatego nie ma możliwości złożenia instrukcji warunkowej dla czasów względem chwili wydruku raportu.

W instrukcjach if (jeżeli) obsługiwane są następujące operatory logiczne:

OperatorOpis

||

Wartość prawda (true), jeśli jedna z dwóch instrukcji zwraca wartość prawda (true)

&&

Wartość prawda (true), jeśli obie instrukcje zwracają wartość prawda (true)

!

Wartość prawda (true), jeśli instrukcja nie ma wartości prawda (true)

==

Wartość prawda (true), jeśli dwie podane wartości są sobie równe

!=

Wartość prawda (true), jeśli dwie podane wartości nie są sobie równe

>

Ocenia, czy pierwsza wartość jest większa niż druga

>=

Ocenia, czy pierwsza wartość jest większa lub równa drugiej.

<

Ocenia, czy pierwsza wartość jest mniejsza niż druga

<=

Ocenia, czy pierwsza wartość jest mniejsza lub równa drugiej

Ograniczenia

Przy korzystaniu z szablonów raportów obowiązują poniższe ograniczenia:

  • Filtry zastosowane do powtórzeń w witrynie Survey123 nie są używane w raportach. Powtórzenia można filtrować w raporcie tylko przy użyciu wyrażeń.
  • Mapa nie zostanie umieszczona w raporcie, jeśli jest to mapa internetowa w wersji wcześniejszej niż 2.0, która została opublikowana w lipcu 2014 roku.
  • Mapa nie zostanie umieszczona w raporcie, jeśli portal ArcGIS Enterprise nie ma ważnego certyfikatu SSL.
  • Drukowanie z użyciem szablonów raportów nie działa z wdrożeniami oprogramowania ArcGIS Enterprise, które nie są dostępne publicznie. Jeśli zostanie podjęta taka próba, pojawi się błąd getaddrinfo ENOTFOUND.
  • Drukowanie z użyciem szablonów raportów nie działa we wdrożeniach oprogramowania ArcGIS Enterprise, w których używane jest zintegrowane uwierzytelnianie systemu Windows (IWA).
  • W jednym żądaniu raportu można uwzględnić maksymalnie 2000 rekordów.
  • Jeśli witryna internetowa Survey123 jest zainstalowana we własnej infrastrukturze, nie można korzystać z interfejsu API raportowania. Raporty można generować tylko wtedy, gdy używana jest witryna https://survey123.arcgis.com/.