Domino 9 und frühere Versionen > Entwicklung
RichTextFeld in UIDoc hinzufügen mit PageBreak am Anfang
Marinero Atlántico:
Hi,
... ja ich weiss.
Ich fülle in einem Skriptagenten bei geöffneten UIDoc ein Richtextfeld (ja_ich_weiss1)
Erst möchte ich einen Seitenumbruch fürs Drucken (ja_ich_weiss2) hinzufügen.
Dann wird da noch ein weiteres RichTextFeld angehangen.
im Backend ein RichTextItem in ein anderes RichTextItem:
--- Code: ---Call itRtThisAnlage.addPageBreak
Call itRtThisAnlage.appendRTItem (itRtBodyTemplate)
--- Ende Code ---
Selbstverständlich wird das Dokument dann gespeichert, von dort ins Queryclose gelenkt und wieder neu geöffnet.
Über
--- Code: ---Set docCur = db.getDocumentByUnid(UNID)
Call uiws.EditDocument(True, docCur, False)
--- Ende Code ---
Eigentlich dachte ich, ich müsste im UIDoc saveOptions="0" setzen und das nur im Backend abspeichern (vor dem wieder neu öffnen).
Diese saveOptions="0" Geschichte ist aber unnötig.
Das Problem ist der Seitenumbruch. Er wird gemeinerweise nicht an den Anfang des RichTextItems gesetzt und auch nicht ans Ende. Nein. Der PageBreak steht mitten im kopierten Inhalt des anderen RichTextItems. Dort hat das Original RichtextItem selbst keinen Seitenumbruch. ;D
Hat jemand hierzu eine Idee.
Andere Libraries von Langhinrich und Konsorten wäre mir auch lieb, nur glaub ich nicht, dass ich das hier durchbekomme. Für eine kostenpflichtige Javalibraries wäre das hier übrigens ein weitaus geringeres Problem.
Hat wer eine Idee?
Ich versuche noch den Page-Break in einem extra Formelsprache-Agenten zu setzen, der von dem Agenten, der das andere RichTextITem kopiert, aufgerufen wird.
Ein docCur.save true, false zwischen addPageBreak und addRichTextItem tuts jedenfalls nicht. Schon getestet.
Gruß Axel
Semeaphoros:
Puh, mit Pagebreaks hatte ich erst grad kürzlich Probleme .....
Ben hat doch auch ein Diskussionsforum, meinte ich. Ich würde mal fragen, ob er das Problem kennt. Ich denke mal, wenn man das wirklich stabil hinbekommen möchte, ist Midas wirklich die richtige Adresse. Selbst vom Notes-Client gesetzte Seitenumbrüche produzieren manchmal so ähnlichen "Bruch", vor allem, wenn mans dann noch ausdrucken will.
Marinero Atlántico:
Was total gut funktioniert, ist Formelsprache
EditInsertPageBreak.
Ich setze also beim Speichern unter Bedingung des Neuladens wegen RichtextFeld ein Feld ADD_PAGE_BREAK_ON_RELOAD = "true"
Beim Postopen wird in den reichlich vorhandenen Formel-Code oben ein Agent aufgerufen, falls
ADD_PAGE_BREAK_ON_RELOAD == "true"
und dann ADD_PAGE_BREAK_ON_RELOAD = "false"
Agent:
--- Code: ---@PostedCommand([EditGotoField];"Anlage");
@PostedCommand([EditInsertPageBreak]);
@Command([FileSave])
--- Ende Code ---
verdammte Hackerei. Am Wochenende muss ich 1000 Zeilen auf Basis von Tapestry Framework, Spring und Spring programmieren, um die Götter gnädig zu stimmen.
Und keiner kann mir erzählen, dass dies komplizierter wäre als diese stunts. ;D
Axel
Semeaphoros:
> Tapestry Framework ..
das tönt wie fliegende Teppiche ..... ;D
Marinero Atlántico:
Der true intelectual Ben Langhinrich hat auf seinem Forum auch eine Antwort gepostet. Werd das auch mal ausprobieren und hier berichten:
--- Zitat von: Ben_Langhinrich_on_his_own_forum ---First, let me explain what the problem really is, because it might help determine an answer, whether using the Notes classes or Midas.
In rich text, there is no page break character or record. Instead, there is a page break flag on a paragraph definition, which means the page break will occur whenever the paragraph ends. The problem is, the paragraph doesn't end right away in your scenario, so the page break occurs where it does end.
The most likely solution would be to revise your code to say:
Call itRtThisAnlage.addPageBreak
Call itRtThisAnlage.addNewline(0, True)
Call itRtThisAnlage.appendRTItem (itRtBodyTemplate)
Now, I am not sure whether you can really specify the first parameter as 0, so if it doesn't work, make it the following, but that may add a break you don't want.
Call itRtThisAnlage.addPageBreak
Call itRtThisAnlage.addNewline(1, True)
Call itRtThisAnlage.appendRTItem (itRtBodyTemplate)
Mind you, I have not tested this, but given the internal workings of rich text, it makes sense that it could work. If it doesn't, let me know and I'll see what else I can think up.
--- Ende Zitat ---
--- Zitat von: Semeaphoros am 12.01.05 - 16:15:49 ---> Tapestry Framework ..
das tönt wie fliegende Teppiche ..... ;D
--- Ende Zitat ---
Ich habe beschlossen, sowohl struts, Webworks2 als auch jsf doof zu finden.
Das ist dann die Nr. 4 an Web-Frameworks in Java.
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln