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.


note

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 LibreOffice 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.


note

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ę – LibreOffice – 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

Firma

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 LibreOffice)


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.


note

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.

note

Aby wyświetlić ukryte akapity na ekranie, wybierz - LibreOffice 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 LibreOffice.

  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!