Autor Thema: Suche nach datum in db  (Gelesen 7034 mal)

Offline sylli1908

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Weiblich
Suche nach datum in db
« 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.

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Suche nach datum in db
« Antwort #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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline sylli1908

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Weiblich
Re: Suche nach datum in db
« Antwort #2 am: 26.03.07 - 13:33:02 »
Sorry, mit der 7-er . Wie haste das denn gemerkt ...

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Suche nach datum in db
« Antwort #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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline sylli1908

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Weiblich
Re: Suche nach datum in db
« Antwort #4 am: 02.04.07 - 11:34:35 »
Hat jemand mal einen Vorschlag wie die Sache funktionieren könnte?

Driri

  • Gast
Re: Suche nach datum in db
« Antwort #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".

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: Suche nach datum in db
« Antwort #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.
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

Offline sylli1908

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Weiblich
Re: Suche nach datum in db
« Antwort #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?

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Suche nach datum in db
« Antwort #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
Ohne Computer wären wir noch lange nicht hinterm Mond!

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: Suche nach datum in db
« Antwort #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 »
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

Offline sylli1908

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Weiblich
Re: Suche nach datum in db
« Antwort #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

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: Suche nach datum in db
« Antwort #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 »
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

Offline sylli1908

  • Frischling
  • *
  • Beiträge: 41
  • Geschlecht: Weiblich
Re: Suche nach datum in db
« Antwort #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.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Suche nach datum in db
« Antwort #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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz