Felder per Script addieren

  • Wie kann man im Script den Inhalt zweier Felder in ein drittes zusammenfügen?


    dim...
    set...
    doc.feld3 = doc.feld1+doc.feld2


    Im feld3 sollten dann zwei Elemente stehen.

    • Offizieller Beitrag

    dim...
    set...
    doc.feld3 = doc.feld1[color=FF3300](0)[/color] + doc.feld2[color=FF3300](0)[/color]


    bzw bei Text:
    doc.feld3 = doc.feld1[color=FF3300](0)[/color] & doc.feld2[color=FF3300](0)[/color]



    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • wenn Du im Feld3 2 Werte haben willst, dann geht diese hier:


    dim Werte(1) as variant
    Werte(0) = doc.feld1(0)
    Werte(1) = doc.feld2(0)
    doc.feld3= Werte

  • Sind die Klammerinhalte ähnlich wie Arrays zu werten?


    ich denke mal ...(1) wäre dann ein zweiter Eintrag ein Feldes, korrekt?



    und...
    in Feld3 sind schon Werte drin, wie bekomme ich die neuen werte dazu, so wirds nicht klappen, oder?
    doc.feld3 = doc.feld3 + doc.feld1(0) + doc.feld2(0)

  • du musst dir bewusst machen, das jedes feld in notes ein array ist, auch wenn du es in der maske so nicht definiert hast!


    (0) -> ist immer der erste wert. auch bei einem nicht-multivalue-feld.


    (1)
    (2)
    .
    .
    etc. beschreibt dann die weiteren einträge in der liste. mit ubound(doc.feld) kannst du für eine schleife ermitteln wie viele werte es gibt, da ein feld ja unterschiedlich viele werte aufnehmen kann!

    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)

  • dim Werte(1) as variant ..erzeugt ein Array vom typ Variant - hier darf auch String oder... stehen - mit den 2 leeren Elementen (0) und (1).
    hiermit wird als ein Array mit 2 Elementen gefuellt und dann beider Elemente an das Feld3 uebergeben.

  • Tschuldigung!


    Hatte meinem Eintrag noch etwas hinzugefügt.
    Die Antworten waren ja schneller, als ich lesen/schreiben kann, super!


    Würdet Ihr den zweiten Teil des o.g. Eintrages auch noch beantworten?


    Thanks

    • Offizieller Beitrag

    dim Werte(1) as variant
    Werte(0) = doc.feld1(0)
    Werte(1) = doc.feld2(0)

    doc.feld3 = ArrayAppend( doc.feld3, Werte )


    Gruß
    Dirk

  • z. b. uidoc.refresh

    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)

  • Klappt irgendwie nicht.
    Das aktuelle Dokument steht nicht im Status "Edit".


    Der Benutzer hat u.U. keine Rechte zum editieren, deswegen Script.


    Kann man ohne Edit refreshen?

    • Offizieller Beitrag

    dann solltest Du das Dokument neu laden
    uidoc.Reload


    oder falls dies nichts bringt, UIDoc neu öffnen
    uidoc.Close
    set uidoc = ws.EditDocument(False, doc)


    Gruß
    Dirk

  • uidoc.Close
    set uidoc = ws.EditDocument(False, doc)


    Super, damit funzt es 100%.


    Danke für alle fleissigen und hilfreichen Antworten.


    Ende


    ----------------
    uidoc.Reload geht wahrscheinlich auch nur im Editmode.

  • Wir haben noch ein paar alte 4er Workstations.


    Da funktioniert das ArrayAppend nicht.


    Wie bekomme ich den Vorgang synonym in R4 zum ArrayAppend hin?

    • Offizieller Beitrag

    Mit einer Schleife

    Code
    dim wert() as string
    Redim wert(Ubound(doc.Feld3) + 2)
    for i = 0 to ubound(doc.Feld3)
       wert(i) = doc.Feld3(i)
    Next
    wert(Ubound(wert) - 1) = doc.Feld1(0)
    wert(Ubound(wert)) = doc.Feld2(0)

    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein