Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: rambrand am 03.09.15 - 16:52:35

Titel: Tabelle in RT Formatierung Text in den Zellen
Beitrag von: rambrand am 03.09.15 - 16:52:35
Hallo,

ich bastel an einer Anwendung, die per Mail Informationen an einen Reisebüro senden soll.
Damit die Daten leichter lesbar sind, wollte ich diese in eine Tabelle stecken.

Dazu habe ich ein RTI erstellt, in dem ich eine Tabelle (appendtable) eingebaut habe. Da die Spalten unterschiedlich groß sein sollen, habe ich einen NotesRichTextParagraphStyle erstellt. Das Ergebnis ist nun, dass die Spalten die richtige Größen haben, aber der Text den ich in die Zellen von der Formatierung nicht passen.

NRTParagraphStyle für die Spalten in der Tabelle Reisedaten
Code
Dim rtpsCols3(5) As NotesRichTextParagraphStyle
Set rtpsCols3(0) = session.CreateRichTextParagraphStyle
rtpsCols3(0).Alignment = 0
rtpsCols3(0).Leftmargin = 0
rtpsCols3(0).RightMargin = RULER_ONE_CENTIMETER * 3
Set rtpsCols3(1) = session.CreateRichTextParagraphStyle
rtpsCols3(1).Alignment = 0
rtpsCols3(1).Leftmargin = 0
rtpsCols3(1).RightMargin = RULER_ONE_CENTIMETER * 3
Set rtpsCols3(2) = session.CreateRichTextParagraphStyle
rtpsCols3(2).Alignment = 0
rtpsCols3(2).Leftmargin = 0
rtpsCols3(2).RightMargin = RULER_ONE_CENTIMETER * 3
Set rtpsCols3(3) = session.CreateRichTextParagraphStyle
rtpsCols3(3).Alignment = 0
rtpsCols3(3).Leftmargin = 0
rtpsCols3(3).RightMargin = RULER_ONE_CENTIMETER * 3
Set rtpsCols3(4) = session.CreateRichTextParagraphStyle
rtpsCols3(4).Alignment = 0
rtpsCols3(4).Leftmargin = 0
rtpsCols3(4).RightMargin = RULER_ONE_CENTIMETER * 3
Set rtpsCols3(5) = session.CreateRichTextParagraphStyle
rtpsCols3(5).Alignment = 0
rtpsCols3(5).Leftmargin = 0
rtpsCols3(5).RightMargin = RULER_ONE_CENTIMETER * 3

Aufbau der Tabelle Reisedaten
Code
Call reisedaten.AppendTable(3,6,"",1440,rtpsCols3)
Set rtnav = reisedaten.CreateNavigator
Call rtnav.FindFirstElement(RTELEM_TYPE_TABLECELL)
Call reisedaten.AppendStyle(rtsTableHeader)
For i = 0 To 5
	Call reisedaten.BeginInsert(rtnav)
	Call reisedaten.AppendText(reisedatenlabel(i))
	Call reisedaten.EndInsert
	Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
Next
Call reisedaten.AppendStyle(rtsTableRow)
Call reisedaten.BeginInsert(rtnav)
Call reisedaten.AppendText("Hinreise")
Call reisedaten.EndInsert
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
Call reisedaten.BeginInsert(rtnav)
Call reisedaten.AppendText(Cstr(tag1.DateOnly))
Call reisedaten.EndInsert
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
Call reisedaten.BeginInsert(rtnav)
Call reisedaten.AppendText(Cstr(uhr1.TimeOnly))
Call reisedaten.EndInsert
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
{usw. ....}

Das RTI mit der Tabelle binde ich dann im Maildokument per appendrtitem mit ein (ich hab noch andere RTI mit Personendaten, etc. die ich der einfachheithalber zwecks Positionierung des Cursors in der Tabelle aufgesplittet habe).

Die Tabelle wird wie im JPG ersichtlich erstellt, aber die Textformatierung passt nicht. Eigentlich sollten die Zellen linksbündig mit linkem Rand 0 erstellt sein.
Das nächste Problem. Nach dem letzten RTI, das ich in den Mailbody eingebunden habe, sollte der nachfolgende Text (Grußformel, etc.) als normaler Text geschrieben sein. Aber der Mailbody übernimmt den ParagraphStyle des letzten Tabellen RTIs. Wie kann ich das abschalten?

Bye,
Markus
Titel: Re: Tabelle in RT Formatierung Text in den Zellen
Beitrag von: Ralf_M_Petter am 03.09.15 - 17:03:10
Leider ist die Richtext API ziemlich kaputt und extrem fehlerhaft, deshalb bin ich dazu übergegangen, dass ich mir das Richtext in DXL zusammenbastle und dann importiere. Zwar ist auch der DXL import nicht 100% fehlerfrei, aber es geht extrem viel mehr als mit der Richtext API. Vor allem kann man sich einfach den RichText im Notesclient zusammenklicken und dann als DXL exportieren. Damit hat man dann gleich eine gute Vorlage wie man sein DXL aufbauen muss.

Grüße

Ralf
Titel: Re: Tabelle in RT Formatierung Text in den Zellen
Beitrag von: rambrand am 03.09.15 - 17:19:34
Hallo Ralf,

meine Google-Recherchen haben auch schon in diese Richtung gewiesen. Mit DXL habe ich überhaupt nicht nichts gemacht.
Aber ich werde mich wohl mal damit auseinandersetzen.
Danke für die Info.

Bye,
Markus
Titel: Re: Tabelle in RT Formatierung Text in den Zellen
Beitrag von: rambrand am 03.09.15 - 17:57:50
Ich habe mir jetzt mal einen DXL Export Agenten zusammenkopiert. Das DXL-File ist ja recht simpel.
Verstehe ich Dich richtig, dass Du z.B. ein Dokument mit einer Tabelle als Muster in DXL exportierst, den Text dann einfach per LS manipulierst z.B. Platzhalter für Zellinhalte durch den gewünschten Zellinhalt austauschst und dann das angepasste DXL in das entsprechende Dokument importierst?

In meinem Demo-DXL stehen jetzt alle Dokumenteninfos, UID, etc. Kann ich auch nur Teile des DXL direkt in ein RT-Feld importieren? Oder muss ich doch das komplette Dokument per DXL erstellen?

Bye,
Markus
Titel: Re: Tabelle in RT Formatierung Text in den Zellen
Beitrag von: Ralf_M_Petter am 04.09.15 - 07:44:33
Der Trick ist ein leeres Dokument nur mit den Richtextitem zu importieren. Aus diesem Dokument, kannst du dann das RichTextItem mit CopyItem in das gewünschte Zieldokument kopieren und dann das importierte Dokument wieder löschen.
Titel: Re: Tabelle in RT Formatierung Text in den Zellen
Beitrag von: it898ur am 04.09.15 - 07:47:54
Hallo,

ich gehe in meinen Anwendungen einen anderen Weg - in einem zentralen Konfig-Dokument befindet sich ein Richtextfeld mit einer fertig vorformatierten Tabelle (Kopfzeile plus eine Datenzeile).
Diese wird zur Laufzeit übernommen (rtitem.appendrtitem(configrtitem)) und anschließend fülle ich die Tabelle und hänge dazu immer eine Zeile am Ende an, die dabei die Einstellungen der vorherigen Zeile (Breite, Abstände u.ä.) erbt.
Jetzt nur noch durch die neuen Zellen laufen und den Inhalt reinschreiben - fertig.

Gruß

André
Titel: Re: Tabelle in RT Formatierung Text in den Zellen
Beitrag von: Ralf_M_Petter am 04.09.15 - 07:51:40
Andre leider funktioniert das nur beschränkt, da du z.B. in eine Tabelle keinen Richtext einfügen kannst. Mit DXL hast du da viel mehr Möglichkeiten.
Titel: Re: Tabelle in RT Formatierung Text in den Zellen
Beitrag von: it898ur am 04.09.15 - 13:00:32
Hallo Ralf,

man kann durchaus in Tabellen formatierten Text und auch Dokumentenlinks einfügen. DXL ist zwar sicher mächtiger, aber an vielen Stellen auch komplizierter.

Gruß

André
Titel: Re: Tabelle in RT Formatierung Text in den Zellen
Beitrag von: rambrand am 07.09.15 - 11:28:58
Vielen Dank euch beiden für den Input. Ihr habt mir sehr weitergeholfen.

Bye,
Markus