Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: michael-r am 31.03.08 - 13:39:28

Titel: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 31.03.08 - 13:39:28
Hi,

ich wollte mal etwas probieren.
Ansicht:
SELECT DocType *= "CalendarEntry" & !(Deleted != "")
Das ist die Abfrage für die Ansicht, ich möchte aber nur die Dokumente wo im Betreff Feld "Subject" Urlaub drin steht. Im Subject steht Name, Betreff und Ort.

Es gibt ja so etwas:
(navigator.appName.search(/Lotus Notes/) < 0)
Gibts es das auch in der Formelsprache?

MFG Michael
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: m3 am 31.03.08 - 13:43:41
... & @Contains( Subject ; "Urlaub" )


Oder so. ;)
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 31.03.08 - 13:50:33
Danke das geht wunderbar :).

MFG Michael
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 01.04.08 - 11:47:12
weiss jemand wie ich Monate richtig anordne in einer View ???

_months := "Januar|1" : "Februar|2" : "März|3" : "April|4" : "Mai|5" : "Juni|6" : "Juli|7" : "August|8" : "September|9" : "Oktober|10" : "November|11" : "Dezember|12";
_month := @Replace (@Text (@Month (CalendarDateTime)); @Word (_months; "|"; 2); @Word (_months; "|"; 1));
_month

Die Termine sind kategoriesiert nach Jahr > Monat

MFG Michael
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: koehlerbv am 01.04.08 - 12:04:48
Lass den Kokolores mit den Aliaswerten weg. Und setze eine (verborgene, sortierte) Spalte mit @Month vor Deine Monatsspalte.

Bernhard
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 01.04.08 - 12:18:04
Hm ja sowas ähnliches hab ich, allerdings habe ich dann das Problem, dass das für jedes Dokument zählt:

_month := @Text(@Month(CalendarDateTime));
@If (@Length(_month) < 2; @Set("_month"; "0" + _month); "");
@Text (@Year (CalendarDateTime)) + _month

So hat man dann z.B wenn mehrere Termine im Mai sind auch Mai 5 mal drin stehen oder so ;).

Achso der Code ist nicht von mir, ich suche auch noch Hilfe + Internet wie man das evt lösen kann.

MFG Michael
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: koehlerbv am 01.04.08 - 12:23:07
Lies bitte nochmal ganz genau, was ich geschrieben habe. Ich schrieb auch nichts von einer Kategorisierung ...

Bernhard
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 01.04.08 - 12:40:12
Wenn ich keine Kategorie angebe, habe ich keinen Monat als Kategorie? Und wenn ich eine Kategorie angebe, habe ich doppelte Einträge.

Hm....
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: koehlerbv am 01.04.08 - 12:42:23
Jetzt beschreibe bitte mal, wie Deine erste (verborgene) und Deine zweite (kategorisierte Monats-)Spalte aufgebaut sind ...

Bernhard
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 01.04.08 - 13:09:42
Erste Spalte ist Jahr:
@Text(@Year(CalendarDateTime))
Kategorie und aufsteigend sortiert.

Zweite Spalte ist:
@Month(CalendarDateTime)
Verborgen und aufsteigend

Dritte Spalte ist noch:
_months := "Januar|1" : "Februar|2" : "März|3" : "April|4" : "Mai|5" : "Juni|6" : "Juli|7" : "August|8" : "September|9" : "Oktober|10" : "November|11" : "Dezember|12";
_month := @Replace (@Text (@Month (CalendarDateTime)); @Word (_months; "|"; 2); @Word (_months; "|"; 1));
_month

Aufsteigend.
So ergibt das folgendens:
Jahr
:::: Dokument
:::: Dokument
:::: Dokument
Jahr
:::: Dokument
:::: Dokument
:::: Dokument

Ich es eigentlich so, weil ich denke das es übersichtlich ist.
Jahr
:: Monat
:::: Dokument
:::: Dokument
Jahr

usw.

Wenn ich die dritte Spalte kategorisiere ergibt das, das:
Jahr
:: Mai
:::: Dokument
:: Mai
:::: Dokument
:: Juni
:::: Dokument
:: Juni
:::: Dokument
Jahr

Ich glaub das krieg ich aber nicht hin.... Ich lass das so und versuche mir einfach die ersten 3 Buchstaben der Monate vor dem Dokument anzeigen zu lassen.

MFG Michael
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: cebolina am 01.04.08 - 14:46:05
Ich mach das immer so:

1. Spalte (kategorisiert und aufsteigend sortiert)
@Year(Datum)

2. Spalte (verborgen und aufsteigend sortiert)
@Month(Datum)

3. Spalte (kategorisiert und aufsteigend sortiert)
monat := @Select(@Month(Datum) ; "Januar" ; "Februar" ; "März" ; "April" ; "Mai" ; "Juni" ; "Juli" ; "August" ; "September" ; "Oktober" ; "November" ; "Dezember");
monat


Gruß
Stefan
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: koehlerbv am 01.04.08 - 14:49:16
Und das ist auch vollkommen korrekt so, Stefan.

Bernhard
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 01.04.08 - 14:55:18
Hm kann das an der Art liegen wie ich die Dokumente auswähle?

SELECT DocType *= "CalendarEntry" &  (@Contains( Subject ; "Urlaub" ) | @Contains( Subject ; "URLAUB" ))
& !(Deleted != "")

Ich hab cebolina Code probiert aber genauso wie vorher.
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: DerAndre am 01.04.08 - 15:00:34
Das

(@Contains( Subject ; "Urlaub" ) | @Contains( Subject ; "URLAUB" ))
( Sorry, die hälfte vergessen )

würde ich vereinfachen:

@Contains( @UpperCase(Subject) ; "URLAUB" )

und was ist das:

!(Deleted != "" )

doppelte Verneinung?
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: cebolina am 01.04.08 - 15:02:42
Check mal in den Spalteneigenschaften den internen Namen (letzter Reiter) - der muss eindeutig sein. Beim kopieren von Spalten kann da schonmal was durcheinander geraten.

Gruß Stefan
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: cebolina am 01.04.08 - 15:10:07
... und was macht eigentlich *= in der Selektion? würde nicht ein einfaches '=' reichen?
Zitat
SELECT DocType *= "CalendarEntry" ...

Gruß Stefan
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 01.04.08 - 15:17:43
Danke, Andre habe das auch mal vereinfacht ;).

der interne Name ist eindeutig.
Warum das so geschrieben "DocType *= "CalendarEntry" " kann ich dir leider nicht sagen, aber das zieht sich so durch alle DBs, also von daher übernehm ich das so ;).

!(Deleted != "" )  wenn das Dokument nicht zum löschen makiert ist denk ich mal? Ansonsten s.o ;).
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: m3 am 01.04.08 - 15:39:54
*= ist ein "Permuted equal"

Aus der Designer-Hilfe, Kapitel "Operations on Lists":

Zitat
Permutation operators act on two lists, pairing every possible combination of their values. The resulting list has an element for each pairing in the following order: list 1 element 1 paired with each element in list 2, list 1 element 2 paired with each element in list 2, and so on through the last element in list 1.
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: cebolina am 01.04.08 - 15:46:10
Hallo Martin,

Zitat
*= ist ein "Permuted equal"
Aus der Designer-Hilfe, Kapitel "Operations on Lists":

das habe ich auch gelesen. Ich frage mich nur, ob ein einfaches '=' im Zusammenhang mit der genannten Ansichtsauswahl nicht sinnvoller ist  ???

Gruß Stefan
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: m3 am 01.04.08 - 15:47:47
Das wird wohl davon abhängig sein, ob bei DocType Mehrfachwerte zugelassen sind, oder nicht.
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: koehlerbv am 01.04.08 - 15:53:35
"*=" ist der Permutationsoperator. Sinn macht der nur beim Vergleich mit Listen. Bei skalaren Werten wie in der gegebenen Formel schadet er aber natürlich nicht - also egal ...

Bedenklich finde ich aber dieses "das ist so bei allen DBs ...". Das ist keine Aussage. Was bisher so war, muss nicht gut sein.
Weiters:
Zitat
!(Deleted != "" )  wenn das Dokument nicht zum löschen markiert ist denk ich mal?
Mit "denke ich mal" kann man nicht programmieren. "Deleted" ist ein Item, was in einem Notes-Dokument erwartet wird und was hier leer sein soll. Mit zum "Löschen markiert" kann das bestenfalls mittelbar zu tun haben - wenn es entsprechend programmiert werden. Und Negation der Negation ist zwar wie "*=" auf skalare Werte erlaubt, aber dumm, weil unleserlich / verwirrend.

Entscheidend jedoch: Die Ansichtsauswahlformel hat mit dem Problem der korrekten Monatssortierung nicht und überhaupt gar nichts zu tun.

Bernhard
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 01.04.08 - 16:07:00
sorry, ich habe beim programmieren von Notes so gut wie keine Ahnung.

Ich wollte mir nur eine Ansicht in unserem Teamkalender bauen wo man den Urlaub als Zeitstrahl sieht.

Und Ansichten habe ich schon einige erstellt, nur da war meistens wenige Formeln relevant die ich mir zusammengesetzt habe.


Kann es am Aufbau der Dokumente liege?

MFG Michael

Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: koehlerbv am 01.04.08 - 16:11:32
Kann es am Aufbau der Dokumente liege?

Nein, es liegt nach wie vor an Deinen Spaltenformeln / Deinem Ansichtsaufbau.

Bernhard
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 01.04.08 - 16:16:45
Hm ich habe den Code doch zu Stefans Code geändert.

ich schau nochmal.

Edit: wenn ich die 2 Spalte auch sortieren und kategorisieren lasse, dann ist es korrekt, nur sieht halt etwas komisch aus, wegen der Zahlen für die Monate.
MFG Michael

Edit2...
ehm ... Nachdem ich nun nochmal die Eigenschaften durch gegangen bin der 2 Spalte, und die Kategorien gesetzt habe und das Pfeilsymbol, sichtbar... ging es ja.
Nun habe ich für die Spalte Größe änderbar, Kategorien, Pfeilsymbol entfernt, und Spalte verborgen und es geht.
Ich schwöre ich habe die ganze Zeit shift+F9 sowie DB geschlossen und geöffnet. (kal2.jpg)
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: flaite am 01.04.08 - 21:49:06
Du kannst die Spalte mit den Zahlen ja per Eigenschaftsbox für die column verbergen.
Die Sortierung greift dann immer noch.
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 02.04.08 - 08:24:11
Siehe Edit2 ;).

Hatte ich ja eigentlich getan... nur da hat die Sortierung nicht so wie vorher funktioniert. Weiss nicht woran das gelegen hat.

MFG Michael
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 03.04.08 - 12:23:28
Wie bekomme ich ein Zeichen "|" in Schwarz und weissem Hintergrund hin?

@If(@Day(EndDate)=1|@Day(StartDate)=1|(@Day(StartDate)<1&@Day(EndDate)>1);"092A57" : "092A57" ;"FFFFFFF" : "FFFFFF")

also ein paar sachen hatte ich versucht wie:
"|" : "FFFFFF" ;"000000" : "000000"

Dann hatte ich mir überlegt mach ich eine Spalte in Schwarz wenn EndDate oder StartDate dem entsprechend gesetzt sind mit:
@If(@Day(EndDate)=1|@Day(StartDate)=1; "FFFFFF":"FFFFFF" ; "000000":"000000")
Das klappt aber auch nicht. Was mach ich falsch?

MFG Michael
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: cebolina am 03.04.08 - 12:46:15
Such mal in der Designer-Hilfe nach "Wert als Farbe verwenden" - vielleicht hilft dir das weiter.

Gruß Stefan
Titel: Re: Teilstring aus Dokumentenfeld auslesen
Beitrag von: michael-r am 04.04.08 - 10:59:35
Stefan danke für den Tipp.

Ich habe es nun mit folgendem Code geschafft:
@If(@Day(EndDate)=1|@Day(StartDate)=2; "|"; @Day(EndDate)=1|@Day(StartDate)=2|(@Day(StartDate)<2&@Day(EndDate)>1);"092A57" : "092A57";"FFFFFFF" : "FFFFFF")

Weiss noch jemand was man einstellen muss damit die Ansicht mit dem Zeitstrahl druckbar ist?
Edit: druckbar ist es wohl doch, aber dann nur mit der Option  "nur ausgewählte Rahmen" :).

MFG Michael