Autor Thema: Leere Einträge ausfiltern  (Gelesen 4563 mal)

Offline zulp

  • Frischling
  • *
  • Beiträge: 11
Leere Einträge ausfiltern
« am: 11.06.06 - 18:19:22 »
Hallo,

ich habe folgendes Problem.
Ich möchte per @Functions eine Liste aus einer View auslesen, was soweit auch kein Problem ist. Nur bekomme ich ein Error, wenn in dieser View ein Leereintrag dabei ist.
Weis jemand wie ich dies schnell ausfiltern kann?
thx

ascom40

  • Gast
Re: Leere Einträge ausfiltern
« Antwort #1 am: 11.06.06 - 18:53:58 »
Hallo Zulp,

komischen Namen hast du, spielst du bei Togo oder sowas  ;D

wissen bestimmt ein paar hier, ich glaub auch: @If(@IsError(Deine @Formel); "";Deine @Formel).

Wenn deine Formel einen Error liefert, wird nichts zurückgegeben, wenn deine Formel keinen Fehler liefert, wird als Rückgabewert das Ergebnis genau dieser Formel geliefert.

Lässt sich auch noch eleganter ver@formeln, aber in der Eile. Änderungen der eigentlichen Formel musst du nach dem Verfahren eben zweimal identisch durchführen.

Grüße
Jo

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leere Einträge ausfiltern
« Antwort #2 am: 11.06.06 - 19:12:06 »
Zwei Anmerkungen:

@"Zulp": Wie sind Deine bisheriige Formel aus, und warum sollten leere Einträge Probleme machen? Bitte genaueres ...

@Como: Da hast Du aber so ziemlich das grösste No-No der Notes-Programmiererei zitiert - warum sollte man erst mit einer Formel auf Fehler testen und diese dannach nochmals ausführen?

Bernhard

Offline zulp

  • Frischling
  • *
  • Beiträge: 11
Re: Leere Einträge ausfiltern
« Antwort #3 am: 11.06.06 - 19:27:30 »
meine derzeitige formel ist:

IDNumber:=@Max(@Right(@DbColumn( "Notes" : "NoCache" ;"" :"" ; "view1" ; 2);4 )) ;
IDNumber := @TextToNumber(IDNumber)+1 ;
IDBegin := @Left(@DbColumn( "Notes" : "NoCache" ;"" :"" ; "view1" ; 1);4 );
IDBegin := @Text(IDBegin);
IDNumber:= IDBegin + @Text(IDNumber);
IDNumber

das ganze soll zuerst aus einer view in column 2 eine vorhandene ID auslesen die ca so ausseiht: ABCD0001 und da noch per Hand eingetragen wurde.
Und dann aus Column 1 eine Kategorie und das dann zusammenpacken.
Nun habe ich allerdings ein Dokument in der Liste, was an der Stelle wo IDNumber seine Daten ausliest keinen Eintrag hat und bekomme etwas in der Art von DATE@ERROR.

Ich möchte also irgendwie diese @Errors, bei leeren Feldern in der View, vermeiden.
« Letzte Änderung: 11.06.06 - 19:32:51 von zulp »

ascom40

  • Gast
Re: Leere Einträge ausfiltern
« Antwort #4 am: 11.06.06 - 19:58:34 »
@Bernhard,

Zitat
warum sollte man erst mit einer Formel auf Fehler testen und diese dannach nochmals ausführen?

das hatte ich doch geschrieben?! Aber ich wusste, dass dein Kommentar kommt...

Mach du bitte weiter...musst wohl jetzt Zeit haben, vor meinem Kommentar hattest du vielleicht keine  ;)

@Zulp: Berhard hilft immer gern

Jo
« Letzte Änderung: 11.06.06 - 20:03:37 von @como »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leere Einträge ausfiltern
« Antwort #5 am: 11.06.06 - 20:26:14 »
Jo, jetzt habe ich wieder Zeit (was sollte man auch im Zug anderes machen  ;D)  vorhin im Flachgau war aber magerer Empfang, jetzt zwischen Linz und Wien sollte es wieder gut funktionieren.

Der Fehler rührt von der Verwendung von Funktionen her, die Zahlen als Parameter erwarten. Ein Weg, dass zu vermeiden, wäre, aus den Listen, die man mit @dbColumn erhält, mit @Replace die Leerstrings mit einer 0 zu ersetzen (was ja sicherlich in diesem Kontext auch logisch korrekt ist).

Was meine Kritik an der zweimaligen Ausführung des Performance-fressenden @dbLookups (das meintest Du doch, Como?) angeht: Man sollte das Ergebnis von @dbLookup prüfen und verwenden - oder eben nicht. Aber nicht im Erfolgsfalle @dbLookup erneut ausführen.

Bernhard

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leere Einträge ausfiltern
« Antwort #6 am: 11.06.06 - 22:49:32 »
By the way: Der einfachste Weg dürfte sein, wenn Du Deine View "view1" dazu bringst, nur gültige Werte anzuzeigen:
In den Spalten, in denen Deine Formel einen Wert erwartet, prüftst Du auf numerische Werte:
@If (@IsNumber (DeinFeldName); DeinFeldName; 0)

Damit wird Dir in dieser Spalte auf jeden Fall ein numerischer Wert angezeigt.

Tipp: Da Du diese Ansicht programmatisch verwendest, solltest Du unbedingt diese Ansicht verstecken und damit (zumindest Dir und den Nachfolgeprogrammierern) signalisieren: "Achtung - hier nichts ändern! Diese Ansicht wird durch Formeln / LotusScript or whatever verwendet!

Dir bleibt natürlich unbenommen, wie oben beschrieben auch die erhaltenen Listen von Leerstrings zu bereinigen.

Bernhard (wieder in Wien angekommen - während der Zugfahrt war der UMTS-Empfang heute ausnahmsweise mal grottenschlecht, keine Ahnung, warum ...)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leere Einträge ausfiltern
« Antwort #7 am: 11.06.06 - 23:06:51 »
Noch ein Nachtrag: Du willst da aber nicht sowas wie eine fortlaufende Nummer mit Notes bauen? Das dürfte nämlich in die Hose gehen, wenn man da zu blauäugig herangeht - Notes ist für sowas (wenn man nicht bestimmte stringente Wege einschlägt) von der Philospophie her nicht geeignet. Die mehrfache Vergabe von Nummern ist bei Notes faktisch vorprogrammiert.

Wenn Du doch fortlaufende Nummern erzeugen willst: Benutze die Suchfunktion des Forums und verwende folgende Suchbegriffe (nacheinander!): "fortlaufend" bzw. "sequentiell". Es gint interessante und sicher für Dich sehr aufschlussreiche Diskussionen hierzu.

Bernhard

Offline zulp

  • Frischling
  • *
  • Beiträge: 11
Re: Leere Einträge ausfiltern
« Antwort #8 am: 11.06.06 - 23:09:22 »
das soll sowas werden, ja aber es ist egal wenn etwas durch replizieren doppelt wird oder so...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leere Einträge ausfiltern
« Antwort #9 am: 11.06.06 - 23:12:47 »
Ist zwar seltsam, wenn das egal ist, aber wenn dem so ist, soll es eben so sein. Nur eine "fortlaufende Nummer" ist es dann halt nicht mehr und eigentlich nix mehr wert.

Bernhard

ascom40

  • Gast
Re: Leere Einträge ausfiltern
« Antwort #10 am: 12.06.06 - 20:16:24 »
seltsam vielleicht,

Bernhard, ich hab nix von @DBLookup geschrieben. Ich schrieb von @Formula allgemein. DBLookup würde ich persönlich ebenfalls nicht doppelt ausführen, manche andere Formel schon, wobei ich ab der zweiten @Formula-Zeile eh auf Script wechsle...

Wollte schweigen, manches kotzt mich aber trotz WM an! 

Ciao
Jo

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leere Einträge ausfiltern
« Antwort #11 am: 12.06.06 - 23:41:06 »
Jo,
Du hast wahr und hast nix von @dbLookup geschrieben, nur lief es ja darauf hinaus. Bitte entschuldige, wenn das jetzt nach einem persönlichen "Angriff" aussah - das war wirklich nicht so gemeint, ist jetzt aber schwer rückgängig zu machen oder richtig zu stellen.

Auch wenn ich derzeit Angst habe, eine Fischdose aufzumachen und mir dann wieder WM-"Werbung" entgegengrinst: Sieh das locker mit der WM, Jo. Der Spass / Wahnsinn / Hype / Werbungsterror ist in drei Wochen wieder vorbei.
Hier in Österreich ist das sowieso wesentlich ruhiger (warum nur  ;)), und am Wochenende @home hab' ich an manchen Spielen sogar Gefallen (zumindest, weil es meine fussballbegeisterte Frau freut  :))

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz