Seite 1 von 2

Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Di 15. Okt 2013, 17:46
von step
hallo,

ich habe folgendes Problem:

Beim ersten Versuch, etwas Wissen in Sachen Makroprogrammierung aufzubauen habe ich ein Beispiel
abgeschrieben. Das hat nach etwas nachstellen gut funktioniert. Auf einem Zeichnungsblatt
wurden dabei auch Steuerelemente erzeugt (manuell, nicht per Makro). In den Eigenschaften wurden Schrift, Ausrichtung eingestellt.

Und darum geht es. Nach dem Öffnen des Dokumentes waren die Einstellungen für die Schrift,
Schriftgröße, Ausrichtung verschwunden. Stattdessen wurde bei Schrift 'Standard' angezeigt und
bei Ausrichtung 'Links' (es sollte an der Stelle 'zentriert' stehen. Beim Klick auf 'Standard' bei
Schrift zeigt der Schriftdialog Arial 10 Punkt an. Wo das herkommt, keine Ahnung. In der
Dokumentvorlage steht was anderes.

Zusammengefasst: Beim Erstellen der Steuerelemente ist alles ganz normal, nach einem Neu-
laden oder Öffnen sind die manuellen Änderungen weg.

Hat jemand eine Idee, wo das herkommt oder besser, wie man es wegbekommt?

Ich hoffe, dass das Problem erkennbar ist, wenn nicht, dann nachfragen.

Ich freue mich über jeden Hinweis.

Libo 3.6.2
Linux Suse 11.3

Gruß Step

LibreOffice 3.6.2.2 unter Linux Suse 11.3
Schwerpunkt: Makroprogrammierung von Draw

Re: Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Di 15. Okt 2013, 19:27
von F3K Total
Hi,
es sieht so aus, dass Steuerelemente "von Hand" nur im Entwurfsmodus des Formulares angelegt, und dann gespeichert werden müssen.
Das gilt auch für automatisiert Erzeugte.
Also:
  • Formularentwurfsmodus einschalten
  • Makro laufen lassen
  • Dokument, bei Base erst das Formular dann die .odb Datei, speichern.
So sollte alles erhalten bleiben.
HTH
Gruß R

Re: Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Do 17. Okt 2013, 12:27
von step
Hallo F3K Total,

danke für den Tip, ich werde das nochmal explizit testen.

Bisher war es allerdings so, dass ich nach dem Einstellen der Formulareigenschaften gespeichert und neugeladen habe, um die 'zukünftige' Erscheinung zu erhalten. Es ist natürlich auf Dauer nicht akzeptabel.

Ich melde mich wieder mit dem Ergebnis,


Gruß Step

Re: Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Do 17. Okt 2013, 18:48
von F3K Total
Hi,
step hat geschrieben:auf Dauer nicht akzeptabel
Na das wechsle doch per Makro in den Entwurfsmodus, speichere per Makro und wechsle zurück.
Geht, habe ich schon gemacht.
Gruß R

Re: Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Fr 18. Okt 2013, 17:42
von step
@F3K Total,

Ich habe es noch mal geprüft, das Verhalten ist so wie oben beschrieben. Mich interessiert an der Stelle,
ob es ein normales und gewolltes Verhalten ist, oder ob es an LibreOffice liegt.
Na das wechsle doch per Makro in den Entwurfsmodus, speichere per Makro und wechsle zurück.
Ich bin derzeit fast ein Newby. Theoretisch hatte ich mir das auch schon überlegt. Derzeit allerdings
weis ich nicht, wie das geht.

Gruß Step

Re: Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Fr 18. Okt 2013, 18:37
von F3K Total
Hi,
so geht es, wenn das Makro bei geschlossenem Formular ausgeführt wird.
"Formular" muss zweimal durch den Namen des Formulares ersetzt werden.

Code: Alles auswählen

sub S_modify_form
    Dim oParms(1) As New com.sun.star.beans.PropertyValue
    ocontroller = Thisdatabasedocument.Currentcontroller
    if not ocontroller.isconnected then ocontroller.connect
    oactiveConnection = oController.activeConnection
    oDoc = Thisdatabasedocument.formdocuments.getbyname("Formular")
    if not isnull (oDoc.getComponent) then
        odoc.opendesign
    else
        oDocname = oDoc.name
        oParms(0).name = "OpenMode"
        oParms(0).value = "openDesign"
        oParms(1).name = "ActiveConnection"
        oParms(1).value = oactiveConnection
        oFormDocs = ThisComponent.FormDocuments
        oFormDocs.loadComponentFromURL(oDocname, "", 0, oParms())
    endif
    oDoc = Thisdatabasedocument.formdocuments.getbyname("Formular")
    
    msgbox "hier Änderungen am Formular einbauen"
    
    odoc.store
    Thisdatabasedocument.store
    odoc.close
    odoc.open
end sub
Viel Erfolg
Gruß R

Re: Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Sa 19. Okt 2013, 12:47
von step
Hallo F3k TOTAL,

danke für das Listing. Es sieht so aus, als geht es dabei um ein Formular in
einem Basedokument. Ich werde es mal testen, schauen, was passiert.

Mein spezielles Problem hier bezieht sich allerdings auf ein Draw-Dokument.
Die Formularcontrollelemente befinden sich dabei direkt auf der Zeichnungsseite.

BREAK: Die online-Zeit ist leider abgelaufen, ich melde mich am Montag nochmal,

Gruß Step

Re: Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Sa 19. Okt 2013, 13:48
von F3K Total
Hi,
na in DRAW gehts doch ganz leicht:

Code: Alles auswählen

Sub S_modify_form_draw
    ocontroller = thiscomponent.currentcontroller
    if ocontroller.isFormDesignMode  = false then 'Formdesignmode
       ocontroller.FormDesignMode = true
    endif
    msgbox "An dieser Stelle Änderungen im Formular einbauen"
    Thiscomponent.store
    ocontroller.FormDesignMode = false
End Sub

Re: Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Mo 21. Okt 2013, 12:34
von step
Hi F3K total,

dass das alles recht einfach ist, wenn man weiß, wie es zusammenhängt, ist mir schon klar;-)

Also: Ich habe das Listing mal an einer kleinen Beispieldatenbankdatei getestet. (Ich habe hinter dem
ersten IF ein End If eingefügt). Es läuft bis 'oFormDocs.loadComponentFromUrl(oDocName, "", 0, oParms())'.
Da gibt es eine Fehlermeldung. Ich glaube allerdings, das es an einem Schreibfehler liegt.

Analog zum Problem im ersten Beitrag in Draw habe ich auch hier im Base-Formular einige Controlls manuell im Designmodus
geändert und das Ganze manuell gespeichert. Nach dem Neuladen waren die Eigenschaften so, wie ich sie einge-
stellt hatte. Und genauso hätte ich es bei Draw eben auch erwartet.

Ich teste nochmal das Base-Listing und auch das für Draw. Ich melde mich dann,

Gruß Step

Re: Formular Steuerelemente nicht dauerhaft einstellbar

Verfasst: Do 24. Okt 2013, 14:42
von step
So, ich habe das Base-Listing nochmal ausprobiert und nach ein paar Korrekturen hat es funktioniert.
Ich konnte per Makro das Formular öffnen, den Entwurfs-Modus ein- und ausschalten und das Ganze auch
öffnen und schließen. Was noch fehlt ist die Veränderung der Eigenschaften der Controlls per Makro.

Ich habe einiges an Literatur zur Makroprogrammierung gefunden und werde mich da erst einmal etwas weiterbilden.

Natürlich bin ich für alle weiteren Tips immer offen,

Gruß step