How to get the Data type of a field in Agent?

My agent runs on selected documents.In my agent I prompt the user to select any of the field name listed. When the user selects the field name I want to check for the data type of that field in the document. How can I do that?

My code :

Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim item As NotesItem
Dim doc As NotesDocument
Dim chkField As Variant
Dim result As Variant
Dim strField As Variant
Dim strValue As Variant
Dim values(25) As String
values[0]="status"
values[1]="documentdet"
values[2]="Form"
.
.
strField = workspace.Prompt(PROMPT_OKCANCELLIST, "SetProcessingField", "Choose the Field Name:","",values)
If strField <> "" Then
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
For i = 1 To collection.count
Set doc = collection.GetNthDocument(i)
Set chkField=doc.GetFirstItem(strField)

"How do I check for the data type of the field here?"
Next
End If


Thanks in advance,
Abby
AboutLotusAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Sjef BosmanConnect With a Mentor Groupware ConsultantCommented:
Are you sure that the field really is a Date field, if you say it says it is a String?? Look in the Document Properties box, maybe it just IS a String...
0
 
Sjef BosmanGroupware ConsultantCommented:
So far so good. You've got the NotesItem in ChkField. Did you look in the Designer Help db, under NotesItem? It says that there is a Type property. Will that do?
0
 
AboutLotusAuthor Commented:
Yup I saw the type property but if it is a date field then it still gives string. Can't I get that data type too?
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
AboutLotusAuthor Commented:
Because I how to check the data type if it is  a numeric/string/date and then choose the related functions on that. How can I do that?
0
 
Sjef BosmanGroupware ConsultantCommented:
Look at all the IsXXXX functions, like IsDate. To make sure that you have a real date when using the field, always use CDat.

There is also the DataType function, it returns the type of an expression and not of the field itself. It might help you anyway. See also the TypeName function, but it's not one of my favourites.
0
 
AboutLotusAuthor Commented:
I have proceeded like this

Dim itemType as Integer

itemType =item.type                  

If (itemType =768 ) Then
chkValue =workspace.Prompt(PROMPT_OKCANCELEDIT, "SetProcessingField", "Enter the Field Value in Number Format", )
strValue=Cint(chkValue)

Else

 If(itemType =1280) Then

"here I have to check if it is a date field"
 chkValue =workspace.Prompt(PROMPT_OKCANCELEDIT, "SetProcessingField", "Enter the Field Value in Date Format", )
strValue=Cdat(chkValue)

 Else

 strValue =workspace.Prompt(PROMPT_OKCANCELEDIT, "SetProcessingField", "Enter the Field Value in String Format", )
                  
End If
End If
                  
Next
End If


Please help me with this.
0
 
AboutLotusAuthor Commented:
Hey Thanks Sjef!!!!
0
 
Sjef BosmanGroupware ConsultantCommented:
You cracked it! Great.

Normally, You give a grade B when the answer is right but doesn't exactly make you happy. Is that so? Don't worry for this question, no hard feelings! But please read the EE-guidelines...
0
 
AboutLotusAuthor Commented:
Hey its not like that. I am new to this forum. I am really happy with ur answer. Sorry for the mistake I have done. Anyhow Thanks Sjef.
0
 
Sjef BosmanGroupware ConsultantCommented:
:) I knew you're knew ;)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.