AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
19.02.20 - 12:58:07
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News: Jetzt mit HCL Notes / Domino 11 und einem Extraboard für Nomad!
Schnellsuche:
+  Das Notes Forum
|-+  Domino 8 und frühere Versionen
| |-+  ND7: Entwicklung (Moderatoren: eknori, koehlerbv)
| | |-+  Suche nach datum in db
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Suche nach datum in db  (Gelesen 4085 mal)
sylli1908
Frischling
*
Offline Offline

Geschlecht: Weiblich
Beiträge: 41



« am: 26.03.07 - 12:50:34 »

Hallo, ihr alle die mehr Ahnung haben als ich,

ich habe eine Datenbank mit Besuchsberichten des Außendienstes.

Nun will ich in einer Maske für's Web eine Suche im Feld Bearbeitungsdatum (einfaches Datumsfeld Tag.Monat.Jahr) und Feld Kontakt_Bearbeiter (  Name des Mitarbeiters) ermöglichen.

In der Maske gibt es ein Feld (Dialogliste)"Suche" zum auswählen des Mitarbeiters (z.B. Helga Müller) und ein Feld (Dialogliste) "Suche_1" zur Auswahl des Zeitraumes der Bearbeitung (z.B. März 2007). Nach betätigen des Suchen-Buttons soll es auf eine Volage ($$Templete ...) gehen um die Ergebnisse, die dem Mitarbeiter und dem Zeitraum entsprechen, anzuzeigen. Der Mitarbeiter ist kein Problem, aber das Datum. So hat ich mir das $$Return-Feld gedacht:

SuchString := @If(Suche = ""; "*";
@Implode(@ReplaceSubstring(Suche_Kat;uml;huml)));
db := @Subset(@DbName; -1);
Ansicht := "Aktivitaet";

_T:=@RightBack(@Text(Bearbeitungsdatum);3) ;
_M:=@LeftBack(_T;5);
_J:=@RightBack(_T;3);
@If(_M="01";"Januar "+_J;_M="02";"Februar "+_J;_M="03";"März "+_J;
_M="04";"April "+_J;
_M="05";"Mail "+_J;
_M="06";"Juni "+_J;
_M="07";"Juli "+_J;
_M="08";"August "+_J;
_M="09";"September "+_J;
_M="10";"Oktober "+_J;
_M="11";"November "+_J;
_M="12";"Dezember "+_J;
"");


Bearbeiterabfrage:=(" Field Kontakt_Bearbeiter Contains " +Suche+"and"+" _M" +Suche_1);
Abfrage:=(@Trim(Bearbeiterabfrage));

Konstante:="Start=1&Count=7";
SuchAnsicht := @Implode(@Explode(Ansicht; " "); "+");
@Return ("[/" + db + "/" + SuchAnsicht + "?SearchView&Query="+Abfrage+"&"+Konstante+"&searchOrder=4]")

Er findet leider keinen Datensatz der dieser Suche enspricht. Wo sind die Denkfehler und Scriptfehler?  Wäre toll wenn mir jemand helfen könnte. Sylli.
Gespeichert
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #1 am: 26.03.07 - 13:20:49 »

Überprüf mal diese Zeile:

Bearbeiterabfrage:=(" Field Kontakt_Bearbeiter Contains " +Suche+"and"+" _M" +Suche_1);

Die kommt mir reichlich spanisch vor, besonders die Ecke hier:

...+"and"+" _M" +Suche_1);


Mit welcher Notes-Version arbeitest du denn. Ich kann mir nicht vorstellen, das du die DB mit der 8er Betaversion erstellt hast.

Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
sylli1908
Frischling
*
Offline Offline

Geschlecht: Weiblich
Beiträge: 41



« Antworten #2 am: 26.03.07 - 13:33:02 »

Sorry, mit der 7-er . Wie haste das denn gemerkt ...
Gespeichert
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #3 am: 26.03.07 - 13:50:32 »

Sorry, mit der 7-er . Wie haste das denn gemerkt ...

Ich kann mir nicht vorstellen, dass man mit einer Betaversion schon produktive Datenbanken erstellt.

Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
sylli1908
Frischling
*
Offline Offline

Geschlecht: Weiblich
Beiträge: 41



« Antworten #4 am: 02.04.07 - 11:34:35 »

Hat jemand mal einen Vorschlag wie die Sache funktionieren könnte?
Gespeichert
Driri
Gast
« Antworten #5 am: 02.04.07 - 11:47:59 »

Axel hat doch schon geantwortet. Hast Du dir den Searchstring, der da erzeugt wird, schon mal näher angesehen ?

Zitat
Bearbeiterabfrage:=(" Field Kontakt_Bearbeiter Contains " +Suche+"and"+" _M" +Suche_1);

Da kommt z.B. so ein Suchstring bei heraus :

Field Kontakt_Bearbeiter Contains <Inhalt Suche> and _M <Inhalt Suche_1>


Darüber hinaus prüfst Du direkt in der ersten Zeile, ob "Suche" leer ist, verwendest dann aber doch wieder "Suche".
Gespeichert
m3
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8094


Non ex transverso sed deorsum!


WWW
« Antworten #6 am: 02.04.07 - 11:57:04 »

Ich persönlich finde ja den
Code:
@If(_M="01";"Januar "+ ...
Teil lustig.
Da wird in einem riesen Konstrukt was zusammengebaut und dann weggeschmissen. Wolltest Du das, was aus dem @IF rauskommt nicht in einer Variablen aufheben?

Und da weiterdenkend ... ich kann mir nicht vorstellen, dass man - beispielsweise - den String "Juli_06" in einem Datumsfeld finden kann.

Und bei der Zeile
Code:
@Return ("[/" + db + "/" + SuchAnsicht + "?SearchView&Query="+Abfrage+"&"+Konstante+"&searchOrder=4]")
ist mir aufgefallen, dass "Abfrage" nicht mit @URLEncode behandelt wurde. Auch das kann zu Problemen führen.
Gespeichert

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
sylli1908
Frischling
*
Offline Offline

Geschlecht: Weiblich
Beiträge: 41



« Antworten #7 am: 02.04.07 - 12:00:46 »

Als Antwort bekomme ich immer keine Datensätze gefunden. Scheinbar kann Notes das  Feld Bearbeitungsdatum nicht  mit _M vergleichen.  Ist doch aber beides Text, Oder?
Gespeichert
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #8 am: 02.04.07 - 12:06:46 »

Hast du dir inzwischen mal deinen Suchstring angeschaut? Das kann so nicht funktionieren.

Bei der Suche im _M fehlt auf jeden Fall der Operator, z.B. Contains


Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
m3
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8094


Non ex transverso sed deorsum!


WWW
« Antworten #9 am: 02.04.07 - 12:07:04 »

ROTFL

1) Notes kann die das Feld sehr wohl mit der Variablen vergleichen. Die Frage ist nur, was dabei heraus kommt.
2) Ob das beides Text ist, können wir Dir nicht beantworten, das kannst nur Du, da wir das Design nicht kennen.

ABER:

a) _M hat - laut Deinem Script - einen Wert zwischen "01" und "12"
b) Das Feld "Bearbeitungsdatum" ist, laut Deinen Angaben, ein Datumsfeld
c) Nein, einen String wie "09" kann man nicht einfach mit einem Datumsfeld vergleichen. Wo/wie soll er denn "09" vergleichen? Mit dem Tag, dem Monat oder dem Jahr?


Nachtrag:
Das Ende Deiner Abfrage lautet derzeit
VORHERIGERSUCHBEGRIFFand _M

Hier fehlen
1) Abstände
2) Eckige Klammern oder ein "FIELD"
3) Der Feldname, der durchsucht werden soll
4) Der Operator (CONTAINS, ...)
5) Der Wert, mit dem das Feld verglichen werden soll. Die Variable "Suche_1", in der dieser Wert anscheinend definiert werden sollte, wird in dem von Dir geposteten Script nicht befüllt.

Hol Dir mal einen Kaffe und dann denk das Codefragemtn nochmal durch. Da stimmt einiges nicht.

Und nein, ich schreibe es nicht für Dich neu.
« Letzte Änderung: 02.04.07 - 12:12:35 von m3 » Gespeichert

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
sylli1908
Frischling
*
Offline Offline

Geschlecht: Weiblich
Beiträge: 41



« Antworten #10 am: 02.04.07 - 12:12:32 »

Ich wäre ja schon froh wenn er es irgenwo im Datumsfeld Bearbeitungsdatum suchen würde. Er findet es ja weder bei Tag noch bei Monat ...

Aber das Mit dem Contains schau ich mir mal an, danke
Gespeichert
m3
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8094


Non ex transverso sed deorsum!


WWW
« Antworten #11 am: 02.04.07 - 12:13:45 »

Wie in meinem Nachtrag angeführt: Dann sag ihm bitte auch, dass er das Feld Bearbeitungsdatum durchsuchen soll.

P.S.: Es hilft oft, den gesuchten Suchausdruck zuerst manuell für einen Suchwert im FT-Dialog händisch zusammen zu bauen und dann den String im Script nachzubauen.
« Letzte Änderung: 02.04.07 - 12:15:16 von m3 » Gespeichert

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
sylli1908
Frischling
*
Offline Offline

Geschlecht: Weiblich
Beiträge: 41



« Antworten #12 am: 02.04.07 - 15:22:36 »

Ich habe es mit einem festen Wert "2007" versucht. Es sollen also alle Datensätze anzeigezeigt werden die 2007 im Feld Bearbeitungsdatum enthalten.
Mein Returnfeld sieht so aus:


REM {Ermittlung der Suchabfrage};

db := @Subset(@DbName; -1);
Ansicht := "Aktivitaet";

Bearbeiterabfrage:=
" FIELD Kontakt_Bearbeiter Contains "+Suche+ " and "  +"FIELD @Text(Bearbeitungsdatum) Contains "+"2007";


Abfrage:=(@Trim(Bearbeiterabfrage));

Konstante:="Start=1&Count=7";
SuchAnsicht := @Implode(@Explode(Ansicht; " "); "+");
@Return ("[/" + db + "/" + SuchAnsicht + "?SearchView&Query="+Abfrage+"&"+Konstante+"&searchOrder=4]")


Die Suche nach dem Bearbeiter klappt ohne Probleme. Aber sobald das Datum dazukommt ist Schluß mit lustig. Es werden keine Datensätze mehr gefunden.
Folgende Anzeige kommt:
Es wurden keine Dokumente gefunden, die Ihrer Suche Fachberater: Barbara Maier, Zeitraum: 2007 entsprechen! Das kann doch nur am Datumsformat des Feldes liegen.
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #13 am: 04.04.07 - 00:00:03 »

Hier stimmt doch die ganze syntaktische Logik nicht: Du hast ganz bestimmt kein Feld, dass den Namen "@Text(Bearbeitungsdatum)" trägt!
Und ohne syntaktischer Logik geht da gar nichts.

Bernhard
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: