Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: chock am 16.07.03 - 15:29:48
-
Hallo,
ich habe eine DB zusammengestellt, in der Schulungen für die Mitarbeiter eingetragen werden.
Ich möchte nun eine Ansicht Statistik anlegen.In dieser sollen die Namen der Mitarbeiter und das Datum der zuletzt besuchten Schulung angezeigt wird? Die Daten müssen aus verschiedenen Feldern einer Maske geholt werden.Wie kann so eine Formel aussehen?
Mfg
Christian
-
Mal ganz simpel gesprochen:
Spalte 1: Feld mit Mitarbeitername, sortiert, kategorisiert
Spalte 2: Feld mit Schulungsdatum, absteigend sortiert
Spalte 3: Feld mit Bezeichnung der Schulung.
Oder wo liegt das Problem ?
Bernhard
-
ja genau so soll die Ansicht aussehen.
In der Maske Schulung sind jetzt die Felder Termin, Thema und Teilnehmer. Mit welcher Formel bekomme ich nun die Daten?
-
.... mich drückt die Erinnerung, das man da bei den Spalten das Feld angibt !!! - man kann dort auch eine Formel hinterlegen, man kann...
-
wie sieht ein Beispiel aus?
-
Na, ganz einfach:
Entweder den Spaltenwert aus einem Feld entnehmen (entsprechende Option im Designer für die Spalte auswählen und dann das Feld aus der Liste heraussuchen)
oder
Formel anklicken und den Feldnamen (nicht in Anführungszeichen) hinschreiben.
Bei den einfachen Anforderungen braucht man aber offensichtlich keine Formeln, die zum Beispiel aus "Vorname Nachname" "Nachname, Vorname" machen oder ähnliches.
HTH,
Bernhard
-
Ich bin in ein totaler Änfänger was den Designer betrifft.
Habe jetzt folgendes versucht.
Die Formel in der Spalte @Name([CN];teilnehmer) zeigt nichts an.
Wie kann ich der Formel sagen das Sie die Daten aus deer Maske Schulung holen soll?
-
... in dem spaltenwert den feldnamen aus der maske angeben.
-
Also das hat jetzt geklappt.
Wie könnte ich der Spalte jetzt sagen, das sie mir jeden Teilnehmer einzeln auflistet der in dem Feld steht?
-
Wenn das Feld "Teilnehmer" ein multi value field ist ("Mehrfachwerte zulassen"), dann einfach diese Spalte kategorisiert anzeigen lassen. Hierzu einfach mal in die Designer-Hilfe schauen ;-)
HTH,
Bernhard
-
Hat alles geklapt ist gar nicht so schwer man braucht nur die richtigen Tipps. Danke
Wie könnte ien Agent aussehen, der Felder im Dokument nach dem Datum prüft. Wenn sich das Datum ein hlbes Jahr nicht geändert hat soll er eine Mail schicken. Geht das über Formeln oder Script?
-
...ganz einfach wäre :
xcheckdate := @Adjust(@Today ; 0 ; 0 ; Abfragezeitraum ; 0 ; 0 ; 0);
@If(
@Date(Datumsfeld) < xcheckdate;
@@MailSend(Adressaten ; "" ; "" ; "Dokument seit xyz nicht mehr aktualisiert" ; "" ; "" ; [IncludeDoclink]);
"")
ist wirklich ein einfacher Agent - scheduled läuft der auch - klar "schmückt" man diesen auch normalerweise noch aus - Maskenabfrage oder ähnliches...
-
hab den Agent so eingesetzt:
xcheckdate := @Adjust(sch_dat ; 0 ; 6 ; 0; 0 ; 0 ; 0);
@If(
@Date(sch_dat) > xcheckdate;
@MailSend(schulung@xxxxx ; "" ; "" ; "Mitarbeiter seit einem halben Jahr nicht mehr auf Schulung" ; "" ; "" ; [IncludeDoclink]);
"");SELECT @All
Es kommt die Fehlermeldung "send to Field" fehlt.
Verstehe ich den Agent so richtig? das Datum des feldes wird um ein hlbes Jahr hochgesetzt, dann verglichen?
-
... jau, hast du,
aber in der maske scheint das feld namens "sendto" zu fehlen. hier sollte der empfänger stehen. sieh mal in der designer-hilfe nach ;D
-
@MailSend(schulung@xxxxx ; "" ; "" ; "Mitarbeiter seit einem halben Jahr nicht mehr auf Schulung" ; "" ; "" ; [IncludeDoclink]);
"");
tip:es gibt auch eine designerhilfe...
aber guck dir mal den ersten parameter an... -> mach einen string draus... ("schulung@xxx")
gruss
-
...es muß in der maske nicht unbedingt ein sendto-feld sein, es reicht ein namensfeld, in dem der Empfänger hinterlegt ist.
aber auch die DatumsAbfrage funktioniert so nicht ganz richtig, wiel so das Sch_dat nie größer als das checkdate sein wird !
also entweder den adjust mit -6 oder das ">" in "<" !
-
Wie war das mit der Designerhilfe ;-)
Entweder, man gibt in @MailSend an, an wen man senden will (als String oder Liste oder per Referenz über ein Feld), oder "SendTo ist zwingend erforderlich".
Und die Korrektur mit der Zeitdifferenz ist auch nicht der Bringer: Wie man es auch dreht, xcheckdat ist immer 6 Monate weg von sch_dat. Das Adjust muß auf @Today ausgeführt werden !
xcheckdate := @Adjust(@Today ; 0 ; -6 ; 0; 0 ; 0 ; 0);
@If(
@Date(sch_dat) < xcheckdate; "blabla"; "alles roger")
HTH,
Bernhard
-
ja, richtig, *indemutverneig*
ich verwende das Feld ja auch als Referenz in @Mailsend.
und mit dem Datum hast Du auch recht ...aber das hatte ich in dem oberen Coding angegeben !
-
Nix Demut !!! Sofort wieder aufrichten !!! War doch nur für den newbee, damit er nicht reinfällt ...
Aber das mit dem Datenvergleich lies Dir nochmal durch - Du hast das erst richtig geschrieben. Im letzten Posting von chock stand dann aber 'ne Formel, die immer zu "ist grösser" führen würde ;-)
Ist "chock" denn nun weiter gekommen ?
Ciao,
Bernhard
-
Hi,
vielen vielen Dank für eure Geduld. Jeder Anfang ist schwer, trotz Designer Hilfe. Also hab jetzt die Formel so hinbekommen:
xcheckdate := @Adjust(sch_dat; 0 ; 6 ; 0; 0 ; 0 ;0 );
@if(
@Date(@TODAY) > xcheckdate;
@MailSend("xxxxx@xxxxx" ; "" ; "" ; "Teilnehmer seit einem halben Jahr nicht mehr auf Schulung" ; "" ; "" ; [IncludeDoclink]);
"");SELECT @All
Das Feld sch_dat wird geprüft und um 6 Monate erweitert. Dann die Abfrage schicke ein Mail wenn das heutige Datum größer ist als das Feld + 6 Monate. Oder?
-
Na, das sieht doch gut aus !
Und wenn Du jetzt weiter lernen willst, folgende Vorschläge:
1. Und wichtigstens - wenn eine Entwicklungs-DB funktioniert, mach ein Backup davon - dann kannst Du dort weitermachen, falls Du Dich verrannt hast.
2. Schick noch eine nette Botschaft mit:
Body := Teilnehmer + " hat seit einem halben Jahr keine Schulung mehr besucht. Bite überprüfen Sie ... laber laber ..." + @NewLine + "Für weitere Informationen folgen Sie bitte diesem Link:";
@MailSend("xxxxx@xxxxx" ; "" ; "" ; "Teilnehmer seit einem halben Jahr nicht mehr auf Schulung" ; Body ; "" ; [IncludeDoclink]);
3. Den/die Mail-Empfänger könntest Du in einem Profile-Dok Deiner Datenbank ablegen und dieses zum Zeitpunkt des Mailversands auslesen:
SendTo := @GetProfileField ("DatabaseSetup"; "SendTrainingWarningsTo");
@MailSend (SendTo; "" ; "" ; "Teilnehmer seit einem halben Jahr nicht mehr auf Schulung" ; Body ; "" ; [IncludeDoclink]);
Weitere Infos zu ProfilesDocs siehe in der Designer-Hilfe (Suchen nach "Profildokument" oder "profile")
HTH,
Bernhard
-
hi chock,
ich hoffe Du bist mir nicht böse aber wenn ich ehrlich bin finde ich deine Fragen schon ein klein wenig heftig. Mein Vorschlag wäre besuche eine gute Grundlagenschulung über den NotesDesigner oder kauf Dir wenigstens mal ein gutes Buch dazu und lese das mal durch. Wir helfen hier wirklich gerne auch Einsteigern und ich finde es bewundernswert und klasse wie koehlerbv etc alles so klasse erklärt. Dickes Lob an dieser Stelle an koehlervb!!!
Ich merke halt das Dir hinten und vorne die Grundlagen fehlen und realistisch betrachtet kommst Du auch für Dich selber so nicht voran sondern musst bei jeder neuen Problemstellung aufs Forum zurückgreifen.
Ich hoffe Du nimmst mir das nicht übel - ist halt meine persönliche Meinung. Als Tip vielleicht noch: die Designerhilfe von Notes ist auch schon sehr genial - wichtig ist das Du diese Volltextindizierst, dann kannst Du per Volltextsuche darin sehr gut suchen...