Domino Designer - Computed Field...

  • Hallo ihr fleißigen Helfer. Ich habe folgendes Problem:
    Ich möchte ein Formular erstellen. Darin sollen manche Felder anhand eines auswählbaren Profils (DropDown Liste) vorbelegt werden können. Trotzdem soll es möglich sein nutzerdefinierte Werte im Formular einzutragen.
    Die Profile sollen wiederum dynamisch erzeugt werden und in einem Extradokumententyp gespeichert werden.
    Also, soweit bin ich schon:
    Eingabemaske für Profile sowie View darauf.
    Formular zur Eingabe der Daten
    In diesem Formul habe ich ein Listenfeld erstellt, welches die auswählbaren Elemente aus der View holt.
    Die restlichen Felder sollen nun anhand dieser Auswahl belegt werden (mit Elementen/Feldern der View).


    Ist schwer zu beschreiben, würde mich aber freuen, wenn mir jemand helfen kann...DANKE!!!


    Gruß,
    Marcus

    • Offizieller Beitrag

    mach doch aus dem Auswahlfeld ein Text-Feld und neben dem ehemaligen Auswahlfeld machst du eine Schaltfläche mit einer Picklist. Die Picklist gibt ein Dokument zurück und damit können dann alle anderen Felder vorbelegt werden.


    Gruß
    Dirk


    %edit
    Willkommen im Forum!
    So spät noch mit Notes beschäftigt?

    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

  • Aber die Picklist gibt doch nur einen Spaltenwert zurück?!


    @PickList( [CUSTOM] : [SINGLE] ; server : file ; view ; title ; prompt ; column ; categoryname )


    Wenn nicht, wie kann ich dann die einzelnen Elemente des Dokuments erfassen?


    Vielen Dank für die schnelle Antwort...bin neu in Notes/Domino und muss mich erst noch an Formula und Co gewöhnen.


    Beste Grüße,
    Marcus

    • Offizieller Beitrag

    jo.
    Aber die Spalte könnte versteckt sein und die Werte zusammengebaut (z.B. Feld1###Feld2###Feld3...). Auseinander bekommt man es mit @Word(Spaltenwert; "###", Position).


    Werden allerdings zu viele Werte reingeschrieben, kann man an die Grenzen der Spalte stoßen, dann get es mit LotusScript

    Code
    Set notesDocumentCollection = notesUIWorkspace.PickListCollection( type% [, multipleSelection ], _
    server$, databaseFileName$, viewName$, title$, prompt$ [, Singlecategory$ ] )


    Gruß
    Dirk

    • Offizieller Beitrag

    noch ein Tipp:
    die Felder sollten keine Mehrfachwerte haben. Ansonsten müssen diese mit @Implode in einen String überführt und später mit einem @Explode wieder in eine Liste umgewandelt werden.


    Gruß
    Dirk

  • gut...habe jetzt die Feldwerte in Variablen. Wie packe ich diese nun in die Felder, sodass der User auch sofort sieht, was er ausgewählt hat (also nicht mit ReplaceItemValue...)
    Also Ähnlich @SetField in Formula...


    Sub Click(Source As Button)
    Dim workspace As New NotesUIWorkspace
    Dim doc As NotesDocument
    Dim documentcoll As NotesDocumentCollection
    Dim Lname As Variant
    Dim LUsers As Variant
    Dim LRequ As Variant


    Set documentcoll = workspace.PickListCollection(PICKLIST_CUSTOM, False, "", "stress.nsf","(Appl.View.Levels)", "Level Selection","Please select your Stresslevel")

    Set doc = documentcoll.GetFirstDocument
    Lname = doc.Name
    LUsers = doc.Users
    LRequ = doc.Delay

    • Offizieller Beitrag


    Gruß
    Dirk

  • Ist mir schon fast peinlich, aber ich komme nicht so richtig zurecht...meine drei Felder (Quelle) sind vom Typ Text, Number, Number ... Die HZielfelder haben natürlich die gleichen Datentypen. Trotzdem kommt "Type Mismatch" ... oder muss ich in LS einen anderen Datentyp anstatt "Variant" wählen?

    • Offizieller Beitrag

    da muss Text übergeben werden. Mach einen Cstr() um die Variablen, dann werden diese Strings.


    Call uidoc.FieldSetText("Feldname1", Cstr(LName))
    Call uidoc.FieldSetText("Feldname2", Cstr(Users))
    Call uidoc.FieldSetText("Feldname3", Cstr(Delay))


    Schalte mal den Debugger ein und schau in welcher Zeile er hängen bleibt.


    Gruß
    Dirk

    • Offizieller Beitrag

    Habe ich übersehen. Änder mal die folgenden Zeilen.


    Lname = doc.Name[color=CC0000](0)[/color]
    LUsers = doc.Users[color=CC0000](0)[/color]
    LRequ = doc.Delay[color=CC0000](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