🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

wie Unterformular erstellen?

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Blackcat
Beiträge: 8
Registriert: Di 30. Okt 2012, 11:40
Wohnort: Jena
Kontaktdaten:

wie Unterformular erstellen?

Beitrag von Blackcat » Di 30. Okt 2012, 12:08

Hallo,
nachdem ich keine Infos gefunden habe und aus dem Handbuch auch nicht schlau werde, frage ich mal.
Ich habe ein Formular und möchte darin ein Unterformular (später noch mehrere) erstellen.
Wie zum Henker geht das in LibreOffice 3.6.2.2 unter Windows? Vielleicht bin ich blind oder komme nicht drauf.
Kann es sein, das die deutschsprachigen PDF-Handbücher für eine andere Version sind?

Beste Grüße, Kerstin

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: wie Unterformular erstellen?

Beitrag von RobertG » Di 30. Okt 2012, 18:30

Hallo Kerstin,

die Handbücher wurden ursprünglich für die Version 3.3.4 erstellt. Dann wurden die Funktionen in der 3.5 überprüft. Prinzipiell ist gerade bei Base nichts neues seit diesen Versionen hinzugekommmen, was die Funktion selbst betrifft. Das gilt auch für die 3.6.

Ich weiß jetzt nicht, an welcher Stelle das Handbuches Du Schwierigkeiten hast. Eigentlich steht alles bereits im Kapitel "Hauptformular und Unterformular". Deswegen musst Du schon genauer werden.

Prinzipiell gilt: Hast Du ein Formular, dann rufe den Formularnavigator auf. Rechtsklick auf das Formular im Navigator → Neu → Formular. Damit hast Du ein Unterformular gegründet. Jetzt musst Du die betreffende Tabelle oder Abfrage suchen, dann die Verknüpfung erstellen und natürlich Felder in Dein Unterformular einbauen.

Bei Der Arbeit am Formular solltest Du immer den Formularnavigator geöffnet halten, da sonst bei mehreren Formularen unklar ist, zu welchem der Formulare Du gerade Felder hinzufügst.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Blackcat
Beiträge: 8
Registriert: Di 30. Okt 2012, 11:40
Wohnort: Jena
Kontaktdaten:

Re: wie Unterformular erstellen?

Beitrag von Blackcat » Di 30. Okt 2012, 22:53

Hallo Robert,
vielen Dank für deine Antwort. So in der Art hab ich es auch aus dem Handbuch verstanden. Ich denke, bei mir klemmt es gerade an dem Begriff "Formularnavigator". Mit Base befasse ich mich erst seit ein paar Tagen und da hab ich sicher noch nicht alles durchschaut. Mir ist dieses Fenster mittlerweile halbwegs vertraut, da hab ich aber kein NEU. Falls der Navigator was anderes ist, bitte ich um einen Tipp, wie ich da hin komme.

Schöne Grüße, Kerstin

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: wie Unterformular erstellen?

Beitrag von RobertG » Mi 31. Okt 2012, 16:15

Hallo Kerstin,

Dein Screenshot zeigt das Kontextmenü des Formulars. Von diesem Kontextmenü aus musst Du jetzt den Begriff "Bearbeiten" auswählen. Erst dann kannst Du am Formular etwas ändern.
Hast Du das Formular zum Bearbeiten geöffnet, so erscheint am unteren Fensterrand an 5. Position von links der Button für den Formularnavigator.

Wenn Du den erst einmal geöffnet hast wirst Du vermutlich ein Stück klarer sehen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Blackcat
Beiträge: 8
Registriert: Di 30. Okt 2012, 11:40
Wohnort: Jena
Kontaktdaten:

Re: wie Unterformular erstellen?

Beitrag von Blackcat » Mo 5. Nov 2012, 11:38

Hallo Robert,
das mit dem Bearbeiten hatte ich schon durchschaut und das Hauptformular bearbeitet. Das klappt so weit.
An sich bin ich nicht so blond, aber diesen Button unten an 5. Position hab ich scheinbar nicht. Hab schon alles durchprobiert, unter Ansicht verschiedene Buttonleisten anzeigen lassen.
Ich hab hier mal noch einen Screenshot, wie das bei mir aussieht.

Grüße, Kerstin

Blackcat
Beiträge: 8
Registriert: Di 30. Okt 2012, 11:40
Wohnort: Jena
Kontaktdaten:

Re: wie Unterformular erstellen?

Beitrag von Blackcat » Mo 5. Nov 2012, 14:22

Gefunden, der Button war nicht aktiviert. Nun ist er da :-)
Unterformular ist eingebunden. Vielen Dank für die Starthilfe.

Nun habe ich noch ein Problem, was sich hoffentlich realisieren lässt.
Das Unterformular soll nur dann angezeigt werden, wenn im Hauptformular in einem Listenfeld ein bestimmter Wert ausgewählt ist. Anderenfalls soll das Unterformular ausgeblendet werden.
Ist es möglich das ganze Formular an diese Bedingung zu knüpfen, oder einzelne Felder des Unterformulars? Und wenn ja, wie?
Wenn dieses funktioniert, sollte erst mal alles komplizierte geschafft sein.

Beste Grüße, Kerstin

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: wie Unterformular erstellen?

Beitrag von RobertG » Di 6. Nov 2012, 17:59

Hallo Kerstin,

das Unterformular in Abhängigkeit von bestimmten Eingaben sichtbar zu schalten geht allerdings nur über Makros, ist also nicht einfach so irgendwo einzustellen.
Du musst also ein Makro über
Extras → Makros → Makros verwalten → LibreOffice Basic
in einem Modul erstellen.
Das zuerst gegründete
Sub Main
End Sub
kannst Du mit dem folgenden Code ersetzen.

Code: Alles auswählen

Sub SubFormular_unsichtbar
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oSubForm AS OBJECT
DIM oFeld1 AS OBJECT
DIM oFeld2 AS OBJECT
DIM oDocCrl AS OBJECT
DIM oCtlView AS OBJECT
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
oForm=oDrawpage.Forms.getByName("Formular")
oSubForm=oForm.getByName("SubFormular")
oFeld1=oSubForm.getByName("Feldname1")
oFeld2=oSubForm.getByName("Feldname2")
oDocCrl = ThisComponent.getCurrentController()
oCtlView = oDocCrl.GetControl(oFeld1)
oCtlView.Visible=false
oCtlView = oDocCrl.GetControl(oFeld2)
oCtlView.Visible=false
End Sub
In dem Makro werden zuerst alle Variablen festgelegt. Dann wird stückweise auf das Unterformular und die darin liegenden Felder zugegriffen. Jedes Feld einzeln muss unsichtbar geschaltet werden. Mit einem kompletten Formular geht so etwas, soweit ich das raus bekommen habe, nicht, da das Formular ja kein sichtbares Element ist.
Jetzt fehlt noch die Nachfrage, wann das Formular sichtbar geschaltet werden soll. Dazu wilsst Du auf ein Feld aus dem Formular zugreifen:

Code: Alles auswählen

oFeld = oForm.getByName("Listenfeld")
IF oFeld.getCurrentValue() = "anzeigen" THEN
oCtlView = oDocCrl.GetControl(oFeld1)
oCtlView.Visible=true
oCtlView = oDocCrl.GetControl(oFeld2)
oCtlView.Visible=true
ELSE
oCtlView = oDocCrl.GetControl(oFeld1)
oCtlView.Visible=false
oCtlView = oDocCrl.GetControl(oFeld2)
oCtlView.Visible=false
END IF
Du siehst also, für ein erstes Unterformular ein etwas größeres Projekt. Vor allem die Abfrage der Bedingung, wann denn nun das Unterformular anzuzeigen ist, dürfte wohl Probleme machen.
Das Ganze musst Du dann an das Listenfeld binden - z.B. an die Eigenschaft "Status geändert".

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Blackcat
Beiträge: 8
Registriert: Di 30. Okt 2012, 11:40
Wohnort: Jena
Kontaktdaten:

Re: wie Unterformular erstellen?

Beitrag von Blackcat » Di 6. Nov 2012, 21:55

Ich habs befürchtet...
Hab erst mal ganz vielen Dank für deine Mühen und Hilfe. Werd mich damit in den nächsten Tagen befassen, erst mal ein kleines Unterformular und wenn das klappt, gehts an das große Unterformular. Später folgen noch weitere, allerdings kleinere Unterformulare. Gibt also noch einiges zu tun.

Beste Grüße, Kerstin

pingpong
Beiträge: 22
Registriert: Fr 4. Apr 2014, 04:45

Re: wie Unterformular erstellen?

Beitrag von pingpong » So 13. Apr 2014, 05:57

Ich brauche hier eine ähnliche Funktion. Ich möchte mit einer Schaltfläche ein Feld sichtbar und unsichtbar schalten. Da geht das aber nicht mit ""1" Text". Wenn ich das Makro mit der Schaltfläche über aktion ausführen verbinde, kann ich immer nur einen Schaltvorgang machen.
Also: Meine Schaltflache soll umschalten von sichtbar zu unsichtbar. Wie geht´s?

Code: Alles auswählen

Sub SubFormular_unsichtbar
    DIM oDoc AS OBJECT
    DIM oDrawpage AS OBJECT
    DIM oForm AS OBJECT
    DIM oSubForm AS OBJECT
    DIM oFeld1 AS OBJECT
    DIM oFeld2 AS OBJECT
    DIM oDocCrl AS OBJECT
    DIM oCtlView AS OBJECT
    oDoc=thisComponent
    oDrawpage=oDoc.Drawpage
    oForm=oDrawpage.Forms.getByName("test")
    oSubForm=oForm.getByName("Unterformular")
    oFeld1=oSubForm.getByName("Empfänger")
   
    oDocCrl = ThisComponent.getCurrentController()
    oCtlView = oDocCrl.GetControl(oFeld1)
    oCtlView.Visible=false
    oDocCrl = ThisComponent.getCurrentController()
    oCtlView = oDocCrl.GetControl(oFeld1)
    oCtlView.Visible=true
  
    End Sub 

pingpong
Beiträge: 22
Registriert: Fr 4. Apr 2014, 04:45

Re: wie Unterformular erstellen?

Beitrag von pingpong » So 13. Apr 2014, 06:03

Mit 2 Makros und 2 Schaltflächen geht´s prima... Aber wie gehts mit Umschalten?


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten