Herausgesuchten Tabelleninhalt im Querysave neu füllen

  • Hallo meine Damen und Herren,


    ich habe mir alles zum Thema laufende Nummern mind. in diesem Forum durchgelesen.
    Meine Versorgung kann ganz rudimentär passieren(Wert soll durch Anwender auch änderbar sein) und daher möchte ich es über einen einfachen @DBLookup realisieren.


    Der meinen beschränkten Mitteln entsprechende Code ist soweit ok.
    Doch wie sichere ich den neuen Wert nun in dem entsprechenden Tabelleneintrag?


    Select Case uidoc.FieldGetText("Erfassungsort")
    Case "Augsburg", "München":
    eval = Evaluate({@DbLookup("" : "NoCache" ; @DbName; "de.xxxxxx.view.nummernkreise" ; "ALL-RW-RG-N"; "AktuelleNummer" ;[FailSilent])})
    number = Cint(eval(0))
    If number < 1 Then
    number = 1
    Else
    number = number + 1
    End If
    Call uidoc.FieldSetText("PagStempel","N-"+ Cstr(number))
    ...


    Vielen Dank für einen kurzen Wink!

    • Offizieller Beitrag

    Wohin genau willst du den Wert schreiben, in eine Tabelle oder in ein Feld?
    Die Zeile

    Call uidoc.FieldSetText("PagStempel","N-"+ Cstr(number))

    lässt vermuten, dass es sich um ein Feld handelt.


    Was passiert, wenn der Code im QuerySave durch läuft?
    Was steht in eval und in number (Debugger benutzen)?


    Viele Grüße
    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

  • Hallo Dirk,


    ich kämpfe gerade daran den Wert aus der Combobox herauszuholen(E: "Variant does not contain an object") ...


    Durch einen Formeltester habe ich jedoch herausgefunden, dass die zentrale Formel korrekt ist.
    Der Wert wird herausgeholt aus de.xxxxxx.view.nummernkreise und soll dort an gleicher Stelle wieder eingesetzt werden.
    eval gibt den Wert in der View de.xxxxxx.view.nummernkreise aus Spalte "AktuelleNummer" zurück (in meinem Fall noch 0).


    (Der PagStempel wird im Fenster noch versorgt - dort ist aber soweit alles klar.)


    Viele Grüße


    Marc

    • Offizieller Beitrag

    in welcher Zeile bleibt der Debugger mit der Meldung "Variant does not contain an object" stehen?
    Wahrscheinlich nicht in dem oben geposteten Code.


    Gruß
    Dirk

    • Offizieller Beitrag

    Das Feld nennt sich in der Maske auch "Erfassungsort"?
    uidoc müsste als Object da sein, sonst würde ein anderer Fehler kommen.
    Schau dir im Debugger mal unter uidoc > Document > Items das Feld Erfassungsort an.


    Gruß
    Dirk

  • Unter SOURCE > DOCUMENT > ITEMS > [152] ist Folgendes enthalten:
    NAME: "Erfassungsort"
    TYPE: 1280
    VALUES: ["Augsburg"] VARIANT
    [0]: "Augsburg" STRING
    VALUELENGTH: 10


    Reicht dir das? Oder brauchst du noch etwas?

  • Ich hoffe nicht zu spät noch die Datendefinition:


    Dim session As New NotesSession
    Dim uidoc As NotesUIDocument
    Dim ort As Variant
    Dim ort2 As String
    Dim number As Double

    Set uidoc = work.currentdocument

    ort = uidoc.FieldGetText(Cstr("Erfassungsort"))
    Select Case ort

    • Offizieller Beitrag

    Was steht in ort?
    Ist bei dir Source und uidoc das gleiche Object?


    Gruß
    Dirk

    • Offizieller Beitrag

    dann verwende auch im Code anstelle von uidoc source oder setzte das uidoc noch
    Set uidoc = Source

    • Offizieller Beitrag

    Nachdem das Dokument gespeichert ist, muss im UiView noch ein Refresh erfolgen (z.B. F9 oder Notesuiworkspace.ViewRefresh).


    Gruß
    Dirk

  • Hi,


    Sorry, aber koenntest du mal etwas mehr und genauere Posts liefern.


    Mit dem was du in deinem letzen Post hingeworfen hast, kann nun keiner was anfangen und nur Vermutungen anstellen.


    Meine Vermutung ist, du liest einen Wert aus, den willst du erhoehen und dann wieder zurueckschreiben.



    Andreas

  • Hallo Andreas,


    es liegen durch den kleinen Zwischenfehler zu wenig Posts zu den ersten Inhaltsreichen Erläuterungen- Entschuldige!


    Der Wert wird herausgeholt aus de.xxxxxx.view.nummernkreise und soll dort an gleicher Stelle erhöht wieder eingesetzt werden.
    eval gibt den Wert in der View de.xxxxxx.view.nummernkreise aus Spalte "AktuelleNummer" zurück (in meinem Fall noch 0).


    Code im QuerySave:
    Dim session As New NotesSession
    Dim uidoc As NotesUIDocument
    Dim ort As String
    Dim number As Double

    Set uidoc = Source

    ort = uidoc.FieldGetText(Cstr("Erfassungsort"))
    Select Case ort
    Case "Augsburg", "München", "Nürnberg", "Grafenau":
    eval = Evaluate({@DbLookup("" : "NoCache" ; @DbName; "de.xxxxxx.view.nummernkreise" ; "ALL-RW-RG-N"; "AktuelleNummer" ;[FailSilent])})
    number = Cint(eval(0))
    If number < 1 Then
    number = 1
    Else
    number = number + 1
    End If
    Call uidoc.FieldSetText("PagStempel","N-"+ Cstr(number))
    ...


    Die eigenständige View de.xxxxxx.view.nummernkreise ist aufgebaut:


    Bezeichnung AktuelleNummer erfasst von
    ALL-RW-RG-N 0 15.09.2014 18:14 Marc Dittberner


    Wie mache ich dies am Geschicktesten?

    • Offizieller Beitrag

    änderst du überhaupt das Dokument in der Ansicht "de.xxxxxx.view.nummernkreise"?
    Du änderst doch das offene Dokument und vom Gefühl her handelt es sich nicht um das Dokument, welches in der Ansicht steht.


    Handelt es sich um das gleiche Dokument (Ansicht und Frontend), dann ist der Weg über eine Ansicht aber mehr wie mit Kanonen auf Spatzen geschossen.


    Gruß
    Dirk

  • Der Wert wird herausgeholt aus de.xxxxxx.view.nummernkreise und soll dort an gleicher Stelle wieder eingesetzt werden.


    Ich bin grad überfordert, was du eigentlich meinst....
    Du holst dir eine nWert aus einer Spalte in einer View? So weit, so gut.
    Aber was meinst du bitte damit, den Wert "an gleicher Stelle" wieder einzusetzen? Du kannst doch nicht in eine View schreiben .....

    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

    • Offizieller Beitrag

    dann nimm nicht Evaluate(...) sondern hol dir das erste Dokument in der Ansicht.


    Wenn du das Dokument im Zugriff hast, kannst du auch die Felder verändern und das Dokument speichern.


    Gruß
    Dirk