Autor Thema: Wert in Maske nur dann anzeigen, wenn true  (Gelesen 2038 mal)

schmidti88

  • Gast
Wert in Maske nur dann anzeigen, wenn true
« am: 24.02.09 - 09:41:10 »
Hallo!
Bin nun schon um einiges weiter gekommen in meiner Geburtstagsdatenbank!

Möchte nun noch eine Ansicht haben, in der nur dann die Werte drin stehen, wenn der Anweder auch wirklich Geburtstag hat!

Dazu habe ich mir eine neue Ansicht gebaut!
2 Spalten mit Name und Geburtstag!

Dann habe ich Ansichtsauswahl folgende Formel nach Anleitung von http://atnotes.de/index.php/topic,18203.0.html eingebaut!

Trotz allem funktioniert es leider nicht!

Meine Formel lautet:
Code
SELECT ((Form = "Geburtstag"));
Code
_anzeigen := @False;
_verbergen := @True;
@If(
   @Day(GeburtstagDatum)=@Day(@Now))&((@Month(GeburtstagDatum)=@Month(GeburtstagDatum)=@Month(@Now)); _anzeigen;
  _verbergen
)


Könnt ihr mir bitte nochmal helfen? Wäre sehr nett?

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Wert in Maske nur dann anzeigen, wenn true
« Antwort #1 am: 24.02.09 - 09:43:06 »
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

schmidti88

  • Gast
Re: Wert in Maske nur dann anzeigen, wenn true
« Antwort #2 am: 24.02.09 - 09:45:52 »
sry, dass ich schon wieder was vergessen habe :(

also funktionieren tut folgendes nicht:
in der anzeige wird trotz oben genannter formel alle einträge angezeigt!
- normalerweise dürfte er nur max mustermann anzeigen, der am 24.02. geburtstag hat!
- nicht aber martina mustermann, denn die hat am 24.08. geburtstag
- oder manuela mustermann, denn der habe ich den 11.11 als geburtstag gegeben!

Habe also 3 Beispiele in meiner Datenbank!
nur 1x davon darf heute angezeigt werden!

Offline Felix Ziegler

  • Aktives Mitglied
  • ***
  • Beiträge: 122
Re: Wert in Maske nur dann anzeigen, wenn true
« Antwort #3 am: 24.02.09 - 10:00:25 »
ohne die Formel ein wenig zu "pimpen" ... und ohne das Jahr zu berücksichtigen...

Code
SELECT @if(
  (Form = "Geburtstag") &
  (@Day(GeburtstagDatum)=@Day(@Now)) &
  (@Month(GeburtstagDatum)=@Month(@Now)) ; @True
  @False
);

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: Wert in Maske nur dann anzeigen, wenn true
« Antwort #4 am: 24.02.09 - 10:04:23 »
Das wirst du so nur bedingt geregelt bekommen, denn was du brauchst ist eine "dynamische" Ansicht und eben genau das kann Notes nicht.

Eine saubere Alternative auf die Schnelle wäre folgendes: Du baust die einen periodischen Agenten der einmal am Tag (z.B. um 3:00 Uhr) alle Dokumente durchgeht und bei den heutigen Geburtstagkindern ein verstecktes Feld (waqs da z.B. HeuteGeburtstag heisst) auf 1 setzt. Diese Feld wertest du in deiner Ansichtenformel aus.

So z.B.  SELECT Form = "Geburtstag" & HeuteGeburtstag = 1;

Axel

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

schmidti88

  • Gast
Re: Wert in Maske nur dann anzeigen, wenn true
« Antwort #5 am: 24.02.09 - 10:07:39 »
hhm, sry! verstehe ich so nicht ganz!
ok, das mit dem agenten und form schon!

aber das was "Felix Ziegler" gepostet hat, funtioniert so

Code
SELECT @if(
  (Form = "Geburtstag") &
  (@Day(GeburtstagDatum)=@Day(@Now)) &
  (@Month(GeburtstagDatum)=@Month(@Now)) ; @True;
   @False;);

ganz gut!

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: Wert in Maske nur dann anzeigen, wenn true
« Antwort #6 am: 24.02.09 - 10:11:50 »
Schon, aber sauber ist das nicht. @Now sollte aus Performancegründen in Ansichtenformel nicht verwendet werden.

Auszug aus der Hilfe:
Durch die Verwendung von @Now in Spalten- oder Auswahlformeln kann die Verarbeitungsgeschwindigkeit Ihrer Anwendung verringert werden. Außerdem verursacht diese Funktion, dass permanent das Symbol für die Ansichtsaktualisierung erscheint.

Das war hier im Forum auch schon öfters ein thema.

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

schmidti88

  • Gast
Re: Wert in Maske nur dann anzeigen, wenn true
« Antwort #7 am: 24.02.09 - 10:12:47 »
achso! hhm, ok!
dann suche ich nochmal nach einer anderen lösung!

Offline Felix Ziegler

  • Aktives Mitglied
  • ***
  • Beiträge: 122
Re: Wert in Maske nur dann anzeigen, wenn true
« Antwort #8 am: 24.02.09 - 10:20:53 »
Hab ich ja geschrieben... ohne zu "pimpen". Es kann bei mehreren Dokumenten echt langsam werden!

Aber die Formel lässt sich ein wenig abwandeln, wenn du sie in einen Agenten packst, der auf alle Dokumente in der Datenbank läuft ...

Code
@if(
  (Form = "Geburtstag") &
  (@Day(GeburtstagDatum)=@Day(@Now)) &
  (@Month(GeburtstagDatum)=@Month(@Now)) ; @SetField("HeuteGeburtstag", "1");
  @SetField("HeuteGeburtstag", "0")
);

edit:
Aber auch das gillt es zu überdenken, weil jeden Tag alle Dokumente der Datenbank aktualisiert werden ...

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Wert in Maske nur dann anzeigen, wenn true
« Antwort #9 am: 24.02.09 - 10:32:21 »
Schon, aber sauber ist das nicht. @Now sollte aus Performancegründen in Ansichtenformel nicht verwendet werden.

Auszug aus der Hilfe:
Durch die Verwendung von @Now in Spalten- oder Auswahlformeln kann die Verarbeitungsgeschwindigkeit Ihrer Anwendung verringert werden. Außerdem verursacht diese Funktion, dass permanent das Symbol für die Ansichtsaktualisierung erscheint.


Vielleicht noch eine Anmerkung dazu Axel.

Bei vielen Dokumenten in der Datenbank .....

ein @Now bei 200 Dokumenten in der DB die von allen die es verwenden gelesen werden dürfen tut nicht wirklich weh.

Das Ganze im Adressbuch der IBM das ein paar mehr Einträge umfasst. JA da macht es dann AUA.
« Letzte Änderung: 24.02.09 - 10:34:53 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz