Spis treści

# Dane

Na zakładce Dane są zdefiniowane własności formularza odwołujące się do bazy danych powiązanej z formularzem.

Definiuje źródło danych, na którym oparty jest formularz, albo określa, czy dane mogą być edytowane przez użytkownika. Oprócz funkcji sortowania i filtrowania dostępne są także wszystkie właściwości wymagane do utworzenia podformularza.

Aby wykonać tę operację...

Otwórz menu kontekstowe wybranej pozycji formularza - wybierz kartę Właściwości formularza - Dane.

Otwórz pasek narzędzi Projekt formularza, kliknij ikonę Właściwości formularza - karta Dane.

## Cykl

Określa sposób nawigacji za pomocą klawisza Tab. Używając klawisza Tab, możesz poruszać się do przodu w formularzu. Jeśli jednocześnie naciśniesz klawisz Shift, nawigacja potoczy się w przeciwnym kierunku. Jeśli dotrzesz do ostatniego (lub pierwszego) pola i ponownie naciśniesz klawisz Tab, może to mieć różne skutki. Dostępne są następujące opcje konfigurowania sterowania klawiaturą:

Opcja | Znaczenie
--- | ---
Domyślny | To ustawienie automatycznie definiuje cykl przechodzenia do istniejącego powiązanego elementu w bazie danych: Jeśli formularz zawiera powiązanie z bazą danych, naciśnięcie klawisza Tab po opuszczeniu ostatniego pola domyślnie powoduje przejście do następnego lub poprzedniego rekordu (patrz Wszystkie rekordy). Jeśli formularz nie ma powiązania z bazą danych, pokazywany jest następny/poprzedni formularz (patrz Bieżąca strona).
Wszystkie rekordy | Ta opcja dotyczy tylko formularzy baz danych i służy do nawigacji po wszystkich rekordach. W przypadku naciśnięcia klawisza Tab po opuszczeniu ostatniego pola formularza następuje zmiana bieżącego rekordu.
Aktywny rekord | Ta opcja dotyczy tylko formularzy baz danych i służy do nawigacji w ramach bieżącego rekordu. W przypadku naciśnięcia klawisza Tab po opuszczeniu ostatniego pola formularza następuje zmiana bieżącego rekordu.
Bieżąca strona | Po opuszczeniu ostatniego pola formularza kursor jest umieszczany w pierwszym polu następnego formularza. Jest to domyślne działanie formularzy HTML; dlatego opcja ta jest szczególnie przydatna właśnie w formularzach HTML.

## Dodaj tylko dane

Określa, czy formularz pozwala tylko na dodawanie nowych danych (Tak), czy też pozwala na inne właściwości (Nie).

Jeśli opcja Dodaj tylko dane jest ustawiona na wartość "Tak", zmiana lub usunięcie danych nie jest możliwe.

## Filtr

Wprowadź wymagane warunki filtrowania danych w formularzu. Specyfikacje filtrów są zgodne z regułami SQL bez użycia klauzuli WHERE. Na przykład, jeśli chcesz wyświetlić wszystkie rekordy z imieniem 'Marek', wpisz w polu danych: Imię = 'Marek'. Możesz także łączyć warunki: Imię = 'Marek' OR Imię = 'Piotr'. Zostaną wyświetlone wszystkie rekordy spełniające jeden z tych dwóch warunków.

Funkcja filtru jest dostępna w trybie użytkownika przez ikony Autofiltr i Filtr domyślny na pasku Formularz.

## Pasek nawigacji

Określa, czy można używać funkcji nawigacji w dolnym pasku formularza.

Opcja formularza nadrzędnego jest stosowana w przypadku podformularzy. Po jej wybraniu w podformularzu możliwa jest nawigacja po rekordach głównego formularza, jeśli kursor jest umieszczony w podformularzu. Podformularz jest powiązany z formularzem macierzystym relacją 1:1, a więc nawigacja zawsze odbywa się w formularzu macierzystym.

## Połącz pola nadrzędne

Jeśli tworzysz podformularz, wprowadź dane formularza nadrzędnego odpowiedzialnego za synchronizację pomiędzy nadrzędnym a podformularzem. Aby wprowadzić wiele wartości, naciśnij Shift + Enter po każdym wierszu wprowadzania.

