Autor Thema: @If + @ Contains  (Gelesen 42232 mal)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: @If + @ Contains
« Antwort #20 am: 23.05.11 - 18:57:24 »
Im querysave ist dein code falach, weil es in der formelsprache kein continue=false gibt. Wie ich dir schon im 8. Post hier geschrieben habe, gehört dein code in eine feld- validierungsformel. Dort mit @failure abbrechen, und schon lässt sich dein konflikt nicht mehr speichern. Dummerweise halt auch nich, wenn es sich um einen false positive handelt.

Ich werde mich aber hier ausklinken, weil ich das Gefühl habe, dass dieses Forum Dir als billige Schulung dienen soll. Und auf diese weise Geld zu sparen ist sehr kurzsichtig, weil es dafür ein vielfaches kostet, den Ärger, den eine solche Herangehensweise beim Endanwender verursaxht, wieder gut zu machen. Und dann heisst es wieder "Notes ist scheisse...", und das nur, weil es per rapid develpment umgebung jedem anfänger ermöglicht, irgendwie was zusammenzuschustern...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Mewes

  • Junior Mitglied
  • **
  • Beiträge: 58
  • Geschlecht: Männlich
Re: @If + @ Contains
« Antwort #21 am: 24.05.11 - 09:51:29 »
Zitat
Ich werde mich aber hier ausklinken, weil ich das Gefühl habe, dass dieses Forum Dir als billige Schulung dienen soll. Und auf diese weise Geld zu sparen ist sehr kurzsichtig, weil es dafür ein vielfaches kostet, den Ärger, den eine solche Herangehensweise beim Endanwender verursaxht, wieder gut zu machen.

Hi Tode. Schade... auch dass du mir soetwas unterstellst. Zu meiner Verteidigung kann ich nur sagen, dass wenn man wie ich keine Ahnung hat und kaum Unterstützung im direkten Umfeld, dann bleibt eben nur der Weg ins Forum. Wenn es etwas dreistes für dich darstellt, zu versuchen seine Unwissenheit in Foren zu besiegen, dann verstehe ich diese Art der Missgunst nicht und halte sie auch nicht für sonderlich förderlich.

Jeder fängt doch Mal irgendwo an. Imom fühl ich mich wie ein kleiner Junge, der am Kickertisch steht und die großen wollen ihn nicht mitspielen lassen. Und auch Tipps sind nicht drin, weil man noch nicht über die Tischkante schauen kann! Gemeinheit! :)

Ohne das Ganze ausufern lassen zu wollen und sich hier generell unbeliebt zu machen: Sei dir meines Dankes für deine Hilfe bisher absolut gewiss lieber Tode und lass dir ferner versichert sein, dass ich kein Geld habe, dass ich sparen könnte, indem ich mich hier umsonst rumtreibe...

Ich setzt mich jetzt an die DBlookup geschichte.

So far.
« Letzte Änderung: 24.05.11 - 11:28:52 von PeteM »
Don't do it! ... the cake is a lie! ...

"Viele Menschen sind zu gut erzogen, um mit vollem Munde zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun." (Oscar Wilde)

Offline VB3Bernd

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Männlich
  • Danke!
Re: @If + @ Contains
« Antwort #22 am: 24.05.11 - 11:26:02 »
Hallo Pete,
wenn ich mich mal hier einschalten dürfte ...

Es geht hier weniger um Dich, Du versucht Dich ja -so gut es eben geht- durchzuwursteln. Wenn ich es richtig verstanden habe, machst Du gerade eine Ausbildung und Dein Ausbilder hat Dich einfach mal so in kalte Wasser geworfen und Dich auf Lotus Notes losgelassen.

Da es sich aber um ein äußerst leistungsfähiges und komplexes System handelt, dass über zig Stellrädchen individuell auf sehr viele Bedürfnisse zugeschneidert werden kann, ist das die absolut falsche Herangehensweise.

Richtig wäre es, wenn Dein Ausbilder Geld in die Hand nehmen und Dir eine Grundausbildung in Lotus Notes zukommen zu lassen würde. Mit diesem Grundwissen könntest Du dann Probleme angehen und bei speziellen Sachen direkt Fragen bzw. gezielt die Forensuche bemühen.

Hier drin schreibt jeder zunächst einmal unentgeltlich und investiert Zeit, bekanntermaßen bedeutet für Selbständige Zeit = Geld ... dies sollte man einfach mal bedenken und in gewisser Weise auch honorieren, indem man nämlich nicht versucht auf Kosten anderer grundlegendste Grundlage per "try-and-error" zu erlernen.

Ich hoffe, Du verstehst, was ich damit ausdrücken will.

Bernd
SYSTEM
Domino 9.0.1 FP10 HF983
Client Win10 mit Notes 12.0.0
(Revision 20210514.0921)
Mail-Schablone 9.1.0 (20.03.18)
-----------------------------------
Man wird nicht zwischen Weihnachten und Neujahr dick, sondern zwischen Neujahr und Weihnachten! ;-)

Offline Peter Mewes

  • Junior Mitglied
  • **
  • Beiträge: 58
  • Geschlecht: Männlich
Re: @If + @ Contains
« Antwort #23 am: 24.05.11 - 11:46:10 »
Hallo Pete,
wenn ich mich mal hier einschalten dürfte ...

Es geht hier weniger um Dich, Du versucht Dich ja -so gut es eben geht- durchzuwursteln. Wenn ich es richtig verstanden habe, machst Du gerade eine Ausbildung und Dein Ausbilder hat Dich einfach mal so in kalte Wasser geworfen und Dich auf Lotus Notes losgelassen.

Gerne darfst du dich einschalten! Danke für die konstruktiven Worte. Die Ausbildung beginnt erst in zwei Monaten. Solange mache ich ein recht liberales Praktikum nach dem Motto: Schau dich um, mach dich vertraut. Eigentlich etwas, dass mir entgegen kommt.


Zitat
Da es sich aber um ein äußerst leistungsfähiges und komplexes System handelt, dass über zig Stellrädchen individuell auf sehr viele Bedürfnisse zugeschneidert werden kann, ist das die absolut falsche Herangehensweise.

Wie bist du denn damals in die Maschinerie gelang und wo hast du angefangen? Ich bin über JEDEN Tipp dankbar, der produktiv ist und meine Domino-kenntnisse erweitert.

Zitat
Richtig wäre es, wenn Dein Ausbilder Geld in die Hand nehmen und Dir eine Grundausbildung in Lotus Notes zukommen zu lassen würde. Mit diesem Grundwissen könntest Du dann Probleme angehen und bei speziellen Sachen direkt Fragen bzw. gezielt die Forensuche bemühen.

Ich bin felsenfest davon überzeugt, dass ich noch eine detaillierte Ausbildung genießen werde, imom ist aber recht viel los und ich bin quasi nur aus Kulanz schon da. Will niemanden zur last fallen und schonmal Vorwissen sammeln.

Habe absolut verstanden was du ausdrücken willst. Kann es auch nachvollziehen. Mein einziges Problem ist, dass ich Foren für "OpenSource" halte. Und mich stört es einfach, wenn sich Leute (egal wie gut sie auch sind, wie wichtig ihre Postings sein mögen und wie teuer ihre Zeit bezahlt ist...) unbedingt lautstark zum Ausdruck bringen müssen, dass Neulinge unwillkommen sind... dabei ist das Forum (zumindest Teilweise) genau dafür da und niemand ist verpflichtet etwas zu schreiben.

Es ist keine Seltenheit, dass man bereits nach dem ersten Posting in einem Forum keine Lust mehr hat, weil der Herr oder die Frau "Hausdrachen" sofort aus der Dominanz-Ecke gesprintet kommt um einen auf den Platz zu verweisen. :(

Aber ich halt die Ohren steif! Und wenn ich groß bin, dann werd ich der beste und tollste Dominorisierer aller Zeiten! :)

Peter

Ps.: Zurück zu meinem Problem. Ich habe nun:

eine View "vAdminView". In der ersten Spalte der view "Vorname, Nachname und Straße" ( via Formel: _vorname + " " +_name + " " + _straße ). Als Platzhalter erstmal " ", statt "#", da mir der Sinn der "#" noch nciht geläufig ist. Der übersicht wegen? Egal! Weiter.

Spalte zwei beinhaltet nun die UniqueID - wie von Peter Klett vorgeschlagen - des dokuments. -> (@Text (@DocumentUniqueID)) <-

Ich habe jetzt erstmal Versucht den Inhalt der ersten Spalte in ein Feld zu injizieren. Dafür habe ich einfach ein Feld ersttellt mit dem aussagekräftigen Namen: "einFeld". Feld ist berechnet, text. Ich habe schon verschiedene Varianten des DBLookups probiert, komme aber eigentlich immer an den Error: "Nicht genügend Argumente für @function".

Mein letzer Versuch war:

einFeld := @DbLookup("":"NoCache";"":"****.nsf";"vadminview"; check;"UniqueID");



Bitte keine Schelte. Ich muss mich damit einfach nochmal beschäftigen.
« Letzte Änderung: 24.05.11 - 14:02:41 von PeteM »
Don't do it! ... the cake is a lie! ...

"Viele Menschen sind zu gut erzogen, um mit vollem Munde zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun." (Oscar Wilde)

Offline VB3Bernd

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Männlich
  • Danke!
Re: @If + @ Contains
« Antwort #24 am: 24.05.11 - 11:58:02 »
Wie ich in die Maschinerie gelangt bin? Na genau so, wie ich es beschrieben habe. Ich durfte erst mal auf mehrere Seminare (Notes Administration, Notes Entwicklung 1 und 2, Notes Skript - Grundlagen). Den Rest habe ich mir dann aus der Hilfe und diesem Notes-Forum hier "zusammengeklaut".  ;)

Du tust Torsten (Tode) übrigens wirklich unrecht (und allen anderen Schreibern indirekt auch), wenn Du ihn als Hausdrachen beschimpfst, Du solltest Dich hier zurücknehmen und Deine Gefühle runterschlucken. So benimmt man sich nicht im Forum! Hier wird einem gern geholfen.

Dazu noch ein Zitat von Bernhard (koehlerbv) von heute Nacht:

"Die konstruktive Hilfe war das der Hinweis auf das systematische Herangehen und das Heranziehen von guter Literatur. Wenn wir bei einer Bruchstückaufgabe wiederum nur Bruchstücke zuliefern würden, nützt das doch keinem - der Gesamtzusammenhang bliebe ja unklar.

Über sorgfältige und respektvolle (also verständliche und leserliche) Fragestellung hatten wir hier schon genug Beiträge, ich werde das hier nicht wiederholen ausser "Wie es in den Wald hineinruft, so schallt es wieder heraus."
Man könnte sich ja wenigstens die Mühe geben, an den doch abzählbar erforderlichen Stellen die Umschalttaste zu drücken.

Deine Fragen sind hier sehr willkommen - dafür sind wir da, und einige Leute schreiben hier nicht aus Gag vier- oder fünfstellige Antwortzahlen.
Das Einlesen in die Grundlagen und das selbständige Denken können wir aber keinem abnehmen.

Und ganz wichtig: Wenn Du programmieren willst, dann übernimmst Du immer Verantwortung für andere (es sei denn, Du betreibst "softwaretechnologische Onanie" und willst Dir nur selber was zusammen schnitzen). Die Worte "probieren" und "irgendwie anfangen" u.ä. sind damit einfach tabu.

So, und jetzt lies, bilde Dich, investiere (Zeit) - und dann her mit Deinen konkreten Fragen. Nochmals: Wir helfen gerne!

Bernhard
"

Denk drüber nach bevor Du schreibst. (das ist ein netter gut gemeinter Rat ohne Moralzeigefinger)

Bernd

EDIT: Hier noch der Link zu Bernhards Eintrag:
http://atnotes.de/index.php/topic,51763.msg332764.html#msg332764
« Letzte Änderung: 24.05.11 - 12:00:11 von VB3Bernd »
SYSTEM
Domino 9.0.1 FP10 HF983
Client Win10 mit Notes 12.0.0
(Revision 20210514.0921)
Mail-Schablone 9.1.0 (20.03.18)
-----------------------------------
Man wird nicht zwischen Weihnachten und Neujahr dick, sondern zwischen Neujahr und Weihnachten! ;-)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: @If + @ Contains
« Antwort #25 am: 24.05.11 - 12:10:13 »

Ich bin felsenfest davon überzeugt, dass ich noch eine detaillierte Ausbildung genießen werde, imom ist aber recht viel los und ich bin quasi nur aus Kulanz schon da. Will niemanden zur last fallen und schonmal Vorwissen sammeln.

Habe absolut verstanden was du ausdrücken willst. Kann es auch nachvollziehen. Mein einziges Problem ist, dass ich Foren für "OpenSource" halte. Und mich stört es einfach, wenn sich Leute (egal wie gut sie auch sind, wie wichtig ihre Postings sein mögen und wie teuer ihre Zeit bezahlt ist...) unbedingt lautstark zum Ausdruck bringen müssen, dass Neulinge unwillkommen sind... dabei ist das Forum (zumindest Teilweise) genau dafür da und niemand ist verpflichtet etwas zu schreiben.

Es ist keine Seltenheit, dass man bereits nach dem ersten Posting in einem Forum keine Lust mehr hat, weil der Herr oder die Frau "Hausdrachen" sofort aus der Dominanz-Ecke gesprintet kommt um einen auf den Platz zu verweisen. :(

Aber ich halt die Ohren steif! Und wenn ich groß bin, dann werd ich der beste und tollste Dominorisierer aller Zeiten! :)

Peter

Niemand hat hier geschrieben, dass Neulinge unwillkommen sind.
Hier gibt es auch keine Hausdrachen (außer mir).

Bernhard und Tode haben nur klargestellt, wie dieses Forum funktioniert. Das ist doch netter, als wenn du einfach keine Antworten mehr bekommst, und nicht weißt warum?

Und ganz ehrlich: wenn du so am Anfang stehst, macht es durchaus Sinn, einmal z. B. die Unterlagen von Herdt zu kaufen und durchzugehen. Die sind preislich überschaubar, und in deinem Fall gut investiert.

Wenn Open Source für dich 'einfach konsumieren' heißt, dann ist dieses Forum definitiv kein 'Open Source'. Und ganz ehrlich, ich habe in der Zeit eine Menge Konsumenten hier erlebt und wenig Produzenten. Und die Konsumenten verweisen immer gerne auf den Anstand/ Ehre/ Solidarität (bel. Begriff einsetzen) der Produzenten.

Aber dieses Forum ersetzt keine grundsätzliche Ausbildung. Und es soll deinen Ausbilder auch nicht aus der Lehrverantwortung entlassen

Grüße

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: @If + @ Contains
« Antwort #26 am: 24.05.11 - 12:25:56 »
Aber ich halt die Ohren steif! Und wenn ich groß bin, dann werd ich der beste und tollste Dominorisierer aller Zeiten! :)
Super Einstellung, solche Leute brauchen wir!  ;)

Wenn Du niemandem zur Last fallen willst, solltest Du Dir vorhandene Datenbanken (am besten einfache) anschauen. Du kannst Dir einfach eine neue Datenbank (Anwendung) aus einer vorhandenen Schablone erstellen (die vorhandenen Schablonen werden im Dialog angezeigt). Darin solltest Du Dir die wesentlichen Grundbegriffe und -funktionen aneignen

Was ist eine Maske
Was ist ein Dokument
Was ist eine Ansicht
usw.

Wenn Du erst einmal den Unterschied zwischen Maske und Dokument verstanden hast, hast Du schon etliche "Entwickler" hinter Dir gelassen  ;D

Verändere einfache Dinge und schaue, was passiert. Lies auch die Hilfe, die finde ich in Notes wirklich gut gemacht.

Aber: Wenn Du wirklich gute Anwendungen entwickeln willst, solltest Du zuerst NICHT an das Entwicklungswerkzeug denken. Einen Prozess, der auf Papier nicht funktioniert, wirst Du mit keiner Software zum Laufen bekommen. Denke Dir also das, was Du umsetzen willst, papierhaft aus. Und dann erkläre jemanden, dass er das machen soll. Nichts anderes ist Entwicklung: Ein Prozess ausdenken und der Maschine so erklären, dass sie ihn so ausführt, wie Du es haben willst. Ein Computer ist schließlich auch nur ein Mensch.

In Deinem konkreten Fall sieht das z.B. so aus: Du hast verschiedene Karteikarten, auf denen Name, Vorname und Straße eingetragen wird. Du willst verhindern, dass eine Karte doppelt ausgefüllt wird. Deine bisherigen Versuche papierhaft beschrieben sehen so aus:

1. Erstelle eine Liste der Vornamen aus allen Karteikarten
2. Erstelle eine Liste der Nachnamen aus allen Karteikarten
3. Erstelle eine Liste der Straßen aus allen Karteikarten
4. Prüfe, ob der Vorname der neuen Karteikarte in der Liste der Vornamen enthalten ist
5. Prüfe, ob der Nachname der neuen Karteikarte in der Liste der Nachnamen enthalten ist
6. Prüfe, ob die Straße der neuen Karteikarte in der Liste der Straßen enthalten ist
7. Wenn alle Prüfungen 4. - 6. zutreffen, gibt es die Karte schon

Da ein Computer eher unkritisch alles tut, was man ihm sagt, wird er sich kaum wehren. Einem denkenden Menschen diesen Auftrag zu erteilen, könnte eine entsprechende Antwort nach sich ziehen. Auch die Akzeptanz in Hinsicht auf zukünftige Aufträge könnte stark leiden. Da ist das Arbeiten mit einem Computer wesentlich angenehmer, das Teil ist einfach nicht nachtragend.

Was ich sagen will: Denke erst darüber nach, was Du willst. Dann überlege Dir, wie Du es selbst machen würdest (ohne Rechner) und erst danach fange an, nach Methoden und Befehlen zu suchen, mit denen Dir die Maschine diesen Job abnehmen könnte. Wenn Du die Aufgabe nicht bewältigen kannst, kann es die Maschine auch nicht, sie kann es dann allerdings nur schneller nicht.

Und wenn Du dann Fragen (am besten konkrete) zu bestimmten Befehlen, Designelementen, Zusammenhängen usw. hast, wirst Du hier immer jemanden finden, der Dir hilft.  
« Letzte Änderung: 24.05.11 - 12:28:50 von Peter Klett »

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: @If + @ Contains
« Antwort #27 am: 24.05.11 - 12:38:53 »
Jetzt muss ich mich doch nochmal kurz einschalten:

Dir wurde MEHRFACH von den verschiedensten Leuten geholfen. Du hast Tipps bekommen, wie etwas geht, hast Hilfe bekommen zu den (wenigen) konkreten Fragen, sogar Code wurde für Dich korrigiert.

Für mich sah aber jede Deiner Antworten so aus, als hättest Du
a) Die Antworten nicht gelesen
oder
b) Die Antworten zwar gelesen, aber gar nicht erst versucht, zu verstehen, was dahinter steckt.

Ich stimme Dir zu, dass im normalfall Foren für jeden offen sind, und auch hier wird gerne jedem geholfen.

Im Lotus Notes Umfeld befinden wir uns aber nicht auf einer privaten Spielwiese, sondern im Business- Umfeld. Sehr viele, die hier antworten, verdienen ganz nebenbei Ihr Geld mit dem, worüber Sie hier schreiben.

Und diesen -ich rede jetzt mal ausdrücklich nur von mir, obwohl ich weiss, dass es auch andere hier gibt, die ähnlich denken- geht einfach die Hutschnur hoch, wenn man sieht, dass hier nach dem Trial & Error Prinzip Code produziert wird, der den Anwendern in kürzester Zeit um die Ohren fliegen wird.

Im übrigen haben wir nur versucht, Dich davor zu bewahren, die gleichen Fehler zu machen und in die selben Fallen zu tappen, in die viele von uns halt schon getappt sind. Gerade dieses "Ich prüfe auf doppelte..." ist ein solches Minenfeld, in dem man viel mehr falsch machen kann, als richtig... Eigentlich gibt es nur einen einzigen richtigen Weg, das zu tun (unabhängig davon, mit welchem Code man den dann umsetzt) aber sehr viele falsche... Und Du bist absolut auf dem falschen Weg.

Und nur mal so nebenbei: Dass ich Dir / Deiner Firma unterstelle, auf diese Weise um Schulungen / etc. herumzukommen, kommt schlicht und ergreifend aus der Erfahrung hier im Board. Dass Du nun die löbliche Ausnahme bist, konnte ich ja nicht wissen...

Trotz allem, auch wenn es mehrfach gesagt wurde:
Lies Dich erst mal ein - Die Designer- Hilfe ist ein super Einstiegspunkt (Einfach Datei -> Anwendung -> Öffnen -> Hilfe-Verzeichnis -> Lotus Domino Designer Hilfe, dann von oben anfangen (interessant wird es ab "Anwendungsgestaltung")
Auch die Herdt- Unterlagen kann ich nur jedem empfehlen (besonders die zum 3 tägigen Lotus Entwickler- Einsteiger- Kurs)

Dann fange an zu entwickeln... Denke nach... und wenn Du dann KONKRETE Fragen hast, bist Du jederzeit hier willkommen.

Nur die "Entwickler- Denke" bzw. das logische denken / systematische Herangehen an Funktionen können wir Dir nicht ersparen.

Gruss
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Peter Mewes

  • Junior Mitglied
  • **
  • Beiträge: 58
  • Geschlecht: Männlich
Re: @If + @ Contains
« Antwort #28 am: 24.05.11 - 13:58:24 »
Hallo!

Es tut mir leid, dass ich so unbeholfen war. Ferner tuts mir leid wenn ich wen zunahe getreten bin. Bin halt ne Mimose. Hoffe ich krieg trotzdem nochmal Hilfe, wenn ich nicht mehr ganz so grün bin. Kann man das so stehen lassen und alle sind glücklich? Wenn sich noch wer individuell angegriffen gefühlt hat, kann er dies gerne kund tun und ich entschuldige mich auch nochmal direkt!

Pete

Ps - falls noch wer liest:

Mein Problem im Moment: Ich habe eine Ansicht. 4 Spalten: Name, Vorname, Straße, UniqueID.
Er soll Spalte 1 auf den Fix-Namen "Melecay" testen und wenn vorhanden die Unique ID ( Spalte 4 ) ausgeben. Die @failures sind zur visuellen wahrnehmung ob irgendwas klappt.

@If(@DbLookup("":"NoCache";"":""; "vdoppelpreuf"; "Melecay";4; "") != 0 ; @Failure("name gefunden") ; @Failure ("nicht gefunden"))

Geht nicht. Nicht genug Argumente für @function. Jemand ne Idee und noch lust zu helfen?

« Letzte Änderung: 24.05.11 - 14:06:27 von PeteM »
Don't do it! ... the cake is a lie! ...

"Viele Menschen sind zu gut erzogen, um mit vollem Munde zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun." (Oscar Wilde)

klaussal

  • Gast
Re: @If + @ Contains
« Antwort #29 am: 24.05.11 - 14:07:47 »
Heisser Tipp:

Lies doch mal in der Designer-Hilfe ! Dort sind auch entsprechende Beispiele.

z.Bsp:
Zitat
@If( condition1 ; action1 ; condition2 ; action2 ; ... ; condition99 ; action99 ; else_action )

Zitat
@If(AreaCode<1000;@Success;@Failure("Area codes have only 3 digits"))

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @If + @ Contains
« Antwort #30 am: 24.05.11 - 14:08:33 »
Zur Formel:
Den letzten Parameter in dbLookup lass ganz weg.
Lies nach, was dbLookup zurückliefert. Besonders in Deinem Fall bestimmt nicht die Zahl 0. Dafür könnte es auch @Error zurückgeben.

@Failure kannst Du nur in der Eingabevalidierung verwenden. Du verwendest ihn gleich zweimal - das ist Quatsch. Statt @Failure ("Name gefunden") verwende Success.


Lies die Hilfe gründlicher. Was hast Failure auf deutsch?

Und das Konstrukt ist immer noch ungenügend. Schreib doch als erstes mal genau auf, was Du haben möchtest. Erst denken, dann Coden. In Deinem Fall kommt dann auch noch das *genaue* Lesen der DesignerHelp zu den verwendeten @functions dazu.

Bernhard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: @If + @ Contains
« Antwort #31 am: 24.05.11 - 14:21:32 »
Versuchst Du eigentlich auch mal, Deine Fehler selbst herauszufinden? Da sind wir wieder beim systematischen vorgehen...

1. Wo steht diese Formel? - @Failure funktioniert NUR in Eingabevalidierungen, sonst NIRGENDS
2. @DBLookup fängt man IMMER mit @IsError ab, sonst hat man ganz schnell Probleme

Dein Fehler liegt aber -höchst wahrscheinlich- im nicht angegebenen letzten Parameter: Entweder DU füllst Ihn mit einem Wert, den er erwartet, also zum Beispiel [FAILSILENT], oder Du lässt ihn weg.

So sähe ein sauberer DBLookup aus, den man dann auch noch warten kann:
Das ganze in einer Feldvalidierung...

viw := "vdoppelpreuf";
crit := "Melecay";
col := 4;
lkp := @DBLookup( "" : "NoCache" ; "" ; viw ; crit ; col );
res := @If( @IsError( lkp ) ; "" ; lkp );

@If( res != @Text( @DocumentUniqueID ) ; @Failure( "Name gefunden" ) ; @Success );

Im übrigen kann ich Bernhard nur erneut recht geben: Geh nicht blind an so ne Sache ran, sondern systematisch...

Von Systematik ist bei Dir momentan nichts zu erkennen...

Wenn Du es schon nicht schaffst, in einem Einzeiler einen Fehler zu finden, dann wirst Du in der Programmierung keine Zukunft haben...
Und das hat nichts mit der verwendeten Programmiersprache / ENtwicklungsumgebung zu tun, sondern ist allgemeingültig.
Entschuldige, dass ich so hart sein muss, aber so sehe ich das aktuell...

Gruss
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: @If + @ Contains
« Antwort #32 am: 24.05.11 - 14:49:37 »
Ist ja interessant, hier mit zu lesen. Da lernt man doch gleich dazu.


Aber das hier versteh ich nicht:


@If( res != @Text( @DocumentUniqueID ) ; @Failure( "Name gefunden" ) ; @Success );


Wenn der @IsError greift, ist res doch null leer und damit wäre doch in diesem IF der Name NICHT gefunden ???


Gruß

Geri

Offline Peter Mewes

  • Junior Mitglied
  • **
  • Beiträge: 58
  • Geschlecht: Männlich
Re: @If + @ Contains
« Antwort #33 am: 24.05.11 - 14:52:46 »
Hallo Bernhard,

Zur Formel:
Den letzten Parameter in dbLookup lass ganz weg.

So sei es.

Zitat
Lies nach, was dbLookup zurückliefert. Besonders in Deinem Fall bestimmt nicht die Zahl 0. Dafür könnte es auch @Error zurückgeben.

@DbLookup looks up a specified value in the first sorted column of a specified view in a specified database. For each document that matches the search value, @DbLookup returns the value of a specified field on the document or column in the view.

Zu Deutsch Er sucht einen Bestimmten Wert ( in meinem Fall Melecay?), in der erstern sortierten Spalte ( in meinem Fall Name ), Findet er den Namen Melecay, gibt er den Wert der Spalte 4 aus ( in meinem Fall Unique ID ). WENN dieser ausgabewert nicht 0 ist ( also er einen Namen und damit dann auch einen Wert aus Spalte 4 gefunden hat ), DANN soll er mich darüber informieren, auch bei anderer Variante.

Zitat
@Failure kannst Du nur in der Eingabevalidierung verwenden. Du verwendest ihn gleich zweimal - das ist Quatsch. Statt @Failure ("Name gefunden") verwende Success.

Oright!

Zitat
Lies die Hilfe gründlicher. Was hast Failure auf deutsch?

So glaube man mir doch, dass ich die DBlookup rauf und runter gelesen habe. Und bitte nehme man mein momentanes Unverständnis nicht als direkten Beleg für meine generelle Unzulänglichkeit! ;( Ps.: Failure = Fehlschlag / Misserfolg

Zitat
Und das Konstrukt ist immer noch ungenügend. Schreib doch als erstes mal genau auf, was Du haben möchtest. Erst denken, dann Coden. In Deinem Fall kommt dann auch noch das *genaue* Lesen der DesignerHelp zu den verwendeten @functions dazu.

Ich tu' mein bestes. Und deshalb tu ich mir noch ein paar Mal die @functions rein. Was ich machen will? ( vorerst ): In einer Ansicht, soll der fixe Name ( Melecay) gesucht werden. Wenn gefunden soll der Spaltenwert der UniqueID ausgegeben werden. Der UniqueID-Wert wird dann als Kontrollwert benutzt, ob der Name bereits vorhanden ist.

Soweit der Plan.

« Letzte Änderung: 24.05.11 - 15:02:15 von PeteM »
Don't do it! ... the cake is a lie! ...

"Viele Menschen sind zu gut erzogen, um mit vollem Munde zu sprechen, aber sie haben keine Bedenken, es mit leerem Kopf zu tun." (Oscar Wilde)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: @If + @ Contains
« Antwort #34 am: 24.05.11 - 14:56:24 »
Ach menno... Das sollte Pete doch selbst rausfinden ;-).

Du hast natürlich recht... Die Zeile müsste korrekt heissen:

@If( res != @Text( @DocumentUniqueID ) & res != "" ; @Failure( "Name gefunden" ) ; @Success );

Danke fürs aufpassen...

Tode

@Pete: Wenn in Spalte 4 eine DocumentUniqueID steht, dann ist das ein Text.... wenn Du diesen jetzt mit einer Zahl (0) vergleichst, dann geht das ebenfalls schief...

Und meine Formel ist nichts anderes als Deine, nur dass die einzelnen Parameter in Variablen rausgezogen wurden und ein Errorhandling mit angefügt wurde... Diese Formel solltest Du schon lesen und auch verstehen können...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: @If + @ Contains
« Antwort #35 am: 24.05.11 - 15:24:04 »

Danke fürs aufpassen...

Aufpassen wollte ich gar nicht, nur verstehen. ;)

Wobei mir nicht wirklich klar ist, warum man da noch die UNID vergleichen muss...

« Letzte Änderung: 24.05.11 - 15:29:59 von smokyly »
Geri

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: @If + @ Contains
« Antwort #36 am: 24.05.11 - 15:33:31 »
Wobei mir nicht wirklich klar ist, warum man da noch die UNID vergleichen muss...
Wenn das Dokument schon gespeichert wurde, und die Überprüfung noch einmal läuft, findet sich das Dokument selbst und sollte das auch erkennen, sonst wird das Speichern verhindert, weil der Schlüssel schon existiert, allerdings im gleichen Dokument, und das wär doch blöd, oder?

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: @If + @ Contains
« Antwort #37 am: 24.05.11 - 15:34:33 »
du willst nicht das 'eigene Dokument' sperren

Wenn du Tom Müller schon angelegt hast, und bearbeitest dieses Dokument nochmals, könntest du es niemals mehr abspeichern.

du willst nur verhindern, dass ein neues Dokument mit 'Tom Müller' angelegt wird
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: @If + @ Contains
« Antwort #38 am: 24.05.11 - 15:37:17 »
du willst nur verhindern, dass ein neues Dokument mit 'Tom Müller' angelegt wird

Nicht ganz vollständig, Anita: Jemand kann "böse" sein und legt ein neues Dokument mit dem Namen Niegehört Gibtesgarnicht an und speichert es (erfolgreich).

Dann editiert er das Dokument noch einmal und ändert den Namen in Tom Müller.

Es geht also nicht nur um neue Dokumente.

Bernhard

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re: @If + @ Contains
« Antwort #39 am: 24.05.11 - 15:39:38 »
Wenn das Dokument schon gespeichert wurde, und die Überprüfung noch einmal läuft, findet sich das Dokument selbst und sollte das auch erkennen, sonst wird das Speichern verhindert, weil der Schlüssel schon existiert, allerdings im gleichen Dokument, und das wär doch blöd, oder?

 :-X :-[

Ich geh ma in die Ecke....

Danke Dir für die Erklärung!

Geri

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz