Wert aus Feld in neues Dokument (andere Maske) vererben

  • Hallo liebe Entwickler,


    ich komme bei folgender Thematik nicht weiter.
    Ich habe eine Maske (Bestellungen) in der eine eingebettete Ansicht eingefügt ist und das ein Feld (UID) mit der Dokumenten-ID enthält. Über die Aktion der eingebetteten Ansicht sollen Dokumente mit der Maske (Artikel) neu erstellt werden und der Wert des Feldes UID aus der Maske Bestellungen in ein Feld der Maske Artikel vererbt werden. Als Effekt möchte ich dann natürlich, dass in der eingebetteten Ansicht nur die Artikel angezeigt werden, die ich über dieses Bestelldokument erstellt habe.


    Habt ihr hierfür eine einfache Lösung?


    Vielen Dank schon mal im Voraus.


    LG Lofther

  • Moin


    Möglichkeit 1)
    Formeingeschaften der Maske Artikel im 2. Reiter die 1. Checkbox "Formulas inherit values from selected document"
    Danach im Feld UID die Formel UID eintragen


    Möglichkeit 2)
    via Scriptbutton in der Maske Bestellung

    Code
    .....
    set uidoc = uiws.currentdocument
    uid = uidoc.fieldgettext("UID")
    set artikel = new notesdocument(db)
    call artikel.replaceitemvalue("UID",uid)
    set uidoc = uiws.editdocument(true,artikel,false,,true,true)
    ....
  • Danke für die schnelle Antwort.


    Die Möglichkeit 1 funktioniert leider nicht, da mir der Wert aus dem Feld "UID" mit der Formel @Text(@DocumentUniqueID) aus der Maske "Bestellungen" nicht in das Feld "A_UID" mit der Formel UID übernommen wird.


    Für die Möglichkeit 2 verfüge ich leider nicht über die nötigen Kenntnisse in LotusScript.

  • Hallo,


    hast du wie umeli beschrieben in den Masken Eigenschaften der Maske Artikel auf dem 2. Reiter die 1. Checkbox "Formeln übernehmen Werte aus gewähltem Dokuement" aktiviert und dann beim Feld
    "UID" der Maske "Artikel" den Typ "berechnet" und als Vorgabewert "UID" eingegeben.
    Das sollte eigentlich funktionieren.


    Oliver

    Dateien

    Grüße aus dem sonnigen Süden
    Oliver C


    Es gibt keine dummen Fragen, sondern nur dumme Antworten


    Laufen ist der ideale Ausgleich zu jeglicher Arbeit, denn beim Laufen tut man eigentlich nichts.

  • Hallo,


    es funktioniert leider nicht so wie ich das eigentlich wollte. Denn ich öffne die Maske "Artikel" ja über eine eingebettete Ansicht aus der Maske "Bestellungen" heraus und da ist anscheinend kein Dokument ausgewählt. Wenn ich den "Umweg" gehe und erst ein Dokument mit der Maske "Bestellungen" erstelle, dieses Dokument auswähle und dann über eine Aktion eine Maske "Artikel" erstelle, dann wird der Wert übernommen.
    Aber es müsste doch auch eine Möglichkeit über die eingebettete Ansicht geben oder?


    Gruß Ben

  • Hallo,


    also ich habe jetzt mal ein bisschen herumprobiert und bin jetzt soweit, dass zumindest der debugger keinen Fehler mehr findet, aber leider funktioniert der scriptbutten noch nicht.
    Es wird zwar ein neues Dokument mit der Maske "Artikel" erstellt, aber es erscheint die Fehlermeldung "Error creating product object"
    und der Wert vom Feld UID wird auch nicht übergeben.
    Hier mal mein (anfänger) Script:
    Sub Click(Source As Button)
    Dim uiws As New NotesUIWorkspace
    Dim uidoc As notesuidocument
    Dim db As NotesDatabase
    Dim artikel As NotesDocument
    Dim uid As String
    Set uidoc = uiws.ComposeDocument("","","Artikel")
    uid = uidoc.FieldGetText("UID")
    Set artikel = New NotesDocument(db)
    Call artikel.ReplaceItemValue("UID",uid)
    Set uidoc = uiws.EditDocument(True,artikel,False,,True,True)
    End Sub


    Ich hoffe ihr könnt mir nochmal weiter helfen.
    Vielen Dank


    LG Ben

  • Wie ich oben schon geschrieben habe, findet der debugger keinen Fehler mehr.


    Was ich jetzt noch herausgefunden habe, dass wenn ich das Dokument, in dem die eingebettete Ansicht und der scriptbutton stecken speichere und danach den scriptbutton drücke, dann übernimmt es mir die Werte aus dem Feld "UID", allerdings erscheint die Fehlermeldung "Error creating product object" trotzdem. Nachdem das aber meine ersten Schritte in der Script Programmierung sind, ist evtl irgendetwas zu viel in dem Code.

  • Hi,


    Dennoch bleibt die Frage von taurec unbeantwortet.


    Was passiert, wenn du den Debugger einschaltest und anschliessend dein Script ausfuehrts?


    Und wie waere es einmal damit, dass du in deinen Code eine Fehlerbehandlung einbaust.



    Andreas


    btw.
    Der Debugger an sich findet auch keine eventuellen Syntaxfehler.

  • Hast du nach dem uiws.ComposeDocument mal ein uidoc.Document.ComposeWithForm versucht?

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Nachdem ich mich jetzt ein wenig in den Debugger eingelesen hab - bin ja ein blutiger Anfänger in der Script-Programmierung - habe ich es jetzt anscheinend doch geschafft, die Zeile, die den Fehler verursacht zu finden.


    Bei folgender Zeile bleibt der Debugger stehen und bringt die Fehlermeldung:
    Set artikel = New NotesDocument(db)

  • Hallo,


    hier nochmal die benötigten Informationen.


    Maske1 mit dem Namen Bestellung enthält folgendes:
    -Eingebettete Ansicht
    -Feld "UID" mit der Formel @Text(@DocumentUniqueID)
    -Schaltfläche mit dem Script
    Sub Click(Source As Button)
    Dim uiws As New NotesUIWorkspace
    Dim uidoc As notesuidocument
    Dim db As NotesDatabase
    Dim artikel As NotesDocument
    Dim uid As String
    Set uidoc = uiws.ComposeDocument("","","Artikel")
    uid = uidoc.FieldGetText("UID")
    Set artikel = New NotesDocument(db)
    Call artikel.ReplaceItemValue("UID",uid)
    Set uidoc = uiws.EditDocument(True,artikel,False,,True,True)
    End Sub


    Maske2 mit dem Namen Artikel enthält folgendes:
    -Berechnetes Feld mit dem Namen "UID" und der Formel UID


    Folgende Funktion soll programmiert werden:
    In der eingebetteten Ansicht der Maske Bestellung sollen nur die Dokumente erscheinen, die über die Schaltfläche erstellt worden sind. Folgendes Beispiel zur verdeutlichung:


    Bestellung Nr1 mit der ID 123
    Artikel a mit der ID 123
    Artikel b mit der ID 123
    Artikel c mit der ID 123


    Bestellung Nr2 mit der ID abc
    Artikel a mit der ID abc
    Artikel c mit der ID abc
    Artikel f mit der ID abc


    Ich hoffe ich habe es verständlich erklären können.


    Und vielen vielen Dank für eure Unterstützung.

  • Ok.


    Der Button (die Schaltflaeche) befindet sich also in der Maske "Bestellung"



    Und nun noch eine Fehlerbehandlung mit eingebaut.


    Andreas


    P.S.
    Der obige Code ist einfach so hingeschrieben und muss nicht zwingend sofort lauffaehig sein.