Autor Thema: Problem mit QuerySave und Teilmasken  (Gelesen 4361 mal)

Offline Tom_S

  • Frischling
  • *
  • Beiträge: 40
  • Geschlecht: Männlich
Problem mit QuerySave und Teilmasken
« am: 10.02.10 - 15:40:37 »
Hallo,

eigentlich eine einfache Frage, aber irgendwie finde ich darauf leider keine Antwort.

Ich habe eine Maske, diese enthält Felder und auch eine Teilmaske, welche natürlich auch Felder enthält.

In der Teilmaske prüfe ich im QuerySave einige Pflichtfelder ab, ob dort etwas drinsteht. Falls nicht, setze ich "Continue = false", sodass nicht gespeichert wird.
In der (Haupt-)Maske prüfe ich auch im QuerySave einige Pflichtfelder ab. Auch hier setze ich "Continue = false", wenn ein Feld nicht ausgefüllt wurde.
Im QuerySave der Hauptmaske werden (wenn alle Pflichtfelder ausgefüllt wurden) noch weitere Aktionen durchgeführt..wie zum Beispiel neuen Status im Dokument setzen oder Mails verschickt.

Problem, welches ich nun habe:
Fülle ich gar nichts aus und speichere, klappt alles wunderbar..Meldung kommt.
Fülle ich nur die Felder in der Hauptmaske aus und lasse die Felder in der Teilmaske frei, kommt zwar auch die richtige Meldung, dass nicht alle Felder ausgefüllt sind, aber er macht trotzdem noch die restlichen Aktionen (Status setzen...Mails verschicken...).

Gibt es eine bestimmte Reihenfolge, welche QuerySaves er zuerst durchläuft? Und in welchem QuerySave sollte ich am besten die anderen Aktionen wie Mails verschicken hintun? Eigentlich doch schon in die Hauptmaske, oder? Oder liegt hier ein komplett anderes Problem vor?

Ich hoffe, mein Problem war verständlich.
Ach ja..entwickeln tu ich unter Notes 8.5.

Liebe Grüße und Danke schonmal
Thomas

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Problem mit QuerySave und Teilmasken
« Antwort #1 am: 10.02.10 - 16:02:44 »
Hallo,

Du kannst doch auch im QuerySave der Hauptmaske die Felder der Teilmaske pruefen.


Andreas


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit QuerySave und Teilmasken
« Antwort #2 am: 10.02.10 - 16:06:11 »
Kriegsentscheidend ist hier nur das QuerySave für das Dokument - also das der Maske. Teilmasken dürfen da nicht mitspielen (wäre ja auch noch schöner  ;D).

Bernhard

Offline Tom_S

  • Frischling
  • *
  • Beiträge: 40
  • Geschlecht: Männlich
Re: Problem mit QuerySave und Teilmasken
« Antwort #3 am: 10.02.10 - 16:37:52 »
Danke erstmal euch für die Antworten.

@Andreas:
Ja, kann ich, aber da ich die Teilmaske auch in anderen Masken verwende, wollte ich die Prüfungen der Teilmaske auch in der selbigen haben.
Sonst muss ich ja die Prüfungen der Teilmasken-Felder immer dort wiederholen, wo ich diese auch einsetze.

@Bernhard:
Naja, aber wozu brauch ich dann das QuerySave der Teilmaske, wenn ich dieses eh nicht so wirklich benutzen kann?

Ist also die Lösung meines Problems nun wirklich, dass ich in jeder Hauptmaske, die die Teilmaske nutzt, auch die Felder der Teilmaske abfrage? Führt doch zu doppeltem Code (weil die Teilmaske ja in mehreren Masken benutzt wird), was natürlich unsauber ist ;-)

Liebe Grüße
Thomas

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Problem mit QuerySave und Teilmasken
« Antwort #4 am: 10.02.10 - 16:43:31 »
Dann schaffe dir doch eine globale Funktion, die nur die Felder der Teilmaske abprueft.
Diese kannst Du dann immer wieder im QuerySave Deiner Hauptmasken einbinden und verwenden.


Andreas

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 249
  • Geschlecht: Männlich
Re: Problem mit QuerySave und Teilmasken
« Antwort #5 am: 10.02.10 - 16:45:53 »
Ich kann da Berhard nicht recht geben, selbstverständlich darf jede Teilmaske überprüfen, ob das Speichern fortgesetzt werden soll.

Wichtig ist nur zu verstehen, dass es nur 1 Continue - Feld gibt, welches quasi nacheinander an alle Überprüfungsroutinen weitergereicht wird (also der Maske, der Teilmasken sowie evtl. weitere per "On Event QuerySave from ... " definierte) .
Setzt eine dieser Routinen den Wert Continue auf False, so werden trotzdem noch die weiteren Routinen durchlaufen.

Wichtig ist also, dass man
1. Continue nie auf True setzt (der Wert wurde ja intern schon mit True vorbersetzt)
2. noch besser: als 1. Zeile in den einzelnen QuerySave-Routinen abfragt:
If not Continue then Exit Sub

-Werner

Offline Tom_S

  • Frischling
  • *
  • Beiträge: 40
  • Geschlecht: Männlich
Re: Problem mit QuerySave und Teilmasken
« Antwort #6 am: 10.02.10 - 16:48:27 »
@Andreas: Ja, das ist wahrscheinlich das sinnvollste, die Funktion für die Prüfung der Teilmasken-Felder in einer Bibliothek zu halten.
Aber wieder etwas dazu gelernt, hat mich heut echt erstaunt, dass das nicht so funktioniert, wie ich dachte ;-)

Also vielen Dank an alle :-)

Liebe Grüße
Thomas

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Problem mit QuerySave und Teilmasken
« Antwort #7 am: 10.02.10 - 16:50:41 »
Abarbeitungsreihenfolge:

erst QSave der (Haupt-) Maske. Ist Continue = True am Ende dieses QSave wird das QSave der ersten Teilmaske angestoßen.
Ist am Ende des QSave der ersten TM Continue = True, dann wird die nächste TM angepackt, sonst Abbruch des QSave, die weiteren TM werden dann gar nicht mehr behandelt.

Lösungsvorschlag:
den Code des QSave aus der Haupt-Maske rausnehmen und in das QSave einer weiteren, zusätzlichen Teilmakse einbauen und diese Teilmaske gaaanz am Ende der Hauptmaske einbauen.

hth


Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Problem mit QuerySave und Teilmasken
« Antwort #8 am: 10.02.10 - 16:51:29 »
Setzt eine dieser Routinen den Wert Continue auf False, so werden trotzdem noch die weiteren Routinen durchlaufen.

Bist Du Dir da sicher?

Offline Tom_S

  • Frischling
  • *
  • Beiträge: 40
  • Geschlecht: Männlich
Re: Problem mit QuerySave und Teilmasken
« Antwort #9 am: 10.02.10 - 16:57:41 »
@TRO: Ok, das klingt logisch, aber noch eine Teilmaske mehr? Jede weitere Teilmaske verlangsamt da Öffnen und Schließen der Dokumente.

Ich werd das denk ich wie Andreas beschrieben hat machen. Code zur Überprüfung der Teilmasken auslagen und am Anfang vom QuerySave der Hauptmaske aufrufen. Damit kann dann denk ich auch nichts mehr schief gehen.

Setzt eine dieser Routinen den Wert Continue auf False, so werden trotzdem noch die weiteren Routinen durchlaufen.
Bist Du Dir da sicher?

Das ist soweit ich weiß falsch. Denn sonst würde bei mir (so wie es bis jetzt noch ist) einmal eine Meldung von der Hauptmaske kommen, dass nicht alle Felder ausgefüllt sind und einmal von der Teilmaske.

Liebe Grüße
Thomas

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Problem mit QuerySave und Teilmasken
« Antwort #10 am: 10.02.10 - 17:20:36 »
Setzt eine dieser Routinen den Wert Continue auf False, so werden trotzdem noch die weiteren Routinen durchlaufen.

Das ist definitiv nicht so. Wenn irgendwo in der "Prüfkette" ein Continue = False enthalten ist wird abgebrochen, so wie es TRO beschrieben hat.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 249
  • Geschlecht: Männlich
Re: Problem mit QuerySave und Teilmasken
« Antwort #11 am: 10.02.10 - 21:05:05 »
Wenn man wie von mir beschrieben Events "On Event QuerySave from" definiert, dann ist das Verhalten genau wie von mir beschrieben. Von daher bietet es sich an, auf den vorher gesetzten Wert von Continue zu achten.

Ich dachte eigentlich, dass ich dieses Verhalten in irgendeiner Notes-Version auch schon bei Teilmasken so gesehen habe.

-Werner

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz