Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Obrac am 28.03.03 - 22:15:31

Titel: Formatierungen mit Lotus Skript
Beitrag von: Obrac am 28.03.03 - 22:15:31
Nabend..

Weiss jemand, wie man Formatierungen in Variablen schreibt, d.h. ich möchte den Inhalt einer Variablen (String), danach einen Zeilenumbruch und danach den Inhalt eines weiteren Strings in ein RichText Feld schreiben.

Beispiel:
Hallo
Leute

Wie krieg ich den Zeilenumbruch hin. Ich habe es schon mit Evaluate und @functions versucht, aber dann kann ich nicht die Inhalte der Variablen hintereinander setzen.

Was soll ich tun?

/Nadja
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: Rob Green am 28.03.03 - 22:32:57
schau mal in die Help nach der Klasse NotesRichText und dessen Methoden, Text zu schreiben incl. neue Lines zu erzeugen..

auszug:

Dim doc As NotesDocument
Dim rtitem As Variant
'...set value of doc...
Set rtitem = doc.GetFirstItem( "ProjectDescription" )
If rtitem.Type = RICHTEXT Then
  Call rtitem.AddNewLine( 1 )
  Call rtitem.AppendText( "Book is 64 pages, full color." )
End If
Call doc.Save( False, True )
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: Obrac am 28.03.03 - 22:41:47
OK, konkret gesagt: Ich muss mehrere Dokumente in einer Ansicht per Skript durchsuchen. Sie haben ein Feld "Termin". Wenn dieser Termin älter als das heutige Datum ist, sollen verschiedene Feldinhalte per Mail verschickt werden. Das heisst, die Mail enthält die Feldinhalte des ersten Dokumentes, fügt eine Leerzeile ein und fügt die Feldinhalte des zweiten Dokumentes ein. (identisch mit der Agentenfunktion "Infobrief erstellen")

Ich müsste etwas machen wie. sBody=sBody & sFeldinhalte. Das funktioniert aber bei Evaluate und @functions nicht (Type mismatch).

Wie kann ich denn dem rtitem sagen, dass mit jedem Schleifendurchlauf, der Inhalt der vorherigen Dokumente mitgenommen wird und nicht nur der des aktuellen?

Ich hoffe, ihr versteht nach dem Wortschwall, was ich meine.
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: Rob Green am 28.03.03 - 23:50:43
Meldung$ = ""
For i=1 to 10

Meldung$ = Meldung$ & Chr(10) & "Neue Zeile"

Next


ergibt nach dem 10. Durchlauf =
"Neue Zeile
Neue Zeile
...
Neue Zeile"

So nimmt man Variablen in ner Schleife mit, indem man sie immer wieder selbst verwendet.
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: Obrac am 29.03.03 - 18:36:58
Eine Frage hätte ich noch. Wie übergebe ich dem rtitem denn Variableninhalte? Ich habe keine Methode gefunden, die funktioniert.
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: Rob Green am 29.03.03 - 18:40:56
ich verstehe die Frage nicht ganz..

oben ist ja ein Beispiel

Dim doc As NotesDocument
Dim rtitem As Variant
'...set value of doc...
Set rtitem = doc.GetFirstItem( "ProjectDescription" )
If rtitem.Type = RICHTEXT Then
  Call rtitem.AddNewLine( 1 )
  Call rtitem.AppendText( "Book is 64 pages, full color." )
End If
Call doc.Save( False, True )

statt "Book is 64 pages..:" kann man auch
Variable_Variant = doc.feld(0)
Variable_Schtring = Cstr(Variable_Variant)
Call rtitem.AppendText( Variable_Schtring )
"machen"....ist nur mal ne Spielart wie man mit Variablen arbeitet.

Ich glaube aber, Du meinst bestimmt was anderes.
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: Obrac am 29.03.03 - 18:50:15
Ich habe es so gemacht und bekomme in der letzten Zeile nen "Object Variable not set". Das rtitem soll das Feld "Body" der Maske "Memo" sein.

vCategories = doc.Categories(0)
sCategories=Cstr(vCategories)
Call rtitem.AppendText (sCategories)
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: ata am 29.03.03 - 23:44:12
... ich verwende i.d.R. folgendes Konstrukt

Dim ws As New NotesUIWorkspace
Dim docThis As NotesDocument
Dim rtItem As NotesRichTextItem

Set docThis = ws.CurrentDocument.Document
Set rtItem = docThis.GetFirstItem("Body")
If rtItem.Type = 1 Then
    ' # hier kommt der Code zur Bearbeitung des Richtextfeldes

End If


... das klappt bei mir bislang ohne Probleme...


ata
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: Obrac am 31.03.03 - 11:46:28
OK, danke erstmal, ich habs inzwischen geschafft. Nun stehe ich aber vor einem anderen Problem. Wenn ich das Feld "Body" fülle, entsteht ein automatischer Zeilenumbruch, wenn die Zeile zu lang wird. Das will ich jedoch nicht. Hat jemand eine Idee, wie man einen automatischen Zeilenumbruch verhindern kann?
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: Rob Green am 31.03.03 - 11:52:44
nur ne Schnappsidee...bau ne Tabelle mit fixer Fensterbreite ein...und schreib in die Tabellenzelle Deinen Text.
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: Obrac am 31.03.03 - 21:21:05
Das geht leider nicht. Es soll sich ein neues Memo öffnen und im Body Feld soll dann der Text stehen. Oder meinst du, ne Tabelle zu erstellen mit Lotus Skript?
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: ata am 01.04.03 - 09:35:23
... den automatischen Zeilenumbruch kannst du nur mit Rob's Vorschlag umgehen, doch kannst du mit Script keine Tabellen erstellen, geschweige denn formatieren....

... in deinem Fall fällt mir nur ein sehr umständlicher Weg über Word ein. Dort kannst du Tabellen formatiert erstellen, da dort alle erforderlichen Parameter offen liegen und über COM angesprochen werden können...

... die Tabelle dort erstellen, in den Zwischenspeicher nehmen und im Notes wieder einfügen...

ata
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: doliman am 01.04.03 - 22:22:29
Hi,

bei RTF-Felder kann man mit Script (RTF Klassen von www.geniisoft.com) mit Tabellen, Schaltflächen, Formatierungen, etc. gestalten. Ech gut um Lotus Notes Berichte zu erstellen.
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: wflamme am 02.04.03 - 09:54:30
Hi,

bei RTF-Felder kann man mit Script (RTF Klassen von www.geniisoft.com) mit Tabellen, Schaltflächen, Formatierungen, etc. gestalten. Ech gut um Lotus Notes Berichte zu erstellen.

Oder Normund Kalnberzins' http://www.rtlib.com/ (http://www.rtlib.com/)
(R6 ist auch eine Option)
Titel: Re:Formatierungen mit Lotus Skript
Beitrag von: ata am 02.04.03 - 17:29:59
... danke für die Tipps, die werde ich mir mal unter die Lupe nehmen...

ata