Autor Thema: Abfrage mit Array klappt nicht  (Gelesen 1979 mal)

Offline ext02

  • Frischling
  • *
  • Beiträge: 6
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Abfrage mit Array klappt nicht
« am: 06.05.03 - 14:16:57 »
Hallo erst mal alle
hab ein kleines Problem mit Notes entwickle steit ungefähr 2 Monaten mit Notes und hatte bis jetzt kaum Probleme aber hierbei komme ich einfach nicht weiter!

Ich will eine Db View abfragen ob in zwei Spalten (1 und 2)
Werte vorhanden sind die mit meiner Suche übereinstimmen und versuche das ganze mit einem Array. Der folgende Quellcode verwende ich, 1 und 3 klappen nicht 2 und 4 klappen!
Wer kann mir helfen??????

Set db = session.CurrentDatabase()
   Set view = db.GetView("(LookUpPresenceTimetable)")
   
   Dim array(0 To 1) As String
   
   array(0) = myworker
   array(1) = myproject
   'alle Mitarbeiterdokumente selektieren
1)     Set collection = view.
              GetAllEntriesByKey(array,False)
2)     Set collection = view.          
              GetAllEntriesByKey(myworker,False)
3)     Set collection =  view.
              GetAllEntriesByKey(myproject,False)
4)     Set collection = view.
              GetAllEntriesByKey(array(0),False)
   Set viewentry = collection.GetFirstEntry()

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Abfrage mit Array klappt nicht
« Antwort #1 am: 06.05.03 - 22:43:51 »
... sind myWorker und myProject globale Variabeln - oder was?

... in der ersten Spalte der Ansicht steht der Wert zu myWorker, daher funktionieren 2 und 4 - da dort nicht myProject zu finden ist - ich vermute in Spalte 2 zu finden, kann er das mit in der ersten Spalte eben nicht finden...

ata
Grüßle Toni :)

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:Abfrage mit Array klappt nicht
« Antwort #2 am: 17.08.04 - 12:23:44 »
Ich habe ein ähnliches Problem mit GetAllEntriesByKey. Mein Code sieht wie folgt aus:

Code
Dim ses as New NotesSession
Dim db as NotesDatabase

Dim keyword as String
Dim lookupKey() As String
Dim lookupView As NotesView
Dim entryColl As NotesViewEntryCollection

...

Set db = ses.CurrentDatabase
Set lookupView = db.GetView("($lookupView)")

...
keyword = "Suchbegriff"
...

Redim lookupKey(0)
lookupKey(0) = keyword
Set entryColl = lookupView.GetAllEntriesByKey(lookupKey)

...

Das Ganze ist eingebettet in ein größeres Script. Das KeyArray hat manchmal einen, manchmal zwei Keys, deswegen ist es ein dynamisches Array. GetAllEntriesByKey liefert 0 Treffer zurück, obwohl es mehrere 100 Treffer zurückliefern müsste. Das erstaunt mich.

Könnte es daran liegen, dass GetAllEntriesByKey nicht mit dynamischen Arrays arbeiten kann?

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline mahonri

  • Aktives Mitglied
  • ***
  • Beiträge: 128
  • Geschlecht: Männlich
  • Schon mal Domino mit Servern gespielt
Re:Abfrage mit Array klappt nicht
« Antwort #3 am: 17.08.04 - 17:02:47 »
getAllEntriesByKey sucht den ersten Wert des Arrays in der ersten sortierten Spalte und den 2. in der zweiten sorteirten Spalte.

Wenn du also mit einem Dynamischen Array suchst, mußt du die Reihenfolge immer einhalten, und die Ansicht muß die entsprechenden sortierten Spalten haben.
Thomas

P-CLP Development 4,5,6
P-CLP Admin 5
CLP Admin 6

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re:Abfrage mit Array klappt nicht
« Antwort #4 am: 17.08.04 - 17:29:07 »
Okay, für alle die es interessiert, ich habe des Rätsels Lösung (für mein Problem zumindest) gefunden:

In der entsprechenden Spalte wird ein Feld angezeigt, das nicht nur Mehrfachwerte enthält, sondern jeder einzelne dieser Mehrfachwerte besteht aus einem dreiteiligen String, dessen drei Teile durch "\" bzw. "\\" getrennt sind (Beispiel: "Fakultät\\Lehrstuhl\\Name"). Der dreiteilige String wird in dieser Form für eine hierarchische Anzeige innerhalb einer kategorisierten Ansicht benötigt.

Beispiel:

> Wirtschaftswissenschaften
    > BWL
        > Müller, Karl
                Eintrag 1
                Eintrag 2
                Eintrag 3
        > Schröder, Erich
                Eintrag 1
                Eintrag 2
    > VWL
        > Meier, Kurt
                Eintrag 1
                Eintrag 2
> Zahnmedizin
    > KFO
        > Schmitt, Andreas
                Eintrag 1
                Eintrag 2
                Eintrag 3

usw.

Wenn jetzt Fakultät beispielsweise "Wirtschaftswissenschaften" ist und der Suchtext in getAllEnriesByKey ebenfalls "Wirtschaftswissenschaften", so ergibt die Funktion - aus welchem Grund auch immer - 0 Treffer. Ich habe in der entsprechenden Suchansicht - die für den Anwender unsichtbar ist und die entsprechende Spalte *nicht* als Kategorie angezeigt wird - die "\" bzw. "\\" aus dem Anzeigetext per @ReplaceSubstring durch "$" ersetzt. Jetzt findet getAllEntriesByKey korrekt alle Einträge.

@mahonri

Das ist/war soweit bereits gegeben. Vielen Dank trotzdem.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz