Autor Thema: RichTextFeld in UIDoc hinzufügen mit PageBreak am Anfang  (Gelesen 2656 mal)

Marinero Atlántico

  • Gast
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)

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)

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
« Letzte Änderung: 12.01.05 - 14:20:05 von Marinero Atlántico »

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: RichTextFeld in UIDoc hinzufügen mit PageBreak am Anfang
« Antwort #1 am: 12.01.05 - 14:25:52 »
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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Marinero Atlántico

  • Gast
Re: RichTextFeld in UIDoc hinzufügen mit PageBreak am Anfang
« Antwort #2 am: 12.01.05 - 16:13:49 »
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])

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

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: RichTextFeld in UIDoc hinzufügen mit PageBreak am Anfang
« Antwort #3 am: 12.01.05 - 16:15:49 »
> Tapestry Framework ..

das tönt wie fliegende Teppiche .....  ;D
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Marinero Atlántico

  • Gast
Re: RichTextFeld in UIDoc hinzufügen mit PageBreak am Anfang
« Antwort #4 am: 12.01.05 - 16:39:49 »
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.

> Tapestry Framework ..

das tönt wie fliegende Teppiche .....  ;D
Ich habe beschlossen, sowohl struts, Webworks2 als auch jsf doof zu finden.
Das ist dann die Nr. 4 an Web-Frameworks in Java.

Axel

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: RichTextFeld in UIDoc hinzufügen mit PageBreak am Anfang
« Antwort #5 am: 12.01.05 - 16:53:17 »
Na, die Erklärung macht aber eminent Sinn. Bin gespannt, sobald Deine Erfolgsmeldung kommt. Wenn Du Ben antwortest, grüsse ihn .....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Marinero Atlántico

  • Gast
Re: RichTextFeld in UIDoc hinzufügen mit PageBreak am Anfang
« Antwort #6 am: 12.01.05 - 16:54:58 »
Bens Lösung funktioniert as-is nicht.
Aber das war schon sowas wie eine Erklärung.
Werd da noch weiter rumprobieren.
Erst mal meine Lösung lassen.
Was mir überhaupt nicht gefällt ist, den code für einen recht simplen Usecase über 2 Agenten und 2 Masken-Events zu verstreuen.
Auf jeden Fall werde ich das entsprechend kommentieren.

Axel

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: RichTextFeld in UIDoc hinzufügen mit PageBreak am Anfang
« Antwort #7 am: 12.01.05 - 17:00:21 »
Stimmt, das ist unschön, ist aber leider durchaus einer der Nachteile von Notes, dass man so schlecht auf RT zugriff hat. Immerhin hat sich das in ND6 etwas verbessert, aber es wäre wunderschön, wenn IBM Midas aufkaufen würde und in den Core einbinden würde .... is aber leider nicht ... :(
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz