2009-02-19 11 views
0

J'essaie d'utiliser le jour en cours dans GetAllEntriesByKey en transmettant un tableau. Le tableau ressemble si loin comme çaComment utiliser une date dans un tableau dans GetAllEntriesByKey?

Dim keyarray(2) As Variant 
keyarray(0) = "FF Thompson ADT" 
Set keyarray(1) = dateTime 

Je voudrais dire

Set vc = view.GetAllEntriesByKey(keyarray, False) 

Voici une rangée de quoi il ressemble quand il fonctionne. L'agent de test imprime csv dans un e-mail.

FF Thompson ADT, 2/3/2009,11: 45: 14 heures, 0,6,0, 00: 00: 04,5400,4

Je ne peux pas sembler passer un courant jour dateTime qui s'exécute. Je peux définir le dateTime manuellement dans la déclaration et cela fonctionne. Je pense que c'est parce qu'il essaie de passer le temps mais je ne sais pas. J'ai essayé trois manières et cela indique le type de valeur clé invalide.

Dim dateTime As New NotesDateTime("") 
Call dateTime.LSLocalTime = Now 
... 
keyarray(1) = dateTime.Dateonly 

Dim dateTime As New NotesDateTime("") 
Call dateTime.SetNow 
... 
keyarray(1) = dateTime.Dateonly 

Dim dateTime As New NotesDateTime("Today") 
... 
keyarray(1) = dateTime.Dateonly 

Je ne sais pas si cela est utile, mais j'ai lu Évaluer here. Ce que j'essaye finalement de faire est GetFirstEntry pour "FF Thompson ADT" pour les entrées de jour les plus récentes existent. J'essaie aussi de faire la même chose pour la veille. J'essaie de résumer les fichiers traités (le nombre 6) pour les deux jours et les erreurs (le nul) pour le jour le plus récent en utilisant quelque chose comme ça. J'ai besoin de le modifier afin qu'il trouve les fichiers traités et les erreurs pour les entrées, mais je ne suis pas arrivé là mais devrait être capable de faire. J'essaie également de trouver la date la plus récente avec la valeur de temps pour le flux, c.-à-d. "FF Thompson ADT".

Set entry = vc.GetFirstEntry 
filesprocessed = 0 
Dim errors, errortotal As Integer 
errors = 0 
errorstotal = 0 
While Not entry Is Nothing 
    rowval = 0 
    errors = 0 
    Forall colval In entry.ColumnValues 
    If rowval > 0 Then 
     errors = Cint(colval) 
    Else 
     rowval = Cint(colval) 
    End If 
    End Forall 
    filesprocessed = filesprocessed + rowval 
    errorstotal = errorstotal + errors 
    Set entry = vc.GetNextEntry(entry) 
Wend 

Merci pour toute aide ou suggestion. Ils sont grandement appréciés.

Répondre

1

est ici une réponse que je trouve

Dim todaysdate As New NotesDateTime("Today") 
Dim dateTime As New NotesDateTime(todaysdate.DateOnly) 

Dim keyarray(1) As Variant keyarray(0) = feedname 
Set keyarray(1) = dateTime 

Set vc = view.GetAllEntriesByKey(keyarray, False) 
+0

Désolé je n'étais pas plus spécifique. Dim DateDuDour As New NotesDateTime ("Aujourd'hui") Dim dateTime As New NotesDateTime (todaysdate.DateOnly) Dim keyarray (1) Comme variante keyarray (0) = feedname Set keyarray (1) = dateTime – Todd

1

J'ai seulement utilisé la méthode GetAllEntriesByKey avec un tableau de chaînes. Je n'ai jamais essayé de mélanger les types. Mais en supposant que différents types sont valides pour cette méthode, le problème peut résider dans la différence entre les types datetime dans Notes. Il existe un type datetime LS principal et un objet NotesDateTime. Je serais prêt à parier que la vue considère une colonne de date composée des types datetime principaux, et qu'elle échoue donc lorsque vous transmettez le type NotesDateTime. Mais ce problème mis à part, ma suggestion est de créer une vue qui a les colonnes que vous voulez accéder, et définissez l'ordre de tri de la première colonne (contenant FF Thompson ADT) à asc, puis définissez la deuxième colonne avec votre dates à descendre Vous pouvez ensuite accéder aux entrées de la vue dans l'ordre souhaité, le plus récent étant le premier, le deuxième le plus récent, etc.

Si par hasard la méthode GetAllEntriesByKey renvoie les documents dans le désordre (j'oublie que cela garantit ordre), je sais que j'ai fait cela avant d'utiliser la classe NotesViewNavigator. Il y a certainement une autre façon de le faire sans avoir besoin d'appeler GetAllEntriesByKey avec la clé de date.

+0

Salut Ken, Merci pour l'entrée. Quand je me suis réveillé, j'ai pensé passer la nouvelle date de l'objet notesdatetime d'aujourd'hui sous la forme d'une chaîne. Dim todaysdate En tant que nouveau NotesDateTime ("Aujourd'hui") Dim dateTime As New NotesDateTime (todaysdate.DateOnly) Cela fonctionne! – Todd

+0

Oui, je sais que la vue est salissante pour travailler avec mais j'utilisais une vue personnalisée avant mais c'est trop lent et gourmand en ressources.Maintenant, je pense à envelopper le GetAllEntriesByKey avec une instruction if demandant d'essayer continuellement la date d'hier si l'entrée renvoie une valeur nulle. – Todd

+0

Ah ouais j'ai tout fini :) – Todd

Questions connexes