Seite 1 von 1

Writer-Formular (Hilfe)

Verfasst: Mi 23. Okt 2013, 18:16
von blackravion
Guten Abend Community,

ich bräuchte eure Hilfe, da ich nach mehreren Stunden suchen und probieren noch keine Lösung für mein Problem gefunden habe.

Ich bin kein LibreOffice-Profi, erstelle jedoch gerade ein Formular mit der Suite. Ich möchte jetzt mehrere Optionsfelder abhänig von einem "Häckchen-Feld" machen.

Also wenn ich einen Haken im Feld "Termin" setzen, sollen die zwei darunterliegenden Optionsfelder auswählbar sein, ebenso ein Datumsfeld. Ist kein Haken gesetzt
sollen die Felder grau bleiben, bzw. nicht ausfüllbar.

Wie bekomme ich das hin? :-(

Dankeschön vorab

Gruß

Re: Writer-Formular (Hilfe)

Verfasst: Mi 23. Okt 2013, 18:46
von F3K Total
Hi,
kurze Frage vorab: Was hast Du mit dem Formular vor?
Eine Lösung wären kurze Makros, allein, wenn Du das Formular als .pdf exportieren wollen solltest, funktioniert es dann eben nicht mehr, da die Makros nicht exportiert werden.
Und eine zweite Frage, hängt das Formular an einer Datenbank?

Gruß R

Re: Writer-Formular (Hilfe)

Verfasst: Mi 23. Okt 2013, 18:57
von blackravion
Hallo,

vielen Dank für deine Antwort.

Das Formular ist zur Abstimmung von Terminen mit Lieferanten gedacht.

Gedacht habe ich mir die Felder im LibreOffice zu Füllen und dann umzuspeichern in PDF, oder direkt
eine ausfüllbare PDF.

Gruß

Re: Writer-Formular (Hilfe)

Verfasst: Mi 23. Okt 2013, 19:00
von F3K Total
Für Variante 1 mache ich gerade eine Beispieldatei.
Gruß R

Re: Writer-Formular (Hilfe)

Verfasst: Mi 23. Okt 2013, 20:16
von F3K Total
So,
hier nun die Beispieldatei. Es gibt zwei Makros.
Zum Aktivieren/Deaktivieren

Code: Alles auswählen

Sub s_enable_controls(event)
    ochkTermin = event.source.model
    oform = ochkTermin.parent
    odat1 = oForm.getbyname("Dat1")
    oFormEnumeration = oform.createEnumeration
    if ochkTermin.State = 1 then
        odat1.Enabled = true
        while oFormEnumeration.hasmoreelements
             oControl = oFormEnumeration.nextelement
             if oControl.supportsservice("com.sun.star.awt.UnoControlRadioButtonModel") then
                 if oControl.name = "RadioGroup1" then oControl.Enabled = true
             endif
        wend
    else
        odat1.Enabled = false
        while oFormEnumeration.hasmoreelements
             oControl = oFormEnumeration.nextelement
             if oControl.supportsservice("com.sun.star.awt.UnoControlRadioButtonModel") then
                 if oControl.name = "RadioGroup1" then oControl.Enabled = false
             endif
        wend
    endif
End Sub
Zum Einblenden/Ausblenden

Code: Alles auswählen

Sub s_show_hide_controls(event)
    ochkTermin = event.source.model
    oform = ochkTermin.parent
    odat1 = oForm.getbyname("Dat2")
    oFormEnumeration = oform.createEnumeration
    if ochkTermin.State = 1 then
        odat1.EnableVisible = true
        while oFormEnumeration.hasmoreelements
             oControl = oFormEnumeration.nextelement
             if oControl.supportsservice("com.sun.star.awt.UnoControlRadioButtonModel") then
                 if oControl.name = "RadioGroup2" then oControl.EnableVisible = true
             endif
        wend
    else
        odat1.EnableVisible = false
        while oFormEnumeration.hasmoreelements
             oControl = oFormEnumeration.nextelement
             if oControl.supportsservice("com.sun.star.awt.UnoControlRadioButtonModel") then
                 if oControl.name = "RadioGroup2" then oControl.EnableVisible = false
             endif
        wend
    endif
End Sub
Damit sie laufen dürfen, stellst du unter Extras/Optionen/Openoffice.org oder LibreOffice.org/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, so wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen lassen möchtest.
Viel Erfolg,
Gruß R

Re: Writer-Formular (Hilfe)

Verfasst: Mi 23. Okt 2013, 23:03
von blackravion
Perfekt!

Super, vielen Dank für die Rasche und klasse Arbeit, funktioniert einwandfrei :-)

Gruß