Autor Thema: eindeutig- Werte überprüfen?  (Gelesen 2382 mal)

Offline Notes-Creater

  • Junior Mitglied
  • **
  • Beiträge: 65
eindeutig- Werte überprüfen?
« am: 17.06.05 - 12:57:28 »
Hallo!
möchte einen manuellen Code in einer Form eingeben und dann überprüfen ob er wirklich eindeutig ist...
hatte mir überlegt das ich alle ID´s dieser Dokumente in einem View auflisten lasse und dann mit folgender Schleife vergleiche:

liste := @DBColumn("Notes":"NoCache";"":"";View;1);
@For(n := 1;n <= @Elements(liste); n := n + 1;
y:=@Subset(liste;x); @If(@ThisValue=y;@Prompt("ID bereits vorhanden, bitte ändern!";@Success))

Wie würdet ihr das machen?
Könnte es so klappen?
freu mich über hilfe!

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: eindeutig- Werte überprüfen?
« Antwort #1 am: 17.06.05 - 12:59:44 »
Hi,

das mit der View ist schon der richtige Weg. Aber warum DBColum? Mach's doch mit DBLookup und nimmals Key den neuen Code. Bekommst du kein Dokument zurück, ist er eindeutig.


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

Offline Notes-Creater

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: eindeutig- Werte überprüfen?
« Antwort #2 am: 17.06.05 - 13:05:05 »
kenne mich mit @DBLookup nicht aus und da ich nicht ganz schlau aus meiner hilfe werde, weiß ich net genau was @dblookup tut?
könnt ihr mir es sagen?    :-\

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: eindeutig- Werte überprüfen?
« Antwort #3 am: 17.06.05 - 13:21:50 »
Hi,

@DBLookup sucht anhand eines Schlüssels in einer angegeben Ansicht und liefert den Wert der angegebenen Ansichtenspalte oder des angegebenen Feldes zurück.

Damit das funktioniert, muß die ansicht in der ersten Spalte sortiert oder kategorisiert sein.

Eigentlich ist das aber in der Hilfe sehr einfach und klar beschrieben. In den Beispielen findest du auch nochmal die Funktionsweise erklärt.


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

Offline Linus

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Weiblich
  • Notes ... ähm ... is'n das?
Re: eindeutig- Werte überprüfen?
« Antwort #4 am: 17.06.05 - 13:22:54 »
_id := @DBLookup("Notes":"NoCache";"":"";View; key; 1);
@If(@IsError(_id);@Success;@Prompt("ID bereits vorhanden, bitte ändern!"))

Der DBLookup funktioniert ähnlich wie DBColumn. Du gibst hier nur noch den key mit, das heißt den Wert nach dem Du suchst. Dafür ist es wichtig, dass Deine Ansicht in der ersten Spalte diesen key (also bei Dir die ID) enthält. Diese Spalte muss sortiert sein!

Allerdings habe ich die Erfahrung gemacht, dass es gelegentlich vorkommen kann, dass die Funktion meint, die ID wäre noch nicht vergeben, obwohl sie gerade erst vergeben wurde. Das liegt dann daran, dass der Ansichtsindex noch nicht akualisiert ist.

Sauberer lässt sich das Problem mit LS lösen.

Offline Notes-Creater

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: eindeutig- Werte überprüfen?
« Antwort #5 am: 17.06.05 - 14:12:58 »
y := @DBLookup("Notes":"NoCache";"":"";AircraftID; @ThisValue; 1);
@If(@IsError(y);@Success;@Prompt("ID bereits vorhanden, bitte ändern!"))

geht nicht... hab vorher die ganzen Überprüfungen bzgl. des Formates und wenn ich dann eine angebe, die schon vorhanden ist, zeigt er mir an:
*Insufficient Arguments for @function*
?????
was bedeutet das?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: eindeutig- Werte überprüfen?
« Antwort #6 am: 17.06.05 - 14:17:25 »
Die Syntax von @Prompt ist falsch.
Ausserdem scheint die Logik nicht zu stimmen - wenn @IsError dann @Success
@Success ist für Eingabevalidierung vorgesehen. Wenn Du dort bist, dann ist @Prompt falsch - statt dessen muss es @Failure heissen.

Liest Du eigentlich die DesignerHelp ?

Bernhard

Offline max.power

  • Senior Mitglied
  • ****
  • Beiträge: 314
  • Geschlecht: Männlich
Re: eindeutig- Werte überprüfen?
« Antwort #7 am: 17.06.05 - 14:18:33 »
Hi,

die View muss dem @dblookup als String übergeben werden, also als "AircraftID".

LG,
Max

Offline Notes-Creater

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: eindeutig- Werte überprüfen?
« Antwort #8 am: 17.06.05 - 14:24:51 »
y := @DBLookup("Notes":"NoCache";"":"";"viewID"; @ThisValue; 1);
@If(@IsError(y);@Success;@Prompt([OK];"Fehler";"ID bereits vorhanden, bitte ändern!"))

ah, so klappts..
vielen Dank!

Ob ich die help lese...
ja, aber ich hab die Englische Version und da ist die help manchmal schwer verständlich  (Zumindest für mich)  ;)

Offline Notes-Creater

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: eindeutig- Werte überprüfen?
« Antwort #9 am: 17.06.05 - 14:27:35 »
aber noch eine frage:
wenn ich mehrere If schleifen hab, dann darf ich erst in der letzten @Success schreiben oder?
ansonsten würd er mir ja irgendwo ggf speichern was nicht soll oder?

Offline max.power

  • Senior Mitglied
  • ****
  • Beiträge: 314
  • Geschlecht: Männlich
Re: eindeutig- Werte überprüfen?
« Antwort #10 am: 17.06.05 - 14:34:57 »
Sehr gut, jetzt muss nur noch das @prompt durch ein @failure ersetzt werden - wie Bernhard schon erwähnt hat ;)

Was genau meinst du mit mehreren if-Schleifen? Meinst du mehrere Eingabevalidierungen für andere Felder? Dann ist das kein Problem, das @Failure bezieht sich immer nur auf das jeweilige Feld und der Speichervorgang wird abgebrochen - so lange, bis alle Validierungen @Success liefern.

Offline Notes-Creater

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: eindeutig- Werte überprüfen?
« Antwort #11 am: 17.06.05 - 14:37:42 »
wieso kann ich nicht @Prompt verwenden?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: eindeutig- Werte überprüfen?
« Antwort #12 am: 17.06.05 - 14:39:09 »
Weil in der Eingabevalidierung dafür extra @Failure vorgesehen ist. Siehe DesignerHelp.

Bernhard

Offline max.power

  • Senior Mitglied
  • ****
  • Beiträge: 314
  • Geschlecht: Männlich
Re: eindeutig- Werte überprüfen?
« Antwort #13 am: 17.06.05 - 14:40:57 »
@Prompt gibt zwar die Meldung aus, dass da was nicht OK ist, der Speichervorgang wird aber nicht abgebrochen - das musst du eben mit @Failure machen.
Der Code steht doch in der Eingabevalidierung, oder?

Offline Notes-Creater

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: eindeutig- Werte überprüfen?
« Antwort #14 am: 17.06.05 - 14:48:28 »
a := @Matches(@ThisValue;"{A-Z}{A-Z}{{A-Z}");
y := @DBLookup("Notes":"NoCache";"":"";"ID"; @ThisValue; 1);
@If(@Length(@ThisValue)!=3;@Failure("Fehler - Die ID muss genau 3 Zeichen beinhalten- Bitte korrigieren");
   a=0;@Failure("Fehler - Die 3 Zeichen müssen Buchstaben im Format A-Z sein!- Bitte korrigieren!");
   @IsError(y);@Failure("Fehler - ID bereits vorhanden, bitte ändern!");
   @Success)

es geht nicht!!!?   :-[
eine frage zu @failure.. wie zeigt @failure den fehler an? auch in einem extra fenster? sonst ist die fehlererkunng schwer oder wenn mehrere Kriterien nicht stimmen

Offline Daenu

  • Frischling
  • *
  • Beiträge: 35
Re: eindeutig- Werte überprüfen?
« Antwort #15 am: 17.06.05 - 14:52:22 »
Ja das gibt ein Fenster raus wie beim Prompt. Was geht den jetzt nicht? Lässt es Fehler durch?


ähh und da ist ein {zuviel
a := @Matches(@ThisValue;"{A-Z}{A-Z}{{A-Z}");
« Letzte Änderung: 17.06.05 - 14:54:02 von Daenu »

Offline Notes-Creater

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: eindeutig- Werte überprüfen?
« Antwort #16 am: 17.06.05 - 14:55:57 »
es lässt gleiche ID´s zu...
 :-[

Offline Daenu

  • Frischling
  • *
  • Beiträge: 35
Re: eindeutig- Werte überprüfen?
« Antwort #17 am: 17.06.05 - 15:11:12 »
dann lass mal alles weg ausser dem lookup den aber sauber aufsetzen:

die View ID enthält:
1. Col: ID Feld
2. Col: @Uppercase(@Text(@DocumentUniqueID))

_thisDoc := @Uppercase(@Text(@DocumentUniqueID));
_newID := DEIN ID FELD; oder @ThisValue
_LookupDB := "";
_LookupView := "ID";
_LookupKey := _newID;
_LookupCol := 2;
_test := @DbLookup("":"NoCache";_LookupDB;_LookupView;_LookupKey;_LookupCol);

@If(@IsError(_test);@Success;@Failure("Diese ID ist schon vergeben"))

Vorteil: wenn Du die ID später modifizierst, geht das. Da sich die Formel nur auf ID's anderer  Doks konzentriert.

Offline Notes-Creater

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: eindeutig- Werte überprüfen?
« Antwort #18 am: 17.06.05 - 15:14:15 »
ahhhhhhhhh, hab den Fehler.. musste !@Error(y)
viiiiiiiiiiiiiiiiiiiiiiiiiiiieeelne DAnk    :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: eindeutig- Werte überprüfen?
« Antwort #19 am: 17.06.05 - 15:41:31 »
Genau das hatte ich heute schon um 14:17 Uhr geschrieben. Wenn wir uns hier Mühe mit Deinen Problemen geben, solltest Du unsere Anmerkungen auch ernster nehmen und gründlicher über sie nachdenken.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz