E-mail Adresse in Master einfügen

Das Präsentationsgrafikprogramm

Moderator: Moderatoren

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: E-mail Adresse in Master einfügen

Beitrag von komma4 »

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?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: E-mail Adresse in Master einfügen

Beitrag von komma4 »

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
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten