Jak tworzyć gniazda rozszerzeń na tabelach dodatkowych?
Gniazda rozszerzeń tworzone są również dla tabel dodatkowych. Oznacza to, że dostępne są gniazda zarówno na liście zapisów tabeli dodatkowych, jak również na formularzach tabel dodatkowych. Wygenerowane gniazda rozszerzeń dla tabel dodatkowych mają analogiczną strukturę, jak na standardowych ekranach aplikacji, ponieważ dotyczą zdarzeń tego samego typu, np. otwarcie okna formularza, zatwierdzenie formularza itp. Również edytor gniazd rozszerzeń wywoływany jest na tabelach dodatkowych tak samo jak w innych miejscach w aplikacji, tzn. za pomocą skrótu klawiszowego Ctrl+Shift+F12
.
Podczas definiowania struktury tabeli dodatkowej na zakładce Zaawansowane, w parametrach kolumny można włączyć generowanie gniazd rozszerzeń dla poszczególnych pól, które znajdą się na formularzu tabeli dodatkowej. Po zaznaczeniu opcji Generuj gniazdo rozszerzeń dla pola na formularzu
i zatwierdzeniu definicji tabeli, w edytorze gniazd rozszerzeń uruchomionym na formularzu tabeli pojawi się zdarzenie o nazwie Pole formularza: Nazwa pola | Po, gdzie nazwa pola będzie zawierała nazwę opisową kolumny tabeli dodatkowej. Powyższe gniazdo rozszerzeń jest wykonywane po zatwierdzeniu pola na formularzu (np. klawiszem Enter
) w trakcie edycji zapisu tabeli. Każda zmiana w polu formularza ponownie uruchamia ww. zdarzenie.
Na formularzu tabeli dodatkowej wszystkie pola (oraz pola techniczne tabeli dodatkowej) są reprezentowane w gniazdach rozszerzeń formularza w postaci zmiennych kontekstowych o nazwach odpowiadających nazwom kolumn SQL tabeli w bazie danych. Zmienne skojarzone z polami formularza mogą być zmieniane w procedurach składowanych wykonywanych w gniazdach formularza, ponieważ zostały zadeklarowane jako SQL Output. W efekcie, w prosty sposób można inicjować wartości poszczególnych pól formularza tuż po otwarciu okna albo wykorzystać gniazdo Pole formularza: Nazwa pola | Po do ustalenia wartości pozostałych pól formularza po wypełnieniu pola z nazwą.
Gniazda uruchamiane po zatwierdzeniu pola formularza są szczególne użyteczne, gdy trzeba wyliczyć na formularzu wartość jednego z pól na podstawie wartości pozostałych pól formularza. Dzięki tym gniazdom można tworzyć niemal dowolne zależności między poszczególnymi polami formularza.
W gniazdach dostępnych na listach i formularzach tabel dodatkowych można uruchamiać inne formularze tabel, które również mogą zawierać kod obsługi gniazd rozszerzeń (także uruchamiający kolejne formularze). Można więc tworzyć kaskadowe wywołania list i formularzy tabel dodatkowych. Oznacza to, że można konstruować zaawansowane zależności między tabelami dodatkowymi (relacje).