Autor Thema: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...  (Gelesen 3877 mal)

Offline padkey

  • Aktives Mitglied
  • ***
  • Beiträge: 107
Hallo zusammen,

habe mir in einem richtextfield eine Tabelle erstellt, welche dann per Email versendet werden soll.
Code
Dim rtnavBody As NotesRichTextNavigator
Dim rtt As NotesRichTextTable
Dim rtrange As NotesRichTextRange 
Set rtnavBody = Memobody.CreateNavigator

If rtnavBody.FindFirstElement(RTELEM_TYPE_TABLE) Then
	Set rtt = rtnavBody.GetElement
	Call rtt.AddRow()	
End If

Dim styles(1 To 5) As NotesRichTextParagraphStyle

Dim richStyle As NotesRichTextStyle
Set richStyle = session.CreateRichTextStyle


Call Memobody.AppendTable(1,5) 
Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,2)
Call Memobody.BeginInsert(rtnavBody)
Call Memobody.AppendStyle(richStyle)
richStyle.Bold = True
Call Memobody.AppendText("Datum")
richStyle.Bold = False
Call Memobody.EndInsert


Jedoch habe ich Formatierungsprobleme:
Laut meinem Tutorial (http://www.ibm.com/developerworks/lotus/library/ls-ND6_LSrichtext/index.html) sollte das Feld Datum "fett/bold" sein, ist es aber leider nicht.

Kann mir jemand sagen, waruM?

weiß jemand wo ich eine auflistung von Formatierungsmöglichkeiten finde? Bspw. Ausblenden vom Rahmen?

Vielen Dank

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #1 am: 26.05.11 - 15:50:35 »
so geht das nicht... in dem Moment, wo Du den Style anwendest, wird die Information in den Body geschrieben. Das muss also so aussehen:
Code
Call Memobody.AppendTable(1,5) 
Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,2)
Call Memobody.BeginInsert(rtnavBody)
richStyle.Bold = True
Call Memobody.AppendStyle(richStyle)
Call Memobody.AppendText("Datum")
richStyle.Bold = False
Call Memobody.AppendStyle(richStyle)
Call Memobody.EndInsert
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #2 am: 26.05.11 - 15:53:21 »
Wie Tode schon ausführte, erst Style definieren, dann "Appenden", nicht umgekehrt.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #3 am: 26.05.11 - 17:00:03 »
Zur Übersichtlichkeit würde ich mir verschiedene richstyles definieren (z.B. einen für Überschriften, einen für normalen Text, einen für Zahlen usw.) und die dann zuordnen (append), anstatt nur eines zu nehmen und dann im laufenden Script ständig die Eigenschaften des Styles zu ändern. Spätestens, wenn Du mehrere Eigenschaften steuerst (Farbe, Größe, Fett, Schriftart usw.) blickt dann "keine Sau" mehr durch.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #4 am: 26.05.11 - 17:11:40 »
Das ist ein Weg, Peter. Eleganter finde ich aber noch eine Routine, die das mit definierten Parameter für mich übernimmt:

Call SetStyle (rti, BOLD#FONT=TIMES#SIZE=14#COLOUR=DEEPBLUE)

Das liest sich noch besser  ;)

Bernhard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #5 am: 26.05.11 - 17:24:35 »
da fehlen aber Anführungszeichen, oder hast Du alle möglichen Variationen als Konstanten definiert? ;)
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #6 am: 26.05.11 - 17:31:52 »
Sicher Konstanten (in der Lib) - sonst kann das ja übel werden. Sonst schreibt mir da noch jemand "[ move]" rein  ;D

Bernhard
« Letzte Änderung: 26.05.11 - 20:58:04 von koehlerbv »

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #7 am: 26.05.11 - 18:34:01 »
Ich will mich ja nicht streiten, aber eleganter finde ich das nicht.

Wenn ich dann zentral (oder per Konfiguration) das Aussehen von bestimmten definierbaren Elementen (z.B. Überschriften usw.) ändern will, brauche ich bei den unterschiedlichen Styles nur an einer Stelle zu drehen, und nicht mitten im Script und immer wieder das gleiche. Ausser man definiert die Übergabeparameter in Variablen.

Call SetStyle (rti, ueberschrift)
Call SetStyle (rti, normalerText)

Allerdings muss der Übergabeparameter jedesmal geparst werden, und da wir sonst doch so pingelig mit jeder Millisekunde sind ...

Offline padkey

  • Aktives Mitglied
  • ***
  • Beiträge: 107
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #8 am: 27.05.11 - 08:00:01 »
EDIT: Funktioniert mittlerweile!!!!!  :) :) :) :) :)

Okay ich blick jetzt ja (fast) schon nicht mehr durch und ich will nur fette Überschriften ::) dafür denke ich kann man es noch einfach so in den Code klatschen, sonst würde ich natürlich auf euere Vorschläge gerne zurückkommen...

Ich habe hier mal den ganzen Code reingestellt + die Ausgabe, da ich es auch mit Call Memobody.AppendStyle(richStyle) nach dem definieren leider nicht fett anzeigt bekomme...

Wie gesagt, es soll einfach nur eine einface Tabelle sein. Vorher war dies mit Tabstops gelöst, jedoch verschiebt sich das alles, da die Länge des Themas immer unterschiedlich lang ist.

Code
Dim richStyle As NotesRichTextStyle
Set richStyle = session.CreateRichTextStyle

'Put body into richtext field
Set MemoBody = memo.CreateRichTextItem( "Body" ) 

Dim rtnavBody As NotesRichTextNavigator
Dim rtt As NotesRichTextTable
Dim rtrange As NotesRichTextRange 
Set rtnavBody = Memobody.CreateNavigator

If rtnavBody.FindFirstElement(RTELEM_TYPE_TABLE) Then
	Set rtt = rtnavBody.GetElement
	Call rtt.AddRow()	
End If

Dim richStyle As NotesRichTextStyle
Set richStyle = session.CreateRichTextStyle

Call Memobody.AppendTable(1,5) 

Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,2)
Call Memobody.BeginInsert(rtnavBody)
richStyle.Bold = True
Call Memobody.AppendStyle(richStyle)
Call Memobody.AppendText("Datum")
richStyle.Bold = False
Call Memobody.EndInsert

Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,3)
Call Memobody.BeginInsert(rtnavBody)
richStyle.Bold = True
Call Memobody.AppendText("Thema")
richStyle.Bold = False
Call Memobody.AppendStyle(richStyle)
Call Memobody.EndInsert

Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,4)
Call Memobody.BeginInsert(rtnavBody)
richStyle.Bold = True
Call Memobody.AppendText("Sektion")
richStyle.Bold = False
Call Memobody.AppendStyle(richStyle)
Call Memobody.EndInsert 

Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,5)
Call Memobody.BeginInsert(rtnavBody)
richStyle.Bold = True
Call Memobody.AppendText("Sprache")
richStyle.Bold = False
Call Memobody.AppendStyle(richStyle)
Call Memobody.EndInsert 

Call rtnavBody.FindFirstElement(RTELEM_TYPE_TABLE)    
Set rtt = rtnavBody.GetElement
Call rtt.AddRow()

Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,6)
Call Memobody.BeginInsert(rtnavBody)
Call MemoBody.AppendDocLink(newDoc,"","")
Call Memobody.EndInsert

Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,7)
Call Memobody.BeginInsert(rtnavBody)
Call Memobody.AppendText(newDocDatum)
Call Memobody.EndInsert

Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,8)
Call Memobody.BeginInsert(rtnavBody)
Call Memobody.AppendText(newDocThema)
Call Memobody.EndInsert

Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,9)
Call Memobody.BeginInsert(rtnavBody)
Call Memobody.AppendText(newDocSektion)
Call Memobody.EndInsert

Call rtnavBody.FindNthElement(RTELEM_TYPE_TABLECELL,10)
Call Memobody.BeginInsert(rtnavBody)
Call Memobody.AppendText(newDocSprache)
Call Memobody.AppendStyle(richStyle)
Call Memobody.EndInsert

[Hier die aktuelle Ausgabe:
[URL]
Vielen Dank nochmals für die netten Anregungen zur übersichtlichen Darstellung...
« Letzte Änderung: 27.05.11 - 09:39:33 von padkey »

Offline padkey

  • Aktives Mitglied
  • ***
  • Beiträge: 107
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #9 am: 27.05.11 - 11:37:11 »
naja neues problem:

"Illegal column width - check Left and Richt margins on line 83"

Code
Const COLUMN_COUNT = 5 
Dim tableColStyles(1 To COLUMN_COUNT)  As NotesRichTextParagraphStyle
Dim i As Integer
For i = 1 To COLUMN_COUNT Step 1
		Set tableColStyles(i) = session.CreateRichTextParagraphStyle				' Create the rt paragraph style for this column
		tableColStyles(i).Alignment = ALIGN_CENTER
		tableColStyles(i).FirstLineLeftMargin = 0												' Set left margin for the first line of each cell in column
		tableColStyles(i).LeftMargin = 0		
	Next

	Call Memobody.AppendTable( 2, COLUMN_COUNT,,,tableColStyles)
[code]
Call Memobody.AppendTable( 2, COLUMN_COUNT,,,tableColStyles) ist Line 83

weiß jemand was ich gegen den Fehler machen kann?
[/code]

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Richtextfield Tabelle formatieren bold, Rahmen ausblenden...
« Antwort #10 am: 27.05.11 - 12:05:55 »
Mal probiert, auch ein .RightMargin anzugeben?
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz