Ten poradnik prowadzi od relacji między klasami do wygodnego wyboru obiektu na formularzu. Podstawowe rodzaje pól opisuje artykuł Klasy i pola w programie bs4 core, a wspólne ustawienia kontrolek — 1. Edycja elementów formularza.
Przykład: główna osoba kontrahenta #
Kontrahent i osoba kontaktowa są odrębnymi obiektami. W klasie „Kontrahent” pole „Główna osoba” wskazuje jeden obiekt klasy „Osoba”. Dodanie takiego pola nie kopiuje danych osoby do kontrahenta i nie tworzy automatycznie powiązania zwrotnego w drugim obiekcie.
Konfiguracja pola w klasie #
- Otwórz opcję menu „Opcje”, a następnie opcję „Administrator”. W kartotece administratora otwórz zakładkę „klasy” i wybierz klasę „Kontrahent”.
- W sekcji „Pola” otwórz istniejące pole „Główna osoba” albo kliknij przycisk „Dodaj nowe”.
- W polu „Rodzaj” wybierz „powiązanie 1 obiektu z innej klasy”. Jeśli relacja ma dopuszczać kilka osób, wybierz „powiązanie wielu obiektów z innej klasy”.
- W polu „Klucz do klasy” wskaż klasę „Osoba”. Nazwa ta pochodzi z edytora pola; w niektórych zestawieniach definicji można spotkać określenie „Powiązanie do klasy”.
- Ustaw nazwę pola i zapisz definicję. Wartość domyślna pola powiązania jest identyfikatorem obiektu, a nie jego nazwą.

Dopasowanie wyboru na formularzu #
Otwórz edytor właściwej strony formularza, następnie opcję menu „Elementy formularza” i element typu „pole”. W polu „pole” wskaż zdefiniowane powiązanie. Samo utworzenie pola w klasie nie dodaje kontrolki do wszystkich formularzy.
Dla krótkiej listy, np. opiekunów, wygodna jest lista wyboru. Dla tysięcy kontrahentów zastosuj wyszukiwarkę i w polu „Przekieruj do strony” wskaż odpowiednio skonfigurowane zestawienie docelowej klasy. Jego filtry i kolumny decydują o sposobie szukania oraz prezentacji kandydatów. Zobacz Konfiguracja strony typu „Zestawienie”.
Jeśli użytkownik ma móc tworzyć brakujący obiekt, ustaw pole „Strona do dodawania”. Opcja jest dostępna dla obsługiwanych kontrolek powiązań w wersji stacjonarnej; nie jest wspólną opcją każdej kontrolki, a powiązania z plikami mają osobny mechanizm przesyłania. Brak przycisku dodawania wymaga sprawdzenia rodzaju pola, kontrolki, wybranej strony i uprawnień użytkownika.
Jak ograniczyć listę #
Nie traktuj nazwy pola jako filtra. pole „Opiekun klienta” powiązane z użytkownikami samo w sobie nie oznacza listy wyłącznie aktywnych opiekunów. Ograniczenie może pochodzić ze słownika, np. „Użytkownicy włączeni”, albo z konfiguracji zestawienia użytego do wyszukiwania. Szczegóły: Słowniki — tworzenie i ograniczanie list wyboru.
Sprawdzenie konfiguracji #
W formularzu demonstracyjnym wybierz obiekt, zapisz dane i otwórz je ponownie. Dla relacji wielokrotnej sprawdź także wybór kilku rekordów i odłączenie jednego z nich. Jeżeli kontrolka ma otwierać kartotekę powiązanego obiektu, sprawdź ten link na koncie użytkownika docelowego. Widoczność wyboru nie zastępuje praw do samego obiektu.
Relacja z kontrahenta do osoby i lista wszystkich osób danego kontrahenta to różne sposoby wykorzystania powiązań. Kierunek zależności i przechodzenie między klasami wyjaśnia Przechodzenie między klasami i korzystanie z podzapytań. Zachowanie przy kasowaniu obiektów opisano w instrukcji klas i pól.
Powiązane instrukcje szczegółowe #
- Pola wyboru — warianty, kolory, ikony i wartości domyślne
- Pliki i obrazy na formularzu — dodawanie, powiązania i podgląd
- Zestawienie na formularzu — lista obiektów powiązanych z kartoteką
Atrybuty pól — szczegóły konfiguracji #
Atrybuty relacji: wymaganie, usuwanie i wspólny formularz #
W definicji powiązania rozwiń pole „Atrybuty pola”. Wariant „Indeks musi mieć wpisaną wartość” (indexwym) jest dostępny tylko dla powiązania pojedynczego. Wymaga wartości przy standardowym zapisie, a ponadto uczestniczy w usuwaniu zależności: usunięcie wskazanego obiektu może usunąć rekord zawierający to pole. Nie jest to zwykły indeks przyspieszający wyszukiwanie.
Wariant „Usuń bieżący obiekt (klucz pojedynczy) lub wyczyść wartość (klucz wielokrotny), jeśli obiekt wskazany w tym polu jest usuwany.” (indkaspow) jest dostępny dla relacji pojedynczej i wielokrotnej. Dla pojedynczej usuwa obiekt zawierający pole po usunięciu wskazywanego obiektu; dla wielokrotnej usuwa z listy tylko wskazane ID. Przykład: atrybut na polu „Pozycja → Dokument” dotyczy skutków usuwania dokumentu dla pozycji, a nie usuwania dokumentu przy skasowaniu pozycji. Szczegóły: Kasowanie danych.
Wariant „Udostępnij w kartotece obiekt powiązany po tym polu” (udpowoo) wymaga relacji pojedynczej do innej klasy. Udostępnia jej pola we wspólnym kontekście formularza. Przy pustym powiązaniu wypełnienie takich pól i zapis może utworzyć dodatkowy obiekt i ustawić relację. To coś więcej niż otwarcie innego okna. Standardowy zapis pozostawia jeden taki atrybut dla danej pary klas.
Wariant „Przypisuj automatycznie powiązanie do tego pola” (wppowkl) działa tylko w funkcjach korzystających z automatycznego wiązania, np. przy aktywności lub wiadomości. Nie wiąże sam wszystkich danych klasy. Powiązanie do dowolnej klasy oparte na dwóch polach systemowych to odrębny mechanizm opisany w Atrybuty pól — dostępność i działanie ustawień.
Pełny przewodnik: Atrybuty pól — dostępność i działanie ustawień.