Autor Thema: suche  (Gelesen 2389 mal)

Offline my head

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
suche
« am: 04.02.03 - 13:52:46 »
wie kann ich in ner ansicht in vier spalten suchen lassen, wenn die ansicht folgendermassen aussieht:
name       abt        zimmer                 tel-nr
                             (alpha-num.)        (num.)

hat jmd schon mal ein ähnliches problem gehabt??
ich hab keine ahnung, wie's lösen soll, da die "normale" notes-suche keine reinen zahlen findet!!!

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:suche
« Antwort #1 am: 04.02.03 - 14:09:33 »
laut Notes Hilfe:

Set notesDocumentCollection = notesView.GetAllDocumentsByKey( keyArray
[ ,exact ] )
Parameters
keyArray
String, integer, long, single or double value, or array of strings, number, DateTime, or DateRange objects. Each element in the array is compared to a sorted column in the view. The first element in the array is compared to the first sorted column in the view; the second element is compared to the second sorted column; and so on.
exact
Boolean. Optional. Specify True if you want to find an exact match. If you specify False (the default) or omit this parameter, a partial match succeeds.
Return value
notesDocumentCollection
All documents in the view whose column values match each of the strings in keyArray. If no documents match, the collection is empty and the count is zero.


cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline my head

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
Re:suche
« Antwort #2 am: 04.02.03 - 16:57:34 »
muss ich mit ner collection dann für drei spalten in vier verschiedenen ansichten suchen?? und dann über das dokument in der eigentlichen ansicht ausgeben lassen??
oder kann ich damit in vier spalten einer ansicht??

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:suche
« Antwort #3 am: 04.02.03 - 17:01:06 »
du kannst in einer view nach vier Spalten suchen - oder mehr je nachdem wie du deinen array aufbaust.


cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline my head

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
Re:suche
« Antwort #4 am: 04.02.03 - 17:18:29 »
versteh im moment nicht ganz wie ich das array deklarieren muss...

ich möchte eine maske haben mit eingabefeld und button... möchte dort den suchtext eingeben... und in anschließend in einem ordner oder einer ansicht abspeichern...

Offline my head

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
Re:suche
« Antwort #5 am: 05.02.03 - 14:02:53 »
so... hab nochmal nachgedacht, bin in mich gegegangen usw.

mit getdocumentsbykey kann ich doch nur immer werte aus der ersten geordneten spalte suchen, oder...?

demzufolge bräuchte ich für die vier spalten meiner ansicht, vier ansichten mit je einer spalte und könnte die dokumente dann einen ordner kopieren!!!

geht das??
oder einfacher???

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:suche
« Antwort #6 am: 05.02.03 - 15:05:25 »
so... hab nochmal nachgedacht, bin in mich gegegangen usw.

mit getdocumentsbykey kann ich doch nur immer werte aus der ersten geordneten spalte suchen, oder...?

demzufolge bräuchte ich für die vier spalten meiner ansicht, vier ansichten mit je einer spalte und könnte die dokumente dann einen ordner kopieren!!!

geht das??
oder einfacher???

Zitierst Du doch oben selber aus der Hilfe:
"The first element in the array is compared to the first sorted column in the view; the second element is compared to the second sorted column; and so on."

Also brauchst Du ein array x(0) bis x(3) und setzt das mit GetAllDocumentsByKey() auf Deine Ansicht mit sortierten Spalten an.
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline my head

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
Re:suche
« Antwort #7 am: 05.02.03 - 15:30:28 »
hab das jetzt so gemacht...


Sub Click(Source As Button)
   Dim workspace As New NotesUIWorkspace
   Dim thisdoc As NotesUIDocument   
   
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim view As Notesview
   Dim dc As NotesDocumentCollection   
   Dim keyarray(3) As String
   
   
   Set db = s.CurrentDatabase
   Set thisdoc = workspace.CurrentDocument
   Set view = db.getview("alle")
   keyarray(0)=thisdoc.fieldgettext("name")
   keyarray(1)=thisdoc.fieldgettext("abt")
   keyarray(2)=thisdoc.fieldgettext("zimmer")
   keyarray(3)=thisdoc.fieldgettext("tel")
   
   Set dc= view.getalldocumentsbykey(keyarray)
   
   Call dc.putallinfolder("erg")
   
