Formular-Eigenschaften per Makro ändern

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

egottfried
***
Beiträge: 55
Registriert: Do, 25.08.2005 17:42
Wohnort: Torgau
Kontaktdaten:

Formular-Eigenschaften per Makro ändern

Beitrag von egottfried »

hallo,
um eine Base Datenbank (odb) und die zugehörigen eigenständigen Formulare weitergeben zu können, möchte ich die Möglichkeit schaffen, per Schaltfläche und Basic-Makro den Pfad zur Datenbank in den zugehörigen Formularen ändern.
1. Schritt: Pfad in einem Dateiauswahlfeld angeben
2. Schritt: per Schaltfläche ein Makro auslösen, das einer Public-String-Variablen den Wert (Pfadangabe) zuweist
3. Schritt: Mit weiterer Schaltfläche die Eigenschaften DataSourceName, Command, CommandType der zugehörigen, eigenständigen Formulare ändern, für DataSourceName die Public Variable einsetzen
Ist dieser Weg möglich, wenn ja, bräuchte ich für den 3. Schritt Unterstützung
mit freundlichen Grüßen
egottfried
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Formular-Eigenschaften per Makro ändern

Beitrag von Toxitom »

Hey egottfried,

also, theoretisch geht dein Vorhaben - nur ist die bewusst, dass dieses nicht resistent ist? Auch das Speichern in einer public Variablen ist temporär begrenzt - d.h. spätestens beim Neuaufruf des Formulars musst du die Werte wieder einstellen??
Ist das wirklich das, was du möchtest?
Wäre es in dem Fall nicht sinnvoller, eine Konfigurationsdatei zu erstellen, aus der die Variablen ausgelesen werden. Diese Datei könntest du auch über einen Optionsdialog schreiben - und dann wären die Daten einmal vorhanden - und bei jedem Aufruf de Formulars werden sie dann aus der Datei gelesen?

Ich würde den Weg also nochmal überdenken...

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
egottfried
***
Beiträge: 55
Registriert: Do, 25.08.2005 17:42
Wohnort: Torgau
Kontaktdaten:

Re: Formular-Eigenschaften per Makro ändern

Beitrag von egottfried »

@ toxitom, hallo
Ja die begrenzte Lebensdauer der Public Variablen ist mir bewußt. Sie wird ja auch nur über zwei Prozeduren, beim ersten Öffnen des eigenständigen Hauptformulars der Datenbank auf einem anderen Rechner benötigt. Hier sollen die gültigen Pfade in die Eigenschaften der Formulare eingetragen werden, wo jedes seine Daten findet. Das geschieht nur einmal, dann ist es gespeichert. Wobei der Weg über eine Konfigurationsdatei auch möglich wäre, die der neue Nutzer anpassen und beim ersten Start einlesen lassen müsste. Was ist besser? Und wie spreche ich die Eigenschaften eines Formulares an, um sie per Makro (in diesem Falle dauerhaft) zu ändern?
mit freundlichen Grüßen
egottfried
OpenOffice.org 3.1 / Debian Lenny
http://www.gokusa.de
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Formular-Eigenschaften per Makro ändern

Beitrag von Toxitom »

hey egottfried,
Hier sollen die gültigen Pfade in die Eigenschaften der Formulare eingetragen werden, wo jedes seine Daten findet. Das geschieht nur einmal, dann ist es gespeichert.
Sicher? die Formulare werden aus dem Modell erzeugt - und da kannst du es an sich nicht speichern! Also, der m.A. sichere Weg wäre der einer Konfigurationsdatei...

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
egottfried
***
Beiträge: 55
Registriert: Do, 25.08.2005 17:42
Wohnort: Torgau
Kontaktdaten:

Re: Formular-Eigenschaften per Makro ändern

Beitrag von egottfried »

hallo, Thomas
ich hab das wohl nicht richtig beschrieben. Die Formulare werden nicht erzeugt, sondern befinden sich im gleichen Ordner wie die zugehörige DB.odb und alles funktioniert. Nun kopiere ich den Ordner komplett auf einen anderen Rechner. Öffne ich dort das erste Formular, dann zeigt es natürlich nichts an, weil der Pfad zur Datenquelle nicht mehr stimmt. Ich muss es im Entwurfsmodus öffnen und im Eigenschaften-Dialog den Pfad zur DB.odb korrigieren. Das mit allen 3 Formularen und den Unterformularen darin. Dann sind die Daten wieder da, die neuen Eigenschaften werden gespeichert und alles funktioniert wieder. Das ist für mich kein Problem, für einen unerfahrenen Nutzer schon.
Und nun noch einmal die Frage, kann ich die Eigenschaften eines Formulares in einem Makro ansprechen, um sie zu ändern?
vielen Dank und viele Grüße
Gottfried
OpenOffice.org 3.1 / Debian Lenny
http://www.gokusa.de
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Formular-Eigenschaften per Makro ändern

Beitrag von Toxitom »

Hey Gottfried,

ich habe dich schon richtig verstanden - und die bisherigen Antworten stimmen auch alle. Dein "Formualr-Entwurfsmodus" ist quasi die Vorlage, aus der zur Laufzeit das Formuöar erzeugt wird. Die Eigenschaften, die du dort fixierst, werden dann zu den Objekt-Eigenschaften.
Und ja, due kannst per Makro die Objekteigenschaften verändern - nur kannst du eben nicht in das Modell zurückschreiben. D.H., alles was du zur Laufzeit änderst (per Makros) ist nach dem Schliessen des Dokumentes wieder weg - beim Neuöffnen wird nämlich das Formular wieder aus dem Modell erzeugt ;-)
Deswegen bräuchtest du ein Makro, das immer beim Öffnen des Formulars die entsprechenden Werte ausliest (z.B. aus einer Konfigurationsdatei) und sie dem Formular zuweist - sprich die Musterwerte überschreibt.

Klarer geworden?

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten