Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: sja am 19.07.05 - 18:30:26
-
Hallo,
wieder brauche Hilfe und für jeden Rat, Tipp, etc. Vielen Dank im Voraus.
Es gibt eine Form, wo User kann folgendes eingeben:
Zeitraum -> Felder: DatumVon, DatumBis
Eine Liste von Mitarbeiter auswählen (bzw. alle Mitarbeiter) Feld: ListeMA
Eine Liste von Projekten (bzw. alle Projekte) Feld: ListeProjekt
Nach der Auswahl sollte mit einem Button ein Report in der Tabellenform erstellt werden, der alle Dokumente (nach Datum sortiert) enthält, die mit oben ausgewählten Kriterien übereinstimmen.
Die Dokumente haben u. a. folgenden Felder:
datum
projekt
mitarbeiter
Mit dem Table-Report habe ich jetzt kein Problem (Thread http://www.atnotes.de/index.php?PHPSESSID=c527ceaacd6e810686949f206eee0244&topic=24293.0)
Aber wie baue ich eine Collection für den Report mit so viele Auswahlkriterien?
Bis jetzt habe ich verschiedene Collection aber nur für ein Kriterium gemacht.
z.B.
Set collection = db.Search(searchFormula, Nothing, 0)
searchFormula = |projekt = "| + AWNTitel +|"|
Aber wie schreibe ich searchFormula, wenn ich mehre Kriterien habe und zwar als eine Liste, habe ich nicht gefunden.
Oder ist es mit db.Search in diesem Fall falscher Weg und ich muss die Collection auf eine andere Weise bauen?
Ich habe versucht in dem Forum, in Internet und Bücher recherchieren und bin noch mehr durcheinander gekommen und weiss nicht wie soll ich anzufangen.
Herzlichen Dank, wenn jemand mir auf der Sprünge helfen würde.
Schöne Gruesse
Sofia
-
Sofia, ein Tipp: Schreibe mal eine SELECT-Formel mit diesen Bedingungen, wie Du sie für eine Ansichtsauswahl schreiben würdest.
Genau das ist dann die Grundlage für das dbSearch.
Bernhard
-
Du kannst die einzelnen Bedingungen mit den logischen Operatoren & (AND) und | (OR) verknüpfen.
searchFormula = {projekt = "} + AWNTitel +{"} + {" & "} + {Datum_von_Wert < @TextToTime("} + DatumVon + {)"+ {" & "} + {Mitarbeiter = "} + Mitarbeiter_Wert + {"}
zumindest so ähnlich. Ich würde als Stringbegrenzer statt der Pipe | die geschweifte Kalmmer empfehlen, weil der OR-Operator auch eine | ist...
-
Hallo Bernhard,
hallo Thomas,
vielen Dank für guten Tipp und Bsp.!
Jetzt weiss, wie soll ich anzufangen.
Danke schon und liebe Gruesse
Sofia
-
Hallo @All,
leider kann ich nicht mit der sercheFormel zu Recht kommen.
Die SELECT Formel in der Ansicht für untere Bsp sieht so aus:
SELECT AuftragNr = "1. Projekt" & datum >= @TextToTime("06.07.2005")& datum <= @TextToTime("13.07.2005") & MA = "sja"
In dem Script sieht die searchFormula folgendenmaßen aus:
Set uidoc = ws.CurrentDocument
tmp_projekt = uidoc.FieldGetText( "Projekt" )
tmp_MA= uidoc.FieldGetText( "MA" )
tmp_DatumVon = uidoc.FieldGetText( "DatumVon" )
tmp_DatumBis = uidoc.FieldGetText( "DatumBis" )
searchFormula = {AuftragNr = "} + tmp_projekt +{"} + {" & "} + {datum >= @TextToTime("} + tmp_DatumVon + {")+ {" & "} + {datum <= @TextToTime("} + tmp_DatumBis + {")+ {" & "} + {MA = "} + tmp_MA + {"}
und ich bekomme die Fehlermeldung (s. Bild-Anhang). Man sieht da ja die serchFormula wurde nicht richtig interpretiert, oder richtiger zu sagen ist nicht richtig geschrieben, und zwar meiner Meinung nach mache ich was falsch mit &. Leider kann nicht ein Bsp. mit Verwendung von Operatoren wie &, |, ! etc zu finden.
Z. B. in dem Beitrag von eknori
http://www.atnotes.de/index.php?PHPSESSID=8d47b5e79c60671d8adb459b10eb3dd8&topic=22303.msg141641#msg141641
ist auch nur einfache Fall erklärt.
Das gleiche in Domino-Hilfe und in meinen Bücher.
Herzlichen Dank im Voraus, wenn jemand mit dabei helfen würde.
Schöne Gruesse
Sofia
-
Da sind ein paar Anführungszeichen Geschweifte Klammern und plus Zeichen zu viel drin:
searchFormula = {AuftragNr = "} + tmp_projekt + {" & datum >= @TextToTime("} + tmp_DatumVon + {") & datum <= @TextToTime("} + tmp_DatumBis + {") & MA = "} + tmp_MA + {"}
-
Hallo Thomas,
Danke schön für so schnelle und reiche Hilfe!
Jetzt das Ergebniss sieht genau richtig aus.
S. Anhang.
Noch mal herzlichen Dank und schöne Gruesse
Sofia