End Sub


wie kann ich es jetzt aber verwirklichen, dass er wenn nur ein wert (z.b. name) eingegeben ist, die anderen ignoriert??

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:suche
« Antwort #8 am: 05.02.03 - 15:46:30 »
Wenn Du keine Werte überspringen mußt, kannst Du das array mit Redim Preserve entspr. verkleinern.
Ansonsten mußt Du leider mit .Search() arbeiten, wenn zB 'abt' leer ist.
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:suche
« Antwort #9 am: 05.02.03 - 16:01:51 »
indem du den Parameter exact auf false setzt

Set dc= view.getalldocumentsbykey(keyarray, false)



cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:suche
« Antwort #10 am: 05.02.03 - 16:05:45 »
indem du den Parameter exact auf false setzt

Set dc= view.getalldocumentsbykey(keyarray, false)

Hups, das geht?
Ich dachte immer, Notes braucht zumindest einen Teilstring:

"For non-exact matches, returns only those documents that match the initial characters. For example, "T" matches "Tim"."

Wieder was gelernt! Danke!
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline my head

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
Re:suche
« Antwort #11 am: 05.02.03 - 16:39:26 »
indem du den Parameter exact auf false setzt

Set dc= view.getalldocumentsbykey(keyarray, false)

aber bei mir ist er ja auf false (standardmässig??)!!

geht aber nicht!!

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:suche
« Antwort #12 am: 05.02.03 - 17:08:36 »
@wflamme

du hast recht, ich hatte mich auf "partial match" bezogen.

@my head
das genauso wie es wflamme beschrieben hat - d.h. wenn du den ersten und den letzten Wert eines arrays hast nutzt dir das wenig, du kannst dann im Prinzip nur nach dem ersten Wert suchen
- ansonsten eine db.search oder view.ftsearch mit deinen Kriterien - wobei der search string dann dynamisch sein kann.


cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:suche
« Antwort #13 am: 05.02.03 - 18:07:09 »
@wflamme

du hast recht, ich hatte mich auf "partial match" bezogen.

Schade, und ich dachte, ich wäre wieder mal klüger geworden  :'(
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline my head

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
Re:suche
« Antwort #14 am: 10.02.03 - 16:06:18 »
wenn's jemanden interessiert, hab's so gelöst:


Dim workspace As New NotesUIWorkspace
   Dim thisdoc As NotesUIDocument   
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim view As Notesview
   
   Dim switch As Integer
   Dim suchtext As String
   
   Dim person As String
   Dim abt As String
   Dim zimmer As String
   Dim tel As String
   
   Set db =  s.CurrentDatabase
   Set view = db.getview("alle")
   Set thisdoc = workspace.CurrentDocument
   suchtext = thisdoc.fieldgettext("suchtext")
   Set doc = view.getfirstdocument
   switch=0
   
   Do Until (doc Is Nothing)
      If Not Instr(doc.getitemvalue("name")(0) , Strconv(suchtext,3)) = 0 Then
         switch=1      
      Elseif Not Instr (doc.getitemvalue("abt")(0), Ucase(suchtext)) = 0 Then
         switch=1      
      Elseif Not Instr (doc.getitemvalue("zimmer")(0) , Ucase(suchtext)) = 0 Then
         switch=1      
      Elseif Not Instr (doc.getitemvalue("tel")(0) , suchtext) = 0 Then
         switch=1         
      End If
      If switch = 1 Then
         person = person + doc.getitemvalue("name")(0) + Chr(10)
         abt = abt +doc.getitemvalue("abt")(0) + Chr(10)
         zimmer = zimmer + doc.getitemvalue("zimmer")(0) + Chr(10)
         tel = tel +Cstr(doc.getitemvalue("tel")(0)) + Chr(10)
         switch = 0
      End If      
      Set doc=view.getnextdocument(doc)
   Loop
   
   Call thisdoc.fieldsettext("suchname",person)
   Call thisdoc.fieldsettext("suchabt",abt)
   Call thisdoc.fieldsettext("suchzimmer",zimmer)
   Call thisdoc.fieldsettext("suchtel",tel)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz