Spis treści

# Definiowanie warunków

Warunki są wyrażeniami logicznymi, które mogą służyć do kontroli wyświetlania pól oraz sekcji dokumentu. Poniższe przykłady odnoszą się do pól, ale dotyczą również sekcji.

Można definiować warunki dla następujących typów pól:

1. Tekst warunkowy: wyświetla tekst A, jeśli warunek jest spełniony, lub tekst B, jeśli nie jest spełniony.

2. Ukryty tekst: ukrywa tekst pola, jeśli warunek jest spełniony.

3. Ukryty akapit: ukrywa akapit, jeśli warunek jest spełniony.

4. Dowolny rekord i następny rekord: kontroluje dostęp do rekordów bazy danych.

Najprostszym sposobem zdefiniowania warunku jest wpisanie wyrażenia logicznego bezpośrednio w polu Warunek z użyciem następujących wartości:

Prawda | Warunek jest zawsze spełniony. Jako tekst warunkowy można także wprowadzić dowolną wartość różną od zera.
Fałsz | Warunek nie jest spełniony. Można także wprowadzić wartość 0.

Pozostawienie pustego pola Warunek powoduje zinterpretowanie warunku jako niespełnionego.

Po zdefiniowaniu warunku należy użyć tych samych elementów, aby zdefiniować formułę. Są to operatory porównania, funkcje matematyczne i statystyczne, formaty liczb, zmienne i stałe.

Podczas definiowania warunku można użyć następujących typów zmiennych:

1. Wcześniej zdefiniowane zmienne LibreOfficeDev zawierające dane statyczne pochodzące z właściwości dokumentu

2. Zmienne niestandardowe tworzone z użyciem pola "Ustaw zmienną"

3. Zmienne oparte na danych użytkownika

4. Zmienne oparte na zawartości pól bazy danych

W wyrażeniach warunków nie można używać zmiennych wewnętrznych, takich jak numery stron i rozdziałów.

## Warunki i zmienne

W następujących przykładach użyto zmiennej o nazwie "x":

x == 1 lub x EQ 1 | Warunek jest spełniony, jeśli "x" jest równe 1.
x != 1 lub x NEQ 1 | Warunek jest spełniony, jeśli "x" jest różne od 1.
sinx == 0 | Warunek jest spełniony, jeśli "x" jest wielokrotnością liczby pi.

Użycie operatorów porównania z ciągami znaków wymaga ujęcia argumentów w cudzysłowy:

x == "ABC" lub x EQ "ABC" | Sprawdza, czy zmienna "x" zawiera ciąg znaków "ABC" (prawda), czy nie (fałsz).
x == "" lub x EQ "" lub !x lub NOT x | Sprawdza, czy zmienna "x" zawiera pusty ciąg znaków.

Operator porównania "równa się" musi być w warunku przedstawiony w postaci dwóch znaków równości (==). Na przykład definiując zmienną "x" o wartości 1, można wprowadzić warunek jako FALSE x==1.

## Dane użytkownika

Podczas definiowania warunków można dodać dane użytkownika. Aby zmienić dane użytkownika, wybierz opcję LibreOfficeDev – PreferencjeNarzędzia – Opcje – LibreOfficeDev – Dane użytkownika. Dane użytkownika należy wpisywać w postaci ciągów znaków. Można tworzyć zapytania o dane użytkownika, używając operatorów "==" (EQ), "!=" (NEQ) lub "!"(NOT).

W poniższej tabeli przedstawiono listę zmiennych danych użytkownika wraz z ich znaczeniami:

Zmienna | Znaczenie
--- | ---
user_firstname | Imię
user_lastname | Nazwisko
user_initials | Inicjały
user_company | Organizacja
user_street | Ulica
user_country | Kraj
user_zipcode | Kod pocztowy
user_city | Miejscowość
user_title | Tytuł
user_position | Pozycja
user_tel_work | Telefon służbowy
user_tel_home | Telefon domowy
user_fax | Numer faksu
user_email | Adres e-mail
user_state | Stan (nie we wszystkich wersjach LibreOfficeDev)

Na przykład aby ukryć akapit, tekst lub sekcję przed użytkownikiem o określonych inicjałach, takich jak "LM",. należy wprowadzić następujący warunek: user_initials=="LM".

## Warunki i pola baz danych

Można zdefiniować warunki uzyskiwania dostępu do baz danych lub ich pól. Na przykład można sprawdzić za pomocą warunku zawartość pól bazy danych lub użyć ich w wyrażeniach logicznych. W poniższej tabeli przedstawiono przykłady wykorzystania baz danych w warunkach:

Przykład | Znaczenie
--- | ---
BazaDanych.Tabela.Firma BazaDanych.Tabela.Firma NEQ "" BazaDanych.Tabela.Firma != "" | Warunek jest spełniony, jeśli pole Firma nie jest puste (w pierwszym przykładzie operator nie jest wymagany).
!BazaDanych.Tabela.Firma NOT BazaDanych.Tabela.Firma BazaDanych.Tabela.Firma EQ "" BazaDanych.Tabela.Firma == "" | Zwraca wartość PRAWDA, jeśli pole FIRMA jest puste.
BazaDanych.Tabela.Firma !="Sun" BazaDanych.Tabela.Firma NEQ "Sun" | Zwraca wartość PRAWDA, jeśli bieżącym wpisem w polu FIRMA nie jest "Sun". (Wykrzyknik odpowiada logicznemu NOT.)
BazaDanych.Tabela.Imię AND BazaDanych.Tabela.Nazwisko | Zwraca wartość PRAWDA, jeśli rekord zawiera imię i nazwisko.

Należy zwrócić uwagę na różnicę między logicznym NOT "!", a operatorem porównania oznaczającym brak równości "!=" (NEQ).

Odwołując się w warunku do pola bazy danych, należy używać formy NazwaBazyDanych.NazwaTabeli.NazwaPola. Jeśli jedna z nazw zawiera znak będący jednocześnie operatorem, taki jak na przykład znak minus (-), to umieść te nazwę w nawiasach kwadratowych - na przykład NazwaBazyDanych.[NazwaTabeli].NazwaPola. Nazwy pól nie mogą zawierać spacji.

### Przykład: Ukrywanie pustego pola bazy danych

Może być potrzebne utworzenie warunku, który ukrywa puste pole - na przykład jeśli pole Firma jest puste w niektórych rekordach.

Wybierz pozycję listy Ukryty akapit i wpisz następujący warunek: KsiazkaAdresowa.Adresy.Firma EQ ""

lub wpisz

NOT KsiazkaAdresowa.Adresy.Firma

Jeśli pola Firma będzie puste, to warunek będzie spełniony i akapit zostanie ukryty.

Aby wyświetlić ukryte akapity na ekranie, wybierz LibreOfficeDev - PreferencjeNarzędzia - Opcje - LibreOfficeDev Writer - Wydok, a następnie wyczyść pole wyboru Ukryte akapity.

## Przykłady warunków w polach

W przykładach jest wykorzystane pole Tekst warunkowy, ale mogą się one odnosić do każdego rodzaju pola, w którym można zastosować warunki. Składnia warunków jest także stosowana w przypadku pól Ukryty tekst, Ukryty akapit, Dowolny rekord i Następny rekord.

## Aby wyświetlić tekst warunkowy, opierając się na liczbie stron:

1. Wybierz Wstaw - Pole - Więcej pól, a następnie kliknij kartę Funkcje.

2. Kliknij "Tekst warunkowy" na liście Typ.

3. Wpisz "page==1" w polu Warunek.

4. W polu Wtedy, należy wpisać "Jest tylko jedna strona".

5. W polu W przeciwnym przypadku wpisz "Dokument zawiera wiele stron".

6. Kliknij Wstaw, a następnie Zamknij.

## Aby wyświetlić tekst warunkowy, opierając się na zmiennej zdefiniowanej przez użytkownika

1. Wybierz Wstaw - Pole - Więcej pól, a następnie kliknij kartę Zmienne.

2. Kliknij "Ustaw zmienną" na liście Typ.

3. Wpisz "Zysk" w polu Nazwa.

4. W polu Wartość wpisz "5000".

5. Kliknij Wstaw.

6. Kliknij zakładkę Funkcje i zaznacz pozycję "Tekst warunkowy" na liście Typ.

7. W polu Warunek wpisz "Zysk < 5000".

8. W polu Wtedy wpisz tekst "Nie osiągnięto celu".

9. W polu W przeciwnym przypadku wpisz "Cel został osiągnięty".

10. Kliknij Wstaw.

Aby edytować zawartość zmiennej "Zysk", kliknij dwukrotnie pole tej zmiennej.

## Aby wyświetlić tekst warunkowy, opierając się na zawartości pola bazy danych:

W pierwszej części tego przykładu pomiędzy pola dokumentu "Imię" i "Nazwisko" jest wstawiana spacja, a w drugiej części jest wstawiany tekst zależny od zawartości pola Imię. Ten przykład wymaga, aby źródło danych adresowych było zarejestrowane w LibreOfficeDev.

1. Wybierz Wstaw - Pole - Więcej pól, a następnie kliknij kartę Baza danych.

2. Kliknij "Pole listu seryjnego" na liście Typ.

3. Kliknij dwukrotnie książkę adresową w polu Wybór bazy danych, kliknij "Imię", a następnie Wstaw. Powtórz te czynności dla pola "Nazwisko".

4. Umieść kursor w dokumencie między tymi dwoma polami, naciśnij spację, a następnie powróć do okna dialogowego Pola:

5. Kliknij zakładkę Funkcje i zaznacz pozycję "Tekst warunkowy" na liście Typ.

6. W polu Warunek wpisz: "KsiazkaAdresowa.Adresy.Imie".

7. Wpisz spację w polu Wtedy i pozostaw puste pole W przeciwnym przypadku.

Można teraz użyć warunku, aby wstawić tekst oparty na zawartości pola Imię.

1. Kliknij zakładkę Funkcje w oknie dialogowym Pola.

2. Kliknij "Tekst warunkowy" w polu Typ.

3. W polu Warunek wpisz: KsiazkaAdresowa.Adresy.Imie == "Michael"

4. W polu Wtedy wpisz tekst "Szanowny".

5. W polu W przeciwnym razie wpisz "Hello".

6. Kliknij Wstaw.

Prosimy o wsparcie!