Feld aktualisieren

  • Hallo


    ich habe eine Maske in der in einem Feld mehrere User eingetragen werden. Mit einem Agenten (Script), der hinter einer Schaltfläche liegt, erstelle ich pro eingetragenem User ein Antwortdokument.


    Für dieses Antwortdokument wird ein Mail mit Link verschickt und es wird der User in ein Autoren-Feld eingetragen.


    Nun kommt es manchmal vor, daß beim letzten User, der in das Mehrfachfeld eingetragen wird (letzte Zeile) der Name nicht richtig umgesetzt wird.


    Das heisst es steht nur "Hans Meier" drin.


    Das wäre ja erstmal auch kein Problem. Mailversand mit Dok-Link funktioniert ja trotzdem.


    Allerdings funktioniert das Autorenfeld dann nicht, weil der Name im falschen Format drin steht.


    Wie kann ich die Maske bzw. das Feld vorhher sicher aktualisieren?


    Wenn bei der Anlage nach Ausfüllen des Userfeldes noch in ein anderes Feld geklickt wird und dann erst auf die Schaltfläche, passt alles. Andernfalls funktioniert es eben manchmal nicht.



    Ich hoffe das ist halbwegs verständlich beschrieben


    Gruss
    Lizzy

  • wie trägst du den Namen den ein?


    wahrscheinlich nimmst du den CN und hast im Feld eine Eingabevalidierung stehen, die den name umsetzt in einen hierarchischen?
    Ist jetzt einfach mal geraten.
    Ich würde den Namen gleich hierarchisch in das Item eintragen.

  • die beiden Felder (Hauptdok und Antwortdok) sind jeweils Autorenfelder mit Mehrfachwerten ohne Eingabevalidierung oder -umsetzung.


    über den Schaltflächen-Agenten wird der User ins Antwortdok. geschrieben:


    ARolle(0) = "[Admin]"
    ARolle(1) = items
    Dim Autor As New NotesItem(antwortmaske,"Autorenfeld"ARolle,AUTHORS)


    Wenn ich z.B. 10 Teilnehmer eingetragen habe, funktioniert es ja bei den ersten 9 einwandfrei, nur der letzte macht manchmal Probleme.

  • Wie bitte soll das denn auch gehen ?


    Dein Script schreibt ein Feld mit zwei Einträgen und damit greifen natürlich auch nur diese.


    Wenn dann brauchst du eben ein Array mit 10 Einträgen und in jedem darf nur der jeweilige Name/Rolle/Gruppe drinstehen

  • Nein, der angegebene Code ist in einer Schleife:


    Forall items in Teilnehmerliste....


    Es wird ja pro Teilnehmer ein Antwortdokument erzeugt und nur der eingetragene Teilnehmer soll sein Antwortdokument bearbeiten können.


    Es funktioniert ja auch bei den ersten neun Usern, wenn ich 20 eintrage, funktioniert es bei 19.


    Es geht nur darum, dass der letzte Name manchmal nicht in die richtige Schreibweise übersetzt wird.

    • Offizieller Beitrag

    Nicht richtig übersetzt? Von was in was soll der Name übersetzt werden?


    Wie löschst du Namen aus den Feldern?
    Schau dir mal Arrayappend, Arrayunique und Fulltrim an. Damit geht es eventuell einfacher (ist von den Dingen abhängig, die du noch im Code anstellt und wir hier nicht sehen können).


    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

  • ok habs wohl schlecht erklärt


    wenn ich Teilnehmer ins Feld eintrage (Einstellung: Namen suchen bei Eingabe jedes Zeichens) dann sieht das so aus:


    Hans Huber/Firma/DE
    Fritz Meier/Firma/DE
    Mueller Karl


    Wenn ich hier noch Enter drücke, dann wird der 3. Name auch richtig eingetragen. Vergesse ich das, dann bleibt der 3. Name so und das gibt beim Autoren-Feld eben ein Problem.

  • Dann musst du eben in deinem Script aus den Namen noch jeweils ein NotesName Objekt generieren und dann den vollständigen Namen in das Autorenfeld reinschreiben.


    Wie gesagt: Dein Scripot schreibt genau das in das Feld was es selbst drinstehen hat, nicht mehr aber auch nicht weniger

    • Offizieller Beitrag

    Du musst nicht Enter drücken ein Tab geht auch bzw. das Feld verlassen. Sobald mit der Maus auf eine Schaltfläche geklickt wird, wird ebenfalls das Feld verlassen.


    Auch im An-Feld bei einem Memo ist das gleiche verhalten.


    Willst Du es sicher stellen, dass immer der richtige NotesName drin steht, dann musst du dies im QuerySave nachberechnen, so wie taurec es beschrieben hat.


    Gruß
    Dirk

  • Richtig, Tab geht auch
    Könntet Ihr mir bitte noch einen weiteren Anstoss geben, wie ich das berechnen muss? Ich kapiers noch nicht ganz



    eine zweite Frage hab ich noch:
    ich habe ein Mehrfachwertefeld, in dem ein oder mehrere Einträge sein können (oder auch leer)
    dieses möchte ich, so wie es ist ins Antwortdokument ebenfalls in ein Mehrfachwertefeld übernehmen
    das Antwortdokument wird über eine Scriptschaltfläche erstellt
    welchen Code brauch ich dafür?



    DANKE

  • Über die Klasse NotesName, wie ich es ja schon geschrieben habe.


    Wenn du ein feld direkt übernehmen willst musst du es nur dem entsprechenden Zielfeld zuweisen.


    Du solltest dich mal etwas mit den Basics von Scriptprogrammierung beschäftigen, denn zu allem was du bisher gefragt hast liefert die Designer Hilfe mehr als ausführlich Information

    • Offizieller Beitrag

    - Schleife über alle Werte in dem Namensfeld
    - jeden Eintrag in dem Namensfeld in NotesName einkippen (Beispiel aus der Hilfe: Set nam = New NotesName(doc.GetItemValue("SendTo")(0)))
    - und wieder auslesen (Beispiel aus der Hilfe: nam.Canonical)
    - diese werte schreibst Du in ein Array und übergibst dieses deinem Feld


    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

  • Ok, jetzt hab ichs, glaub ich auch kapiert.
    Kanns nur grad nicht testen (ein paar Tage Urlaub)


    Aber damit werd ich's schon hinbekommen.


    Ich setz es dann mal auf erledigt


    Danke für die Hilfe


    Lizzy