Het is goed de onderliggende uitleg te lezen in de wetenschap dat het geplaatst is in het forum Base van Apache.OfficeForum. Ik weet dat de vraag de begint over het met een macro aanpassen van een listbox in een formulier. Desondanks denk ik dat het goed is om te wijzen dat het schrijven van macro's in OpenOffice, welke smaak dan ook, niet mogelijk is zonder kennis van:
- De normale werking van OpenOffice.
- Kennis van de API van OpenOffice
- Kennis van de gebruikte scripttaal.
- Kennis van de Database Engine die gebruikt wordt.
Voor het opzetten van een kleine bedrijfsmatige database is naar mijn idee minimaal HSQLDB 1.8.10 maar een hogere versie is aan te raden. Kennis hebben van een belangrijk deel van die engine is belangrijk. Het is belangrijk om goed gebruik te kunnen maken van de mogelijkheden die een formulier biedt in een formulier document.
Een formulier-document bevat wat vaak de data-formulieren genoemd wordt. Data-formulieren kunnen het best begrepen worden vanuit de formulier-navigator. De formulier-navigator is niet het zelfde als de navigator. De data-formulieren kunnen onderscheiden worden in hoofd-formulieren en sub-formulieren. Het is goed om deze hoofd-formulieren en sub-formulieren als programmeer elementen binnen het gewenste einddoel te zien.
Vanuit het hoofd-formulier kan een jaar geselecteerd worden en de gegevens kunnen in een subformulier getoond worden. Nu komen er twee punten aan de orde om de mogelijk feitelijk vraag te beantwoorden.
Werken met tabellen
Met een database engine zoals de HSQLDB 1.8.10 of beter is het goed mogelijk om een tabel te maken die de gewenste keuze mogelijkheden heeft. Deze kleine tabel begint het formulier door te laten kiezen wat de deelverzameling is waar mee gewerkt gaat worden. In een sub-formulier wordt dan de deelverzameling getoond. Het hoofd-formulier en het sub-formulier zijn verbonden met hoofd-velden en slaaf-velden.
Listbox
Een listbox is bedoeld voor het tonen van voor de gebruiker leesbare informatie terwijl in de tabel iets anders wordt opgeslagen of is opgeslagen. Het is niet bedoeld voor filter acties.
De enable eigenschap van de listbox, die ik alweer vergeten was, dient naar mijn idee er voor dat gegevens wel getoond worden maar niet gemakkelijk veranderd kunnen worden. Ik denk persoonlijk dat het beter is om hier een apart formulier voor te maken met duidelijk waarschuwende elementen zodat gegevens niet per ongeluk veranderd kunnen worden.
Het bovenstaande maakt mogelijk duidelijk dat het goed opzetten van de database-tabellen en de formulieren erg belangrijk is. Soms is het noodzakelijk om echt aparte formulieren te maken voor invoeren van gegevens en bewerken van gegevens.
Romke