Rozszerzalne instrukcje warunkowe "jeśli-wtedy-inaczej" działają podobnie do instrukcji przełącznika w programie MapForce
W odpowiedzi na liczne prośby użytkowników, komponent "if-else" w programie MapForce został ulepszony w wersji MapForce 2011 Release 2, aby obsługiwał dowolną liczbę zmiennych. Ta funkcja, odpowiadająca instrukcji "switch" w wielu językach programowania, umożliwia łatwe kontrolowanie przepływu danych w projekcie mapowania poprzez dopasowanie wartości do określonego kryterium. Na przykład, zrzut ekranu poniżej pokazuje komponent "if-then" używany w połączeniu z innymi komponentami do analizy danych dotyczących temperatury i generowania następujących wyników:
- Jeśli wartość temperatury jest większa niż 20, to wartość logiczna "prawda" jest przekazywana do zmiennej bool1, a tekst "wysoka" jest przekazywany do zmiennej value-true1.
- Jeśli temperatura jest niższa niż 5, wartość logiczna "prawda" jest przekazywana do zmiennej bool2, a tekst "nisko" jest przekazywany do zmiennej value-true2.
- Tylko jeden z parametrów oznaczonych jako "prawdziwe" może być aktywny dla danej temperatury, a jest to ten parametr, który jest przekazywany do atrybutu "desc" w docelowym komponencie.

Zrzut ekranu powyżej pochodzi z przykładowego pliku Classify Temperatures.mfd, który jest dołączony podczas instalacji MapForce. Dzięki temu można od razu przetworzyć przykładowe dane lub zmodyfikować mapowanie, aby samodzielnie zobaczyć wynik. Nowa, rozszerzalna funkcja warunkowa (if-else) pomaga programistom tworzyć mapowania danych szybciej, generuje diagram mapowania, który bardziej efektywnie prezentuje warunki, oraz ułatwia testowanie i debugowanie, ponieważ rozszerzona funkcja warunkowa jest znacznie łatwiejsza do odczytania niż kaskadowa struktura pojedynczych komponentów. Jest to szczególnie widoczne, gdy trzeba ocenić dużą liczbę warunków. Zrzut ekranu poniżej pokazuje konwersję z ciągu znaków na liczbę, gdzie ciąg znaków składa się z trzy-literowego skrótu miesiąca. (W celu oszczędności miejsca, ta funkcja warunkowa przetwarza tylko ciągi znaków odpowiadające pierwszym sześciu miesięcy roku.)
![]()
Z powodu błędu podczas kopiowania i wklejania zapomnieliśmy zaktualizować stałą wyjściową dla maja, zmieniając jej wartość z 4 na 5. Taki błąd jest znacznie łatwiej wykryć i naprawić, gdy można zobaczyć całą logikę w jednym miejscu! (AKTUALIZACJA: Pierwotnie stworzyliśmy ten przykład, aby zilustrować zalety rozszerzonych konstrukcji warunkowych (If-Else) w porównaniu zagnieżdżonych lub kaskadowych struktur If-Else, które mogą szybko stać się zbyt rozbudowane, aby wyświetlić je na jednym ekranie. Aby uzyskać lepsze rozwiązanie tego i innych podobnych zadań konwersji, wykorzystujące tablicę wyszukiwania, zapraszamy do przeczytania wpisu na blogu zatytułowanego "Instrukcja Switch vs. Tablica Wyszukiwania w MapForce")
Sprawdź sam, jak łatwo jest wykorzystać rozszerzone funkcje warunkowe "if-else" w swoich projektach mapowania danych. Pobierz bezpłatną 30-dniową wersję próbną programu MapForce.