Newline für Textfelder in Java-Agents
Habt ihr schon mal probiert, in einem Java-Agent von Notes/Domino eine Zeilenschaltung in ein Textfeld einzufügren? Formel-Fans werden nun lachen, haben sie doch mit @Newline in tolles Tool dafür.
Unter Java ist das nicht so einfach. Mit meinem C-Hintergund und dem prä-WWW Wissen, dass eine neue Zeile nicht auf jedem System eine neue Zeile ist, habe ich jede Kombination von „\n” (10) und „\r” (13) ausprobiert, die es gibt. Nada, zilch, nix! In der Java-Console zeigt er es korrekt an, im Feld in der Datenbank kommt ein schwarzer Block „┃”.
Nach langem Suchen im WWW, diversen Forumspostings und dem klassischen Try&Error habe ich dann doch noch eine Lösung gefunden, wie man unter Java Zeilenumbrüche in ein Lotus Notes Textfeld (NICHT Multivalue, ich meine wirkliche ein Textfeld) bekommt. Man muss den Text „einfach” Zeilenweise in einen Vector schreiben und diesen dann dem Feld zuweisen. Durch eine Art Voodoo oder Magie wird aus dem Vector ein String, wobei die einzelnen Elemente durch eine Zeilenschaltung getrennt werden.
1 Vector fv = new Vector();
2 fv.addElement( "Text 1" );
3 fv.addElement( "Text 2" );
4 doc.replaceItemValue("History", fv)
Aufpassen muss man auch, wenn das Textfeld bereits mehrere Zeilen Text beinhaltet. Hier kann man nicht einfach mit fv.addElement( doc.getItemValueString(„History”) ); den Inhalt des Feldes als ein Element des Vectors zuweisen. Stattdessen muss man dem Vector den Inhalt des Feldes zuweisen fv = doc.getItemValue(„History”) ;, sonst klappt es nicht.
Tagged as: Notes+Domino, Wissen_ist_Macht | Author: Martin Leyrer
[Freitag, 20050429, 15:40 | permanent link | 0 Kommentar(e)
Comments are closed for this story.