[gelöst] Formular automatisch starten?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

FM_81
*
Beiträge: 16
Registriert: Fr, 01.05.2009 10:53

[gelöst] Formular automatisch starten?

Beitrag von FM_81 »

Hallo Leute,
vielleicht kann mir ja jemand auf die Sprünge helfen. Ich möchte, das sich ein bestimmtes Formular beim Öffnen einer Datenbank automatisch im Dateneingabe-Modus öffnet. (OO Version 3.0.1 unter Linux)
Das habe ich schon gefunden, werde nur nicht recht schlau daraus: http://markmail.org/message/wj3omd45k5j ... te:results

Zitiere mal daraus:
Du kannst das Formular auch außerhalb der Datenbankdatei speichern. Wenn du das Formular in Base erstellt hast, kannst du es mit Datei - Kopie speichern unter an einen beliebigen Platz speichern.
Soweit klar, aber als was, in welchem Format?
ODT habe ich probiert, viel mehr sinnvolle Formate werden mir nicht angeboten, aber da scheitere ich an:
Dann öffnest du das externe Formular, schaltest in den Editiermodus, gehst zu den Formulareigenschaften und setzt im Register Daten die Datenquelle.
Das ODT hat keinen Editiermodus? Welche Formulareigenschaften sind da gemeint, kann nirgends eine Datenquelle setzen?

Kann mir nicht vorstellen, daß das nicht geht, mein altes "Lotus-Smart-Suite" von 1997 konnte das?

Vielen Dank, mit freundlichem Gruß, FM_81
Zuletzt geändert von FM_81 am Di, 29.09.2009 07:41, insgesamt 1-mal geändert.
TorstenS
**
Beiträge: 37
Registriert: Di, 24.06.2008 11:34

Re: Formular automatisch starten?

Beitrag von TorstenS »

FM_81 hat geschrieben:
Das ODT hat keinen Editiermodus? Welche Formulareigenschaften sind da gemeint, kann nirgends eine Datenquelle setzen?
Hallo,

das Problem hatte ich auch. Leider ist die Unterstützung in den Foren bei Openoffice noch recht lausig. Im Gegensatz zu MS Access.
Aber jetzt weiß ich's... :)

Die Lösung ist ganz einfach. Einfach unter Ansicht -> Symbolleisten die Häckchen bei Formular-Entwurf usw. setzen. Dann kannst du das Formular wieder mit der Datenbank verknüpfen.

Gruß
Torsten
FM_81
*
Beiträge: 16
Registriert: Fr, 01.05.2009 10:53

Re: Formular automatisch starten?

Beitrag von FM_81 »

Soweit - sogut! (Man könnte natürlich fragen: "Was hat das Menü 'Ansicht' damit zu tun?")
Aber wie verknüpfe ich mein ODT-Dokument mit meiner Datenbank? Das ist alles irgendwie nicht in sich schlüssig?

MfG, FM_81
TorstenS
**
Beiträge: 37
Registriert: Di, 24.06.2008 11:34

Re: Formular automatisch starten?

Beitrag von TorstenS »

Voraussetzung ist, dass deine Datenbank registriert ist. Unter Extras -> Optionen -> Base -> Datenbanken. Rest sollte man selbst herausfinden können.
Dann wie in Base selbst das Formular bearbeiten. Ein Steuerelement anwählen, unter Formular dann die Datenquelle auswählen usw...
FM_81
*
Beiträge: 16
Registriert: Fr, 01.05.2009 10:53

Vielen Dank das war's!

Beitrag von FM_81 »

TorstenS hat geschrieben:Voraussetzung ist, dass deine Datenbank registriert ist. Unter Extras -> Optionen -> Base -> Datenbanken.
Das war selbstverständlich schon von Anfang an gegeben.
TorstenS hat geschrieben:Ein Steuerelement anwählen, unter Formular dann die Datenquelle auswählen usw...
Aber das man ein einzelnes Steuerelement anwählen muss, um dem gesamten Formular die Datenbank zuzuordnen (ist ja quasi eine "globale Einstellung") - darauf muss man erst mal kommen! Ich hab die ganze Zeit versucht, einen Kontext für das gesamte Formular zu finden.

Nochmals danke, mit freundlichem Gruß, FM_81
Hehue
*
Beiträge: 10
Registriert: Mi, 03.12.2008 19:14

Re: [gelöst] Formular automatisch starten?

Beitrag von Hehue »

Hallo FM_81,

auch wenn Du geschrieben hast 'das war's' hier noch meine Lösung für dieses Problem:

1. In meinem Base-File gibt es ein Macro MAIN, das mehrere Formulare öffnet, am Bildschirm platziert und die Größe definiert.
2. Das odb-File habe ich unter Extras/Anpassen/Ereignis Dokument öffnen angewiesen dieses Macro (MAIN) aufzurufen.

Wenn ich das odb-File mit Doppelklick oder über Icon starten wird Base gestartet und die Formulare werden angezeigt. Wenn gewünscht kann das Base-Window minimiert werden und nur die Anwendungs-Formulare sind zu sehen.

Grüße Hehue
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: [gelöst] Formular automatisch starten?

Beitrag von gigabert »

Hehue hat geschrieben:Hallo FM_81,

auch wenn Du geschrieben hast 'das war's' hier noch meine Lösung für dieses Problem:

1. In meinem Base-File gibt es ein Macro MAIN, das mehrere Formulare öffnet, am Bildschirm platziert und die Größe definiert.
2. Das odb-File habe ich unter Extras/Anpassen/Ereignis Dokument öffnen angewiesen dieses Macro (MAIN) aufzurufen.

Wenn ich das odb-File mit Doppelklick oder über Icon starten wird Base gestartet und die Formulare werden angezeigt. Wenn gewünscht kann das Base-Window minimiert werden und nur die Anwendungs-Formulare sind zu sehen.

Grüße Hehue
Hallo,

und sorry, wenn ich in den als "gelöst" markierten Thread nochmal reinschreibe. Könntest du bitte mal schreiben, wie du in dem Makro die Formulare ansprichst bzw. öffnest? Ich hänge nämlich auch gerade an diesem Problem und schaffe es nicht, in einem Makro, welches auch mit dem Ereignis "Dokument öffnen" dem odb-File zugewiesen wurde.

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Hehue
*
Beiträge: 10
Registriert: Mi, 03.12.2008 19:14

Re: [gelöst] Formular automatisch starten?

Beitrag von Hehue »

Hallo Bert,

nachfolgend mein Macro, um ein Formular zu öffnen.

Function openForm(sFormName as string) as variant

' Das übergebene Formular (sFormName) wird geöffnet
' 04.03.2009

Dim args(1) As New com.sun.star.beans.PropertyValue
Dim oForm as Object

args(0).Name = "ActiveConnection"
args(0).Value = oDBVer
args(1).Name = "OpenMode"
args(1).Value = "open"
oForm = oDBCon.loadComponentFromURL(sFormName,"_blank",0,args())
openForm() = oForm

End Function

oDBVer ist bei mir eine globale Variable und enthält die Verbindungsdaten zur Datenbank, entsteht wie folgt:

' Belegen der globalen Variablen zur Datenbankverbindung
sDBUrl = ConvertToUrl("C:\Users\Helmut\Projekte\TimeOrg\DB\TimeOrg2009.odb")
oBaseContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDBDok = oBaseContext.getByName(sDBUrl)
oDBVer = oDBDok.getConnection("", "")
oDBCon = oDBDok.DataBaseDocument.getFormDocuments()

Die Function openForm wird mit dem jeweiligen Formularnamen aufgerufen z.B. openForm("Formular1") und gibt das Formular als
Object zur weiteren Benutzung zurück.

Grüße HeHue
FM_81
*
Beiträge: 16
Registriert: Fr, 01.05.2009 10:53

Re: [gelöst] Formular automatisch starten?

Beitrag von FM_81 »

Vielen Dank für die Mühe, aber: ich verstehe bei diesem "Office-Paket-Makro-Zeugs" nur Bahnhof, und deshalb habe ich es noch nie großartig benutzt? Wo (womit, wie?) belege, definiere ich diese globale Variable? Der Rest leuchtet ja noch ein ...
Code-Tags wären vllt. nicht schlecht gewesen?

MfG, FM_81
Hehue
*
Beiträge: 10
Registriert: Mi, 03.12.2008 19:14

Re: [gelöst] Formular automatisch starten?

Beitrag von Hehue »

Sorry, bin zwischen Tür und Angel, melde mich am Wochenende wieder. Was meinst Du wenn Du Code-Tags möchtest?

Grüße HeHue
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: [gelöst] Formular automatisch starten?

Beitrag von eBayer »

Hallo HeHue,
ich habe Deine Lösung zum automatischen Start von Formularen mal angetestet. Die Lösung ist ja recht interessant, aber wie verhinderst Du daß die IDE geöffnet bleibt und damit von unbedarften Benutzern die gesamte Anwendung manipuliert werden kann?
Wenn dann mal alle Formulare geschlossen sind, steht der Anwender zwangsweise in de IDE und muß sich dann händisch aus dieser verabschieden.
Danke und Gruß
eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Hehue
*
Beiträge: 10
Registriert: Mi, 03.12.2008 19:14

Re: [gelöst] Formular automatisch starten?

Beitrag von Hehue »

Hallo eBayer,

dieses Problem habe ich noch nicht gelöst und das Erstellen einer Anwendung in Base zieht sich durch ziemlich viele Beiträge im Forum. Leider bieten da die meiner Meinung nach sehr unstrukturierten Dokumentationen auch keine große Hilfe.
Ich glaube, dass die Konstellation Base/HDBSql für 'unbedarfte' Anwender nicht die geschickteste ist. Solange ich in Base für mich selbst und solche die wissen was sie tun arbeite halte ich das nur für einen Kunstfehler aber kein echtes Problem.

Grüße HeHue
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: [gelöst] Formular automatisch starten?

Beitrag von eBayer »

Hallo HeHue,
ich habe das Problem auf folgende Weise gelöst:
- zum Start der Anwendung benutze ich einen kleinen Dialog, den ich in ein Writerdokument als Autostart gepackt habe.
In dem Dialog habe ich 3 Optionen als PushButton:
1. Start der Hauptanwendung (das darin integrierte Menu)
2. Datensicherung
3. Ende
- Wird die Hauptanwendung gestartet, erscheint darin ein Formular, welches ich als Menu für alle anderen Formulare und Berichte verwende. Von der IDE ist zu keinem Zeitpunkt etwas zu sehen - kann auch nirgends mehr angeklickt werden. Das Programm verhält sich vollkommen, wie eine eigenständige Anwendung. Zudem habe ich bei allen Formularen das Systemmenü entfernt bzw. mein eigenes eingerichtet.
- Wird die Hauptanwendung beendet, erscheint wieder mein kleiner Startdialog und ich kann mich erneut entscheiden, was ich tun will.

Was fehlt Dir dann noch zu einer "richtigen" Anwendung?

Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: [gelöst] Formular automatisch starten?

Beitrag von gigabert »

Hallo eBayer,

ich bin auch gerade dabei, das so ähnlich zu entwickeln. Ich werde aber wohl den Startdialog weglassen und gleich das (leere) Startformular mit einem eigenen Menü anzeigen. Leider hab ich das mit der Erstellung des Menüs nicht mehr weiter verfolgt. Auf meine Verständnisfrage nach Teilen der Menüerstellung über Basic-Makros, die ich auch in anderen Foren gestellt hatte, kam ja leider keine Antwort mehr. Scheint so, als hätte damit noch niemand so richtig Erfahrung gesammelt. Da ich aber auf ein verschachteltes Menü angewiesen bin, werde ich es wohl erstmal nach der Methode machen, dass ich das innerhalb der odb-Datei (menubar.xml) anpassen werde, bis eine bessere Lösung in Sicht ist. Falls da nochmal jemand Hilfe braucht, kann ich das auch gerne mal genauer erklären.

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: [gelöst] Formular automatisch starten?

Beitrag von eBayer »

Hallo Bert,
wie unterdrückst Du bei Deinem Lösungsansatz die IDE?
Der Anwender soll ja keinen Zugriff darauf bekommen.

Beiliegend nun Schieben mit HighScore auf Basis eines Calc-Formulars..... wegen HighScore
Gruß eBayer
Dateianhänge
Schieben.ods
(14.04 KiB) 243-mal heruntergeladen
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Antworten