E-mail Adresse in Master einfügen

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: E-mail Adresse in Master einfügen

Re: E-mail Adresse in Master einfügen

von komma4 » Di, 20.03.2012 16:24

1/2frust hat geschrieben:weil mein Master ja einen anderen Namen hat

Speichere ich die Vorlage als "mail-impress.otp" ab, dann heisst der Master "mail-impress" - das hast Du auch so geändert?

Und das korrekte Ereignis ist Neues Dokument

So funktioniert es hier: OOo 3.2.1/Linux x64

Re: E-mail Adresse in Master einfügen

von komma4 » Mo, 19.03.2012 17:26

Mit der Oberfläche lassen sich solche Textfelder -wie Du sicherlich gesehen hast- nicht einfügen.


Das folgende Makro (er-)setzt im Folienmaster "Standard" im Textfeld "MAIL" die unter den Benutzerdaten eingegebene E-Mail Adresse (als Zeichenkette; vorhandener Inhalt im Textfeld wird überschrieben).


Verbinde das Makro mit dem Ereignis "Dokument wurde erzeugt" der Vorlage.

Code: Alles auswählen

REM  *****  BASIC  *****

CONST cMAKRONAME = "Impress: setzen E-Mail in Master"
CONST cMAKROVERSION = "2012-03-19"

CONST cIMPRESS = "com.sun.star.presentation.PresentationDocument"


' ------------------------------------------------------------------
SUB de58624

' IMPRESS MAKRO
'
' Setzen der Benutzer-E-Mail-Adresse 
' aus Extras>Optionen...>OpenOffice.org>Benutzerdaten>E-Mail
' ------------------------------------------------------------------

' 2012-03-12
' Folienmaster STANDARD
' ein Textfeld "MAIL" muss vorhanden sein

IF NOT ThisComponent.supportsService( cIMPRESS ) THEN
   MSGBOX "Kein IMPRESS-Dokument - Makro beendet", 16, _
   cMAKRONAME & " " & cMAKROVERSION
   STOP
END IF 

oDok = ThisComponent

oMasters = oDok.getMasterPages()
  
FOR zM = 0 TO oMasters.Count - 1
   oMaster = oMasters.getByIndex( zM )
   IF oMaster.Name = "Standard" THEN
      FOR zE = 0 TO oMaster.Count - 1
         oElement = oMaster.getByIndex( zE ) 
         IF oElement.Name = "MAIL" THEN
            oCursor = oElement.createTextCursor()
            oCursor.gotoEnd( TRUE )            
            oCursor.setString( fkt_EMAIL() )
         END IF
      NEXT zE
   END IF
NEXT zM

END SUB


' ------------------------------------------------------------------
FUNCTION fkt_EMAIL

IF NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) THEN
   GlobalScope.BasicLibraries.loadLibrary( "Tools" )
END IF
 
oUserDataAccess = _
 Tools.Misc.GetRegistryKeyContent( _
 "org.openoffice.UserProfile/Data", TRUE )

fkt_EMAIL = oUserDataAccess.getByName( "mail" )

END FUNCTION
' ------------------------------------------------------------------


So ähnlich kann es auch mit "Titel" funktionieren.
Welchen Du damit meinst (den der Präsentation, aus Datei>Eigenschaften oder aus den Benutzerdaten) weiss ich aber nicht.

Kommst Du damit weiter?

Nach oben