Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Darkface am 22.10.02 - 09:44:26

Titel: Querysave Problem
Beitrag von: Darkface am 22.10.02 - 09:44:26
Hallo zusammen,
ich habe folgendes Problem, ich lasse im Querysave einen Wert überprüfen. wenn der Wert im if bleibt, soll er einen Message ausgeben und zu dem Feld springen was überprüft wird.
Das macht er, aber er fragt mich ob ich speichern möchte, und genau das möchte ich unterbinden.

Hat jemand eine Idee? Danke für jede Hilfe.

Gruß
  Darkface

Code
If (Name = "Wert" ) then
   Continue = False
   Call Source.GotoField ("Name")         
   Exit Sub
Else
   Continue = true
   Exit Sub
End if
Titel: Re:Querysave Problem
Beitrag von: Axel am 22.10.02 - 09:49:34
Hi,

ändere mal den Code wie folgt ab:

If (Source.Document.Name(0) = "Wert" ) then
  Continue = False
  Call Source.GotoField ("Name")        
  Exit Sub
Else
  Continue = true
  Exit Sub
End if

In deinem Fall vergleichst du "Wert" mit dem Inhalt einer Variablen und nicht mit einem Feldinhalt.

Axel
Titel: Re:Querysave Problem
Beitrag von: Darkface am 22.10.02 - 09:55:29
Das hat leider nichts gebracht.
Er fragt immer noch nach.

Gruß
  André
Titel: Re:Querysave Problem
Beitrag von: Rob Green am 22.10.02 - 10:10:15
mach mal folgendes, ganz traditionelles:

Code
Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   
      'Test auf Inhalt   
   Msgbox uidoc.FieldGetText( "Name" )
   
   If (uidoc.FieldGetText( "Name" ) = "INHALT") Then
      Msgbox "na na na na"
      continue = False
      Exit Sub
   End If
Titel: Re:Querysave Problem
Beitrag von: Axel am 22.10.02 - 10:11:38
Hi,

der Code sieht richtig aus. Schau dir das Ganze mal mit dem Debugger an. Entspricht der Wert den du in der IF-Klausel nimmst auch wirklich dem Wert, der im Feld steht ?

Was anderes fällt mir im Moment auch nicht ein.

Axel
Titel: Re:Querysave Problem
Beitrag von: Darkface am 22.10.02 - 10:42:36
Ne das will er immer noch nocht. Kann es sein das es an der Messagebox liegt?

nValue = Messagebox ("Ist der Name richtig?", 3 + 32 ,"Name")

Gruß
  André
Titel: Re:Querysave Problem
Beitrag von: Rob Green am 22.10.02 - 10:52:27
???

kann es sein, daß Du die Hälfte vom Code unterschlagen hast?
Wo kommt denn auf einmal das Teil her?

a.) bitte poste mal den gesamten QuerySave Code  >:( >:( >:(
b.) sorge dafür, daß auf jeden Fall im Feld "Name" ein festgelegter Testwert steht, zB "Franz"
c.) aktiviere den Debugger, lass speichern und sag uns, an welcher Stellen der Code nicht auf "continue=false" verzweigt (denn diese Anweisung führt in Verbindung mit Exit sub unweigerlich zum Speicherabbruch, es sei denn wie gesagt, er kommt nicht in die Codeverzweigung mit dieser Anweisung rein)
d.) eine messagebox hat normalerweise nix mit Speichern am Hut, es sei denn, Du versteckst noch Code vor uns (siehe a.)
Titel: Re:Querysave Problem
Beitrag von: Axel am 22.10.02 - 10:59:02
Hi,

an der Messagebox kann es nicht liegen. Ich hab das so oder ähnlich schon sehr oft gemacht.

Hier mal ein Beispiel aus einer meiner DBs:

If doc.Name(0) = "" Then
  Messagebox "Sie haben keinen Namen eingeben. Das Dokument kann" _
  & Chr$(10) & "nicht gespeichert werden.", 48, "Adressen - Warnung"
  Call uidoc.GotoField("Name")
  Continue = False
  Exit Sub
End If  'If doc.Name(0) = "" Then

Anmerkung: die Variablen uidoc und doc sind globale Variablen und werden in QueryOpen bzw. PostOpen initialisiert.

Versuch's erstmal damit, kannst den Code ja später anpassen. Ansonsten hab ich im Moment keine Idee mehr.


Axel

Titel: Re:Querysave Problem
Beitrag von: Darkface am 22.10.02 - 11:40:28
ja Ok die Formel war richtig nur die Aktion hatte ein
@command ([FileCloseWindow]) was ich nicht berücksichtigt hatte.
Na ja später ist man immer schlauer.

Danke für eure mühe.

Gruß
  André