Podformularz jest oparty na zapytaniu SQL; dokładniej na zapytaniu parametrycznym. Jeśli wpiszesz nazwę pola w Połącz pola nadrzędne, dane zawarte w tym głównym polu formularza zostaną załadowane do zmiennej, którą musisz wprowadzić w Połącz pola podrzędne. W odpowiednim zapytaniu SQL ta zmienna jest porównywana z danymi w tabeli, do której odwołuje się podformularz. Opcjonalnie możesz też wpisać nazwę kolumny w Połącz pola nadrzędne.

Poniżej opisano działanie tego pola na przykładzie:

Tabela bazy danych, na której oparty jest formularz, to - na przykład - baza klientów ("Klienci"), w której każdemu klientowi przypisany jest jednoznaczny numer w polu danych o nazwie "ID_klienta". Zamówienia klienta są rejestrowane w innej tabeli bazy danych. W przykładzie zakładamy, że użytkownik chce zobaczyć zamówienia każdego klienta wprowadzonego w formularzu. W tym celu należy utworzyć podformularz. W polu Połącz pola nadrzędne należy wprowadzić pole danych z bazy klienta jednoznacznie identyfikujące tego klienta, tj. ID_klienta. W polu Połącz pola podrzędne należy wprowadzić nazwę zmiennej, która ma przyjmować dane z pola ID_klienta - np. x.

W podformularzu powinny być widoczne odpowiednie dane z tabeli zamówień ("Zamówienia") dotyczące każdego identyfikatora klienta (ID_klienta -> x). Jest to możliwe tylko wtedy, gdy każde zamówienie jest przypisane w sposób unikatowy do jednego klienta w tabeli zamówień. Ewentualnie można zastosować inne pole o nazwie ID_klienta; jednak w celu uniknięcia pomyłki z polem o takiej samej nazwie w głównym formularzu, tutaj pole nosi nazwę Numer_klienta.

Teraz należy porównać pole Numer_klienta w tabeli "Zamówienia" z polem ID_klienta w tabeli "Klienci". Można to zrobić na przykład za pomocą zmiennej x i następującej instrukcji SQL:

SELECT * FROM Zamówienia WHERE Numer_klienta =: x (jeśli w podformularzu mają zostać wyświetlone wszystkie dane z tabeli zamówień)

lub:

SELECT Element FROM Zamówienia WHERE Numer_klienta =: x (jeśli w podformularzu mają zostać wyświetlone tylko dane z tabeli zamówień zawierające pole "Element")

Instrukcję SQL można wprowadzić w polu Źródło danych; ewentualnie można utworzyć odpowiednią kwerendę parametryczną, na podstawie której zostanie utworzony podformularz.

## Połącz pola podrzędne

Jeśli tworzysz podformularz, wprowadź zmienną, w której mogą być przechowywane możliwe wartości z nadrzędnego pola formularza. Jeśli podformularz jest oparty na zapytaniu, wprowadź zmienną zdefiniowaną w zapytanie. Jeśli tworzysz formularz za pomocą instrukcji SQL wprowadzonej w polu Źródło danych, wprowadź zmienną, której użyłeś w instrukcji. Możesz wybrać dowolną nazwę zmiennej. Jeśli chcesz wprowadzić wiele wartości, naciśnij klawisze Shift + Enter.

Na przykład jeśli jako pole nadrzędne w opcji Połącz pola nadrzędne wprowadzono pole ID_klienta bazy danych, w polu Połącz pola podrzędne można zdefiniować nazwę zmiennej, do której mają być zapisywane wartości z pola ID_klienta bazy danych. Jeśli teraz przez tę zmienną w polu Źródło danych zostanie wprowadzona instrukcja SQL, w podformularzu zostaną wyświetlone odpowiednie wartości.

## Przeanalizuj polecenie SQL

Określa, czy instrukcja SQL ma być analizowana przez LibreOffice. Jeśli ustawione na Tak, możesz kliknąć przycisk ... obok przycisku Zawartość. Spowoduje to otwarcie okna, w którym możesz graficznie utworzyć zapytanie bazy danych. Po zamknięciu tego okna instrukcja SQL dla utworzonego zapytania zostanie wstawiona w polu listy Zawartość.

## Sortuj

Określa warunki sortowania danych w formularzu. Specyfikacja warunków sortowania odpowiada regułom SQL, bez klauzuli ORDER BY. Np. jeśli chcesz posortować wszystkie rekordy w bazie danych według jednego pola rosnąco, a drugiego malejąco, wpisz Imię ASC, Nazwisko DESC (Imię i Nazwisko to nazwy pól danych).

W trybie użytkownika sortowanie można wykonać za pomocą odpowiednich ikon paska Formularz: Sortuj rosnąco, Sortuj malejąco, Sortuj.

## Typ zawartości

Definiuje, czy źródło danych jest istniejącą tabelą bazy danych lub kwerendą albo czy formularz jest generowany na podstawie instrukcji SQL.

W przypadku wybrania opcji "Tabela" lub "Kwerenda" formularz odwołuje się do tabeli lub kwerendy określonej w opcji Zawartość. W razie konieczności utworzenia nowej kwerendy lub podformularza należy wybrać opcję "SQL". Następnie instrukcję kwerendy SQL lub podformularz można wprowadzić bezpośrednio w polu Zawartość listy we właściwościach formantu na zakładce Dane.

## Zawartość

Określa zawartość formularza. Treść może być istniejącą tabelą lub zapytaniem (wcześniej utworzonym w bazie danych) lub może być zdefiniowana przez instrukcję SQL. Przed wprowadzeniem treści musisz zdefiniować dokładny typ w Typ zawartości.

Jeśli w polu Typ zawartości wybrano pozycję "Tabela" lub "Kwerenda", w polu listy wyświetlane są wszystkie tabele i kwerendy skonfigurowane w wybranej bazie danych.

## Zezwalaj na dodawanie

Określa, czy dane mogą być dodawane.

## Zezwalaj na modyfikacje

Określa, czy dane mogą być modyfikowane.

## Zezwalaj na usuwanie

Określa, czy dane mogą zostać usunięte.

## Źródło danych

Określa źródło danych, do którego powinien odnosić się formularz. Jeśli klikniesz przycisk ..., wywołasz okno dialogowe Otwórz, w którym możesz wybrać źródło danych.

## Co to jest podformularz?

Formularz jest tworzony na podstawie tabeli bazy danych lub kwerendy bazy danych. Dane są prezentowane w formularzu w sposób czytelny; ponadto za pomocą formularza można wprowadzać lub edytować dane.

Jeśli chcesz stworzyć formularz, który wyświetla dane z tabeli lub zapytania oraz może wyświetlać dane z innej tabeli, należy utworzyć podformularz. Podformularzem może być np. pole tekstowe zawierające dane z innych tabel bazy danych.

Podformularz jest dodatkowym komponentem formularza głównego. Formularz główny może być także określany nazwą "formularza nadrzędnego". Podformularze stosuje się wtedy, gdy z formularza wymagany jest dostęp do więcej niż jednej tabeli. Dostęp do każdej kolejnej tabeli wymaga oddzielnego podformularza.

Po utworzeniu formularz można zmienić na podformularz. W tym celu należy przejść do trybu projektowania i otworzyć Nawigator formularza. Tam należy przeciągnąć formularz (który staje się wtedy podformularzem) do innego formularza (ten ostatni staje się formularzem nadrzędnym).

Użytkownik dokumentu nie widzi, że formularz zawiera podformularze. Widoczny jest jedynie dokument z wprowadzonymi danymi.

Zawartość pola "Połącz pola nadrzędne" określa się na postawie pól danych formularza nadrzędnego. W podformularzu za pomocą opcji "Połącz pola podrzędne" można określić pole, którego zawartość ma być koordynowana z zawartością pola "Połącz pola nadrzędne".

Podczas nawigacji użytkownika po danych formularz zawsze wyświetla bieżący rekord danych. Jeśli zdefiniowano podformularze, ich zawartość jest wyświetlana po krótkim opóźnieniu wynoszącym ok. 200 ms. Dzięki temu opóźnieniu istnieje możliwość szybkiego przejścia do innych rekordów danych w formularzu nadrzędnym. Przejście do następnego rekordu formularza nadrzędnego przed upływem tego czasu oczekiwania powoduje, że dane podformularza nie zostaną pobrane ani wyświetlone.