Domino 9 und frühere Versionen > ND6: Entwicklung
RichText Formatierung (Tab)
chris2212:
Hallo,
via ODBC hole ich mir aus Navision Daten, welche
formatiert in einem computed RichText Feld dargestellt
werden sollen.
Mein Problem da bei ist ein Feld in dem sich die Beschreibung
befindet, da mir die Länge des Feldes nicht bekannt ist, klappt
die Darstellung nicht wirklich zuverlässig :-(
Wenn der Inhalt 18 Zeichen lang ist passt es, ist es weniger
oder mehr verschieben sich meine Tabs :-(
Ich habe eine Funktion von der ich den Wert bekomme, ich habe
auch schon getestet was passiert wenn ich die Feldlänge auf
max. 40 Zeichen begrenze, hilft halt leider auch nicht, wenn der
Inahlt z.B. 27 Zeichen lang ist.
Wie kann ich "dynamisch" Tabs abhängig von der Feldlänge
in einem RichText Feld einstellen?
Anbei mein "toller" SourceCode...
Schnipp---schnipp
.....irgendwas davor
Dim Body As NotesRichtextItem
Dim BodyCondition As NotesRichtextItem
Dim richStyle As NotesRichTextStyle
Dim rtpStyle As NotesRichTextParagraphStyle
Dim tabpos1 As Long
Dim tabpos2 As Long
.....irgendwas dazwischen
Set body = New NotesRichTextItem ( newDoc, "CreditMemoBody" )
Set richStyle = session.CreateRichTextStyle
Set rtpStyle = session.CreateRichTextParagraphStyle
Call body.AppendParagraphStyle(rtpStyle)
richstyle.FontSize = 9
richstyle.Bold = True
Call body.AppendStyle(richStyle)
rtpstyle.Leftmargin = 1611
rtpStyle.FirstLineLeftMargin = RULER_ONE_INCH
rtpStyle.LeftMargin = RULER_ONE_CENTIMETER * 7
tabpos1= RULER_ONE_CENTIMETER *4
tabpos2= RULER_ONE_CENTIMETER *6
Call rtpStyle.SetTab( tabpos1, TAB_LEFT)
Call rtpStyle.SetTab( tabpos2, TAB_LEFT)
Call body.AppendParagraphStyle(rtpStyle)
Call body.AddTab(1)
Call body.AppendText( "Credit Memo: " & CreditMemoNumber)
Call body.AddNewline(2)
Call body.AddTab(1)
Call body.AppendText("Pos"+Chr(9))
Call body.AppendText("Description")
Call body.AddTab(6)
Call body.AppendText("Quantity")
Call body.AddTab(1)
Call body.AppendText("Unit of Measure ")
Call body.AddTab(1)
Call body.AppendText("Unit Price")
Call body.AddTab(1)
Call body.AppendText("Amount")
Call body.AddTab(2)
Call body.AppendText("Line Discount")
Call body.AddTab(2)
Call body.AppendText("Begin Maintenance")
Call body.AddNewline(1)
richstyle.Bold = False
Call body.AppendStyle(richStyle)
Call body.AddTab(1)
While(conLine.Fetch(resultListLine) > 0)
rtpstyle.Leftmargin = 1611
rtpStyle.FirstLineLeftMargin = RULER_ONE_INCH
rtpStyle.LeftMargin = RULER_ONE_CENTIMETER * 7
tabpos1= RULER_ONE_CENTIMETER *4
tabpos2= RULER_ONE_CENTIMETER *6
Call rtpStyle.SetTab( tabpos1, TAB_LEFT)
Call rtpStyle.SetTab( tabpos2, TAB_LEFT)
Call body.AppendParagraphStyle(rtpStyle)
Call body.AddTab(1)
Pos = getValue(rF_Pos.Text(0))
Call body.AppendText(Pos+Chr(9))
Description = getValue(rF_Description.Text(0))
Call body.AppendText(Description)
Select Case Len(Description) 'da hab ich versucht mit Select die Tabs entsprechend einzustellen
Case Is < 20 :
Call body.AddTab(6)
Case Is < 41 :
Call body.AddTab(3)
End Select
Quantity = getValue(rF_Quantity.Text(0))
Call body.AppendText(Quantity)
Call body.AddTab(2)
Unit_of_Measure = getValue(rF_Unit_of_Measure.Text(0))
Call body.AppendText(Unit_of_Measure)
Call body.AddTab(3)
Unit_Price = getValue(rF_Unit_Price.Text(0))
Call body.AppendText(Unit_Price)
Call body.AddTab(2)
Amount = getValue(rF_Amount.Text(0))
Call body.AppendText(Amount)
Call body.AddTab(3)
Line_Discount_Pct = getValue(rF_Line_Discount_Pct.Text(0))
Call body.AppendText(Line_Discount_Pct)
Call body.AddTab(3)
Beginn_Wartung = getValue(rF_Beginn_Wartung.Text(0))
Call body.AppendText(Beginn_Wartung)
Call body.AddNewline(1)
Wend
.....irgendwas danach
Ich habe in der Online Help schon geschaut aber so richtig schlau
bin ich daraus auch nicht geworden :-( Hier im Forum hab ich mir
den ein oder anderen Code "geklaut", da ich was die Formatierung
von RichText Feldern angeht nicht wirklich weis was es für Möglichkeiten
gibt und es halt wie immer schnell gehn muss, wollte hiermit um Eure
Unterstützung bitten.
Für jede Unterstützung dankbar!
Gruß
Chris
Axel:
Nimm doch anstatt von Tab eine Tabelle.
Hier http://atnotes.de/index.php?topic=28996.0 siehst du, wie man mit Script eine Tabelle anlegen kann.
Axel
Wirsing:
Mit Leerstellen kannste das nicht hinbekommen?
Wäre einfacher, da Du hier
anzLeerstellen = 40 - len(Description)
call body.AppendText(UString$(anzLeerstellen," "))
nutzen könntest...
Das setzt natürlich eine Blockschrift( z.B. Courier ) vorraus
Grüsse
Holger
chris2212:
Hallo Axel,
danke für die schnelle Antwort!
Das hab ich mir schon überlegt, aber da ich hier im Forum
gelesen habe, dass es aktuell in R6 keine "einfache" Möglichkeit
gibt die im RichText Feld erzeugt Tabelle zu formatieren (z.B. Rahmen ausblenden)
habe ich mir gedacht ich realisiere die Darstellung der Daten mittels Tabs.
Ich hatte schon eine Tabelle im RichText Feld die Darstellung der Daten hat dem
"Kunden" aber nicht gefallen :-(
Wenn es eine Funktion gibt mit der es möglich ist die Rahmen auszublenden, könnte
ich auch eine Tabelle verwenden.
Konntest Du auf den ersten Blick einen Fehler finden?
Danke & Gruß
Chris
chris2212:
Hallo Holger,
das könnte ich mal testen.
Kann aber etwas dauern bis ich Berichten
kann ob es geklappt hat oder nicht, da wir
in ca. 10 Min. unsere "Montagsversammlung" haben...
Danke für die Antworten!
Gruß
Chris
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln