Mehrfachwert-Felder per Agent füllen

  • Hi,


    ich möchte Mehrfachwert-Felder per Agent beschreiben. Die Daten dazu kommen von mehreren Dokumenten die ich auf der Ansicht ausgewählt habe.
    Bei normalen Feldern klappt es, aber ich bin noch nicht dahintergestiegen wie ich es bei Mehrfachwert-Feldern programmieren muß.


    Anfangs hatte ich gehoft es mit


    docText.Datum = docText.Datum + ";" + doc.TK_Datum hinzubekommen. Da das leider nicht funktioniert habe ich im Forum den Befehl Arrayappend gefunden.
    Dieser setzt aber, glaube ich zwei Arrays vorraus.


    Ich habe aber auf der einen Seite nur ein Feld das Mehrfachwerte aufnehmen kann und auf der anderen Seite einen String (entweder aus einem Feld ausgelesen oder hardcodiert).



    Hier ein Ausschnitt:
    [docText.Feldname = Mehrfachwert-Felder
    doc.Feldname = einfache Textfelder]


    While Not(doc Is Nothing)

    docText.Datum = Arrayappend(docText.Datum, doc.TK_Datum)
    docText.Anzahl = Arrayappend(docText.Anzahl, doc.TK_Anzahlges)
    docText.Schützenhalle = Arrayappend(docText.Schützenhalle, "in der Schützenhalle")
    docText.Zeit = Arrayappend(docText.Zeit, "13:30")


    Set doc = collection.GetNextDocument(doc)


    Wend


    Laut Fehlermeldung liegt in dem Bereich der Fehler im Agent.


    Danke
    Christian

  • Du brauchst einen Variant dem du die Einzelwerte zuweist.
    Und diesen Variant dann am Schluß dem Feld.


    Dim v_Feld As Variant


    Redim v_Feld(0)


    While Not(doc Is Nothing)


    if (v_Feld(0) = "") then
    v_Feld = doc.TK_Datum
    else
    v_Feld = ArrayAppend(v_Feld, doc.TK_Datum)
    end if
    Wend


    docText.Datum = v_Feld


    Arrayappend funktioniert nicht direkt auf Feldern

  • dein erster Ansatz war gut, nimm doch mal anstatt dem ";" ein "," oder ":" ... das sind die Standard Trennzeichen (zusammen mit " "). In meinen Skripten funktioniert es so.


    recs = recs + recdoc.getitemvalue("var")(0) + ", "
    .....
    If Len(recs) > 2 Then
    recs = Left(recs, Len(recs) - 2)
    End If


    // (damit nicht am Ende ", " steht)


    ...
    Call uidoc2.FieldSetText ( "mehrfachfeld", recs)



    Das funktioniert

  • stimmt, hab ich vergessen mit anzugeben, weil das bei mir das Empfängerfeld ist und das bei Eingabe automatisch auf Richtigkeit überprüft.


    Danke für den Hinweis