[GELÖST] Problem mit Confirm

19. März 2007 13:04

Hallo,

ich habe eine Funktion die erst nach vorheriger Abfrage ausgeführt werden soll. DAs Ziel soll eben sein, das wenn der Anwender mit "JA" bestätigt,, es den Code ausführt und einen DAtensatz einfügt.

Mit dem vorhandenen Code, kommt eine Fehlermeldung bei klicken auf "Nein", das ist soweit ok, aber wenn man auf "JA" klickt wird gar nix ausgeführt.

Was hab ich jetzt schon wieder falsch gemacht!??? :oops: :oops: :oops:


Code:
IF ("Eingabe Optionsfeld" =  "Eingabe Optionsfeld"::Eingang) AND (Eingabe <> 0) THEN BEGIN
  IF NOT CONFIRM('Soll der Eingang gebucht werden?',FALSE) THEN
    ERROR('Verarbeitung abgebrochen');
    END ELSE BEGIN
  "rec_lack zeilen".Zaehler := 0;
  "rec_lack zeilen".INIT;
  "rec_lack zeilen"."No." := "No.";
  "rec_lack zeilen".Vorgangsnummmer := "No.";
  "rec_lack zeilen".Bezeichnung := Bezeichnung;
  "rec_lack zeilen".Lacknr := Lacknr;
  "rec_lack zeilen".Eingang := Eingabe ;
  "rec_lack zeilen".INSERT(TRUE);

END;
Zuletzt geändert von tesarolle am 19. März 2007 13:48, insgesamt 2-mal geändert.

19. März 2007 13:07

Probiers mal so ;-)

Code:
IF ("Eingabe Optionsfeld" =  "Eingabe Optionsfeld"::Eingang) AND (Eingabe <> 0) THEN BEGIN
  IF NOT CONFIRM('Soll der Eingang gebucht werden?',FALSE) THEN
    ERROR('Verarbeitung abgebrochen')
  ELSE BEGIN
    "rec_lack zeilen".Zaehler := 0;
    "rec_lack zeilen".INIT;
    "rec_lack zeilen"."No." := "No.";
    "rec_lack zeilen".Vorgangsnummmer := "No.";
    "rec_lack zeilen".Bezeichnung := Bezeichnung;
    "rec_lack zeilen".Lacknr := Lacknr;
    "rec_lack zeilen".Eingang := Eingabe ;
    "rec_lack zeilen".INSERT(TRUE);
  END;
END;

Unterschied klar?

Falls nicht, hier dein Originalcode in richtiger IF-THEN-ELSE-Notation:
Code:
IF ("Eingabe Optionsfeld" =  "Eingabe Optionsfeld"::Eingang) AND (Eingabe <> 0) THEN BEGIN
  IF NOT CONFIRM('Soll der Eingang gebucht werden?',FALSE) THEN
    ERROR('Verarbeitung abgebrochen');
END ELSE BEGIN
  "rec_lack zeilen".Zaehler := 0;
  "rec_lack zeilen".INIT;
  "rec_lack zeilen"."No." := "No.";
  "rec_lack zeilen".Vorgangsnummmer := "No.";
  "rec_lack zeilen".Bezeichnung := Bezeichnung;
  "rec_lack zeilen".Lacknr := Lacknr;
  "rec_lack zeilen".Eingang := Eingabe ;
  "rec_lack zeilen".INSERT(TRUE);
END;

19. März 2007 13:19

Hallo Natalie! Oh mann ich habe echt Tomaten auf den Augen!

Danke!

Noch eine Kleinigkeit, ich möchte in dem Confirm-text die Zahl stehen haben die der Anwender eingegeben hat.

Also "Soll der Eingang von 100 verbucht werden"... Und die 100 wäre der Inhalt der Variable.

Normalerweise geht das ja so:

Message('das ist mein text "%1"),Eingabe

Aber geht das auch im Confirm? Da stört mich die ganze Zeit irgendwie dieses False...

19. März 2007 13:25

Ja, statt den Text fest in den CONFIRM-Befehl zu schreiben, verwende eine Text-Variable.
Lege sie so an (Name natürlich egal):
text12345
Soll der Eingang von %1 verbucht werden?

Verwende sie dann so:
Code:
...CONFIRM(STRSUBSTNO(txt12345, Variable), FALSE) ...

19. März 2007 13:46

SUPER. VIELEN LIEBEN DANK!

19. März 2007 13:50

Hi Natalie,

Natalie hat geschrieben:Verwende sie dann so:
Code:
...CONFIRM(STRSUBSTNO(txt12345, Variable), FALSE) ...


den Befehl STRSUBSTNO brauchst du gar nicht mal. Der Befehl CONFIRM unterstüzt von Haus aus schon Platzhalter.

Code:
...CONFIRM(txt12345, FALSE, Variable) ...


Gruß, Marc

19. März 2007 14:03

Das kommt davon, wenn man es nicht selber nachsieht.
Danke!