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