Prozedur einem Dokument und anderen Objekten zuweisen?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Prozedur einem Dokument und anderen Objekten zuweisen?

von theonlyrobi » Mi, 30.11.2005 18:11

Hallo Toxitom,

danke für die Tips. Das "Basic Programmierhandbuch" von Sun ist eine gute Einführung in Basic. Ich habe es nun hinbekommen, ein Makro zu erarbeiten, das in einem Dokument liegt und bei dem Ereignis "Dokument öffnen" ausgeführt wird. Dabei wird ein Dialog aufgerufen mit einem Formular, das mehrere Textfelder enthält. Diese werden bei dann von dem Makro ausgelesen und in die Fußzeile des Dokuments geschrieben. Mein Dokument

Hier der Quelldode:

Code: Alles auswählen

Option Explicit

sub entry_name

rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

Dim Dlg As Object
dim tb_vname as string
dim tb_nname as string
dim tb_matr as string

DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.entry_name)

Dlg.Execute()

tb_vname = Dlg.getControl("tb_vname").text
tb_nname = Dlg.getControl("tb_nname").text
tb_matr = Dlg.getControl("tb_matr").text

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "PageStyle"
args1(0).Value = "Standard"
args1(1).Name = "On"
args1(1).Value = true

dispatcher.executeDispatch(document, ".uno:InsertPageFooter", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Text"
args2(0).Value = tb_vname + " " + tb_nname + " (" + tb_matr + ")"

dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args2())

'ThisComponent.CurrentController.getViewCursor.textSection.IsProtected=true

Dlg.dispose()

end sub
Doch was ich nicht geschafft habe, ist dass ich die Fußzeile dann auch automatisch per Makro schützen kann. "Per Hand" geht das ja über --> Einfügen --> Bereich. Doch wird das nicht von dem Makro Rekorder aufgezeichnet. Welche Möglichkeit habe ich denn, die Fußzeile zu schützen?

Robert

von Toxitom » Mi, 30.11.2005 16:12

Hey Robert,
ich habe ja in Basic Module, Dialoge und Bibiotheken. Der eigentliche Basic Code (als Prozedur oder Funktion) kommt in die Module oder?
Das ist richtig. Jetzt kannst du aber noch entscheiden, den Code im Dokument oder global zu speichern.
ich bin gerade dabei, von VBA auf Basic umzulernen und habe gleich zu Beginn ein paar Probleme
Das ist normal - da empfehle ich einfach ein wenig Literaturstudium. Das hilft enorm. Im ersten Thread des Basic-Forums sind die wichtigsten, freien Quellen aufgeführt. Ansosten: ein gutes Buch... siehe unten :wink:
ein Textfeld in einem bestimmten Writer-Dokument anzusprechen
Tia, was für ein Textfeld in welchem Dokument? das ist alles zu ungenau... da kann man nicht helfen. Da bräuchte ich schon ein paar mehr Daten.

Gruss
Thomas

Prozedur einem Dokument und anderen Objekten zuweisen?

von theonlyrobi » Mi, 30.11.2005 14:35

Hallo Leute,

ich bin gerade dabei, von VBA auf Basic umzulernen und habe gleich zu Beginn ein paar Probleme:

Ich habe ja in Basic Module, Dialoge und Bibiotheken. Der eigentliche Basic Code (als Prozedur oder Funktion) kommt in die Module oder?

Wenn ich dann so eine Prozedur habe, schaffe ich es aber nicht, ein Textfeld in einem bestimmten Writer-Dokument anzusprechen. Wie weise ich denn eine Prozedur einem Dokument zu und kann darin Objekte ansprechen? Die Codeschnipsel, die hier im Forum gepostet werden, sind mir da nicht eindeutig.

Robert

Nach oben