Kalkulator Pola może być użyty w celu ustalenia zawartości jednego, wielu lub wszystkich pól w tabeli.
Jest przydatnym narzędziem do kopiowania, łączenia lub tworzenia nowych pól informacyjnych.
Składniki Kalkulatora Pola

Aby otworzyć Kalkulator Pola należy otworzyć tabelę atrybutów lub dowolną inną tabelę w Krystynie. Następnie należy kliknąć w nazwę pola które ma być edytowane i wybrać polecenie Wylicz. Inny sposób to wybranie polecenia Wylicz z menu Pole i wybranie odpowiedniego pola z dialogu który się pokaże. Należy pamiętać o tym aby tabela nie była otwarta w trybie tylko do odczytu. Aby dokonywać obliczeń na wszystkich polach w tabeli nie należy wybierać żadnego lub wybrać wszystkie. Aby dokonywać obliczeń na jednym lub kilku polach, należy je wybrać przed wykonywaniem obliczeń.
Jednym z powszechnych zastosowań Kalkulatora Pola jest kopiowanie zawartości jednego pola do drugiego. Aby to zrobić należy w otwartym Kalkulatorze Pola (z wybranym polem docelowym) podwójnie kliknąć nazwę pola na liście pól. Pole powinno się pojawić w nawiasach w obszarze roboczym Kalkulatora Pola. Następnie należy wpisać średnik i wcisnąć klawisz Wylicz. To spowoduje wypełnienie pola docelowego kopiami wartości z pola źródłowego. Oczywiście typy danych obu pól muszą być takie same. W przeciwnym wypadku należy dokonać ich konwersji.
W obszarze roboczym Kalkulatora Pola można wprowadzać znacznie bardziej skomplikowane formuły używając języka skryptowego Krystyny. Więcej Informacji na ten temat zawartych jest w rozdziale Calculating a field’s values w pliku pomocy, lub w przykładzie zatytułowanym Zmiana ścieżek absolutnych w katalogu danych przestrzennych na względne. W dowolnej chwili można kontekstowo użyć klawisza Pomoc, aby uzyskać informacje na temat funkcji którą chcemy użyć. Wystarczy zaznaczyć funkcję i wcisnąć klawisz Pomoc.
Dodatkowe informacje na temat funkcji które można użyć w Kalkulatorze Pola zawarte są poniżej.
Operacje matematyczne
| Operacja | Składnia |
|---|---|
| Dodawanie dwóch (lub więcej) pól | [NUMFLD] = [NUMFLD1] + [NUMFLD2]; |
| Odejmowanie dwóch (lub więcej) pól | [NUMFLD] = [NUMFLD1] - [NUMFLD2]; |
| Mnożenie dwóch (lub więcej) pól | [NUMFLD] = [NUMFLD1] * [NUMFLD2]; |
| Dzielenie dwóch (lub więcej) pól | [NUMFLD] = [NUMFLD1] / [NUMFLD2]; |
| Konwersja jednostek z metrów na stopy (feet) | [NUMFLD] = [METERS_FLD] * 3.2808; |
| Konwersja stopni, minut, sekund, na stopnie dziesiętne | [NUMFLD] = [DEG] + ([MIN]/60) + ([SEC]/3600); |
| Wyliczanie gęstości zaludnienia | [NUMFLD] = [TOTAL_POP] / [AREA]; |
| Wartość średnia | [NUMFLD] = ([NUMFLD1] + [NUMFLD2]) / 2; |
| Liczba znaków w tekście zawartym w polu | [TEXTFLD].GetLength([NUMFLD]); |
Operacje tekstowe
| Operacja | Składnia |
|---|---|
| Wypełnienie pola nowym tekstem | [TEXTFLD] = "Text"; |
| Połączenie zawartości dwóch pól bez spacji | [TEXTFLD] = [TEXTFLD1] + [TEXTFLD2]; |
| Połączenie zawartości dwóch pól ze spacją | [TEXTFLD] = [TEXTFLD1] + " " + [TEXTFLD2]; |
| Połączenie nowego tekstu ze spacją i polem | [TEXTFLD] = "Text" + " " + [TEXTFLD1]; |
| Zapis zawartości pola numerycznego do pola tekstowego | [NUMERICFLD].AsString([TEXTFLD]); |
| Zapis n znaków z lewej strony łańcucha znaków (n to liczba znaków) | [TEXTFLD].Left(n, [TEXTFLD]); |
| Zapis n znaków z prawej strony łańcucha znaków (n to liczba znaków) | [TEXTFLD].Right(n, [TEXTFLD]); |
| Konwersja tekstu na małe litery | [TEXTFLD].LCase(); |
| Konwersja tekstu na duże litery | [TEXTFLD].UCase(); |
| Usunięcie spacji z początku i z końca łańcucha znaków | [TEXTFLD].TrimWhiteSpace(TRUE, TRUE); |
| Zastąpienie znaku przez inny znak (np. zamiana “C” na “D”) | Number nLen i; String sStr; [TEXTFLD].GetLength(nLen); while(i < nLen); [TEXTFLD].Get(i, sStr); endwhile;if (sStr == "C"); [TEXTFLD].Set(i,
"D"); endif;i = i + 1; |