Autor Thema: Aktuelles Programm kann nicht geschlossen werden ???  (Gelesen 2192 mal)

Offline mgubler

  • Aktives Mitglied
  • ***
  • Beiträge: 160
  • Geschlecht: Männlich
  • Ich war's nicht!!!
Guten Morgen zusammen,

ich habe folgendes Problem bei meinem Abschlussprojekt.
Ich habe ein Skript im QuerySave einer Maske erstellt, das die Felder auf deren Inhalt prüft.

Wenn nun ein Fehler auftritt lasse ich via Messagebox eine Nachricht ausgeben. Danach wird Continue auf False gesetzt.
Und danach soll man dann wieder zur Eingabe in die Maske gelangen.
Leider funktioniert das aber nicht.
Nachdem ich auf okay klicke, erhalte ich eine neue Messagebox, die mir mitteilt, dass das aktuelle Programm nicht geschlossen werden kann.

Hier habe ich mal einen Teil des Scripts:

Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim boxType As Long, answer As Integer
   
   plz=source.FieldGetText("fld_Plz_TX")
   boxType& = MB_OK + MB_ICONINFORMATION
   
   If plz = "" Then
      answer% = Messagebox("Es wurde keine eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine Postleitzahl ein.", boxType&, "Fehler!")
      Goto Ende
   Else
      If ( Len(plz) <> 5 ) Then
         answer% = Messagebox("Es wurde eine ungültige Plz eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine gültige Postleitzahl ein.", boxType&, "Fehler!")
         Goto Ende         
      End If
      Goto Ende
   End If
   
Ende:
   Continue=False
End Sub

Es wäre toll, wenn mir jemand schnellstens helfen könnte, da es wichtig ist.

Gruss und Danke im voraus,
mgubler
Gruß, Marc

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Aktuelles Programm kann nicht geschlossen werden ???
« Antwort #1 am: 01.04.03 - 08:40:29 »
Ich denke, der Fehler hat weniger was mit dem Code zu tun. Habe den gleichen Fehler in einer anderen Anwendung. Werde mich da heute mal auf die Suche begeben.

Trotzdem solltest du deinen Code ein wenig umbauen, da du sonst aus der Nummer nie mehr rauskommst

Zitat
     End If
      Goto Ende
   End If
   
Ende:
   Continue=False
End Sub

danach ist continue immer FALSE, da du zwar in deinen Abfragen zur Marke springst, aber auch, wenn alles i.O. ist kommst du ja zwangsläufig an die Stelle.

Also entweder

      End If
      Goto Ende
   End If
   exit sub
Ende:
   Continue=False
End Sub

oder du läßt das GoTo Ende ganz weg und setzt continue gleich an der richtigen Stelle auf FALSE

If plz = "" Then
      answer% = Messagebox("Es wurde keine eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine Postleitzahl ein.", boxType&, "Fehler!")
      continue = false
   Else
      If ( Len(plz) <> 5 ) Then
         answer% = Messagebox("Es wurde eine ungültige Plz eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine gültige Postleitzahl ein.", boxType&, "Fehler!")
      continue = false
      End If
End If

eknori
« Letzte Änderung: 01.04.03 - 08:41:20 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline mgubler

  • Aktives Mitglied
  • ***
  • Beiträge: 160
  • Geschlecht: Männlich
  • Ich war's nicht!!!
Re:Aktuelles Programm kann nicht geschlossen werden ???
« Antwort #2 am: 01.04.03 - 08:58:48 »
Danke erstmal für den Hilfeansatz.
Solltest Du (ich hoffe ich darf Du sagen?!) eine Lösung finden, so wäre es nett, wenn Du diese Lösung hier posten könntest.

Danke im voraus,
mgubler
Gruß, Marc

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Aktuelles Programm kann nicht geschlossen werden ???
« Antwort #3 am: 01.04.03 - 09:08:12 »
eknori hat's doch schon beschrieben - es ist ein Logikfehler mehr nicht


Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim boxType As Long, answer As Integer
   
   plz=source.FieldGetText("fld_Plz_TX")
   boxType& = MB_OK + MB_ICONINFORMATION
   
   If plz = "" Then
      answer% = Messagebox("Es wurde keine eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine Postleitzahl ein.", boxType&, "Fehler!")
 GoTo Ende
   Else
      If ( Len(plz) <> 5 ) Then
         answer% = Messagebox("Es wurde eine ungültige Plz eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine gültige Postleitzahl ein.", boxType&, "Fehler!")
         Goto Ende        
      End If
   End If

Exit sub  

Ende:
   Continue=False
End Sub




cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline mgubler

  • Aktives Mitglied
  • ***
  • Beiträge: 160
  • Geschlecht: Männlich
  • Ich war's nicht!!!
Re:Aktuelles Programm kann nicht geschlossen werden ???
« Antwort #4 am: 01.04.03 - 09:29:55 »
Das Problem bestand auch nach der Korrektur noch!
Gruß, Marc

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Aktuelles Programm kann nicht geschlossen werden ???
« Antwort #5 am: 01.04.03 - 09:32:18 »
wird die Maske in einem Frame geöffnet ??
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline mgubler

  • Aktives Mitglied
  • ***
  • Beiträge: 160
  • Geschlecht: Männlich
  • Ich war's nicht!!!
Re:Aktuelles Programm kann nicht geschlossen werden ???
« Antwort #6 am: 01.04.03 - 09:40:44 »
ja, wird sie, und anscheinend ist genau das der punkt.
« Letzte Änderung: 01.04.03 - 11:43:16 von mgubler »
Gruß, Marc

Offline mgubler

  • Aktives Mitglied
  • ***
  • Beiträge: 160
  • Geschlecht: Männlich
  • Ich war's nicht!!!
Re:Aktuelles Programm kann nicht geschlossen werden ???
« Antwort #7 am: 01.04.03 - 11:44:02 »
Zitat
ja, wird sie, und anscheinend ist genau das der punkt.

hat vielleicht jemand von euch eine idee, wie man das unterbinden kann, auch wenn man die maske in einem frameset aufruft?
Gruß, Marc

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Aktuelles Programm kann nicht geschlossen werden ???
« Antwort #8 am: 01.04.03 - 12:49:03 »
Ich habe dieses Problem in der Vergangenheit so gelöst:
- linke frame war eine view mit  doks
- im rechten frame wurden die doks angezeigt
- beim db öffnen wurde default eine wellcome page rechts gezeigt
- dok wird im frame editiert und gespeichert, im QuerySave werden die Feldvalidierung gemacht und in der Aktion Speichern&Schliessen steht:

@If(@Command([FileSave]);
@Command( [OpenFrameset] ; "DocFramesetNotes" );
@Return(""))

- also ganz einfach wird das frameset beim erfolgreichen Speichern neu geöffnet. Das Problem mit einem
@Command([FileCloseWindow])  ist das Notes hier das aktive Fenster schliesst, ergo die db.

- folgendes geht auch - db schliessen + neu öffnen, hat den Vorteil das die db mit der wellcome page sich wieder öffnet

_srv := @Subset(@DbName; 1);
_path_name := @Subset(@DbName; -1);
@If(@Command([FileSave]);
 @Do(@Command([FileCloseWindow]);
@PostedCommand([FileOpenDatabase]; _srv : _path_name;"" ; "" ; "0" )    );
 @Return(""))

- performanter wäre oben wenn kein FileCloseWindow gemacht wird, d.h. dok wird gespeichert und geht in read mode(Form default)



cu

Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz