Zeilenumbruch

  • Hi,


    dieses Thema hatte ich schon einmal angesprochen...


    Bei mir funktionieren die mittels Java Agent eingefuegten Zeilenumbrueche nicht. Ich fuelle ein Textfeld mit Text durch einen Java Agent. Dieser Text beinhaltet Zeilenumbrueche: "/n". wenn ich mir diesen Text mittels Java Console ausgeben lasse, sind die Zeilenumbrueche vorhanden, doch im Textfeld des Notes Dokuments im Formular nicht...

  • Hi,


    in der Formelsprache gibt es ein@newline.
    Unter Script habe ich mir immer mit einem CR/LF chr(10) chr(13) geholfen. Versuch doch mal herauszufinden, was Notes aus dem \n macht - evtl nue ein chr(10) ???

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

  • Hi,


    also in meinem JavaCode gehts so:


    myItem = myNote.getFirstItem("NameOfTheItem");
    myNote.replaceItemValue("NameOfTheItem", myItem.getText() + "\r\nNew Text follows");


    Danach steht dann in "NameOfTheItem" eine neue Zeile mit dem Text "New Text follows" und davor ein Zeilenumbruch.


    cu

  • Man glauibt es kaum, doch es funktioniert immer nocht nicht.



    Also, das FEld in der Form ist ein computed field. Wenn jemand im Formular etwas aendert, dann soll auch im History feld etwas geschrieben werden. Es sieht fo aus:


    Field:
    @V2If(@IsDocBeingSaved;
    +"__________ Document Change History_____________" + @NewLine
    +@Text(@Now) + " - " + @Name([CN];@UserName)+ DocChangeAuditTrail+@NewLine ; DocChangeAuditTrail);


    Wenn ich das Dokument nun durch den Agenten aendere, wird das Feld "DocChangeAuditTrail" nicht aktualisiert, die History also nicht geschrieben (auch bei "computewithform" nicht). Deshalb schreibe ich dann die History mit dem Java Agenten, welcher das Dokument aendert:


    DocChangeHistory = searchedDoc.getItemValueString("DocChangeAuditTrail");
    if (DocChangeHistory == null){DocChangeHistory = "";};
    DocChangeHistory = "__________ Document Change History_____________" +" \r\n " + now.toString() + "- Agent -" +" \r\n " +DocChangeHistory;


    searchedDoc.replaceItemValue("DocChangeAuditTrail", DocChangeHistory);
    searchedDoc.save(true);


    Danach befinden sich dann ueberhaupt keine Zeilenumbrueche im Feld des Dokuments. Auch von vorangegangenen Aenderungen werden die Zeilenumbrueche entfernt. " \r\n " wird jedoch nicht mit angezeigt-also schon irgendwie intepretiert.


    Kann mir jemand helfen? Ich kann das Feld nicht in ein RichText Feld umaendern, da zu viele Prozesse darauf zugreiffen.


    Vielen Dank!!!

  • Hi,


    also wenn das Feld, wo die mehrzeiligen Werte rein sollen computed ist und beim computewithform nicht neu berechnet wird, dann würde ich da mal suchen und nicht eine andere Alternative einschlagen.
    Denn dann stimmt schon Grundlegend irgendetwas nicht.
    Denn ein ComputeWithForm sollte eben genau das machen, eben die berechneten Felder neu berechnen.
    Und dann sollte es ja auch mit den @NewLine funktionieren.


    cu

  • korrigiert mich wenn ich falsch liege:
    das beim computewithform die historie nicht erweitert wird ist logisch.
    @IsDocBeingSaved ist halt ne sache die wirklich nur bei geöffneter maske funktioniert. das dokument weiss bei nem computewithform nunmal nicht das es gerade gesaved wird.


    das könnte man austricksen in dem man ein computed for display feld (das sich auf sich selbst berechnet) nimmt und folgendes machen:
    im script vor dem compute einfach
    doc.dummyfeld = "1"


    und dann in der history
    @If(@IsDocBeingSaved | DUMMYFELD = "1"; ...


    (is nur so ein ansatz ... müsste aber funktionieren)

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Awenrei hat recht. Deshalb habe ich mir auch ueberlegt die History mit Java nochmals abzubilden. Warum da die Zeilenumbrueche verloren gehen ist mir echt schleierhaft.


    Die idee mit dem Dummyfeld ist auf jeden Fall eine Notloesung. dann muss ich es aber auch wieder auf != 1 setzen, nachdem die Form computed hat. Sonst schreibt er mir bei jedem oeffnen ne History. Na ja, un ich shcleppe ein unnuetzes Feld mit. Mal sehen...aber eine Idee ist es. Danke!

  • Was passiert denn, wenn du mal das ganz einfache Beispiel von mir in den Java Agent packst und auf eine fast leere (1 Maske mit 1 Feld) rennen lässt?


    myItem = myNote.getFirstItem("NameOfTheItem");
    myNote.replaceItemValue("NameOfTheItem", myItem.getText() + "\r\nNew Text follows");

  • Hab's jetzt mit dem Dummyfeld gemacht. Ist besser, da ich so auch nur eine Stelle habe, wenn die History mal geaendert wird.


    Das ander Beispiel probiere ich auf jeden Fall noch aus.


    Noch eine ander Frage: Ich moechte ausserdem ein Readio Button feld mittels Java Agent setzen. Wie geht das?

  • Du setzt einfach den Wert in das Feld, welches den Eintrag darstellt.


    Wenn du also bspws. ein Radiobutton mit den 3 Werten "Eins", "Zwei" und "Drei" hast, dann einfach per JavaAgent myNote.replaceItemValue("MyItem", "Zwei") und schon ist der Wert "Zwei" ausgewählt.


    Wenn Deine Werte mit Alias versehen sind, dann musst du den Aliaswert setzen.


    cu

  • Und wenn Du uns die Lösung verrätst, dann haben auch andere etwas davon. ;)

    [size=x-small]
    Computer sind da um zu rechnen!
    Nicht um Ausreden wie: "Ich kann nicht durch Null teilen!", auf den Bildschirm zu schreiben.
    [/size]