Solved

Illegal use of PROPERTY

Posted on 2009-04-03
2
725 Views
Last Modified: 2013-12-18
I am trying to select two documents, store the values of the first document, then set the values of the second document to equal the first, but when I run the agent I get the "Illegal use of PROPERTY" error.
Sub Initialize
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim docs As NotesDocumentCollection
	Dim doc As notesdocument
	Dim Q_1 As String
	Dim output_1 As String
	Dim cirats_1 As String
	Dim comments_1 As String
	Dim Q_2 As String
	Dim output_2 As String
	Dim cirats_2 As String
	Dim comments_2 As String
	Dim Q_3 As String
	Dim output_3 As String
	Dim cirats_3 As String
	Dim comments_3 As String
	Dim Q_4 As String
	Dim output_4 As String
	Dim cirats_4 As String
	Dim comments_4 As String
	Set db = s.CurrentDatabase
	Set docs = db.UnprocessedDocuments
	Set doc = docs.GetFirstDocument( )
	Do While Not (doc Is Nothing)		
'Part One
		If doc.Q_1(0) <> "" Then
			Q_1 = doc.Q_1(0)
			output_1 = doc.output_1(0)
			cirats_1 = doc.cirats_1(0)
			comments_1 = doc.comments_1(0)
		End If
		If doc.Q_2(0) <> "" Then
			Q_2 = doc.Q_2(0)
			output_2 = doc.output_2(0)
			cirats_2 = doc.cirats_2(0)
			comments_2 = doc.comments_2(0)
		End If
		If doc.Q_3(0) <> "" Then
			Q_3 = doc.Q_3(0)
			output_3 = doc.output_3(0)
			cirats_3 = doc.cirats_3(0)
			comments_3 = doc.comments_3(0)
		End If
		If doc.Q_4(0) <> "" Then
			Q_4 = doc.Q_4(0)
			output_4 = doc.output_4(0)
			cirats_4 = doc.cirats_4(0)
			comments_4 = doc.comments_4(0)
		End If
'Part Two
		Print "starting part two"
		If doc.Q_1(0) = "" Then
			doc.Q_1(0)= Q_1
			doc.output_1(0) = output_1
			doc.cirats_1(0) = cirats_1
			doc.comments_1(0) = comments_1
		End If
		Print "Q_2"
		If doc.Q_2(0) = "" Then
			doc.Q_2(0) = Q_2
			doc.output_2(0) = output_2
			doc.cirats_2(0) = cirats_2
			doc.comments_2(0) = comments_2
		End If
		Print "Q_3"		
		If doc.Q_3(0) = "" Then
			doc.Q_3(0) = Q_3
			doc.output_3(0) = output_3
			doc.cirats_3(0) = cirats_3
			doc.comments_3(0) = comments_3
		End If
		Print "Q_4"
		If doc.Q_4(0) = "" Then
			doc.Q_4(0) = Q_4
			doc.output_4(0) = output_4
			doc.cirats_4(0) = cirats_4
			doc.comments_4(0) = comments_4
		End If
'Part Three
		Call doc.Save(True,False)
		Set doc = docs.GetNextDocument(doc)
	Loop
End Sub

Open in new window

0
Comment
Question by:scanjema
  • 2
2 Comments
 
LVL 22

Accepted Solution

by:
mbonaci earned 125 total points
ID: 24064082
When you are setting the field value don't use (0), use it only when reading the field's value (cuz' fields are line arrays, so 0 is the value of single value field & first element of multivalue field)

e.g. instead of
    doc.Q_1(0)= Q_1
use
    doc.Q_1 = Q_1
0
 
LVL 22

Expert Comment

by:mbonaci
ID: 24064111
You cannot set it like that, if you ever need to set multiple elements of multivalue field, use NotesItem's AppendToTextList method.
The other way would be to create an array, fill it and then assign it to the field.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

For users on the Lotus Notes 8 Standard client, this article provides information on checking the Java Heap size and adjusting it to half of your system RAM in attempt to get the Lotus Notes 8.x Standard client to run faster.  I've had to exercise t…
I thought it will be a good idea to make a post as it will help in case someone else faces these issues. I trust this gives an idea how each entry in Notes.ini can mean a lot for the Domino Server to be functioning properly. This article discusses t…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

790 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question