Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: fritandr am 11.07.02 - 21:41:59

Titel: Gliederungen einrücken per Script
Beitrag von: fritandr am 11.07.02 - 21:41:59
Hallo,

ich suche nach einer Möglichkeit, in einer Gliederung, die ich per Script aufbaue, einige Einträge einzurücken.
Hat jemand Erfahrungen damit, Gliederungen per Script aufzubauen und weiss, wie (und ob) so etwas geht?

Viele Grüße
Andreas

Titel: Re: Gliederungen einrücken per Script
Beitrag von: doliman am 11.07.02 - 22:07:10
Hi,

meinst Du ein RTF Feld befüllen?
Titel: Re: Gliederungen einrücken per Script
Beitrag von: fritandr am 11.07.02 - 22:26:57
Hallo,

nein, ich will kein RTF-Feld befüllen. Ich versuche jetzt nochmal klarer zu beschreiben, was ich vorhabe.

Ich will mir eine Gliederung (NotesOutline, NotesOutlineEntry) per Lotus Script aufbauen. Dabei hole ich mir aus einer Ansicht verschiedene Dokumente und erzeuge für jedes Dokument einen Eintrag in der Gliederung. Nun möchte ich gerne einige dieser Gliederungspunkte per Script weiter einrücken.

Bearbeite ich eine Gliederung im Designer manuell, so kann ich einen einzelnen Eintrag über die Aktion "Eintrag einrücken" manuell einrücken und einem anderen Punkt damit unterordnen. Genau das möchte ich jetzt per Script tun. Hoffentlich habe ich mich jetzt verständlicher ausgedrückt!?!

Viele Grüße
Andreas
Titel: Re: Gliederungen einrücken per Script
Beitrag von: fritandr am 16.07.02 - 11:30:20
Hallo,

vielleicht interessiert es ja außer mir doch noch jemanden ???. Mit dem angehängten Script kann man eine Gliederung per LS erzeugen und dabei einzelne Einträge einrücken.
Das Script ist sicher noch nicht perfekt. Es verdeutlicht aber die Vorgehensweise.

Viele Grüße
Andreas


'---------------------------------------------------------------------------------------------------------------
'-----
'----- Dieses Script erstellt eine Gliederung über alle Dokumente in der Ansicht
     '----- "alleKat".
     '----- Dabei werden alle Dokumente, die im Feld "Thema" das Wort "Child"
     '----- enthalten, dem vorhergehenden Dokument untergeordnet.
     '----- Man erhält also eine hierarchische Gliederung
'-----    
'---------------------------------------------------------------------------------------------------------------
'-----
     
    '----- Fehlerbehandlung -----
     On Error Resume Next
     
     Dim session As New notessession
     Dim db As notesdatabase
     Dim view As NotesView
     Dim doc As NotesDocument
     Dim outline As notesoutline
     Dim outlineentry As notesoutlineentry
     Dim refoutlineentry As notesoutlineentry
     Dim formula As String
     
     Dim thema_ As String
     Dim view_ As String
     Dim res As Integer
     thema_ = ""
     view_ = "alleKat"
     
     '----- Dummys für "Call outlineentry.SetNoteLink()" -----
     Dim emptyDB As NotesDatabase
     Dim emptyView As NotesView
     
     '----- holen aktuelle DB und den vorgegebenen View -----
     Set db = session.currentdatabase
     Set view = db.getview(view_)
     Set doc = view.GetFirstDocument
     
     '----- erstellen Gliederung -----
     Set outline = db.createoutline("outTest")
     outline.alias = "alleDokumente"
     outline.comment = "Gliederung per Script erstellt"
     
     '----- alle Dokumente in der Ansicht als Gliederungseinträge einfügen -----
     Do Until doc Is Nothing
           thema_ = doc.GetItemValue("Thema")(0)
           
           '----- Gliederungseintrag erzeugen -----
           Set outlineentry = outline.createentry(thema_)
           outlineentry.label = thema_
           Call outlineentry.SetNoteLink(emptyDB, emptyView, doc)
           outlineentry.imagestext = "itnlogo.gif"
           
           '----- wenn das Wort "Child" im Thema vorkommt --> einrücken -----
           res = Instr(1,  thema_, "Child", 5)
           If res > 0 Then
                 Call outline.MoveEntry(outlineentry, refoutlineentry, 1, 1)
           End If
           
           
           '----- an Gliederung anhängen -----
           outline.addentry outlineentry
           
           '----- alten Gliederungspunkt merken für eventuelle Einrückung -----
           Set refoutlineentry = outlineentry
           
           '----- nächstes Dokument -----
           Set doc = view.GetNextDocument(doc)
     Loop            
     
     '----- speichern und fertig -----
     outline.save