Autor Thema: @Prompt - Problem  (Gelesen 3150 mal)

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
@Prompt - Problem
« am: 12.06.05 - 22:10:44 »
Hallo zusammen,

hinter meinem „Speichern und Schließen“ Button steht folgende Formel:

@Command ([FileSave]);

REM "Abfrage";
REM "Hinweis";

Auswahl := @Prompt ([YESNO]; "Frage";

"Sind Sie sicher, daß Sie das Dokument nicht an einen anderen Mitarbeiter Senden möchten?");

@If (Auswahl = 1;
@Command ([FileCloseWindow]);
@Return (@Prompt ([OK]; "Hinweis";
"Wählen Sie unter      5. Reklamationsbearbeitung      einen Namen"
+ @Char(13) +
"und klicken Sie dann auf       Info Senden")))

Die Abfrage soll aber nur kommen, wenn das Feld „Empfaenger“ leer ist.
Also: Steht im Feld „Empfaenger“ ein Name, soll das Dok. gleich geschlossen werden.
Ich müßte dann doch eigentlich mit @If (Empfaenger = ""; beginnen?

Ich krieg´s einfach nicht hin.  :-:
Ein Tipp wäre echt nett.

Gruß Siggi

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: @Prompt - Problem
« Antwort #1 am: 12.06.05 - 22:30:27 »
Bin etwas aus @Formula draus, klappt das hier?


_Auswahl := ""; REM "Das muss man in R5 noch so machen :-( - in R6 kannste das weglassen";
_HasDocBeingSaved := @Command ([FileSave]);

_Empfänger := Empfaenger;

@If( _Empfänger = "";
   @Set(_Auswahl; @Prompt ([YesNo]; "Frage"; "Sind Sie sicher, daß Sie das Dokument nicht an einen anderen Mitarbeiter Senden möchten?"));
   @Command ([FileCloseWindow])
);

@If (_Auswahl = 1;
   @Command ([FileCloseWindow]);
   @Return (@Prompt ([Ok]; "Hinweis"; "Wählen Sie unter      5. Reklamationsbearbeitung      einen Namen" + @Char(13) +
         "und klicken Sie dann auf       Info Senden")))


Was mir hier nicht ganz klar ist, warum Du erstmal speicherst. Wegen Eingabevalidierung??
Wie auch immer: ich setze Dir damit in die _HasDocBeingSaved - Variable ein @True oder @False, je nachdem ob das Speichern erfolgreich war oder nicht. Kannst Du also auch noch entsprechend abfragen...
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Prompt - Problem
« Antwort #2 am: 12.06.05 - 22:33:45 »
Die @formula @Return ("") beendet eine laufende @functions-Abarbeitung.

Du müsstest also folgendes Konstrukt einfügen, wenn Du abhängig von Deiner Bedingung abbrechen willst oder nicht:

@If (Empfaenger = ""; @Return (""); "")

HTH,
Bernhard

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Prompt - Problem
« Antwort #3 am: 14.06.05 - 23:07:01 »
Irgendwie klappt´s nicht.

@Matthias:
Setze ich Deine Formel ein und klicke auf "Speichern und Schließen", kommen nacheinander die beiden Prompts (Frage und Hinweis) und nichts passiert.
Steht ein Name im Feld "Empfaenger" und klicke auf "Speichern und Schließen", kommt die Prompt Hinweis und schließt dann das Dok.


@Bernhard:
Wo muß ich denn
@If (Empfaenger = ""; @Return (""); "")
einsetzen?
Hab ´ einiges veersucht, aber es macht nicht das was es soll.
Krieg´s einfach nicht hin. ^-^

Gruß Siggi

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: @Prompt - Problem
« Antwort #4 am: 14.06.05 - 23:10:19 »
@Matthias:
Setze ich Deine Formel ein und klicke auf "Speichern und Schließen", kommen nacheinander die beiden Prompts (Frage und Hinweis) und nichts passiert.
Steht ein Name im Feld "Empfaenger" und klicke auf "Speichern und Schließen", kommt die Prompt Hinweis und schließt dann das Dok.

Siggi, ja, das klingt sinnvoll - wenn man sich meine @Formula ansieht, so hatte ich Dich glaub ich oben auch verstanden.
Was passt denn hier nicht, also sprich was soll stattdessen passieren? Kann gut sein, dass ich was übersehen habe von Deinen "Anforderungen".
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Prompt - Problem
« Antwort #5 am: 14.06.05 - 23:14:30 »
Soweit ich Dich verstanden habe, müsste diese Prüfung gleich zu Beginn erfolgen, da ja ansonsten keine weitere Aktion erfolgen soll.
Also:
@If (Empaenger = ""; @Return (@Prompt ([OK]; "Hinweis"; "Wählen Sie unter 5. Reklamationsbearbeitung      einen Namen" + @Char(13) + "und klicken Sie dann auf Info Senden")); "");
@If (Empfaenger = ""; @Return (""); "")

Erst dann sollten Deine Operationen für den Erfolgsfall (Empfaenger ist gefüllt) erfolgen.

Bernhard

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Prompt - Problem
« Antwort #6 am: 14.06.05 - 23:24:52 »
Siggi, ja, das klingt sinnvoll - wenn man sich meine @Formula ansieht, so hatte ich Dich glaub ich oben auch verstanden.
Was passt denn hier nicht, also sprich was soll stattdessen passieren? Kann gut sein, dass ich was übersehen habe von Deinen "Anforderungen".

Klicke ich auf "Speichern und Schließen" und es steht kein Name im Feld "Empfaeger", dann sollen nacheinander die beiden Prompts kommen.
Steht bereits ein Name im Feld "Empfaeger", dann soll das Dok direkt geschlossen werden - ohne die beiden Prompts.

Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Prompt - Problem
« Antwort #7 am: 14.06.05 - 23:32:33 »
Soweit ich Dich verstanden habe, müsste diese Prüfung gleich zu Beginn erfolgen, da ja ansonsten keine weitere Aktion erfolgen soll.
Also:
@If (Empaenger = ""; @Return (@Prompt ([OK]; "Hinweis"; "Wählen Sie unter 5. Reklamationsbearbeitung      einen Namen" + @Char(13) + "und klicken Sie dann auf Info Senden")); "");
@If (Empfaenger = ""; @Return (""); "")

Erst dann sollten Deine Operationen für den Erfolgsfall (Empfaenger ist gefüllt) erfolgen.





Bernhard

Wenn ich jetzt auf "Speichern und Schließen" klicke, kommt immer die 2.te Prompt (Hinweis) und nichts passiert - egal ob das Feld "Empfaenger" leer od. gefüllt ist.
Hab´s im Zitat von TMC nochmal erklärt - hilft das? ;)
« Letzte Änderung: 14.06.05 - 23:35:28 von macom111 »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @Prompt - Problem
« Antwort #8 am: 14.06.05 - 23:41:53 »
Bitte poste mal Deinen aktuellen, kompleten Code. Das Verfahren, wie ich es beschrieben habe, funktioniert (wie dokumentiert und damit erwartet, was ja nun nicht immer in der Programmierei der Fall ist  ;D ).

Für das Verfahren an sich: Mach Dir mal einen weiteren Button mit diesem Code:
Code
@If (Empaenger = ""; @Return (@Prompt ([OK]; "Hinweis"; "Wählen Sie unter 5. Reklamationsbearbeitung einen Namen" + @Char(13) + "und klicken Sie dann auf Info Senden")); "");
@If (Empfaenger = ""; @Return (""); "");
@Prompt ([OK]; "Status"; "Durchgelaufen")

Den Prompt "Durchgelaufen" solltest Du nie sehen, wenn Empfaenger nicht ausgefüllt ist.

Ansonsten ist die Sache aus der Ferne schwer einzuschätzen.

Bernhard

PS: Ein Hinweis noch - das @Command ([FileSave] ganz zu Beginn erscheint mir merkwürdig und - so aus dem Kontext gerissen - unnötig. Generell zu @Commands: Diese werden vor @functions ausgeführt ! Hast Du weitere @commands, so sollten diese als @PostedCommand ausgeführt werden, wenn sie wirklich erst abschliessend laufen sollen.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: @Prompt - Problem
« Antwort #9 am: 14.06.05 - 23:52:08 »
PS: Ein Hinweis noch - das @Command ([FileSave] ganz zu Beginn erscheint mir merkwürdig

Jo, das war mir auch schon aufgefallen und die Frage blieb unbeantwortet  ;D
Was mir hier nicht ganz klar ist, warum Du erstmal speicherst. Wegen Eingabevalidierung??

@Siggi:
Hab das mal umgebaut:

_HasDocBeingSaved := @Command ([FileSave]);

_Empfänger := @Trim(Empfaenger);

REM "Dok schließen ohne weiterer Abfrage wenn Empfänger NICHT leer ist";
@If( _Empfänger != "";
   @Do(
      @Command([FileCloseWindow]);
      @Return("")
   );
   ""
);

_Auswahl := @Prompt ([YesNo]; "Frage"; "Sind Sie sicher, daß Sie das Dokument nicht an einen anderen Mitarbeiter Senden möchten?");

@If (_Auswahl = 1;
   @Command ([FileCloseWindow]);
   @Do(
      @Prompt ([Ok]; "Hinweis"; "Wählen Sie unter      5. Reklamationsbearbeitung      einen Namen" + @Char(13) +
         "und klicken Sie dann auf       Info Senden");
      @Command([FileCloseWindow])
   )
)


Musst Du halt entsprechend noch erweitern, weiß nicht ob Du immer das FileCloseWindow etc. brauchst.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Prompt - Problem
« Antwort #10 am: 15.06.05 - 00:02:14 »
Also mein aktueller code ist wie in meinem 1.sten Thread:

@Command ([FileSave]);

REM "Abfrage";
REM "Hinweis";

Auswahl := @Prompt ([YESNO]; "Frage";

"Sind Sie sicher, daß Sie das Dokument nicht an einen anderen Mitarbeiter Senden möchten?");

@If (Auswahl = 1;
@Command ([FileCloseWindow]);
@Return (@Prompt ([OK]; "Hinweis";
"Wählen Sie unter      5. Reklamationsbearbeitung      einen Namen"
+ @Char(13) +
"und klicken Sie dann auf       Info Senden")))

Die Formel funktioniert ja, solange es das Feld"Empfaenger" nicht gibt!!

Aber gerade um dieses Feld geht es ja.
Ist das Feld "Empfaenger" gefüllt und klicke ich jetzt auf "Speichern und Schließen", soll das Dok direkt geschlossen werden.

Ist das Feld leer, und klicke ich jetzt auf "Speichern und Schließen", soll zuerst die Prompt (Frage) kommen. Klicke ich auf "JA", soll das Dok trotzdem geschlossen werden, klicke ich auf "NEIN", soll die 2.te Prompt (Hinweis) erscheinen. Bestätige ich diese mit "OK", soll das Feld "Empfaenger" gefüllt werden und mit dem Button "Info Senden" an den User verschickt werden. Das Dok wird dabei gleich geschlossen.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: @Prompt - Problem
« Antwort #11 am: 15.06.05 - 00:06:30 »
Also mein aktueller code ist wie in meinem 1.sten Thread:

Was passt Dir an meiner Umsetzung nicht?

Ich denke die macht genau das wie hier beschrieben:

Klicke ich auf "Speichern und Schließen" und es steht kein Name im Feld "Empfaeger", dann sollen nacheinander die beiden Prompts kommen.
Steht bereits ein Name im Feld "Empfaeger", dann soll das Dok direkt geschlossen werden - ohne die beiden Prompts.

Jetzt liegt es denke ich an Dir, das mal versuchen nachzuvollziehen, und die Ratschläge von Bernhard und mir mal anzusehen und zu vergleichen mit Deinem Ursprungscode.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Prompt - Problem
« Antwort #12 am: 15.06.05 - 00:13:24 »
Hallo Matthias,

das hat sich überschnitten und war eigentlich die Antwort für Bernhard.

Dein jetziger Code funktioniert einwandfrei.

Super und vielen Dank Euch beiden.  :) ;) :D

Habe mit @Do auch schon probiert, hab´s aber leider nicht hinbekommen  :-:

Übrigens: Das ich das @Command([FileCloseWindow]) gleich am Anfang verwende, hat was mit dem Antwortdok zu tun, wäre aber für diese Aktion unwichtig - hab´s halt einfach übernommen.
« Letzte Änderung: 15.06.05 - 00:24:41 von macom111 »

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: @Prompt - Problem
« Antwort #13 am: 15.06.05 - 00:24:02 »
Gern geschehen, Siggi.

Meine Intension, dass ich Dir das (mehr oder weniger) fertige Ergebnis poste war allerdings auch, dass Du die Vorgehensweise kennenlernst.
Ich würde an Deiner Stelle das noch ausbauen, und versuchen zu verstehen, warum es bei Dir nicht geklappt hat. Nur das bringt Dich hier dann wirklich weiter.

Und mach Dir noch Gedanken über das [FileSave]. Rückgabewert ist @True oder @False. Das kannst Du noch geschickt einbauen.

Problematisch in @Formula ist natürlich der fehlende Debugger, und dass man nicht immer sofort einen Fehler sieht (Semikolon zuviel, etc.). Ich vermute, das war der Grund, dass Du @Do nicht hinbekommen hast.

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline macom111

  • Senior Mitglied
  • ****
  • Beiträge: 293
  • Geschlecht: Männlich
  • Anfänger in der Datenbankentwicklung!!!
Re: @Prompt - Problem
« Antwort #14 am: 15.06.05 - 00:29:46 »
Jetzt, da ich die fertige Formel vor mir habe, kann ich das ganze schon nachvollziehen und hab´s auch verstanden.
Nur das "Selbst draufkommen", da happerts halt immer noch. Arbeite aber daran.
Das ich das @Command([FileCloseWindow]) gleich am Anfang verwende, hat was mit dem Antwortdok zu tun, wäre aber für diese Aktion unwichtig - hab´s halt einfach übernommen.

Vielen herzlichen Dank nochmal an euch beide.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz