Narzędzia użytkownika

Narzędzia witryny


fedora:aplikacje:libreoffice:base

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
fedora:aplikacje:libreoffice:base [2025/04/06 21:25] – [Relacje] sindapfedora:aplikacje:libreoffice:base [2025/05/08 21:08] (aktualna) – [Makro otwierania i zamykania formularza] sindap
Linia 2: Linia 2:
 ===== Relacje ===== ===== Relacje =====
  
-Ogólnie w bazach relacyjnych występują cztery podstawowe typy relacji między tabelami. Znajomość sposobu działania tych relacji da możliwość użytkowania LO Base. Znając konstrukcje tych czterech typów relacji (1:1, 1:M, M:1, M:N), możesz stworzyć praktycznie każdą strukturę bazy danych! 🎯+Ogólnie w bazach relacyjnych występują cztery podstawowe typy relacji między tabelami. Znajomość sposobu działania tych relacji da możliwość użytkowania LO Base. Znając konstrukcje tych czterech typów relacji (1:1, 1:M, M:1, M:N), możesz stworzyć praktycznie każdą strukturę bazy danych!
  
 Bazy relacyjne działają na tych fundamentalnych zasadach, a bardziej skomplikowane modele to po prostu kombinacje tych relacji. Bazy relacyjne działają na tych fundamentalnych zasadach, a bardziej skomplikowane modele to po prostu kombinacje tych relacji.
Linia 103: Linia 103:
  
 Tworzenie nowej grupy w oparciu o unikalne pole (np. ID rekordu) i korzystanie z opcji "Trzymaj razem" w tej grupie to skuteczny sposób na zapewnienie, że dane w sekcji szczegółów są trzymane razem na jednej stronie. Dzięki temu rozwiązaniu możesz skutecznie zarządzać układem raportu, unikając niepożądanych podziałów danych na różne strony. Tworzenie nowej grupy w oparciu o unikalne pole (np. ID rekordu) i korzystanie z opcji "Trzymaj razem" w tej grupie to skuteczny sposób na zapewnienie, że dane w sekcji szczegółów są trzymane razem na jednej stronie. Dzięki temu rozwiązaniu możesz skutecznie zarządzać układem raportu, unikając niepożądanych podziałów danych na różne strony.
- + 
 +===== Formularze ===== 
 + 
 +==== Makro otwierania i zamykania formularza ==== 
 +Przydatne jeżeli chcemy pod przyciskiem utworzyć akcje zamknięcie aktualnie otwartego formularza a jednocześnie otworzenie nowego. Po dodanie skryptu pod ''właściwościami formantu'' przycisku w polu ''dodatkowe informacje'' wpisujemy ''TBLAUTOR;TBLKSIAZKA''. W tym przypadku zostanie zamknięty formularz ''TBLKSIAZKA'' a następnie otwarty formularz ''TBLAUTOR''. W zakładce ''Wydarzenia'' i polu ''Wykonaj akcję'' wybieramy nasze makro ''Standard.Module1.OpenAndCloseForm_FromTag (document, Basic)''
 + 
 +Działanie to jest przydane przy wypełnianiu danych tabel z relacją wiele do wielu. 
 + 
 +Jeżeli chcemy pozostawić otwarty formularz ''TBLKSIAZKA'' w polu ''dodatkowe informacje'' wystarczy wpisać ''TBLAUTOR;'' i pominąć nazwę zamykanego formularza. 
 + 
 +Poniższe makro działa uniwersalnie na wszystkie formularze. 
 + 
 +<code sub> 
 +Sub OpenAndCloseForm_FromTag(oEvent As Object) 
 +    Dim oButton As Object 
 +    Dim sTagContent As String 
 +    Dim sTargetFormName As String 
 +    Dim sFormToCloseName As String 
 +    Dim oFormToOpen As Object 
 +    Dim oFormToClose As Object 
 + 
 +    ' Pobierz zawartość pola Etykieta danych (Tag) 
 +    oButton = oEvent.Source.Model 
 +    sTagContent = Trim(oButton.Tag) 
 + 
 +    If sTagContent = "" Then 
 +        MsgBox "Nie podano nazw formularzy w polu 'Etykieta danych'." 
 +        Exit Sub 
 +    End If 
 + 
 +    ' Podziel dane z pola Tag wg średnika 
 +    Dim aParts() As String 
 +    aParts = Split(sTagContent, ";"
 + 
 +    If UBound(aParts) < 0 Then 
 +        MsgBox "Brak poprawnych nazw formularzy w polu 'Etykieta danych'." 
 +        Exit Sub 
 +    End If 
 + 
 +    sTargetFormName = Trim(aParts(0)) ' formularz do otwarcia 
 + 
 +    If UBound(aParts) >= 1 Then 
 +        sFormToCloseName = Trim(aParts(1)) ' formularz do zamknięcia 
 +    Else 
 +        sFormToCloseName = "" ' brak drugiego formularza 
 +    End If 
 + 
 +    ' Otwórz docelowy formularz 
 +    On Error GoTo OpenError 
 +    oFormToOpen = ThisDatabaseDocument.FormDocuments.getByName(sTargetFormName) 
 +    oFormToOpen.open 
 +    On Error GoTo 0 
 + 
 +    ' Zamknij formularz, jeśli podano jego nazwę 
 +    If sFormToCloseName <> "" Then 
 +        On Error GoTo CloseError 
 +        oFormToClose = ThisDatabaseDocument.FormDocuments.getByName(sFormToCloseName) 
 +        oFormToClose.close(True) 
 +        On Error GoTo 0 
 +    End If 
 + 
 +    Exit Sub 
 + 
 +OpenError: 
 +    MsgBox "Nie udało się otworzyć formularza: " & sTargetFormName 
 +    Resume Next 
 + 
 +CloseError: 
 +    MsgBox "Nie udało się zamknąć formularza: " & sFormToCloseName 
 +    Resume Next 
 +End Sub 
 +</code>
  
  
fedora/aplikacje/libreoffice/base.1743967511.txt.gz · ostatnio zmienione: przez sindap

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki