Domino 9 und frühere Versionen > ND6: Entwicklung
Wiederholender Scriptabschnitt
Hedwig14:
Hallo !
Ich habe in einer Datenbanken mehrere Scripte in denen jedesmal der u.a.
Scriptabschnitt eingetragen ist:
Wie kann ich diesen Bereich ausgliedern, damit ich ihn nur einmal pflegen muss.
und wie rufe ich den part in meinem script auf ?
Set rtItem= New NotesRichTextItem( mdoc , "Body")
Set styleÜberschrift=s.createRichTextStyle()
styleÜberschrift.bold=True
styleÜberschrift.Underline = True
styleÜberschrift.NotesColor = COLOR_Dark_Blue
styleÜberschrift.fontsize=13
Set styleHeadline=s.createRichTextStyle()
styleHeadline.bold=True
styleHeadline.Underline = False
styleHeadline.NotesColor = COLOR_Dark_Blue
styleHeadline.fontsize=10
Set styleNormal=s.createRichTextStyle()
styleNormal.bold=False
styleNormal.Underline = False
styleNormal.NotesColor = COLOR_Black
styleNormal.fontsize=10
Axel:
Du kannst versuchen den Code in eine Routine in eine Script-Bibliothek zu packen.
Die Script-Bibliothek bindest du dann mit Use "Name_der_Bibliothek" ein.
Axel
mibo11:
Z.B. eine Funktion oder Subroutine innerhalb einer Scriptbibliothek einbinden und dann aufrufen.
siehe Hilfe Scriptbibliotheken / Functionen / Subroutinen
gossifu:
Hallo,
obwohl der aufwand ein wenig hoch ist...
Erstelle eine Scriptbibliothek und danach binde diese in die anderen Scripte mit 'Use ...' in den Options ein.
In der Bibliothek schreibst Du eine Sub mit diesem Code:
--- Code: ---Sub style_setzen(rtitem as NotesRichtextItem, styleÜberschrift as NotesRichtextStyle, styleHeadline as NotesRichtextStyle, styleNormal as NotesRichtextStyle)
styleÜberschrift.bold=True
styleÜberschrift.Underline = True
styleÜberschrift.NotesColor = COLOR_Dark_Blue
styleÜberschrift.fontsize=13
styleHeadline.bold=True
styleHeadline.Underline = False
styleHeadline.NotesColor = COLOR_Dark_Blue
styleHeadline.fontsize=10
styleNormal.bold=False
styleNormal.Underline = False
styleNormal.NotesColor = COLOR_Black
styleNormal.fontsize=10
end sub
--- Ende Code ---
Scriptbibi speichern und die anderen Scripte
und anstatt des Codes rufst Du einfach nur noch die Sub auf
--- Code: ---Set rtItem= New NotesRichTextItem( mdoc , "Body")
Set styleÜberschrift=s.createRichTextStyle()
Set styleHeadline=s.createRichTextStyle()
Set styleNormal=s.createRichTextStyle()
Call style_setzen(rtitem, styleÜberschrift, styleHeadline, styleNormal)
--- Ende Code ---
Alle veränderten Scripte speichern. Fertsch.
mfg
Kjeld
PS: Umlaute sind schlecht
Edit: Code geändert, um gesetzte Objekte zu übergeben.
LN4ever:
Ich würde nicht den Code von gossifu so einsetzen.
Warum ?
Eine Script-Library sollte so flexibel wie möglich sein - und mit den 4 Übergabeparametern von gossifu bist du das nicht.
Du mußt das übergeben, was du zur Definition deines Elements von der aufrufenden Routine brauchst - nicht mehr. Das ist im Fall eines RichTextStyles die SESSION, nichts anderes. Die einzelnen Styles definierst du in der Script-Library ABSATZSTILE als globale Variablen. Also:
(Declarations)
Dim RS_Title As NotesRichtextStyle
Dim RS_SubTitle As NotesRichtextStyle
Dim RS_Normal As NotesRichtextStyle
Sub StyleFestlegen(xSession)
Set RS_Title = xSession.CreateRichTextStyle
Set RS_SubTitle = xSession.CreateRichTextStyle
Set RS_Normal = xSession.CreateRichTextStyle
RS_Title.bold=True
RS_Title.Underline = True
RS_Title.NotesColor = COLOR_Dark_Blue
RS_Title.fontsize=13
RS_SubTitle.bold=True
RS_SubTitle.Underline = False
RS_SubTitle.NotesColor = COLOR_Dark_Blue
RS_SubTitle.fontsize=10
RS_Normal.bold=False
RS_Normal.Underline = False
RS_Normal.NotesColor = COLOR_Black
RS_Normal.NotesFont = FONT_HELV
RS_Normal.Italic = False
RS_Normal.fontsize=10
End Sub
In den Scripts, die dies verwenden, fügst du bei OPTIONS ein
Use "ABSATZSTILE"
Im Code kommt dann
Call Stylefestlegen(s)
Das ist die einzige Zeile Code, die du noch in den Scripten brauchst.
Und dann ersetzst du die jetzigen Stile durch die neuen mit Suchen und Ersetzen. Wenn du unbedingt gleiche Namen verwenden willst, um dir das Suchen und Ersetzen zu ersparen, mußt du darauf achten, daß du die lokalen Deklarationen der Stile in den Einzelscripten jeweils entfernst. Aus Erfahrung rate ich eher zur SUCHEN UND ERSETZEN-Methode, weil du ansonsten leicht einmal lange nach einem Fehler suchst, der durch Weiterverwendung einer nicht gelöschten lokalen Variablen entsteht.
Und Umlaute in Variablennamen (styleÜberschrift) werden dir spätestens bei einem Rollout deiner Anwendung in Richtung Asien ganz übel aufstoßen - pardon: uebel aufstossen.
Ein paar Bemerkungen noch am Rande:
ich habe den Namen der Script-Library ABSATZSTILE absichtlich in Großbuchstaben geschrieben. Beim Kompilieren fällt der Fehler nicht auf, aber beim Verwenden achtet Notes genau auf die Groß-Kleinschreibung.
Wenn ihr morgen einen Stil RS_SCHMAL braucht, führst du ihn einfach in die Script-Library ein und kannst ihn sofort verwenden (du hast nur die Session übergeben und die Stile als GLOBALE Variablen definiert). Mit dem Script von GOSSIFU hättest du an der Stelle verloren, denn du müßtest es um einen Parameter erweitern - und das heißt: diesen Aufruf in allen Scripten gleichzeitig ändern.
Gruß
Norbert
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln