Autor Thema: GetDocumentbyKey(Keys,True)  (Gelesen 1471 mal)

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
GetDocumentbyKey(Keys,True)
« am: 23.07.05 - 21:21:44 »
Hallo,
bräuchte mal eure Hilfe.
Suche über GetDocumentbyKey bestimmte Dokumente und verschiebe diese dann in einen Ordner. Der KeyArray besteht aus 13 Werten.
Die Suche funktioniert über eine Maske mit den 13 Feldern (sind Dialoglisten mit vorgegebenen Werten). Der User wählt den Wert(e) nach denen er die Dokumente suchen möchte.

Nun habe ich das Problem. GetDocumentbyKey verlangt ja das immer alle Keys gefüllt sind. Wenn z. B. nur der 2 Key und der 5 Key "gefüllt" ist werden keine Dokumente gefunden. Es werden ja immer nach allen 13 Keys gesucht wird.

Gibt es dafür eine Lösung oder muss ich eine andere Suchfunktion wählen.

Für einen Tipp wäre ich dankbar.




« Letzte Änderung: 25.07.05 - 22:21:27 von skywook »

Glombi

  • Gast
Re: GetDocumentbyKey(Keys,True)
« Antwort #1 am: 23.07.05 - 21:38:52 »
Sowas kann man mit db.Search wohl besser machen, sofern die gesuchte Informationen in Feldern steht oder sich berechnen lässt, wovon ich ausgehe.

Die Kunst besteht also darin, den Suchstring zusammenzubasteln.

Andreas

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: GetDocumentbyKey(Keys,True)
« Antwort #2 am: 23.07.05 - 21:55:25 »
Danke Andreas für die schnelle Antwort.

Habe gerade in der Hilfe gelesen das der Suchstring eine @function sein soll.
Wie sieht das denn aus wenn ich nach 13 Werten suchen möchte?

Glombi

  • Gast
Re: GetDocumentbyKey(Keys,True)
« Antwort #3 am: 23.07.05 - 22:02:33 »
Ich skizziere mal

feld1 = dialogbox.GetItemValue("Feld1")(0)
feld2 = dialogbox.GetItemValue("Feld2")(0)

searchstring = {Feld1="} + feld1 + {" & Feld2 = "} + Feld2 + {"}
set dc = db.Search( searchstring, Nothing, 0 )

Andreas




Glombi

  • Gast
Re: GetDocumentbyKey(Keys,True)
« Antwort #4 am: 23.07.05 - 22:05:00 »
Ergänzung: Dabei gehe ich davon aus, dass alles TEXT Felder OHNE Mehrfachwerte sind. Natürlich kann man das auch für andere Datentypen und Mehrfachfelder machen. Aber dazu brauche ich dann mehr Angaben.

Andreas

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: GetDocumentbyKey(Keys,True)
« Antwort #5 am: 23.07.05 - 22:17:23 »
Danke,
hab noch nicht ganz verstanden wie sich der Suchstring zusammengesetzt. Ich verstehe das so (in der Noteshilfe habe ich nichts gefunden): der Feldname wird in {} gesetzt und der Feldinhalt in "" und mit + verkettet.
Ist das korrekt.


Glombi

  • Gast
Re: GetDocumentbyKey(Keys,True)
« Antwort #6 am: 23.07.05 - 22:23:21 »
Genau.
Man kann als Delimiter für String in Script folgendes benutzen: "..." oder |...| oder {...}
1. "Feld1="" + feld1 + "" & Feld2 = "" + Feld2 + """
2. |Feld1="| + feld1 + |" & Feld2 = "| + Feld2 + |"|
3. {Feld1="} + feld1 + {" & Feld2 = "} + Feld2 + {"}

1. finde ich unübersichtlich
2. ist ok, aber da in Formelsprache das | als Zeichen für Or verwendet wird, kann man es nicht verwenden, wenn man einen Or Ausdruck verwenden will
Falls ich kein Or brauche, nehme ich das
3. ist dann die Ausweichmöglichkeit, wenn man Or braucht


Ein
{Feld1="} + feld1 + {" }
ergibt dann, wenn feld1 = "wert von feld 1" ist:
Feld1= "wert von feld 1"

im Suchstring, also das was man bspw. in einer SELECT Anweisung machen würde.

Wenn Du Zahlen hast, dann einfach das " weglassen. Bsp.
{Feld1=} + feld1 + { }
ergibt dann, wenn feld1 = 4711 ist:
Feld1= 4711

Andreas


Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Re: GetDocumentbyKey(Keys,True)
« Antwort #7 am: 23.07.05 - 22:28:46 »
Danke,
hast mir sehr geholfen.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz