UIdoc.feld = Fehler

  • Moin hab da nur mal kurz ne frage.....


    also beim anleen eines abonnnementen, soll das querysave prüfen ob der schon existiert.....das macht er nun auch wie er soll nur leider kann ich nicht das sveoption feld auf 0 setzen da meckert er immer...NOT A MEMBER: SAVEOPTIONS :-?


    hab ich da irgendwie nen denk fehler drin oder kann ich nicht einfach sagen uidoc.saveoptions(0) = 0 ?


    hier mal der quelltext
    ________
    'prüfung ob der Abonnent bereits in der DB ist

    Dim session As New notessession
    Dim db As notesdatabase
    Dim doc As notesdocument
    Dim view As notesview
    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim id As String

    Set db = session.currentdatabase
    Set uidoc = workspace.CurrentDocument
    ID = uidoc.FieldGetText( "MitgliedID")

    Set view = db.getview("(viewLUAboAdressen)")
    Set doc = view.getdocumentbykey(ID)


    If Not doc Is Nothing Then
    Msgbox "Es besteht bereits ein Abo mit dieser ID"

    uidoc.SaveOptions(0) = "0"
    Call uidoc.close
    Exit Sub
    End If
    ________

    • Offizieller Beitrag

    probier es mal mit
    uidoc.SaveOptions = "0"


    Du kannst, auch wenn Felder wie Arrays beandelt werden, die einzelnen Elemente beschreiben.


    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

  • Hallo Diali,


    hab ich gerade mal ausprobiert, selbe Fehlerbeschreibung, ich versteh den fehler irgendwie Saveoptions ist ein existierendes feld das ist doch ein objekt in der maske!!!??,

    • Offizieller Beitrag

    Sorry, Du greifst auf uidoc und nicht auf doc zu.


    Bei der Backend-Klasse NotesDocument, kannst Du so zugreifen und bei der FrontEnd-Klasse musst Du mit FieldSetText arbeiten.


    Gruß
    Dirk

  • Karlchen
    DANKE
    das funktioniert und mit dialies erklärung dazu, DANKE auch an Diali,
    versteh ich den fehler auch, da es ein frontend document ist muss ich erst das document als objekt deklarieren, damit ich es nutzen kann !



    Danke
    Gruss Gregor

  • also die fehlermeldung ist weg aber funktionieren tuts nicht,


    also er erkennt ob schon ein dok mit dieser id existiert, nur speichert er es dennoch.....
    :-?
    irgend eine idee :-?

    • Offizieller Beitrag

    hast Du es schon mit dem Vorschlag
    Call uidoc.FieldSetText( "SaveOptions", "0" )
    versucht?


    Gruß
    Dirk

  • ja hatte zuerst


    uidoc.documentSaveOptions ="0"


    das hat nicht funktioniert, und dann habe ich deinen vorschlag benutzt


    uidoc.fieldsettext("SaveOptions", "0")


    funktioiert auch nicht, vl muss ich das woanders setzen bin momentan im querysave


    saveoptions ist immer noch auf 1

    • Offizieller Beitrag

    dann mach doch ein


    Continue = False
    dann wird das Speichern nicht ausgeführt und der Aufwand mit dem SaveOptions-Feld ist nicht nötig.


    Gruß
    Dirk

    • Offizieller Beitrag

    ... ist keine Funktion, aber wenn Du Continue als False setzt, wird nach dem QuerySave das Dokument nicht gespeichert. Schau Dir mal die 1. Zeile in der Sub QuerySave(...) an.


    Wenn Du nicht willst, dass nach dem Continue = False noch etwas gemacht wird, muss danach ein Exit Sub folgen.


    Gruß
    Dirk

  • funktioniert auch nicht es ist als ob das total igniriert wird... bin schon am gucken ob hier irgendwo ne einstellung ist die das speichern "durchboxt"


    ist mir unbegreiflich

    • Offizieller Beitrag
    Zitat

    also beim anleen eines abonnnementen, soll das querysave prüfen ob der schon existiert.....das macht er nun auch wie er soll nur


    Wie hast Du dies bisher überprüft?


    - NotesDocumentCollection über eine Ansicht mit GetAllDocumentsByKey holen
    - prüfen, ob ein Dokument zurück kommt
    - prüfen, ob das Dokument die gleiche UniversalID hat wie das offene
    - - - Ja = > speichern,
    - - - Nein ... mit Continue = False das Speichern unterbinden.


    Gruß
    Dirk

  • so nun funktionierts, hab saveoptions standart auf 0 gesetzt, und wenn der abonnement noch nicht existiert wirds auf 1 gesetzt und GESPEICHERT da lag das problem :D


    Danke für deine hilfe diali


    Gruss Gregor


    Dim session As New notessession
    Dim db As notesdatabase
    Dim doc As notesdocument
    Dim view As notesview
    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim id As String

    Set db = session.currentdatabase
    Set uidoc = workspace.CurrentDocument
    ID = uidoc.FieldGetText( "MitgliedID")

    Set view = db.getview("(viewLUAboAdressen)")
    Set doc = view.getdocumentbykey(ID)


    If Not doc Is Nothing Then
    Msgbox "Es besteht bereits ein Abo mit dieser ID", MB_OK, MB_ICONINFORMATION
    Continue = False
    Call uidoc.close
    Exit Sub
    Else
    Call uidoc.fieldsettext("SaveOptions","1")
    End If

    • Offizieller Beitrag

    was passiert, wenn im nachhinein die ID (Abo) geändert wird?, da steht SaveOptions schon auf "1"!


    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

  • mann gibt nicht die id an, sondern drückt nen button der auf ne andere db zugreift und sucht den neuen abonnenten raus, es dürte von daher keine überschneidungen geben, da dann der name, die adresse und die id angezeigt werden und der user mit einem klick das markiert und ok betätigen muss, aber ich werde das mal überprüfen danke für den tip


    Gruss Gregor


    EDIT:


    hatte vergessen zu sagen das ja durch das uidoc.close, das doc geschlossen wird :), man weiss ja nie bei den usern :D