كيف يمكنني استخدام تاريخ في صفيف في GetallentRiesBykey؟
-
05-09-2019 - |
سؤال
أحاول استخدام اليوم الحالي في GetallentRiesBykey من خلال تمرير صفيف. الصفيف يبدو حتى الآن مثل هذا
Dim keyarray(2) As Variant
keyarray(0) = "FF Thompson ADT"
Set keyarray(1) = dateTime
أود أن أقول هذا
Set vc = view.GetAllEntriesByKey(keyarray, False)
هنا هو صف عما يبدو عليه عندما يعمل. يقوم وكيل الاختبار بطباعة CSV في رسالة بريد إلكتروني.
FF Thompson ADT، 2/3/2009، 11: 45: 02 مساء، 0،6،0 ،،00: 00: 04،5400،4
لا يبدو لي أن اجتياز تاريخ اليوم الحالي يعمل. يمكنني ضبط DateTime يدويا في الإعلان ويعمل. أعتقد أنه لأنه يحاول أيضا نقل الوقت لكنني لا أعرف. لقد جربت ثلاث طرق وتقول نوع قيمة مفتاح غير صالح.
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
لا أعرف ما إذا كان هذا مفيدا ولكن قرأت عن تقييم هنا.
ما أحاوله في نهاية المطاف القيام به هو GetFirstEntry ل "FF Thompson Adt" للحصول على أحدث إدخالات اليوم. أحاول أيضا أن أفعل نفس الشيء في اليوم السابق. أحاول تلخيص الملفات التي تمت معالجتها (الرقم 6) لكلا اليومين والأخطاء (NULL) لأحدث يوم باستخدام شيء مثل هذا. أحتاج إلى قرصه حتى يجد الملفات التي تمت معالجتها وأخطاء الإدخالات لكنني لم أكن هناك ولكن يجب أن أكون قادرا على القيام به. أنا أيضا أحاول أيضا العثور على أحدث موعد مع القيمة الزمنية للخلاصة IE "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
شكرا على اي مساعدة أو اقتراحات. انهم موضع تقدير كبير.
المحلول 2
إليك إجابة وجدت
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)
نصائح أخرى
لقد استخدمت طريقة GetallentRiesBykey فقط مع مجموعة من السلاسل. لم أحاول أبدا خلط الأنواع. ولكن على افتراض أن الأنواع المختلفة صالحة لهذه الطريقة، قد تكمن المشكلة في الفرق بين أنواع DETETIME في الملاحظات. هناك نوع DateTime Core LS ثم يوجد كائن NotesDateTime. أراهن على الرأي يعتبر عمود تاريخ يتكون من أنواع DETETIME الأساسية، لذلك يفشل عند تمرير نوع NotesDateTime.
لكن هذه المشكلة جانبا، اقتراحي هو إنشاء طريقة عرض تحتوي على الأعمدة التي ترغب في الوصول إليها، وتعيين ترتيب الفرز من العمود الأول (يحتوي على FF Thompson ADT) إلى ASC، ثم قم بتعيين العمود الثاني مع تواريخك إلى DESC. يمكنك بعد ذلك الوصول إلى إدخالات العرض بالترتيب الذي تريده، بأحدث كونه أولا، آخر 2 آخر 2، إلخ.
إذا قامت إحدى الفرصة في بعض الأحيان، تقوم طريقة GetallentRiesBykey بإرجاع المستندات خارج النظام (نسيت إذا ضميت الطلب)، فأنا أعلم أنني قمت بذلك قبل استخدام فئة NotesViewNavigator. هناك بالتأكيد طريقة بديلة للقيام بذلك دون الحاجة إلى استدعاء GetallentRiesBykey مع مفتاح التاريخ.