AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
12.02.12 - 17:28:57
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 7
| |-+  ND7: Entwicklung (Moderatoren: eknori, Glombi, koehlerbv)
| | |-+  ESC verhindern
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: ESC verhindern  (Gelesen 909 mal)
vbis
Frischling
*
Offline Offline

Beiträge: 16


« am: 05.02.10 - 12:31:04 »

Hallo liebe Notes-Gemeinde.

Ich habe da mal ein Anliegen, dass ich selber nur mit einer Kombination von Formel und Script-Sprache hinbekommen würde und hoffe auf Hilfe.
Das Thema wurde auch schonmal behandelt, damals aber über Script gelöst, was ich nicht nachbauen konnte, weil ich Script kaum (bis gar nicht) verwende.
Meine Hoffnung liegt jetzt in der guten alten Formelsprache...

Damit die Mitarbeiter die Schaltflächen nutzen (und damit auch weitere Aktionen neben dem Speichern ausgeführt werden), ist mein Anliegen die ESC-Taste "zu neutralisieren".
Dafür habe ich das Feld "SaveOptions" genutzt, sodass nicht mehr abgefragt wird, ob gespeichert werden soll.

Leider gehen eben doch manchmal die Mitarbeiter mit ESC aus veränderten Dokumenten heraus und verlieren so Ihre Arbeit.

Um das abzufangen, wollte ich jetzt eine Abfrage im Queryclose hinterlegen, um diese Problem zu beheben:
@If(@IsDocBeingEdited;

@Do(
_rc := @Prompt([YesNo];"Frage";"Wollen Sie wirklich abbrechen?");
   
   @If(_rc;
      SaveOptions="0";
      @return("Bitte klicken Sie ansonsten auf die Schaltfläche <Speichern>, damit Ihre Änderungen nicht verloren gehen."))
);"")

In einem anderen Fall habe ich in Script mit continue = false gearbeitet, was das Schließen auch verhindert.
Leider bin ich in Script nicht besonders fit, sodass ich den restlichen oberen Teil nicht nachbauen kann und das @return (ich habe auch schon andere Sachen probiert) verhindert leider nicht das Schließen des Dokumentes.

Über Ihre/Eure Unterstützung bei dem kleinen Problem wäre ich sehr dankbar.
Gespeichert
pram
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 593



WWW
« Antworten #1 am: 05.02.10 - 18:27:06 »

Ich würde mit LotusScript einfach im QueryClose continue = false setzen.

(Mit entsprechendem Prompt davor)

Gruß
Roland
Gespeichert

Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 18831



« Antworten #2 am: 05.02.10 - 18:39:42 »

Nö, nö - das wird nix: Lediglich ein Continue = False würde ja dazu führen, dass man das Dokument nie wieder schliessen kann und aus der Nummer nur herauskommt, wenn man den Client killt.
Ausserdem will Thomas eine Formelsprachen-Lösung.

Mein erster Rat: Lerne LotusScript, Thomas. Ohne vergibst Du Dir ja nur Möglichkeiten.

Nummer 2: Mit dem QuerySave / QueryClose in Formelsprache wirst Du nicht froh. Füge Deiner Maske ein editierbares und verstecktes Feld hinzu. Setze dies durch Deinen Speichern-Button auf einen bestimmten Wert. Prüfe in der Feldvalidierung und unter der Bedingung "Das Dokument wird gerade gespeichert", ob der Wert da drin steht. Wenn nicht: Gemecker! Wenn ja, muss Du dafür sorgen, dass der Wert nicht mit abgespeichert wird, sonst hast Du Deine Prüfung für die Zukunft ausser Betrieb genommen.

Coden musst Du jetzt selber. Dabei stellst Du vielleicht auch fest, dass das mit LotusScript vielleicht doch einfacher gehen könnte  Wink

Bernhard
Gespeichert
vbis
Frischling
*
Offline Offline

Beiträge: 16


« Antworten #3 am: 06.02.10 - 16:56:19 »

Das hilft mir auf jeden Fall schon mal weiter.

Lotus Script ist so eine Sache... Die unterschiedlichen Arten von Front- und Backend haben sich mir leider noch nicht so richtig erschlossen.

Ich werde es am Montag gleich mal so probieren, allerdings würde es mich auch interessieren, ob es etwas vergleichbares zu continue=false auch in der Formelsprache gibt. @failure, @return und ähnliches hat immer nicht funktioniert.

Euch allen noch ein schönes Wochenende!

Gespeichert
pram
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 593



WWW
« Antworten #4 am: 08.02.10 - 10:56:46 »

Was vergleichbares gibt es in Formelsprache (soweit ich weiß) nicht.
Der LS-Code für dein Problem wäre ja eigentlich ziemlich simpel:

Code:
if msgbox("Wollen Sie abbrechen", 4) = 7 then
  continue = false
end if

(ungetestet!). Schau dir ggf. die Hilfe zu msgbox mal an...
Es sind ja auch immer wieder gute Beispiele in der Hilfe.

Gruß
Roland
Gespeichert

Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework
vbis
Frischling
*
Offline Offline

Beiträge: 16


« Antworten #5 am: 08.02.10 - 11:26:53 »

Vielen Dank für Eure Hilfe,

das hat mir alles sehr gut weitergeholfen und zusammen mit der Designer-Hilfe habe ich jetzt folgendes implementiert:

Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   
   If uidoc.EditMode = True Then
      If Msgbox("Wollen Sie wirklich abbrechen, ohne Ihre Änderungen zu speichern?", 4,"Abbrechen?") = 7 Then
         continue = False   
      End If
   End If

Das klappt exakt so, wie ich es wollte!

Also nochmal besten Dank und viele Grüße!
Gespeichert
ascabg
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2079


« Antworten #6 am: 08.02.10 - 11:28:26 »

Hallo,

Eine kleine Frage zu Deinem Script.

Wo in Deiner Form hast Du dieses implementiert?


Andreas
Gespeichert
vbis
Frischling
*
Offline Offline

Beiträge: 16


« Antworten #7 am: 08.02.10 - 12:14:39 »

Hallo Andreas,

eine Kleinigkeit fehlte noch.

Ich hatte es im Queryclose. Konnte dann aber nicht mehr speichern....

Habe jetzt eine Kombination aus beiden Tipps verwendet und es hat geklappt:

Im Queryclose:

Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   
   If uidoc.FieldGetText( "Speichern_ist_OK" ) = "" Then
      If uidoc.EditMode = True Then
         If Msgbox("Wollen Sie wirklich abbrechen, ohne Ihre Änderungen zu speichern?", 4,"Abbrechen?") = 7 Then
            continue = False   
         End If
      End If
   End If



Und im Postmodechange:

Dim session As New NotesSession
   If source.EditMode Then
      Call source.FieldSetText _
      ( "Speichern_ist_OK", "" )
   End If



Im Speicherbutton steht dann einfach u.a.:

@SetField("Speichern_ist_OK" ; "Speicherbutton_wurde_verwendet")


Das neue Feld Speichern_ist_OK hat keinen Vorgabewert.

Ich denke so haben die Anwender einen wesentlich besseren Komfort.

Vielen Dank nochmals!
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig