[ver]
	4
[sty]
	
[files]
[charset]
	82
	ANSI (Windows, IBM CP 1252)
[revisions]
	0
[sequence]
	10
	0
	0
	0
	19
	2
	Numbered list
	3
	Bullet
	0
	Indnt bullet
	0
	Indnt caution
	0
	Indnt tip
	0
	Indnt note
	0
	Caution
	0
	Tip
	0
	Note
	0
	Browse
	0
	Keyword
	0
	Context
	0
	Title
	0
	Macros
	0
	Alink
	0
	Window
	0
	Win95 macros
	0
	Win31 macros
	0
	Build tag
[prn]
	Apple LaserWriter Plus
[port]
	LPT1:
[lang]
	1
[fldnames]
	Field1
	Field2
	Field3
	Field4
	Field5
	Field6
	Field7
	Field8
[desc]
	
	
	
	
	
	801262574
	153
	780184532
	27839
	39
	0
	0
	0
	0
	
	
	
	
	
	
	1
[fopts]
	0
	1
	0
	0
	
	
[lnopts]
	2
	Body Text
	1
[docopts]
	5
	2
[GramStyle]
	
[ParaNum]
	1
[tag]
	Body Text
	2
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		100
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Body Text
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Ahead
	3
	[fnt]
		Arial
		220
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		240
		4
		79
		0
		3
		100
	[brk]
		112
	[line]
		16
		2160
		3
		0
		1
		1
		1
		65
		10
		1
	[spec]
		0
		1
		
		0
		1
		1
		0
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		wr
	Body Text
	0
	0
[tag]
	Bhead title
	4
	[fnt]
		Arial
		200
		0
		16385
	[algn]
		1
		1
		0
		0
		0
	[spc]
		40
		220
		4
		79
		0
		3
		100
	[brk]
		80
	[line]
		16
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		wr
	Body Text
	0
	0
[tag]
	Chead title
	5
	[fnt]
		Arial
		180
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		200
		4
		79
		0
		3
		100
	[brk]
		112
	[line]
		16
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		3
		
		0
		1
		1
		0
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		wr
	Body Text
	0
	0
[tag]
	Bhead
	6
	[fnt]
		Arial
		200
		0
		16385
	[algn]
		1
		1
		0
		0
		0
	[spc]
		40
		220
		4
		180
		0
		3
		100
	[brk]
		68
	[line]
		16
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		2
		
		0
		1
		1
		0
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	Chead
	7
	[fnt]
		Arial
		180
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		200
		4
		100
		0
		3
		100
	[brk]
		68
	[line]
		16
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		3
		
		0
		1
		1
		0
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	Numbered list
	8
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		300
		300
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		5
		<*:>.
		0
		3
		1
		0
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Numbered list
	0
	0
[tag]
	1st lev para
	9
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		300
		0
		0
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		68
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	1st lev para
	0
	0
[tag]
	Bullet
	11
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		120
		180
		180
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		</U>
		0
		3
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Bullet
	2
	1
	160
	1
	400
	0
[tag]
	Indnt bullet
	12
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		420
		180
		180
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		16
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		</U>
		0
		3
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Indnt bullet
	0
	0
[tag]
	2nd lev para
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		600
		0
		0
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	2nd lev para
	0
	0
[tag]
	See also prnt
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	See also prnt
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Book art
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Book art
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Callout text
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Callout text
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Figure title
	0
	[fnt]
		Arial
		180
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		200
		4
		40
		60
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Figure title
	0
	0
[tag]
	Chapter title
	0
	[fnt]
		Arial
		280
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		300
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		2
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Chapter title
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	1st pg foot
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	1st pg foot
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Right pg foot
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Right pg foot
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Left pg foot
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Left pg foot
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Table title
	0
	[fnt]
		Arial
		180
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		200
		4
		60
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		7
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Table title
	0
	0
[tag]
	Table col hd
	0
	[fnt]
		Arial
		180
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		200
		4
		100
		0
		3
		100
	[brk]
		4
	[line]
		10
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		6
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		256
		1
		0
		
		
		
	Table col hd
	0
	0
[tag]
	Table Text
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		1
		0
		0
		0
	[spc]
		40
		200
		4
		79
		0
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		256
		1
		0
		
		
		
	Table Text
	0
	0
[tag]
	See also hlp
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		40
		4
		180
		0
		3
		100
	[brk]
		96
	[line]
		9
		0
		3
		0
		1
		1
		1
		70
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	See also btn
	0
	120
[tag]
	See also btn
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		240
	[spc]
		24
		200
		4
		0
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	See also btn
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Crossref
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		513
		3
		0
		300
		600
	[spc]
		24
		200
		4
		19
		0
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Crossref
	0
	0
[tag]
	Indnt caution
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		300
		720
		0
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		Caution
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		256
		1
		2
		.
		,
		$
	Indnt caution
	0
	0
[tag]
	Indnt tip
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		300
		324
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		Tip
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Indnt tip
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Indnt note
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		300
		468
		0
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		Note
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		256
		1
		2
		.
		,
		$
	Indnt note
	0
	0
[tag]
	Caution
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		720
		0
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		Caution
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		256
		1
		2
		.
		,
		$
	Caution
	0
	0
[tag]
	Tip
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		324
		0
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		Tip
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		256
		1
		2
		.
		,
		$
	Tip
	0
	0
[tag]
	Note
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		468
		0
	[spc]
		40
		200
		4
		19
		60
		3
		100
	[brk]
		4
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		Note
		0
		3
		1
		1
		0
		0
		0
	[nfmt]
		256
		1
		2
		.
		,
		$
	Note
	0
	0
[tag]
	Mono
	0
	[fnt]
		Courier New
		180
		0
		32768
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		48
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Mono
	15
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	1
	2880
	1
	3360
	1
	3840
	1
	4320
	1
	4800
	1
	5280
	1
	5760
	1
	6240
	1
	6720
	1
	7200
	0
[tag]
	Indnt mono
	0
	[fnt]
		Courier New
		180
		0
		32768
	[algn]
		1
		3
		300
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		32
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Indnt mono
	15
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	1
	2880
	1
	3360
	1
	3840
	1
	4320
	1
	4800
	1
	5280
	1
	5760
	1
	6240
	1
	6720
	1
	7200
	0
[tag]
	Dhead
	0
	[fnt]
		Arial
		180
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		200
		4
		100
		0
		3
		100
	[brk]
		68
	[line]
		16
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		4
		
		0
		1
		1
		0
		2
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		$
	Body Text
	0
	0
[tag]
	Parameter
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		0
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Parameter
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	Formula
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Formula
	0
	0
[tag]
	Browse
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		+
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Browse
	0
	0
[tag]
	Keyword
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		K
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Keyword
	0
	0
[tag]
	Context
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		#
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Context
	0
	0
[tag]
	Title
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		$
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Title
	0
	0
[tag]
	Macros
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		!
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Macros
	0
	0
[tag]
	Footnote
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		244
		0
	[spc]
		40
		2400
		3
		0
		0
		1
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		256
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	Footnote
	0
	0
[tag]
	Alink
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		A
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Alink
	0
	0
[tag]
	Butnbar
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		200
		4
		0
		0
		3
		100
	[brk]
		48
	[line]
		16
		0
		3
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		\li-140 
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		272
		1
		2
		.
		,
		wr
	Butnbar
	0
	0
[tag]
	Window
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		>
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Window
	0
	0
[tag]
	Win95 macros
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		W
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Win95 macros
	0
	0
[tag]
	Win31 macros
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		X
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Win31 macros
	0
	0
[tag]
	Build tag
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		139
		139
	[spc]
		24
		200
		4
		0
		0
		3
		100
	[brk]
		4
	[line]
		16
		0
		3
		0
		1
		2
		2
		20
		20
		1
	[spec]
		0
		0
		*
		0
		3
		1
		256
		1
		0
		0
	[nfmt]
		280
		1
		3
		.
		,
		$
	Build tag
	0
	0
[tag]
	_COND_IF
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	_COND_IF
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	_COND_ELSE
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	_COND_ELSE
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[tag]
	_COND_ENDIF
	0
	[fnt]
		Arial
		180
		0
		16384
	[algn]
		1
		3
		0
		0
		0
	[spc]
		24
		200
		4
		19
		60
		3
		100
	[brk]
		36
	[line]
		8
		0
		1
		0
		1
		1
		1
		10
		10
		1
	[spec]
		0
		0
		
		0
		1
		1
		0
		0
		0
		0
	[nfmt]
		280
		1
		2
		.
		,
		$
	_COND_ENDIF
	5
	1
	480
	1
	960
	1
	1440
	1
	1920
	1
	2400
	0
[frm]
	1
	1573060
	960
	3293
	8872
	9208
	0
	1
	1
	1 0 0 0 0 0 0
	0
	16777215
	9
	0
	20579
	106 618
	[frmlay]
		6233
		7912
		1
		0
		0
		1
		3293
		0
		0
		2
		0
		1
		1
		0
		1
		1764
		8676
		0
	[tbl]
		 17 3 200 86 1440 0 1 43 43
		[h]
			 0 210 86 18 0 3 0
			 1 400 86 2 0 1 0
			 2 200 86 2 0 2 0
			 3 200 86 2 0 2 0
			 4 200 86 2 0 2 0
			 5 400 86 2 0 1 0
			 6 400 86 2 0 1 0
			 7 200 86 2 0 2 0
			 8 200 86 2 0 2 0
			 9 200 86 2 0 2 0
			 10 200 86 2 0 2 0
			 11 400 86 2 0 1 0
			 12 200 86 2 0 2 0
			 13 400 86 2 0 1 0
			 14 200 86 2 0 2 0
			 15 200 86 2 0 3 0
			 16 200 86 2 0 2 0
		[e]
		[w]
			 0 807 0 2 0
			 1 2258 0 2 0
			 2 4804 0 2 0
		[e]
		[data]
			 0 0 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Level

>
			 0 1 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Class

>
			 0 2 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
Back-end

>
			 1 1 0 0 0 0 0 1 0 0 0 0
NotesACL

>
			 1 2 0 0 0 0 0 1 0 0 0 0
Represents a collection of all the access control list entries for a database.

>
			 2 1 0 0 0 0 0 1 0 0 0 0
NotesACLEntry

>
			 2 2 0 0 0 0 0 1 0 0 0 0
Represents a single entry in an access control list.

>
			 3 1 0 0 0 0 0 1 0 0 0 0
NotesAgent

>
			 3 2 0 0 0 0 0 1 0 0 0 0
Represents an agent.

>
			 4 1 0 0 0 0 0 1 0 0 0 0
NotesDatabase

>
			 4 2 0 0 0 0 0 1 0 0 0 0
Represents a Notes database.

>
			 5 1 0 0 0 0 0 1 0 0 0 0
NotesDateTime

>
			 5 2 0 0 0 0 0 1 0 0 0 0
Provides a means to translate between LotusScript and Notes date/time formatting.

>
			 6 1 0 0 0 0 0 1 0 0 0 0
NotesDbDirectory

>
			 6 2 0 0 0 0 0 1 0 0 0 0
Represents the database files on a server or the local machine.

>
			 7 1 0 0 0 0 0 1 0 0 0 0
NotesDocument

>
			 7 2 0 0 0 0 0 1 0 0 0 0
Represents a document in a database.

>
			 8 1 0 0 0 0 0 1 0 0 0 0
NotesDocumentCollection

>
			 8 2 0 0 0 0 0 1 0 0 0 0
Represents a collection of documents.

>
			 9 1 0 0 0 0 0 1 0 0 0 0
NotesEmbeddedObject

>
			 9 2 0 0 0 0 0 1 0 0 0 0
Represents embedded objects, links, and file attachments.

>
			 10 1 0 0 0 0 0 1 0 0 0 0
NotesItem

>
			 10 2 0 0 0 0 0 1 0 0 0 0
Represents a piece of data on a document.

>
			 11 1 0 0 0 0 0 1 0 0 0 0
NotesNewsLetter

>
			 11 2 0 0 0 0 0 1 0 0 0 0
A summary document that contains information from, or doclinks to, several other documents.

>
			 12 1 0 0 0 0 0 1 0 0 0 0
NotesRichTextItem

>
			 12 2 0 0 0 0 0 1 0 0 0 0
Represents items that can contain rich  text.

>
			 13 1 0 0 0 0 0 1 0 0 0 0
NotesSession

>
			 13 2 0 0 0 0 0 1 0 0 0 0
Root of Notes back-end objects--for global attributes and persistent information.

>
			 14 1 0 0 0 0 0 1 0 0 0 0
NotesView

>
			 14 2 0 0 0 0 0 1 0 0 0 0
Represents a named view of a database.

>
			 15 0 0 0 0 0 0 1 0 0 0 0
UI

>
			 15 1 0 0 0 0 0 1 0 0 0 0
NotesUIWorkspace

>
			 15 2 0 0 0 0 0 1 0 0 0 0
Provides access  the current workspace.

>
			 16 1 0 0 0 0 0 1 0 0 0 0
NotesUIDocument

>
			 16 2 0 0 0 0 0 1 0 0 0 0
Models the behavior of a Notes document window.

>
		[e]
	[tble]
[frm]
	3
	1573060
	960
	6526
	9291
	11441
	0
	1
	1
	1 0 0 0 0 0 0
	0
	16777215
	6
	1
	20579
	106 618
	[frmlay]
		6233
		8331
		1
		0
		0
		1
		6526
		0
		0
		2
		0
		1
		1
		0
		1
		1764
		8676
		0
	[tbl]
		 20 3 0 86 1440 0 1 43 43
		[h]
			 0 210 86 18 0 3 0
			 1 200 86 2 0 3 0
			 2 200 86 2 0 3 0
			 3 200 86 2 0 3 0
			 4 200 86 2 0 3 0
			 5 200 86 2 0 3 0
			 6 200 86 2 0 3 0
			 7 200 86 2 0 3 0
			 8 200 86 2 0 3 0
			 9 200 86 2 0 3 0
			 10 200 86 2 0 3 0
			 11 200 86 2 0 3 0
			 12 200 86 2 0 3 0
			 13 200 86 2 0 3 0
			 14 200 86 2 0 3 0
			 15 200 86 2 0 3 0
			 16 200 86 2 0 3 0
			 17 200 86 2 0 3 0
			 18 200 86 2 0 3 0
			 19 200 86 2 0 3 0
		[e]
		[w]
			 0 1862 0 2 0
			 1 1895 0 2 0
			 2 4531 0 2 0
		[e]
		[data]
			 0 0 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Property

>
			 0 1 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Data Type

>
			 0 2 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
Agents<:X8,0;Index "Agents property" #>

>
			 1 1 0 0 0 0 0 1 0 0 0 0
NotesAgent array

>
			 1 2 8 0 0 0 0 1 0 0 0 0
<+@>Agents in the database

>
			 2 0 0 0 0 0 0 1 0 0 0 0
Categories<:X8,0;Index "Categories property" #>

>
			 2 1 0 0 0 0 0 1 0 0 0 0
String array

>
			 2 2 0 0 0 0 0 1 0 0 0 0
Categories in the database

>
			 3 0 0 0 0 0 0 1 0 0 0 0
Created<:X8,0;Index "Created property" #>

>
			 3 1 0 0 0 0 0 1 0 0 0 0
Date/Time

>
			 3 2 0 0 0 0 0 1 0 0 0 0
Date and time the database was created

>
			 4 0 0 0 0 0 0 1 0 0 0 0
DesignTemplateName<:X8,0;Index "DesignTemplateName property" #>

>
			 4 1 0 0 0 0 0 1 0 0 0 0
String

>
			 4 2 0 0 0 0 0 1 0 0 0 0
Database's design template, if any

>
			 5 0 0 0 0 0 0 1 0 0 0 0
FileName<:X8,0;Index "FileName property" #>

>
			 5 1 0 0 0 0 0 1 0 0 0 0
String

>
			 5 2 0 0 0 0 0 1 0 0 0 0
Database file name

>
			 6 0 0 0 0 0 0 1 0 0 0 0
FilePath<:X8,0;Index "FilePath property" #>

>
			 6 1 0 0 0 0 0 1 0 0 0 0
String

>
			 6 2 0 0 0 0 0 1 0 0 0 0
Database path

>
			 7 0 0 0 0 0 0 1 0 0 0 0
IsFTIndexed<:X8,0;Index "IsFTIndexed property" #>

>
			 7 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 7 2 0 0 0 0 0 1 0 0 0 0
True if the database is full text indexed

>
			 8 0 0 0 0 0 0 1 0 0 0 0
IsOpen<:X8,0;Index "IsOpen property" #>

>
			 8 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 8 2 0 0 0 0 0 1 0 0 0 0
True if the database is open

>
			 9 0 0 0 0 0 0 1 0 0 0 0
IsPrivateAddressBook<:X8,0;Index "IsPrivateAddressBook property" #>

>
			 9 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 9 2 0 0 0 0 0 1 0 0 0 0
True if the database is a private Name & Address Book

>
			 10 0 0 0 0 0 0 1 0 0 0 0
IsPublicAddressBook<:X8,0;Index "IsPublicAddressBook property" #>

>
			 10 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 10 2 0 0 0 0 0 1 0 0 0 0
True if the database is a public Name & Address Book

>
			 11 0 0 0 0 0 0 1 0 0 0 0
LastFTIndexed<:X8,0;Index "LastFTIndexed property" #>

>
			 11 1 0 0 0 0 0 1 0 0 0 0
Date/Time

>
			 11 2 0 0 0 0 0 1 0 0 0 0
Date and time a full text index was last updated

>
			 12 0 0 0 0 0 0 1 0 0 0 0
LastModified<:X8,0;Index "LastModified property" #>

>
			 12 1 0 0 0 0 0 1 0 0 0 0
Date/Time

>
			 12 2 0 0 0 0 0 1 0 0 0 0
Date and time the database was last modified

>
			 13 0 0 0 0 0 0 1 0 0 0 0
Managers<:X8,0;Index "Managers property" #>

>
			 13 1 0 0 0 0 0 1 0 0 0 0
String array

>
			 13 2 0 0 0 0 0 1 0 0 0 0
Users that have manager access to the database

>
			 14 0 0 0 0 0 0 1 0 0 0 0
Parent<:X8,0;Index "Parent property" #>

>
			 14 1 0 0 0 0 0 1 0 0 0 0
NotesSession

>
			 14 2 0 0 0 0 0 1 0 0 0 0
Current Notes session

>
			 15 0 0 0 0 0 0 1 0 0 0 0
ReplicaID<:X8,0;Index "ReplicaID property" #>

>
			 15 1 0 0 0 0 0 1 0 0 0 0
String

>
			 15 2 0 0 0 0 0 1 0 0 0 0
Database replica ID in hexadecimal

>
			 16 0 0 0 0 0 0 1 0 0 0 0
Size

>
			 16 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 16 2 0 0 0 0 0 1 0 0 0 0
Database size

>
			 17 0 0 0 0 0 0 1 0 0 0 0
TemplateName<:X8,0;Index "TemplateName property" #>

>
			 17 1 0 0 0 0 0 1 0 0 0 0
String

>
			 17 2 0 0 0 0 0 1 0 0 0 0
Database template name if applicable

>
			 18 0 0 0 0 0 0 1 0 0 0 0
Title<:X8,0;Index "Title property" #>

>
			 18 1 0 0 0 0 0 1 0 0 0 0
String

>
			 18 2 0 0 0 0 0 1 0 0 0 0
Database title

>
			 19 0 0 0 0 0 4096 1 0 0 0 0
Views<:X8,0;Index "Views property" #>

>
			 19 1 0 0 0 0 4096 1 0 0 0 0
NotesView array

>
			 19 2 0 0 0 0 4096 1 0 0 0 0
Named views in the database

>
		[e]
	[tble]
[frm]
	8
	1573060
	720
	960
	9200
	2772
	0
	1
	1
	1 0 0 0 0 0 0
	0
	16777215
	7
	2
	20579
	106 618
	[frmlay]
		6413
		8480
		1
		0
		0
		1
		960
		0
		0
		2
		0
		1
		1
		0
		1
		1944
		8856
		0
	[tbl]
		 9 3 0 86 1440 0 1 43 43
		[h]
			 0 210 86 18 0 3 0
			 1 200 86 2 0 3 0
			 2 200 86 2 0 3 0
			 3 200 86 2 0 3 0
			 4 200 86 2 0 3 0
			 5 200 86 2 0 3 0
			 6 200 86 2 0 3 0
			 7 200 86 2 0 3 0
			 8 200 86 2 0 3 0
		[e]
		[w]
			 0 1862 0 2 0
			 1 2010 0 2 0
			 2 4565 0 2 0
		[e]
		[data]
			 0 0 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Property

>
			 0 1 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Data Type

>
			 0 2 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
Created<:X8,0;Index "Created property" #>

>
			 1 1 0 0 0 0 0 1 0 0 0 0
Date/Time

>
			 1 2 8 0 0 0 0 1 0 0 0 0
<+@>Creation date and time.

>
			 2 0 0 0 0 0 0 1 0 0 0 0
Columns<:X8,0;Index "Columns property" #>

>
			 2 1 0 0 0 0 0 1 0 0 0 0
NotesViewColumn array

>
			 2 2 0 0 0 0 0 1 0 0 0 0
Columns that are in the view.

>
			 3 0 0 0 0 0 0 1 0 0 0 0
IsDefaultView<:X8,0;Index "IsDefaultView property" #>

>
			 3 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 3 2 0 0 0 0 0 1 0 0 0 0
True if this is the default view.

>
			 4 0 0 0 0 0 0 1 0 0 0 0
IsFolder<:X8,0;Index "IsFolder property" #>

>
			 4 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 4 2 0 0 0 0 0 1 0 0 0 0
True if this is a folder. <+"><+!>yyDOESN'T WORK<-!><-">

>
			 5 0 0 0 0 0 0 1 0 0 0 0
LastModified<:X8,0;Index "LastModified property" #>

>
			 5 1 0 0 0 0 0 1 0 0 0 0
Date/Time

>
			 5 2 0 0 0 0 0 1 0 0 0 0
Date and time the view was lasts modified.

>
			 6 0 0 0 0 0 0 1 0 0 0 0
Name<:X8,0;Index "Name property" #>

>
			 6 1 0 0 0 0 0 1 0 0 0 0
String

>
			 6 2 0 0 0 0 0 1 0 0 0 0
Name of the view including cascades.

>
			 7 0 0 0 0 0 0 1 0 0 0 0
Parent<:X8,0;Index "Parent property" #>

>
			 7 1 0 0 0 0 0 1 0 0 0 0
NotesDatabase

>
			 7 2 0 0 0 0 0 1 0 0 0 0
Database containing this view.

>
			 8 0 0 0 0 0 0 1 0 0 0 0
UniversalID<:X8,0;Index "UniversalID property" #>

>
			 8 1 0 0 0 0 0 1 0 0 0 0
String

>
			 8 2 0 0 0 0 0 1 0 0 0 0
Universal ID of the view.

>
		[e]
	[tble]
[frm]
	13
	1573060
	960
	960
	9440
	7862
	0
	1
	1
	1 0 0 0 0 0 0
	0
	16777215
	8
	3
	20579
	106 618
	[frmlay]
		6593
		8480
		1
		0
		0
		1
		960
		0
		0
		2
		0
		1
		1
		0
		1
		2124
		9036
		0
	[tbl]
		 25 3 0 86 1440 0 1 43 43
		[h]
			 0 210 86 18 0 3 0
			 1 200 86 2 0 3 0
			 2 200 86 2 0 3 0
			 3 200 86 2 0 3 0
			 4 200 86 2 0 3 0
			 5 200 86 2 0 3 0
			 6 400 86 2 0 1 0
			 7 200 86 2 0 3 0
			 8 200 86 2 0 3 0
			 9 400 86 2 0 1 0
			 10 200 86 2 0 3 0
			 11 200 86 2 0 3 0
			 12 200 86 2 0 3 0
			 13 200 86 2 0 3 0
			 14 200 86 2 0 3 0
			 15 200 86 2 0 3 0
			 16 200 86 2 0 3 0
			 17 200 86 2 0 3 0
			 18 200 86 2 0 3 0
			 19 200 86 2 0 3 0
			 20 400 86 2 0 1 0
			 21 200 86 2 0 3 0
			 22 200 86 2 0 3 0
			 23 200 86 2 0 3 0
			 24 400 86 2 0 1 0
		[e]
		[w]
			 0 1862 0 2 0
			 1 2010 0 2 0
			 2 4565 0 2 0
		[e]
		[data]
			 0 0 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Property

>
			 0 1 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Data Type

>
			 0 2 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
Authors<:X8,0;Index "Authors property" #>

>
			 1 1 0 0 0 0 0 1 0 0 0 0
String array

>
			 1 2 8 0 0 0 0 1 0 0 0 0
<+@>Names  of users who have saved the document.

>
			 2 0 0 0 0 0 0 1 0 0 0 0
Created<:X8,0;Index "Created property" #>

>
			 2 1 0 0 0 0 0 1 0 0 0 0
Date/Time

>
			 2 2 0 0 0 0 0 1 0 0 0 0
Date and time the document was created.

>
			 3 0 0 0 0 0 0 1 0 0 0 0
EmbeddedObjects<:X8,0;Index "EmbeddedObjects property" #>

>
			 3 1 0 0 0 0 0 1 0 0 0 0
EmbeddedObject array

>
			 3 2 0 0 0 0 0 1 0 0 0 0
All objects embedded in the document.

>
			 4 0 0 0 0 0 0 1 0 0 0 0
EncryptionKeys<:X8,0;Index "EncryptionKeys property" #>

>
			 4 1 0 0 0 0 0 1 0 0 0 0
String array

>
			 4 2 0 0 0 0 0 1 0 0 0 0
Keys used to encrypt the document.

>
			 5 0 0 0 0 0 0 1 0 0 0 0
EncryptOnSend<:X8,0;Index "EncryptOnSend property" #>

>
			 5 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 5 2 0 0 0 0 0 1 0 0 0 0
True if the document is encrypted when mailed.

>
			 6 0 0 0 0 0 0 1 0 0 0 0
FTSearchScore<:X8,0;Index "FTSearchScore property" #>

>
			 6 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 6 2 0 0 0 0 0 1 0 0 0 0
Relevance value if the document was retrieved from a full text search.

>
			 7 0 0 0 0 0 0 1 0 0 0 0
HasEmbedded<:X8,0;Index "HasEmbedded property" #>

>
			 7 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 7 2 0 0 0 0 0 1 0 0 0 0
True if the document has embedded objects.

>
			 8 0 0 0 0 0 0 1 0 0 0 0
HasItem<:X8,0;Index "HasItem property" #>

>
			 8 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 8 2 0 0 0 0 0 1 0 0 0 0
True if the document has a specified item.

>
			 9 0 0 0 0 0 0 1 0 0 0 0
IsNewNote<:X8,0;Index "IsNewNote property" #>

>
			 9 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 9 2 0 0 0 0 0 1 0 0 0 0
True if the document is created but does not yet exist on disk.

>
			 10 0 0 0 0 0 0 1 0 0 0 0
IsResponse<:X8,0;Index "IsResponse property" #>

>
			 10 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 10 2 0 0 0 0 0 1 0 0 0 0
True if the document is a response document.

>
			 11 0 0 0 0 0 0 1 0 0 0 0
IsSigned<:X8,0;Index "IsSigned property" #>

>
			 11 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 11 2 0 0 0 0 0 1 0 0 0 0
True if the document is signed.

>
			 12 0 0 0 0 0 0 1 0 0 0 0
Items<:X8,0;Index "Items property" #>

>
			 12 1 0 0 0 0 0 1 0 0 0 0
NotesItem array

>
			 12 2 0 0 0 0 0 1 0 0 0 0
All the items in the document.

>
			 13 0 0 0 0 0 0 1 0 0 0 0
LastAccessed<:X8,0;Index "LastAccessed property" #>

>
			 13 1 0 0 0 0 0 1 0 0 0 0
Date/Time

>
			 13 2 0 0 0 0 0 1 0 0 0 0
Date and time the document was last accessed.

>
			 14 0 0 0 0 0 0 1 0 0 0 0
LastModified<:X8,0;Index "LastModified property" #>

>
			 14 1 0 0 0 0 0 1 0 0 0 0
Date/Time

>
			 14 2 0 0 0 0 0 1 0 0 0 0
Date and time the document was last modified.

>
			 15 0 0 0 0 0 0 1 0 0 0 0
NoteID<:X8,0;Index "NoteID property" #>

>
			 15 1 0 0 0 0 0 1 0 0 0 0
String

>
			 15 2 0 0 0 0 0 1 0 0 0 0
Note ID of the document.

>
			 16 0 0 0 0 0 0 1 0 0 0 0
ParentDatabase<:X8,0;Index "ParentDatabase property" #>

>
			 16 1 0 0 0 0 0 1 0 0 0 0
NotesDatabase

>
			 16 2 0 0 0 0 0 1 0 0 0 0
Database that contains the object.

>
			 17 0 0 0 0 0 0 1 0 0 0 0
ParentDocumentUNID<:X8,0;Index "ParentDocumentUNID property" #>

>
			 17 1 0 0 0 0 0 1 0 0 0 0
String

>
			 17 2 0 0 0 0 0 1 0 0 0 0
Universal ID of the parent if the document is a response.

>
			 18 0 0 0 0 0 0 1 0 0 0 0
ParentView<:X8,0;Index "ParentView property" #>

>
			 18 1 0 0 0 0 0 1 0 0 0 0
NotesView

>
			 18 2 0 0 0 0 0 1 0 0 0 0
View from which the document was retrieved.

>
			 19 0 0 0 0 0 0 1 0 0 0 0
SaveMessageOnSend<:X8,0;Index "SaveMessageOnSend property" #>

>
			 19 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 19 2 0 0 0 0 0 1 0 0 0 0
True if message is saved when mailed.

>
			 20 0 0 0 0 0 0 1 0 0 0 0
SentByAgent<:X8,0;Index "SentByAgent property" #>

>
			 20 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 20 2 0 0 0 0 0 1 0 0 0 0
True if the document was mailed by an agent using the Send or SendTo method.

>
			 21 0 0 0 0 0 0 1 0 0 0 0
Signer<:X8,0;Index "Signer property" #>

>
			 21 1 0 0 0 0 0 1 0 0 0 0
String

>
			 21 2 0 0 0 0 0 1 0 0 0 0
Name of signer if the document is signed.

>
			 22 0 0 0 0 0 0 1 0 0 0 0
SignOnSend<:X8,0;Index "SignOnSend property" #>

>
			 22 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 22 2 0 0 0 0 0 1 0 0 0 0
True if the document is signed when mailed.

>
			 23 0 0 0 0 0 0 1 0 0 0 0
UniversalID<:X8,0;Index "UniversalID property" #>

>
			 23 1 0 0 0 0 0 1 0 0 0 0
String

>
			 23 2 0 0 0 0 0 1 0 0 0 0
Universal ID of the document.

>
			 24 0 0 0 0 0 0 1 0 0 0 0
Verifier<:X8,0;Index "Verifier property" #>

>
			 24 1 0 0 0 0 0 1 0 0 0 0
String

>
			 24 2 0 0 0 0 0 1 0 0 0 0
Name of user verifying the signature if the document is signed.

>
		[e]
	[tble]
[frm]
	24
	1573060
	720
	979
	9200
	6687
	0
	1
	1
	1 0 0 0 0 0 0
	0
	16777215
	10
	4
	20579
	106 618
	[frmlay]
		6773
		8480
		1
		0
		0
		1
		979
		0
		0
		2
		0
		1
		1
		0
		1
		2304
		9216
		0
	[tbl]
		 16 3 0 86 1440 0 1 43 43
		[h]
			 0 210 86 18 0 3 0
			 1 200 86 2 0 3 0
			 2 400 86 2 0 1 0
			 3 200 86 2 0 3 0
			 4 200 86 2 0 3 0
			 5 200 86 2 0 3 0
			 6 200 86 2 0 3 0
			 7 200 86 2 0 3 0
			 8 200 86 2 0 3 0
			 9 200 86 2 0 3 0
			 10 200 86 2 0 3 0
			 11 200 86 2 0 3 0
			 12 200 86 2 0 3 0
			 13 800 86 2 0 1 0
			 14 200 86 2 0 3 0
			 15 479 86 2 0 1 0
		[e]
		[w]
			 0 1862 0 2 0
			 1 2010 0 2 0
			 2 4565 0 2 0
		[e]
		[data]
			 0 0 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Property

>
			 0 1 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Data type

>
			 0 2 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
DateTimeValue<:X8,0;Index "DateTimeValue property" #>

>
			 1 1 0 0 0 0 0 1 0 0 0 0
NotesDateTime

>
			 1 2 0 0 0 0 0 1 0 0 0 0
Date/time value of an item of type Date/time

>
			 2 0 0 0 0 0 0 1 0 0 0 0
EmbeddedObjects<:X8,0;Index "EmbeddedObjects property" #>

>
			 2 1 0 0 0 0 0 1 0 0 0 0
NotesEmbeddedObject array

>
			 2 2 0 0 0 0 0 1 0 0 0 0
Embedded objects in the item

>
			 3 0 0 0 0 0 0 1 0 0 0 0
IsAuthors<:X8,0;Index "IsAuthors property" #>

>
			 3 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 3 2 0 0 0 0 0 1 0 0 0 0
True if the item is of type Authors

>
			 4 0 0 0 0 0 0 1 0 0 0 0
IsEncrypted<:X8,0;Index "IsEncrypted property" #>

>
			 4 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 4 2 0 0 0 0 0 1 0 0 0 0
True if the item is encrypted

>
			 5 0 0 0 0 0 0 1 0 0 0 0
IsNames<:X8,0;Index "IsNames property" #>

>
			 5 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 5 2 0 0 0 0 0 1 0 0 0 0
Ture if the item is of type Names

>
			 6 0 0 0 0 0 0 1 0 0 0 0
IsProtected<:X8,0;Index "IsProtected property" #>

>
			 6 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 6 2 0 0 0 0 0 1 0 0 0 0
True if Editor access is required to modify

>
			 7 0 0 0 0 0 0 1 0 0 0 0
IsReaders<:X8,0;Index "IsReaders property" #>

>
			 7 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 7 2 0 0 0 0 0 1 0 0 0 0
True if the item if of type Reader Names

>
			 8 0 0 0 0 0 0 1 0 0 0 0
IsSigned<:X8,0;Index "IsSigned property" #>

>
			 8 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 8 2 0 0 0 0 0 1 0 0 0 0
True if the item is signed

>
			 9 0 0 0 0 0 0 1 0 0 0 0
IsSummary<:X8,0;Index "IsSummary property" #>

>
			 9 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 9 2 0 0 0 0 0 1 0 0 0 0
True if the item can appear in a view

>
			 10 0 0 0 0 0 0 1 0 0 0 0
Name<:X8,0;Index "Name property" #>

>
			 10 1 0 0 0 0 0 1 0 0 0 0
String

>
			 10 2 0 0 0 0 0 1 0 0 0 0
Name of the item

>
			 11 0 0 0 0 0 0 1 0 0 0 0
Parent<:X8,0;Index "Parent property" #>

>
			 11 1 0 0 0 0 0 1 0 0 0 0
NotesDocument

>
			 11 2 0 0 0 0 0 1 0 0 0 0
The document that contains the item

>
			 12 0 0 0 0 0 0 1 0 0 0 0
Text<:X8,0;Index "Text property" #>

>
			 12 1 0 0 0 0 0 1 0 0 0 0
String

>
			 12 2 0 0 0 0 0 1 0 0 0 0
Plain text representation of the item's value

>
			 13 0 0 0 0 0 0 1 0 0 0 0
Type<:X8,0;Index "Type property" #>

>
			 13 1 0 0 0 0 0 1 0 0 0 0
Integer constant

>
			 13 2 0 0 0 0 0 1 0 0 0 0
ATTACHMENT, EMBEDDEDOBJECT, ERRORITEM, NOTELINKS, NOTEREFS, NUMBERS, RICHTEXT, SIGNATURE, TEXT, DATETIMES, UNAVAILABLE, UNKNOWN, USERDATA, USERID

>
			 14 0 0 0 0 0 0 1 0 0 0 0
ValueLength<:X8,0;Index "ValueLength property" #>

>
			 14 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 14 2 0 0 0 0 0 1 0 0 0 0
Size in bytes of an item's values

>
			 15 0 0 0 0 0 0 1 0 0 0 0
Values<:X8,0;Index "Values property" #>

>
			 15 1 0 0 0 0 0 1 0 0 0 0
Variant array

Variant (rich text only)

>
			 15 2 0 0 0 0 0 1 0 0 0 0
Values that an item holds

>
		[e]
	[tble]
[frm]
	31
	1573060
	960
	10570
	9416
	11481
	0
	1
	1
	1 0 0 0 0 0 0
	0
	16777215
	11
	5
	20579
	106 618
	[frmlay]
		6233
		8456
		1
		0
		0
		1
		10570
		0
		0
		2
		0
		1
		1
		0
		1
		1764
		8676
		0
	[tbl]
		 12 3 0 86 1440 0 1 43 43
		[h]
			 0 210 86 18 0 3 0
			 1 200 86 2 0 3 0
			 2 200 86 2 0 3 0
			 3 200 86 2 0 3 0
			 4 200 86 2 0 3 0
			 5 200 86 2 0 3 0
			 6 200 86 2 0 3 0
			 7 200 86 2 0 3 0
			 8 200 86 2 0 3 0
			 9 200 86 2 0 3 0
			 10 200 86 2 0 3 0
			 11 200 86 2 0 3 0
		[e]
		[w]
			 0 1714 0 2 0
			 1 1895 0 2 0
			 2 4804 0 2 0
		[e]
		[data]
			 0 0 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Property

>
			 0 1 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Data Type

>
			 0 2 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
AddressBooks<:X8,0;Index "AddressBooks property" #>

>
			 1 1 0 0 0 0 0 1 0 0 0 0
NotesDatabase array

>
			 1 2 8 0 0 0 0 1 0 0 0 0
<+@>Accessible public and private Name & Address Books

>
			 2 0 0 0 0 0 0 1 0 0 0 0
CurrentAgent<:X8,0;Index "CurrentAgent property" #>

>
			 2 1 0 0 0 0 0 1 0 0 0 0
NotesAgent

>
			 2 2 0 0 0 0 0 1 0 0 0 0
Agent that in which the program is running

>
			 3 0 0 0 0 0 0 1 0 0 0 0
CurrentDatabase<:X8,0;Index "CurrentDatabase property" #>

>
			 3 1 0 0 0 0 0 1 0 0 0 0
NotesDatabase

>
			 3 2 0 0 0 0 0 1 0 0 0 0
Database in which the program is running

>
			 4 0 0 0 0 0 0 1 0 0 0 0
EffectiveUserName<:X8,0;Index "EffectiveUserName property" #>

>
			 4 1 0 0 0 0 0 1 0 0 0 0
String

>
			 4 2 0 0 0 0 0 1 0 0 0 0
Person who created the current program

>
			 5 0 0 0 0 0 0 1 0 0 0 0
IsOnServer<:X8,0;Index "IsOnServer property" #>

>
			 5 1 0 0 0 0 0 1 0 0 0 0
Boolean

>
			 5 2 0 0 0 0 0 1 0 0 0 0
True if the program is running on a server

>
			 6 0 0 0 0 0 0 1 0 0 0 0
LastExitStatus<:X8,0;Index "LastExitStatus property" #>

>
			 6 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 6 2 0 0 0 0 0 1 0 0 0 0
Status the last time the program ran

>
			 7 0 0 0 0 0 0 1 0 0 0 0
LastRun<:X8,0;Index "LastRun property" #>

>
			 7 1 0 0 0 0 0 1 0 0 0 0
Date/Time

>
			 7 2 0 0 0 0 0 1 0 0 0 0
Date and time the program last ran

>
			 8 0 0 0 0 0 0 1 0 0 0 0
NotesVersion<:X8,0;Index "NotesVersion property" #>

>
			 8 1 0 0 0 0 0 1 0 0 0 0
String

>
			 8 2 0 0 0 0 0 1 0 0 0 0
Version of Notes

>
			 9 0 0 0 0 0 0 1 0 0 0 0
Platform<:X8,0;Index "Platform property" #>

>
			 9 1 0 0 0 0 0 1 0 0 0 0
String

>
			 9 2 0 0 0 0 0 1 0 0 0 0
Operating system platform

>
			 10 0 0 0 0 0 0 1 0 0 0 0
SavedData<:X8,0;Index "SavedData property" #>

>
			 10 1 0 0 0 0 0 1 0 0 0 0
NotesDocument

>
			 10 2 0 0 0 0 0 1 0 0 0 0
Document that stores data between program invocations

>
			 11 0 0 0 0 0 4096 1 0 0 0 0
UserName<:X8,0;Index "UserName property" #>

>
			 11 1 0 0 0 0 4096 1 0 0 0 0
String

>
			 11 2 0 0 0 0 4096 1 0 0 0 0
User name from the Notes ID

>
		[e]
	[tble]
[frm]
	36
	1573060
	960
	960
	9418
	3301
	0
	1
	1
	1 0 0 0 0 0 0
	0
	16777215
	12
	6
	20579
	106 618
	[frmlay]
		6413
		8458
		1
		0
		0
		1
		960
		0
		0
		2
		0
		1
		1
		0
		1
		1944
		8856
		0
	[tbl]
		 8 3 0 86 1440 0 1 43 43
		[h]
			 0 210 86 18 0 3 0
			 1 200 86 2 0 3 0
			 2 200 86 2 0 3 0
			 3 200 86 2 0 3 0
			 4 200 86 2 0 3 0
			 5 200 86 2 0 3 0
			 6 200 86 2 0 3 0
			 7 200 86 2 0 3 0
		[e]
		[w]
			 0 1714 0 2 0
			 1 1060 0 2 0
			 2 5641 0 2 0
		[e]
		[data]
			 0 0 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Property

>
			 0 1 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Data Type

>
			 0 2 8 0 0 0 4352 1 0 0 0 0
@Table col hd@<+@>Description

>
			 1 0 0 0 0 0 0 1 0 0 0 0
EditMode<:X8,0;Index "AddressBooks property" #>

>
			 1 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 1 2 0 0 0 0 0 1 0 0 0 0
True for edit mode.

>
			 2 0 0 0 0 0 0 1 0 0 0 0
PreviewParentDoc

>
			 2 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 2 2 0 0 0 0 0 1 0 0 0 0
True if the lower pane containing the parent document is displayed.

>
			 3 0 0 0 0 0 0 1 0 0 0 0
PreviewDocLink

>
			 3 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 3 2 0 0 0 0 0 1 0 0 0 0
True if the lower pane contaiing the preview document is displayed.

>
			 4 0 0 0 0 0 0 1 0 0 0 0
Ruler

>
			 4 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 4 2 0 0 0 0 0 1 0 0 0 0
True if the ruler is visible.

>
			 5 0 0 0 0 0 0 1 0 0 0 0
HorzScrollBar

>
			 5 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 5 2 0 0 0 0 0 1 0 0 0 0
True if the horizonal scroll bar is visible.

>
			 6 0 0 0 0 0 0 1 0 0 0 0
HiddenChars

>
			 6 1 0 0 0 0 0 1 0 0 0 0
Integer

>
			 6 2 0 0 0 0 0 1 0 0 0 0
True to display hidden characters.

>
			 7 0 0 0 0 0 4096 1 0 0 0 0
FieldHelp

>
			 7 1 0 0 0 0 4096 1 0 0 0 0
Integer

>
			 7 2 0 0 0 0 4096 1 0 0 0 0
True to display field help.

>
		[e]
	[tble]
[lay]
	Standard
	3079
	[rght]
		12960
		10166
		1
		960
		1200
		3
		960
		720
		0
		1
		0
		1
		0
		2
		1
		960
		9446
		1
		1
		3120
	[lft]
		12960
		10166
		1
		720
		1200
		3
		960
		960
		0
		1
		0
		1
		0
		2
		1
		720
		9206
		1
		1
		3120
	[hlft]
	[lyfrm]
		1
		3008
		0
		0
		10166
		960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		3
	[frmlay]
		960
		10166
		1
		720
		180
		3
		0
		960
		0
		1
		0
		1
		1
		0
		1
		720
		9206
		1
		2
		4674
	[txt]
>
	[hrght]
	[lyfrm]
		1
		11200
		0
		0
		10166
		960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		1
	[frmlay]
		960
		10166
		1
		960
		180
		3
		0
		720
		0
		1
		0
		1
		1
		0
		1
		960
		9446
		1
		2
		4674
	[txt]
>
	[flft]
	[lyfrm]
		1
		5056
		0
		11760
		10166
		12960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		4
	[frmlay]
		12960
		10166
		1
		720
		480
		3
		11940
		960
		0
		1
		0
		1
		1
		0
		1
		720
		9206
		1
		3
		9900
	[txt]
@Left pg foot@<:R1,1,3,8486,><:P19999,0,3-> Programmer's Guide	Lotus Confidential

>
	[frght]
	[lyfrm]
		1
		13248
		0
		11760
		10166
		12960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		2
	[frmlay]
		12960
		10166
		1
		960
		480
		3
		11940
		720
		0
		1
		0
		1
		1
		0
		1
		960
		9446
		1
		3
		9900
	[txt]
@Right pg foot@<:R1,1,3,8486,>Lotus Confidential	LotusScript: Accessing Notes <:P19999,0,3->

>
[elay]
[l1]
	0
[pg]
	39
	16 0 78 0 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	47 0 78 64 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	62 0 5 0 0 0 0 40 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 17 0 0
	68 1283 8 0 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	86 0 2 0 64 0 0 40 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	96 205 91 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	111 94 93 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	126 338 23 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	135 0 93 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	141 0 50 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	153 0 5 0 0 0 0 40 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 4 0 0
	160 0 85 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	173 0 52 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	192 0 5 0 0 0 0 40 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 5 0 0
	196 0 56 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	207 184 34 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	219 107 36 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	232 115 70 0 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	250 0 9 32 1 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	257 97 31 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	268 281 29 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	286 0 82 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	305 104 32 0 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	311 0 54 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	315 97 94 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	329 95 77 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	335 99 28 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	346 0 90 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	355 200 16 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	369 0 9 0 1 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	384 106 102 96 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	398 309 10 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	411 0 5 0 0 0 0 40 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 3 0 0
	421 102 32 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	434 104 67 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	460 105 37 0 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	472 103 9 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	486 104 71 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
	491 677 8 1025 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
[edoc]
@Ahead@<:#240,8486><:f280,,><+!>3. <-!><:f><+!><:f280,,>LotusScript: <-!><:f><+!><:f280,,>Using LotusScript in<-!><:f><+!><:f280,,> Notes<-!><:f>

<:#200,8486>

<:#200,8486><:X8,-32768;Index "LotusScript" # "guidelines">Notes defines LotusScript classes that allow you to access Notes structures at two levels:

@Bullet@<:#400,8486><:X8,-32768;Index "Back-end class" #>The database (back-end) classes allow you to access named databases, views, documents, and other Notes objects. You can access back-end objects from any LotusScript program.

@Bullet@<:#400,8486><:X8,-32768;Index "User interface class" #><:X8,-32768;Index "UI class" #>The user interface (UI) classes allow you to access current objects that the user is working on. You can access UI objects from any LotusScript program except an agent.

<:#200,8486>Accessing a back-end object through a UI object is possible but not supported.

<:#200,8486>The following table outlines the LotusScript classes defined by Notes.

<:t0>

@Ahead@<+@><:#240,8486>Ways to use LotusScript features in Notes

<+@><:#400,8486>All LotusScript features work in Notes exactly as specified in generic LotusScript with the following exceptions and clarifications:

@Bullet@<:#200,8486><+)>Using the %Include directive<-)><+*>H_USING_THE_INCLUDE_DIRECTIVE<-*>

@Bullet@<:#200,8486><+)>Closing a file<-)><+*>H_CLOSING_A_FILE<-*>

@Bullet@<:#200,8486><+)>Using the Evaluate statement<-)><+*>H_USING_THE_EVALUATE_STATEMENT<-*>

@Bullet@<:#200,8486><+)>Assigning an object reference<-)><+*>H_ASSIGNING_AN_OBJECT_REFERENCE<-*>

@Bullet@<:#200,8486><+)>Calling a function or subrouinte<-)><+*>H_CALLING_A_FUNCTION_OR_SUBROUINTE<-*>

@Bullet@<:#200,8486><+)>Using parentheses to pass by value<-)><+*>H_USING_PARENTHESES_TO_PASS_BY_VALUE<-*>

@Bhead title@<:#220,8486>Using the %Include directive

<:#400,8486><:X8,-32768;Index "%Include directive" #>%Include directives must be placed in the (Declarations) event for an object. Do not place %Include directives in the event containing the execution code.

@Bhead title@<:#220,8486>Closing a file

<:#600,8486><:X8,-32768;Index "Close file" # "in script">Explicitly close all files that you open. Otherwise, the files will remain open and lock out other attempts to open them until the user exits Notes. This applies to files opened and closed with the Open and Close
 statements, not Note databases accessed through Notes objects.

@Bhead title@<:#220,8486>Using the Evaluate statement

<:#200,8486><:X8,-32768;Index "Evaluate statement" #>The evaluate statement in Notes has the following syntax:

@1st lev para@<:#200,8486><+">returnValue<-"> = Evaluate( <+">notesFormula<-">, <+">notesObject<-">  )

<:#800,8486>NotesFormula must be a string. NotesObject is optional and provides context where needed for the formula; for example, if the formula accesses a field, NotesObject must be the NotesDocument object that contains the field. The return value is an array whose 
type and number of elements reflect the formula result; a scalar value is returned to element 0 of the array.

@See also hlp@<+@><:#110,8486><-!><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_USING_THE_EVALUATE_STATEMENT<-*>

@Chead title@<:#200,8486>Examples: using the Evaluate statement

@Dhead@<:#200,8486>Example 1

<:#200,8486><+!><+">yyNEED EXAMPLES<-!><-">

@Bhead title@<+@><:#220,8486>Assigning an object reference

<+@><:#200,8486>You must use the Set statement to assign an object reference to a variable. For example:

@Mono@<+@><:#200,8486>Set db = srv.GetNextDatabase()

<+@><:#400,8486>You must not use the Set statement for other assignments, including the assignment of an array of object references to a variable. For example:

@Mono@<:#200,8486>views = db.Views

<:#200,8486>But:

@Mono@<:#200,8486>Set view = db.Views(0)

@Bhead title@<+@><:#220,8486>Calling a function or subroutine

<+@><:#400,8486>Use the Call keyword to call a function where no return value is wanted or to call a subroutine. Enclose the argument list in parentheses. For example:

@Mono@<:#200,8486>Call db.Open("", Inputbox$("File name?"))

<:#200,8486>The parentheses can be omitted if the function or subroutine takes no arguments. For example:

@Mono@<:#200,8486>Call db.Close

<:#400,8486>You can omit the Call keyword. In this form, do not enclose the argument list in parentheses. For example:

@Mono@<:#200,8486>db.Open "", Inputbox$("File name?")

<:#200,8486>For clarity and consistency, this documentation always uses the Call keyword.

<:#400,8486>A function reference, which resolves to its return value, consists of the name of the function followed by the argument list in parentheses. An example is Inputbox$ above.

@Bhead title@<+@><:#220,8486>Using parentheses to pass by value

<+@>You can pass an argument by value by enclosing it in parentheses. For example:

@Mono@<+@>Call sub1((33), (44))

<+@>This syntax can appear confusing especially if it appears in a subroutine call that does not use the Call statement. For example, this statement passes one argument by reference:

@Mono@<+@>sub1 33

<+@>This statement passes one argument by value:

@Mono@<+@>sub1 (33)

@Ahead@<+@>Ways to access Notes databases

<+@><:#800,8486><:X8,-32768;Index "Notes database" # "access in script"><:X8,-32768;Index "Database" # "access in script">The 
<:X8,-32768;Index "NotesDatabase class" #>NotesDatabase and <:X8,-32768;Index "NotesDbDirectory class" #>NotesDbDirectory classes provide means for locating and opening Notes databases. A NotesDatabase object provides access to NotesView, DocumentCollection
, and NotesDocument objects. NotesDocument objects can be accessed directly through a NotesDatabase object, or by first obtaining a DocumentCollection or NotesView object.

@Bullet@<:#200,8486><+)>Accessing database properties<-)><+*>H_ACCESSING_DATABASE_PROPERTIES<-*>

@Bullet@<:#400,8486><+)>Locating a database on a server and local disk<-)><+*>H_LOCATING_A_DATABASE_ON_A_SERVER_AND_LOCAL_DISK<-*>

@Bullet@<:#200,8486><+)>Opening and closing a database<-)><+*>H_OPENING_AND_CLOSING_A_DATABASE<-*>

@Bullet@<:#200,8486><+)>Creating a<-)><+)> database<-)><+*>H_CREATING_A_DATABASE<-*>

@Bullet@<:#400,8486><+)>Examining and adjusting an access control list<-)><+*>H_EXAMINING_AND_ADJUSTING_AN_ACCESS_CONTROL_LIST<-*>

@Bhead title@<+@><:#220,8486>Accessing database properties

<+@><:#600,8486>The following table lists the NotesDatabase properties. You can directly manipulate the properties that are built-in data types. The rest of the properties are other Notes objects; for those you must use the associated properties and methods.

@See also hlp@<+@><:t1>

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_ACCESSING_DATABASE_PROPERTIES<-*>

@Chead title@<:#200,8486>Examples: accessing database properties

@Dhead@<:#200,8486>Example 1

<:#200,8486>This example prints the values for the database properties that are built-in data types.

@Mono@<:#7800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox$("File name"))<**>     Print "Title " db.Title<**>     Print "File name " db.FileName<**>     Print "Path name " db.FilePath<**>     Print "Replica ID " db.ReplicaID<**>     Print "Size " db.Si
ze<**>     Print "Created " db.Created<**>     Print "Last modified " db.LastModified<**>     If db.IsOpen Then Print "Is open" Else Print "Not open"<**>     Managers = db.Managers<**>     Forall Manager In Managers<**>          Print "Manager " manager<**>
     End Forall<**>REM This code note working - getting "Type mismatch"<**>'   Categories = Db.Categories<**>'   Forall Category In Categories<**>'      Print "Category " Category<**>'   End Forall<**>     If db.TemplateName <<<;> "" Then Print "Template na
me " db.TemplateName<**>     If db.DesignTemplateName <<<;> "" Then<**>       Print "Design template name" db.DesignTemplateName<**>     End IF<**>     If db.IsFTIndexed Then<**>          Print "Is full text indexed " db.LastIndexed<**>     Else<**>        
  Print "Is not full text indexed"<**>     End If<**>     If db.IsPublicAddressBook Then 
<**>          Print "Is public address book"<**>     Else<**>          Print "Is not public address book"<**>     End If<**>     If db.IsPrivateAddressBook Then 
<**>          Print "Is private address book"<**>     Else<**>          Print "Is not private address book"<**>     End If<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#400,8486>This example prints the name of each view in the database. A NotesView object is defined and set to each value in the Views property. The name is a property of the view object.

@Mono@<:#1800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox$("File name"))<**>     Dim v As NotesView<**>     views = db.Views<**>     Forall view In views<**>          Set v = View<**>          Print v.Name<**>     End Forall<**>End Sub

@Bhead title@<+@><:#220,8486>Locating a database on a server and local disk

<+@><:#800,8486><:X8,-32768;Index "Locate database" #><:X8,-32768;Index "Database" # "locate">The 
<:X8,-32768;Index "NotesDbDirectory class" #>NotesDbDirectory class provides a means to locate databases on servers and the user's local disk. To access a particular server, specify its name as the argument to the New method for NotesDbDirectory. The 
<:X8,-32768;Index "GetFirstDatabase method" #>GetFirstDatabase and 
<:X8,-32768;Index "GetNextDatabase method" #>GetNextDatabase methods return handles to NotesDatabase objects. The Name property contains the name of the server or workstation.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#400,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_LOCATING_A_DATABASE_ON_A_SERVER_AND_LOCAL_DISK<-*>

@Chead title@<:#200,8486>Examples: locating a database on a server and local disk

@Dhead@<:#200,8486>Example 1

<+@><:#600,8486>This example prints the names of all the .NSF files in the local Notes data directory. To find different types of files, you can alternatively specify DATABASE, TEMPLATE, REPLICA_CANDIDATE, or TEMPLATE_CANDIDATE as the argument to the FirstDatabase method.

@Mono@<:#1800,8486>Sub INITIALIZE<**>     Dim srv As New NotesDbDirectory("")<**>     Dim db As NotesDatabase<**>     Set db = srv.GetFirstDatabase(DATABASE)<**>     While Not(db Is Nothing)<**>          Print db.Title<**>          Set db = srv.GetNextDatabase()<**>     Wend<**>
End Sub

@Bhead title@<+@><:#220,8486>Opening and closing a database

<+@><:#600,8486><:X8,-32768;Index "Open database" #><:X8,-32768;Index "Close database" #>The New method for the NotesDatabase class opens an existing database 
<+">if<-"> you specify the file name as the second argument. The first argument specifies the server and defaults to the local Notes directory.  If you do not specify the file name here, you must later use the 
<:X8,-32768;Index "Open method" #>Open method to open the database.

<:#200,8486>The New method does not create a database.

<:#600,8486>To open a database whose object you set, for example, using the FirstDatabase or NextDatabase method of NotesDbDirectory or the CurrentDatabase method of NotesSession, use the Open method with two null parameters.

<:#200,8486>The <:X8,-32768;Index "OpenMail method" #>OpenMail method opens the user's mail database.

<:#400,8486>The <:X8,-32768;Index "Close method" #>Close method explicitly closes a database. Exiting from Notes implicitly closes all open databases. 
<+"><+!>yycheck on this & should we warn user to close explicitly<-!><-">

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_OPENING_AND_CLOSING_A_DATABASE<-*>

@Chead title@<:#200,8486>Examples: opening and closing a database

@Dhead@<:#200,8486>Example 1

<+@><:#600,8486>This example opens a database on the local machine, prints some of the properties of the database object, and closes the database. The user supplies the database name, which does not need the .NSF extension.

@Mono@<:#2200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox$("File name"))<**>     Print "Title: " db.Title 
<**>     Print "FileName: " db.FileName <**>     If db.DesignTemplateName <<<;> "" Then<**>          Print "TemplateName: " db.DesignTemplateName 
<**>     End If <**>     If db.IsOpen = True Then Print "Is Open" Else Print "Is Closed" 
<**>     db.Close <**>     If db.IsOpen = True Then Print "Is Open" Else Print "Is Closed"<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#400,8486>This example shows that the database represented by the object db is closed until opened with the Open method.

@Mono@<:#2000,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", "")  <**>     If db.IsOpen = True Then Print "Is Open" Else Print "Is  closed"<**>     Call db.Open ("", Inputbox$("File name?"))<**>     Print "Title: " db.Title<**>     Print "FilePath: " Db.FilePath<**>
     If db.IsOpen = True Then Print "Is Open" Else Print "Is Closed" 
<**>     db.Close <**>     If db.IsOpen = True Then Print "Is Open" Else Print "Is Closed"<**>End Sub

@Dhead@<:#200,8486>Example 3

<:#600,8486>This example traverses the local databases and opens the database whose title is as specified by the user. The call to the Open method specifies null parameters because the database object already exists, having been returned by the GetFirstDatabase or GetN
extDatabase method of NotesDbDirectory.

@Mono@<:#4000,8486>Sub INITIALIZE<**>     Dim srv As New NotesDbDirectory("")<**>     Dim db As NotesDatabase 
<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Set db = srv.GetFirstDatabase(DATABASE)<**>     dbTitle = Inputbox$("Title of database?")<**>     While Not(db Is Nothing)<**>          If db.Title = dbTitle Then<**>       
        Call db.Open("", "")<**>               Set dc = db.AllDocuments<**>               For j =  1 To dc.Count<**>               Set doc = dc.GetNthDocument(j)<**>               value = doc.Subject<**>               Print value(0)<**>               Next<**>
          End If<**>          Set db = srv.GetNextDatabase() <**>     Wend<**>End Sub

@Dhead@<:#200,8486>Example 4

<:#200,8486>This example opens the user's mail database.

@Mono@<:#1000,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", "")<**>     Call db.OpenMail()<**>     Print "Title: " db.Title<**>End Sub

@Bhead title@<+@><:#220,8486><-!>Creating a database

<+@><:#400,8486><:f,,><:X8,-32768;Index "Create database" # "in script">Use one of the following methods to create a new database. The New method does not create a new database.

@Bullet@<+@><:#400,8486><:X8,-32768;Index "Create method" #>Create--Creates a new, uninitialized database. As such a script can access it but a user cannot access it from a Notes workspace.

@Bullet@<+@><:#400,8486><:X8,-32768;Index "CreateFromTemplate method" #>CreateFromTemplate--Creates a new, initialized database based on an existing template. This database has the design of the template and can be accessed from the Notes workspace.

@Bullet@<+@><:#400,8486><:X8,-32768;Index "CreateReplica method" #>CreateReplica--Creates an uninitialized replica of an existing database. A user accessing it from the Notes workspace must initialize the replica upon first use.

@Bullet@<+@><:#400,8486><:X8,-32768;Index "CreateCopy method" #>CreateCopy--Creates a copy of the design of an existing database. The new database has "(Archive)" prepended to the title.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_CREATING_A_DATABASE<-*>

@Chead title@<:#200,8486>Examples: <+,>CREATING a<-,> database

@Dhead@<:#200,8486>Example 1

<+@><:#400,8486>This example creates a local database named SALES2.NSF. The database is not initialized. This database is useful for storing data programmatically but cannot be used through the Notes UI.

@Mono@<:#1400,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", "")  <**>     db.Create "", "sales2.nsf", True<**>     If db.IsOpen = True Then Print "Is Open" Else Print "Is Closed" 
<**>     db.Close <**>     If db.IsOpen = True Then Print "Is Open" Else Print "Is Closed"<**>End Sub

@Dhead@<:#200,8486>Example 2

<+@><:#800,8486>This example creates a local database named <++>saledisc.nsf<-+> based on the Notes template 
<++>discuss.ntf<-+> and changes the title. Discuss is the database object for the template and db is the database object for the new database. The third argument to CreateFromTemplate inherits design changes.

@Mono@<:#1200,8486>Sub INITIALIZE<**>     Dim discuss As New NotesDatabase("", "discuss.ntf")<**>     Dim db As NotesDatabase 
<**>     Set db = discuss.CreateFromTemplate("", "saledisc", True) 
<**>     db.Title = "Sales Discussion Database"<**>End Sub

@Dhead@<:#200,8486>Example 3

<+@><:#200,8486>This example creates a local replica of a database on a server. The replica has to be initialized.

@Mono@<:#1200,8486>Sub INITIALIZE<**>     Dim names As New NotesDatabase("doc", "testbob1.nsf")<**>     Dim db As NotesDatabase 
<**>     Set db = names.CreateReplica("", "bob1rep")<**>     Print db.Title<**>End Sub

@Dhead@<:#200,8486>Example 4

<:#200,8486>This example creates a copy of <++>names.nsf<-+>.

@Mono@<:#1000,8486>Sub INITIALIZE<**>     Dim names As New NotesDatabase("", "names.nsf")<**>     Dim db As NotesDatabase<**>     Set db = names.CreateCopy("", "namescpy.nsf")<**>End Sub

@Bhead title@<+@><:#220,8486>Examining and adjusting an access control list

<+@><:#400,8486>You examine and adjust the <:X8,-32768;Index "Access control list" # "in script">access control list (<:X8,-32768;Index "ACL" "" ", See Access control list">ACL) of a database through objects of the following classes:

@Bullet@<+@><:#600,8486><:X8,-32768;Index "NotesDatabase class" #>NotesDatabase--Contains an 
<:X8,-32768;Index "ACL property" #>ACL property for accessing a NotesACL object. Also contains 
<:X8,-32768;Index "GrantAccess method" #>GrantAccess, <:X8,-32768;Index "RevokeAccess method" #>RevokeAccess, and 
<:X8,-32768;Index "QueryAccess method" #>QueryAccess methods for directly creating, removing, and checking ACL entries.

@Bullet@<+@><:#600,8486><:X8,-32768;Index "NotesACL class" #>NotesACL--Contains <:X8,-32768;Index "GetEntry method" #>GetEntry, 
<:X8,-32768;Index "GetFirstEntry method" #>GetFirstEntry, and <:X8,-32768;Index "GetNextEntry method" #>GetNextEntry methods for accessing ACL entries. Contains a 
<:X8,-32768;Index "Roles property" #>Roles property and <:X8,-32768;Index "AddRole method" #>AddRole, 
<:X8,-32768;Index "DeleteRole method" #>DeleteRole, and <:X8,-32768;Index "RemoveRole method" #>RemoveRole methods for accessing roles. Contains a 
<:X8,-32768;Index "Parent property" #>Parent property.

@Bullet@<+@><:#800,8486><:X8,-32768;Index "NotesACLEntry class" #>NotesACLEntry--Contains 
<:X8,-32768;Index "IsAuthorNoCreate property" #>IsAuthorNoCreate, 
<:X8,-32768;Index "IsNoDelete property" #>IsNoDelete, <:X8,-32768;Index "Level property" #>Level, 
<:X8,-32768;Index "Name property" #>Name, and <:X8,-32768;Index "Parent property" #>Parent properties for examining the ACL entry. Contains New and 
<:X8,-32768;Index "Remove method" #>Remove methods for creating and removing an entry. Contains a 
<:X8,-32768;Index "Roles property" #>Roles property and <:X8,-32768;Index "IsRoleEnabled method" #>IsRoleEnabled, 
<:X8,-32768;Index "EnableRole method" #>EnableRole, and <:X8,-32768;Index "DisableRole method" #>DisableRole methods for associating ACL entries with roles.

<+@><:#400,8486>The <:X8,-32768;Index "Save method" #>Save method of NotesACL writes changes you make to the ACL to disk. Otherwise the changes stay in memory and are lost when your program exits.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMINING_AND_ADJUSTING_AN_ACCESS_CONTROL_LIST<-*>

@Chead title@<:#200,8486>Examples: <+,>examining and adjusting an access control list<-,>

@Dhead@<:#200,8486>Example 1

<+@><:#200,8486>This example accesses each entry in the ACL of a local database and prints its name.

@Mono@<:#2200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox$("Name of database?"))<**>     Dim dbACL As NotesACL<**>     Dim dbACLEntry As NotesACLEntry<**>     Set dbACL = db.ACL<**>     Set dbACLEntry = dbACL.GetFirstEntry()<**>     While Not(dbACLEnt
ry Is Nothing)<**>          Print dbACLEntry.Name<**>          Set dbACLEntry = dbACL.GetNextEntry(dbACLEntry)<**>     Wend<**>End Sub

@Dhead@<:#200,8486>Example 2

<+@><:#200,8486>This example finds an entry in the ACL of a local database and prints some of its properties.

@Mono@<:#7200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dbACL As NotesACL<**>     Dim dbACLEntry As NotesACLEntry<**>     Set dbACL = db.ACL<**>     Set dbACLEntry = dbACL.GetEntry(Inputbox("Name of ACL entry?"
))<**>     Print "Name " dbACLEntry.Name<**>     Select Case dbACLEntry.Level<**>     Case ACLLEVEL_NOACCESS : level = "No access"<**>     Case ACLLEVEL_DEPOSITOR : level = "Depositor"<**>     Case ACLLEVEL_READER : level = "Reader"<**>     Case ACLLEVEL_AU
THOR : level = "Author"<**>     Case ACLLEVEL_EDITOR : level = "Editor"<**>     Case ACLLEVEL_DESIGNER : level = "Designer"<**>     Case ACLLEVEL_MANAGER : level = "Manager"<**>     End Select<**>     Print "Access level is " level<**>     If dbACLEntry.IsA
uthorNoCreate Then<**>          Print "Cannot create new documents"<**>     Else<**>          Print "Can create new documents"<**>     End If<**>     If dbACLEntry.IsNoDelete Then<**>          Print "Cannot delete documents"<**>     Else<**>          Print 
"Can delete documents"<**>     End If<**>     If Not(Isempty(dbACLEntry.Roles)) Then<**>          dbRoles = dbACLEntry.Roles<**>          Forall dbRole In dbRoles<**>               Print "Role " dbRole<**>          End Forall<**>     Else<**>          Print
 "No roles for this ACL entry"<**>     End If<**>End Sub

@Dhead@<:#200,8486>Example 3

<:#200,8486>This example creates a new ACL entry in a database.

@Mono@<:#1800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dbACL As NotesACL<**>     Set dbACL = db.ACL<**>     ename = Inputbox("Name of new ACL entry?")<**>     Dim dbACLEntry As New NotesACLEntry(dbACL, ename, 
ACLLEVEL_DESIGNER)<**>     Print dbACLEntry.name dbACLEntry.level<**>     Call dbACL.Save()<**>End Sub

@Dhead@<:#200,8486>Example 4

<:#200,8486>This example removes an ACL entry from a database.

@Mono@<:#2000,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dbACL As NotesACL<**>     Dim dbACLEntry As NotesACLEntry<**>     Set dbACL = db.ACL<**>     Set dbACLEntry = dbACL.GetEntry(Inputbox("Name of new ACL ent
ry?"))<**>     Print dbACLEntry.name dbACLEntry.level<**>     Call dbACLEntry.Remove()<**>     Call dbACL.Save()<**>End Sub

@Dhead@<:#200,8486>Example 5

<:#200,8486>This example adds a role to a database ACL and enables it for an ACL entry.

@Mono@<:#3600,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dbACL As NotesACL<**>     Dim dbACLEntry As NotesACLEntry<**>     Set dbACL = db.ACL<**>     Set dbACLEntry = dbACL.GetEntry(Inputbox("Name of ACL entry?"
))<**>     Call dbACL.AddRole("Role 3")<**>     Call dbACLEntry.EnableRole("Role 3")<**>     If Not(Isempty(dbACLEntry.Roles)) Then<**>          dbRoles = dbACLEntry.Roles<**>          Forall dbRole In dbRoles<**>               Print "Role " dbRole<**>     
     End Forall<**>     Else<**>          Print "No roles for this ACL entry"<**>     End If<**>     Call dbACL.Save()<**>End Sub

@Ahead@<+@><:#240,8486>Ways to access Notes views

<+@><:#600,8486>The <:X8,-32768;Index "NotesView class" #>NotesView classlets you locate documents within views and perform operations on views. The NotesView class does not have a New method. You access views through the 
<:X8,-32768;Index "GetView method" #>GetView method and the <:X8,-32768;Index "Views property" #>Views property of NotesDatabase.

@Bullet@<:#200,8486><+)>Accessing view properties<-)><+*>H_ACCESSING_VIEW_PROPERTIES<-*>

@Bullet@<:#200,8486><+)>Locating a<-)><+)> view<-)><+*>H_LOCATING_A_VIEW<-*>

@Bullet@<:#200,8486><+)>Refreshing a view<-)><+*>H_REFRESHING_A_VIEW<-*>

@Bhead title@<+@><:#220,8486>Accessing view properties

<+@><:I0,0,0,0><:#600,8486><:X8,-32768;Index "View properties" #>The following table lists the view properties. You can directly manipulate the properties that are built-in data types. The Parent property is a NotesDatabase object; you must use the associated properties and methods.

@See also hlp@<+@><:I0,0,0,0><:t2>

@See also btn@<+@><:I0,0,0,0><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_ACCESSING_VIEW_PROPERTIES<-*>

@Chead title@<:#200,8486>Examples: accessing view properties

@Dhead@<:#200,8486>Example 1

<+@><:#200,8486>This example prints properties of all the views in a database.<-">

@Mono@<:#3200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim parent As NotesDatabase<**>     views = db.Views<**>     Forall view In views<**>          Set v = view<**>          Print "Nam
e " v.Name<**>          Print "Last modified " v.LastModified<**>          Print "Created " v.Created<**>          Print "Universal ID " v.UniversalID<**>          If v.IsDefaultView Then Print "Default view"<**>          Set parent = v.Parent<**>          
Print "Parent " parent.Title<**>     End Forall<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#200,8486>This example displays properties of all columns in all views in the current database.

@Mono@<:#3600,8486>Sub Click(Source As Button)<**>     Dim session As New NotesSession<**>     Set db = session.CurrentDatabase<**>     Call db.Open("", "")<**>     views = db.Views<**>     Forall view In views<**>          viewName = view.Name<**>          Messagebox(viewNam
e)<**>          columns = view.Columns<**>          Forall column In columns<**>               position = column.Position<**>               title = column.Title<**>               If title = "" Or title = " " Then title = "<<no title<;>"<**>               fo
rmu = column.Formula<**>               Messagebox(position & ", " & title & ", " & formu)<**>          End Forall<**>     End Forall<**>End Sub

@Bhead title@<+@><:#220,8486>Locating a view

<+@><:#1000,8486><:X8,-32768;Index "Locate view" #><:X8,-32768;Index "View" # "locate">If the name of the view is known, specify it to the 
<:X8,-32768;Index "GetView method" #>GetView method of NotesDatabase. The view name includes cascades; for example, "Certificates and ID Information\Cross Certificates" must be specified exactly. If the name has a synonym, you can specify the name, the syno
nym, or the name followed by a vertical bar with spaces on either side and the synonym. For example, if the view name is By _Author and the synonym is AuthorView, you can specify it as any of the following:

@Mono@<+@><:#600,8486>"By _Author"<**>"AuthorView"<**>"By _Author | AuthorView"

<+@><:#400,8486>If the name of the view is not known, you can compare each view in the 
<:X8,-32768;Index "Views propert" #>Views property of NotesDatabase with one of the NotesView properties; for example, IsDefaultView or UniversalID.

@See also hlp@<+@><:I0,0,0,0><:#110,8486><+)>

@See also btn@<+@><:I0,0,0,0><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_LOCATING_A_VIEW<-*>

@Chead title@<:#200,8486>Examples: locating a view

@Dhead@<:#200,8486>Example 1

<:#200,8486>This example finds a view in a database.

@Mono@<:#1800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Set v = Db.GetView(Inputbox("Exact name of view?"))<**>     Print "Name " v.Name<**>     Print "Last modified " v.LastModified<**> 
    Print "Created " v.Created<**>     Print "Universal ID " v.UniversalID<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#200,8486>This example finds the default view in the database.

@Mono@<:#2400,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     views = db.Views<**>     Forall view In views<**>          Set v = view<**>          If v.IsDefaultView Then<**>               Prin
t "Default view is " v.Name<**>               Exit Forall<**>          End If<**>     End Forall<**>End Sub

@Bhead title@<+@><:#220,8486>Refreshing a view

<+@><:#600,8486><:X8,-32768;Index "Refresh view" #><:X8,-32768;Index "View" # "refresh">If you update a database with additions, deletions, or changes, the updates are not reflected in a view until the view is refreshed. The interactive user can refresh a view by clicking 
the refresh button or by closing and opening the database.

<:#600,8486>If you want updates to appear in a view automatically, call the <:X8,-32768;Index "Refresh method" #>Refresh method of NotesView after the updates are made. Document updates must first be posted to disk with the 
<:X8,-32768;Index "Update method" #>Update method of NotesDocument. For an example, see 
<+)>Creating a Document<-)><+*>H_CREATING_A_DOCUMENT<-*>.

@Ahead@<+@><:#240,8486>Ways to access Notes documents

<+@><:#600,8486>The <:X8,-32768;Index "NotesDocument class" #>NotesDocument class lets you examine and manipulate document properties and contents. You gain access to a NotesDocument object through methods in the NotesDatabase, NotesView, and NotesDocumentCollection classe
s.

@Bullet@<:#200,8486><+)>Accessing document properties<-)><+*>H_ACCESSING_DOCUMENT_PROPERTIES<-*>

@Bullet@<:#200,8486><+)>Collecting all documents<-)><+*>H_COLLECTING_ALL_DOCUMENTS<-*>

@Bullet@<:#400,8486><+)>Collecting documents by full text searching<-)><+*>H_COLLECTING_DOCUMENTS_BY_FULL_TEXT_SEARCHING<-*>

@Bullet@<:#200,8486><+)>Locating a document by ID<-)><+*>H_LOCATING_A_DOCUMENT_BY_ID<-*>

@Bullet@<:#200,8486><+)>Locating documents within views<-)><+*>H_LOCATING_DOCUMENTS_WITHIN_VIEWS<-*>

@Bullet@<:#200,8486><+)>Creating a<-)><+)> document<-)><+*>H_CREATING_A_DOCUMENT<-*>

@Bullet@<:#200,8486><+)>Removing a document<-)><+*>H_REMOVING_A_DOCUMENT<-*>

@Bullet@<:#200,8486><+)>Putting a document<-)><+)> in a folder<-)><+*>H_PUTTING_A_DOCUMENT_IN_A_FOLDER<-*>

@Bullet@<:#200,8486><+)>Copying a document<-)><+*>H_COPYING_A_DOCUMENT<-*>

@Bullet@<:#200,8486><+)>Mailing a document<-)><+*>H_MAILING_A_DOCUMENT<-*>

@Bhead title@<+@><:#220,8486>Accessing document properties

<+@><:I0,0,0,0><:#400,8486>The following table lists the <:X8,-32768;Index "Document properties" #>document properties. You can directly manipulate the properties that are built-in data types. For a property that is an object, you must use the associated properties and methods.

@See also hlp@<+@><:t3>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_ACCESSING_DOCUMENT_PROPERTIES<-*>

@Chead title@<:#200,8486>Examples: accessing document properties

@Dhead@<:#200,8486>Example 1

<:#200,8486><-!>This example prints built-in properties of a document.

@Mono@<:#4600,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Set dc = db.AllDocuments<**>     Set doc = dc.GetFirstDocument()<**>     docAuthors
 = Doc.Authors<**>     Forall docAuthor In docAuthors<**>          Print docAuthor<**>     End Forall<**>     Print "Created " doc.Created<**>     If doc.HasItem("Subject") Then Print "Has item Subject"<**>     If doc.IsNewNote Then Print "Is a new note"<**>
     If doc.IsResponse Then Print "Parent UNID " doc.ParentDocumentUNID<**>     If doc.IsSigned Then<**>          Print "Signed by " doc.Signer<**>          Print "Verified by " doc.Verifier<**>     End If<**>     Print "Last accessed " doc.LastAccessed<**>
     Print "Last modified " doc.LastModified<**>     Print "Note ID " doc.NoteID<**>     Print "Universal ID " doc.UniversalID<**>End Sub

@Bhead title@<+@><:#220,8486>Collecting all documents

<+@><:#600,8486>The AllDocuments property<:X8,-32768;Index "AllDocuments property" #> of the NotesDatabase class is a NotesDocumentCollection object that contains all the documents in a database. The 
<:X8,-32768;Index "NotesDocumentCollection class" #>NotesDocumentCollection class has the following properties and methods for accessing documents:

@Bullet@<+@><:#400,8486>Count property and <:X8,-32768;Index "GetNthDocument method" #>GetNthDocument method, which can be used to get 1 through Count documents in a For loop.

@Bullet@<+@><:#400,8486><:X8,-32768;Index "GetFirstDocument method" #>GetFirstDocument and 
<:X8,-32768;Index "GetNextDocument method" #>GetNextDocument methods, which can be used to get the first and next documents in a While loop until the next document is Nothing.

@Bullet@<+@><:#400,8486><:X8,-32768;Index "GetLastDocument method" #>GetLastDocument and <:X8,-32768;Index "GetPrevDocument method" #>GetPrevDocument methods, which can be used to get the last and previous documents in a While loop until the previous document is Nothing.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#400,8486><+)>{bmc 1details.bmp}<-)><+)>See examples: collecting<-)><+)> all 
<-)><+)>documents<-)><+*>H_EXAMPLES_COLLECTING_ALL_DOCUMENTS<-*>

@Chead title@<:#200,8486>Examples: collecting all documents

@Dhead@<:#200,8486>Example 1

<:#600,8486>This example collects all the documents in a database with the AllDocuments property of NotesDatabase, and traverses the collection by using the Counts property and the GetNthDocument method of NotesDocumentCollection.

@Mono@<:#2200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Set dc = db.AllDocuments<**>     For j =  1 To dc.Count<**>          Set doc = dc.G
etNthDocument(j)<**>          value = doc.Subject<**>          Print value(0)<**>     Next<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#800,8486>This example collects all the documents in a database with the AllDocuments property of NotesDatabase, and traverses the collection by using the GetFirstDocument and GetNextDocument methods of NotesDocumentCollection. Alternatively you can use the GetLastDo
cument and GetPrevDocument methods to traverse the collection backwards.

@Mono@<:#2400,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Set dc = db.AllDocuments<**>     Set doc = dc.GetFirstDocument()<**>     While Not(
Doc Is Nothing)<**>          value = doc.Subject<**>          Print value(0)<**>          Set doc = dc.GetNextDocument(doc)<**>     Wend<**>End Sub

@Bhead title@<+@><:#220,8486>Collecting documents by full text searching

<:#1400,8486>The <:X8,-32768;Index "FTSearch method" #>FTSearch method of NotesDatabase returns a NotesDocumentCollection object containing documents that match a 
<:X8,-32768;Index "Search query" #>search query. The search query, specified as the first argument of FTSearch, is a string that meets the Notes rules for 
<:X8,-32768;Index "Full text search" #>full text search queries, requiring that a search entity be a single word or multiple words enclosed in quotes (double quotes in a LotusScript string constant). Search entities can include ? and * wildcards, and can be
 combined by ! (not), & (and), and | (or) operators. See <+)>Help: performing advanced full text queries<-)><+*>H_HELP_PERFORMING_ADVANCED_FULL_TEXT_QUERIES<-*> for the complete rules.

<:#400,8486>A database must be full text indexed for a search to work. The <:X8,-32768;Index "UpdateFTIndex method" #>UpdateFTIndex method creates or updates an index. The IsFTIndexed property tests for the existence of an index.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#400,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_COLLECTING_DOCUMENTS_BY_FULL_TEXT_SEARCHING<-*>

@Chead title@<:#200,8486>Examples: collecting documents by full text searching

@Dhead@<:#200,8486>Example 1

<+@><:#400,8486>This example creates a full text index if one does not exist, then finds all documents containing the word "alpha" or the string "string beta."

@Mono@<:#2800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     If db.IsFTIndexed = False Then<**>          Call db.UpdateFTIndex(True)<**>     End
 If<**>     Set dc = db.FTSearch("alpha | ""string beta""", 0)<**>     For J = 1 To dc.Count<**>          Set doc = dc.GetNthDocument(J)<**>          value = doc.Subject<**>          Print value(0)<**>     Next<**>End Sub

@Bhead title@<+@><:#220,8486>Locating a document by ID

<+@><:#600,8486>If you have saved or acquired the note ID or universal ID of a document, you can find a single document by specifying the ID in the 
<:X8,-32768;Index "GetDocumentByID method" #>GetDocumentByID or <:X8,-32768;Index "GetDocumentByUNID method" #>GetDocumentByUNID method. You can get these IDs from the 
<:X8,-32768;Index "NoteID property" #>NoteID and <:X8,-32768;Index "UniversalID property" #>UniversalID properties of a NotesDocument object.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_LOCATING_A_DOCUMENT_BY_ID<-*>

@Chead title@<:#200,8486>Examples: locating a document by ID

@Dhead@<:#200,8486>Example 1

<:#600,8486>This example stores the note ID of each document in a database in a string array, then uses the array in a loop of GetDocumentByID methods to access each document. You can substitute the UniversalID property and GetDocumentByUNID method in the example to us
e the universal ID.

@Mono@<:#3400,8486>Sub INITIALIZE<**>     Dim noteIDs()<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Set dc = db.AllDocuments<**>     Redim noteIDs(1 To Dc.Count)
<**>     For j = 1 To Dc.Count<**>          Set doc = Dc.GetNthDocument(j)<**>          noteIDs(j) = doc.noteID<**>     Next<**>     Forall noteID In noteIDs<**>          Set doc = db.GetDocumentByID(noteID)<**>          value = doc.Subject<**>          Pri
nt value(0)<**>     End Forall<**>End Sub

@Bhead title@<+@><:#220,8486>Locating documents within views

<+@><:#400,8486><:X8,-32768;Index "View" # "locate document in">First find and set the view to a NotesView object using the GetView method or the Views property of a NotesDatabase object.

@Chead@<+@><:#200,8486>Traversing a view

<+@><:#400,8486><:X8,-32768;Index "Walk through view" #>Use the <:X8,-32768;Index "GetFirstDocument method" #>GetFirstDocument (or 
<:X8,-32768;Index "GetLastDocument method" #>GetLastDocument) method followed by a loop of 
<:X8,-32768;Index "GetNextDocument method" #>GetNextDocument (or <:X8,-32768;Index "GetPrevDocument method" #>GetPrevDocument) methods to traverse all the documents in a view.

@Chead@<+@><:#200,8486>Subsetting a view with a full text search

<:#1200,8486>The <:X8,-32768;Index "FTSearch method" #>FTSearch method of NotesView creates a subset of the view consisting of documents that match a 
<:X8,-32768;Index "Search query" #>search query. The search query, specified as the first argument of FTSearch, is a string that meets the Notes rules for 
<:X8,-32768;Index "Full text search" #>full text search queries. The rules require that a search entity be a single word or multiple words enclosed in quotes (double quotes in a LotusScript string constant). Search entities can include ? and * wildcards, an
d can be combined by ! (not), & (and), and | (or) operators. See "Performing advanced full text queries" in Help for the complete rules.

<:#400,8486>A database must be full text indexed for a search to work. The <:X8,-32768;Index "UpdateFTIndex method" #>UpdateFTIndex method creates or updates an index. The 
<:X8,-32768;Index "IsFTIndexed property" #>IsFTIndexed property tests for the existence of an index.

<:#400,8486>After creating the subset view, traverse it using GetFirstDocument (or GetLastDocument) and GetNextDocument (or GetPrevDocument).

<:#200,8486>Use the <:X8,-32768;Index "ClearFTSearch method" #>ClearFTSearch method to restore the full view.

@See also btn@<:#200,8486>

@Crossref@<:#200,8486><+)>Performing advanced full text queries<-)><+*>H_PERFORMING_ADVANCED_FULL_TEXT_QUERIES<-*>

@Chead@<+@><:#200,8486>Subsetting a view with a sorted column key

<+@><:#1000,8486>Use the <:X8,-32768;Index "GetDocumentByKey method" #>GetDocumentByKey method to find the first document in a view that matches specified character strings in the sorted columns. For example, if columns 1 and 2 are sorted, you can specify one character stri
ng to find a match in the first column, or two strings to find a match in the second column after the first column is matched. Use GetNextDocument to find subsequent documents that might also match.

@Chead@<+@><:#200,8486>Working with response documents

<+@><:#1000,8486>Use the <:X8,-32768;Index "GetNextSibling method" #>GetNextSibling and 
<:X8,-32768;Index "GetPrevSibling method" #>GetPrevSibling methods to skip documents that are at a different level from the current document in the response hierarchy. For example, if you have accessed a main document that has response documents, GetNextSib
ling gets the next main document whereas GetNextDocument gets the first response document to the current main document. Use the 
<:X8,-32768;Index "GetChild method" #>GetChild method to get the first document at the next lower level to the current document. Use the 
<:X8,-32768;Index "GetParent method" #>GetParent method to move up a level.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_LOCATING_DOCUMENTS_WITHIN_VIEWS<-*>

@Chead title@<:#200,8486>Examples: locating documents within views

@Dhead@<:#200,8486>Example 1

<:#400,8486>This example accesses all the documents in the "Main View" view first to last. The GetLastDocument and GetPrevDocument methods could be substituted to access all the documents last to first.

@Mono@<:#2600,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("Main View")<**>     Print v.Name<**>     Set doc = v.GetFirstDocument<**>     
While Not(doc Is Nothing)<**>          value = doc.Subject<**>          Print value(0)<**>          Set doc = v.GetNextDocument(doc)<**>     Wend<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#400,8486>This example limits the view to those documents that meet the full text search criteria for "Search string alpha" and traverses the view.

@Mono@<:#3200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("Main View")<**>     Call db.UpdateFTIndex(True)<**>     numDocs = v.FTSearch("
""Search string alpha""", 0)<**>     If numDocs <<<;> 0 Then<**>          Set doc = v.GetFirstDocument()<**>          While Not(doc Is Nothing)<**>               value = doc.Subject<**>               Print value(0)<**>               Set doc = v.GetNextDocum
ent(doc)<**>          Wend<**>     End If<**>End Sub

@Dhead@<:#200,8486>Example 3

<:#400,8486>This example accesses all the documents in the "By Topic" view with "Two" as the first characters of the first sorted column.

@Mono@<:#3400,8486>Sub INITIALIZE<**>     Dim keyArray(1 To 1) As String<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("By Topic")<**>     Print v.Name<**>    
 keyArray(1) = "Two"<**>     ' LS won't accept array as arg - have to assign to variant<**>     keyArgument = keyArray<**>     Set doc = v.GetDocumentByKey(keyArgument)<**>     While Not(Doc Is Nothing)<**>          value = doc.Subject<**>          Print va
lue(0)<**>          Set doc = v.GetNextDocument(doc)<**>     Wend<**>End Sub

@Dhead@<+@><:#200,8486><-!>Example 4

<+@><:#400,8486>This example accesses all the documents in a view by moving up and down through any response and response to response documents.

@Mono@<:#5200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Dim child As NotesDocument<**>     Dim grandchild As NotesDocument<**>     Set v = db.GetView("Mai
n View")<**>     Set doc = v.GetFirstDocument()<**>     While Not(doc Is Nothing)<**>          value = doc.Subject<**>          Print value(0) " - Main Document"<**>          Set child = v.GetChild(doc)<**>          While Not(Child Is Nothing)<**>          
     value = child.Subject<**>               Print value(0) " - Response"<**>               Set grandchild = V.GetChild(child)<**>               While Not(grandchild Is Nothing)<**>               value = grandchild.Subject<**>               Print value(0) "
 - Response to Response"<**>               Set grandchild = v.GetNextSibling(grandchild)<**>               Wend<**>               Set child = v.GetNextSibling(child)<**>          Wend<**>          Set doc = v.GetNextSibling(doc)<**>     Wend<**>End Sub

@Bhead title@<+@><:#220,8486>Creating a document

<+@><:#200,8486><:X8,-32768;Index "Create document" # "in script">Use the New method of a NotesDocument object to create a new document in a database.

<+@><:#600,8486>Use the <:X8,-32768;Index "AppendItemValue method" #>AppendItemValue method of NotesDocument to specify item values for the new document. Item values are added using the default form of the database. The database must contain a default form and the default 
form must contain fields for the items being added.

<+@><:#600,8486>Use the <:X8,-32768;Index "Save method" #>Save method of NotesDocument to post the new document to the database as it exists on the server or local disk. Otherwise, the new document exists only in memory and is lost when the program exits.

<+@><:#400,8486>Use the <:X8,-32768;Index "Refresh method" #>Refresh method of NotesView if you want the new document to immediately show up in a particular view.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_CREATING_A_DOCUMENT<-*>

@Chead title@<:#200,8486>Examples: creating a document

@Dhead@<:#200,8486>Example 1

<:#800,8486>This example creates a new document in a database and appends four item values. The item names--From, Subject, Categories, and Body--exist in the default form for the database. The Save method of NotesDatabase posts the update to disk and the Refresh method
 of NotesView posts the update to the Main View view.

@Mono@<:#2600,8486>Sub INITIALIZE<**>     Dim s As New NotesSession<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As New NotesDocument(db)<**>     Call doc.AppendItemValue("From", s.UserName)<**>     Cal
l doc.AppendItemValue("Subject", "Mary Lee")<**>     Call doc.AppendItemValue("Categories", "Eastern")<**>     Call doc.AppendItemValue("Body", "OK")<**>     Call doc.Save(True, False)<**>     Set v = Db.GetView("Main View")<**>     v.Refresh<**>End Sub

@Bhead title@<+@><:#220,8486>Removing a document

<+@><:#600,8486>The <:X8,-32768;Index "Remove method" #>Remove method of NotesDocument removes a document from a database. An argument permits you to force the removal (True) or make it conditional on the document not being modified since the program started (False).

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_REMOVING_A_DOCUMENT<-*>

@Chead title@<:#200,8486>Examples: removing a document

@Dhead@<:#200,8486>Example 1

<:#400,8486>This example performs a full text search on a database and removes all documents containing the word deleteme.

@Mono@<:#2200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Call db.UpdateFTIndex(True)<**>     Set dc = db.FTSearch("deleteme", 0)<**>     For
 j = 1 To dc.Count<**>          Set doc = dc.GetNthDocument(j)<**>          doc.Remove(True)<**>     Next 
<**>End Sub

@Bhead title@<+@><:#220,8486>Putting a document in a folder

<+@><:#200,8486><+"><+!>yyneed text<-!><-">

@Bhead title@<+@><:#220,8486>Copying a document

<+@><:#400,8486>The <:X8,-32768;Index "CopyToDatabase method" #>CopyToDatabase method copies a document to a specified database (which can be the same database in which the document exists).

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_COPYING_A_DOCUMENT<-*>

@Chead title@<:#200,8486>Examples: copying a document

@Dhead@<:#200,8486>Example 1

<:#200,8486>This example makes a copy of the first document in Main View in the same database.

@Mono@<:#1600,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("Main View")<**>     Set doc = v.GetFirstDocument<**>     Call doc.CopyToDataba
se(db)<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#200,8486>This example copies all the documents in one database to another.

@Mono@<:#2400,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim db2 As New NotesDatabase("", Inputbox("Second database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Set dc 
= db.AllDocuments<**>     Set doc = dc.GetFirstDocument()<**>     While Not(doc Is Nothing)<**>          Call doc.CopyToDatabase(db2)<**>          Set doc = dc.GetNextDocument(doc)<**>     Wend<**>End Sub

@Bhead title@<+@><:#220,8486>Mailing a document

<+@><:#200,8486><+"><+!>yyneed text<-!><-">

@Ahead@<+@><:#240,8486>Ways to access Notes items (fields)

<+@><:#600,8486>The <:X8,-32768;Index "NotesItem class" #>NotesItem and <:X8,-32768;Index "NotesRichTextItem class" #>NotesRichTextItem classes let you examine and manipulate document properties and contents. You gain access to a NotesItem or NotesRichTextItem object throu
gh various methods in the NotesDocument class. The NotesRichTextItem class inherits from NotesItem. You can:

@Bullet@<:#200,8486><+)>Access item properties<-)><+*>H_ACCESSING_ITEM_PROPERTIES<-*>

@Bullet@<:#200,8486><+)>Get an item andits<-)><+)> values<-)><+*>H_GETTING_AN_ITEM_AND_ITS_VALUES<-*>

@Bullet@<:#200,8486><+)>Create an item and assigning values<-)><+*>H_CREATING_AN_ITEM_AND_ASSIGNING_VALUES<-*>

@Bullet@<:#200,8486><+)>Copy an item<-)><+*>H_COPYING_AN_ITEM<-*>

@Bullet@<:#200,8486><+)>Remove an item<-)><+*>H_REMOVING_AN_ITEM<-*>

@Bullet@<:#200,8486><+)>Work with a rich text item<-)><+*>H_WORKING_WITH_A_RICH_TEXT_ITEM<-*>

@Bullet@<:#200,8486><+)>Work with an embedded object<-)><+*>H_WORKING_WITH_AN_EMBEDDED_OBJECT<-*>

@Bhead title@<+@><:#220,8486>Accessing item properties

<+@><:I0,0,0,0><:#600,8486>The following table lists the item properties. You can directly manipulate the properties that are built-in data types. The Date, Parent, and EmbeddedObjects properties are NotesDatabase objects; you must use the associated properties and methods to access 
them.

<+@><:I0,0,0,0><:#600,8486>The Values property is an array except for rich text items. For a single value, access element 0. If the item contains multiple values, access each array element, for example, in a Forall loop. Access a rich text item as a simple value not an array.

<+@><:I0,0,0,0><:#400,8486>The Text property of NotesItem displays the complete Values array with the display separator, typically the semicolon, between elements.

<+@><:I0,0,0,0><:t4>

@See also hlp@<+@><:#110,8486><-!><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_ACCESSING_ITEM_PROPERTIES<-*>

@Chead title@<:#200,8486>Examples: accessing item properties

@Dhead@<:#200,8486>Example 1

<:#200,8486>This example prints properties for a NotesItem object.

@Mono@<:#8800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Dim itm As NotesItem<**>     Set v = db.GetView("Main View")<**>     Set doc = v.GetFirstDocument<**>
     Set itm = doc.GetFirstItem("Subject")<**>     Print "Name " itm.Name<**>     Print "Text " itm.Text<**>     Select Case itm.Type<**>     Case ATTACHMENT : Print "Type file attachment"<**>     Case EMBEDDEDOBJECT : Print "Type embedded object"<**>     C
ase ERRORITEM : Print "Type error occurred while accessing type"<**>     Case NOTELINKS : Print "Type reference to the parent document"<**>     Case NOTEREFS : Print "Type DocLink"<**>     Case NUMBERS : Print "Type number or range of numbers"<**>     Case 
RICHTEXT : Print "Type rich text"<**>     Case SIGNATURE : Print "Type signature"<**>     Case DATETIMES : Print "Type time-date value or range of ..."<**>     Case TEXT : Print "Type text or text list"<**>     Case UNAVAILABLE : Print "Type not available"<**>
     Case UNKNOWN : Print "Type unknown"<**>     Case USERDATA : Print "Type user data"<**>     Case USERID : Print "Type user ID file"<**>     Case Else : Print "Type " itm.Type<**>     End Select<**>     Print "ValueLength " itm.ValueLength<**>     itmVal
uemjjs = itm.Values<**>     ' Print itmValues<**>' For RTF, use above and comment next 4 lines<**>     Print "itmValues(0) = " itmValues(0)<**>     Forall itmValue In itmValues<**>          Print itmValue<**>     End Forall<**>' Print "Date " itm.DateTimeVa
lue.LSLocalTime<**>     If itm.IsEncrypted Then Print "Is encrypted"<**>     If itm.IsSigned Then Print "Is signed"<**>     If itm.IsSummary Then Print "Is summary"<**>     If itm.IsProtected Then Print "Is protected"<**>     If itm.IsNames Then Print "Is n
ames"<**>     If itm.IsReaders Then Print "Is readers"<**>     If itm.IsAuthors Then Print "Is authors"<**>End Sub

@Bhead@<+@><:#220,8486>Getting an item and its values

<+@><:#800,8486>The NotesDocument class provides several properties and methods to access the items in the document. If you do not know the name of an item or want to traverse the items in a document, you can use the 
<:X8,-32768;Index "Items property" #>Items property, an array of NotesItem objects. As you access each array element, use the NotesItem properties and methods to interrogate and manipulate the object.

<+@><:#800,8486>To access an item whose name is known, use the <:X8,-32768;Index "GetFirstItem method" #>GetFirstItem and 
<:X8,-32768;Index "GetNextItem method" #>GetNextItem methods of NotesDocument. The GetNextItem method is provided in case more than one item of the same name exists. If the document contains but one item of the specified name, a single call to GetFirstItem 
is sufficient.

<+@><:#600,8486>You can get the value of an item through several techniques. The first two techniques do not require that you first access the item object; however, in the event of items with the same name, these techniques access only the first item.

@Numbered list@<+@><:#600,8486>After accessing the NotesDocument object containing the item, you can specify the 
<:X8,-32768;Index "Item name" #>item name as though it were a property of the document. For example, if doc is the name of a document object and Subject is an item in the document, doc.Subject is the value of the item.

@Numbered list@<+@><:#200,8486>You can use the <:X8,-32768;Index "GetItemValue method" #>GetItemValue method of NotesDocument.

@Numbered list@<+@><:#200,8486>You can access the item and examine its <:X8,-32768;Index "Values property" #>Values property.

<+@><:#400,8486>The value of an item is an array except for a rich text item. Element 0 of the array contains the first or only value. If you expect more than one value for the specified item, traverse the array.

<+@><:#400,8486>Use the <:X8,-32768;Index "HasItem method" #>HasItem method of NotesDocument to test for the existence of an item of a specified name in a database.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_GETTING_AN_ITEM_AND_ITS_VALUES<-*>

@Chead title@<:#200,8486>Examples: getting an item and its values

@Dhead@<:#200,8486>Example 1

<:#400,8486>This example uses the Items property of NotesDocument to get each item in each document in a database view, and prints its name and text representation.

@Mono@<:#2800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("Main View")<**>     Set doc = v.GetFirstDocument()<**>     While Not(doc Is No
thing)<**>          itms = doc.Items<**>          Forall itm In itms<**>               Print itm.Name " = " itm.Text<**>          End Forall<**>          Set doc = v.GetNextDocument(doc)<**>     Wend<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#400,8486>This example uses the GetFirstItem and GetNextItem methods of NotesDocument to get the Subject item in each document in a database view, and prints its name and text value.

@Mono@<:#3200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Dim itm As NotesItem<**>     Set v = db.GetView("Main View")<**>     Set doc = v.GetFirstDocument(
)<**>     While Not(doc Is Nothing)<**>          Set itm = doc.GetFirstItem("Subject")<**>          While Not(itm Is Nothing)<**>               Print itm.Name " = " itm.Text<**>               Set itm = doc.GetNextItem(itm)<**>          Wend<**>          Set
 doc = v.GetNextDocument(doc)<**>     Wend<**>End Sub

@Dhead@<:#200,8486>Example 3

<:#400,8486>This example uses the item name as a document property to get the value of the Subject item in each document in a database.

@Mono@<:#2800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("Main View")<**>     Set doc = v.GetFirstDocument()<**>     While Not(doc Is No
thing)<**>          itms = doc.Subject<**>          Forall itm In itms<**>               Print itm<**>          End Forall<**>          Set doc = v.GetNextDocument(doc)<**>     Wend<**>End Sub

@Dhead@<:#200,8486>Example 4

<:#400,8486>This example uses the GetItemValue method of NotesDocument to get the value of the Subject item in each document in a database.

@Mono@<:#2800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("Main View")<**>     Set doc = v.GetFirstDocument()<**>     While Not(doc Is No
thing)<**>          itms = doc.GetItemValue("Subject")<**>          Forall itm In itms<**>               Print itm<**>          End Forall<**>          Set doc = v.GetNextDocument(doc)<**>     Wend<**>End Sub

@Dhead@<:#200,8486>Example 5

<:#200,8486>This example tests for the presence of a specified item in each document in a view.

@Mono@<:#3200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("Main View")<**>     Set doc = v.GetFirstDocument()<**>     itemName = Inputbox
("Name of item?")<**>     While Not(doc Is Nothing)<**>          If doc.HasItem(itemName) Then<**>               Print "Item present in document"<**>          Else<**>               Print "Item not present in document"<**>          End If<**>          Set d
oc = v.GetNextDocument(doc)<**>     Wend<**>End Sub

@Bhead title@<+@><:#220,8486>Creating an item and assigning values

<+@><:#800,8486><:X8,-32768;Index "Create item" # "in script">The New method of the 
<:X8,-32768;Index "NotesItem class" #>NotesItem class creates a new item in a document and assigns a value to it. You can also use the 
<:X8,-32768;Index "AppendItemValue method" #>AppendItemValue method of the NotesDocument class to create a new item. If another item exists with the same name, the new item does not replace that item but becomes an additional item.

<+@><:#1000,8486><-!>You can write to the <:X8,-32768;Index "Values property" #>Values property of the NotesItem class to replace the value of an item, or you can use the ReplaceItemValue method of the NotesDocument class. Writing to the Values property affects only the cur
rent item object, while the <:X8,-32768;Index "ReplaceItemValue method" #>ReplaceItemValue method replaces all values of all items with the specified name. Writing to the Values property accesses an item array on a per-element basis, while the ReplaceItemVa
lue method replaces the entire array with a single value stored in element 0.

<+@><:#400,8486>After creating or replacing an item, you must call the <:X8,-32768;Index "Save method" #>Save method for the NotesDocument object containing the item or the update is lost when the program exits.

<+@><:#400,8486>The user cannot see the new item as a field in the document unless you add the field to the form design. However, the item exists and can be accessed programmatically.

@See also hlp@<+@><:#110,8486><-!><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_CREATING_AN_ITEM_AND_ASSIGNING_VALUES<-*>

@Chead title@<:#200,8486>Examples: creating an item and assigning values

@Dhead@<:#200,8486>Example 1

<:#400,8486>This example uses the New method of the NotesItem class to add a new item named ModifiedBy to each document in a database and give it the value of the user name for the Notes session.

@Mono@<:#2400,8486>Sub INITIALIZE<**>     Dim s As New NotesSession<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Set dc = db.AllDocuments<**>     For j =  1 To dc
.Count<**>          Set doc = dc.GetNthDocument(j)<**>          Set itm = New NotesItem(doc, "ModifiedBy", s.UserName)<**>          If doc.Save(True, False) Then Print "Document updated"<**>     Next<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#400,8486>This example uses the AppendItemValue method of the NotesDocument class to add a new item named ModifiedBy to each document in a database and give it the value of the user name for the Notes session.

@Mono@<:#2600,8486>Sub INITIALIZE<**>     Dim s As New NotesSession<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Dim itm As NotesItem<**>     Set dc = db.AllDocum
ents<**>     For j =  1 To dc.Count<**>          Set doc = dc.GetNthDocument(j)<**>          Set itm = doc.AppendItemValue("ModifiedBy", s.UserName)<**>          If doc.Save(True, False) Then Print "Document updated"<**>     Next<**>End Sub

@Dhead@<:#200,8486>Example 3

<:#600,8486>This example uses the Values property of the NotesItem class to change the value of the item named ModifiedBy in each document in a database. Loops are used to access all values of all items with the name ModifiedBy.

@Mono@<:#4000,8486>Sub CLICK(SOURCE As BUTTON)<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Dim itm As NotesItem<**>     Set dc = db.AllDocuments<**>     For j = 
 1 To dc.Count<**>          Set doc = dc.GetNthDocument(j)<**>          Set itm = doc.GetFirstItem("ModifiedBy")<**>          While Not(itm Is Nothing)<**>               itmValues = itm.Values<**>               Forall itmValue In itmValues<**>              
 itmValue = "Anon1"<**>               End Forall<**>               itm.Values = itmValues<**>               Set itm = doc.GetNextItem(itm)<**>          Wend<**>          If doc.Save(True, False) Then Print "Document updated"<**>     Next<**>End Sub

@Dhead@<:#200,8486><-!>Example 4

<:#600,8486>This example uses the ReplaceItemValue method of the NotesDocument class to change the value of the item named ModifiedBy in each document in a database. The result in each document is a single item named ModifiedBy with a single value.

@Mono@<:#2400,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Dim itm As NotesItem<**>     Set dc = db.AllDocuments<**>     For j =  1 To dc.Coun
t<**>          Set doc = dc.GetNthDocument(j)<**>          Set itm = doc.ReplaceItemValue ("ModifiedBy", "Anon2")<**>          If doc.Save(True, False) Then Print "Document updated"<**>     Next   
<**>End Sub

@Bhead title@<+@><:#220,8486>Copying an item

<+@><:#400,8486><-!>Use either the <:X8,-32768;Index "CopyItemToDocument method" #>CopyItemToDocument method of the NotesItem class or the 
<:X8,-32768;Index "CopyItem method" #>CopyItem method of the NotesDocument class to copy an item.

<+@><:#400,8486>After copying an item, you must call the <:X8,-32768;Index "Update method" #>Update method for the NotesDocument object containing the new item or the update is lost when the program exits.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_COPYING_AN_ITEM<-*>

<+@><:#200,8486><+"><+!>yyCAN'T GET EXAMPLES TO WORK<-!><-">

@Chead title@<:#200,8486>Examples: copying an item

@Dhead@<:#200,8486>Example 1

<:#200,8486><+"><+!>yyneed example<-!><-">

@Dhead@<:#200,8486>Example 2

<:#200,8486><+"><+!>yyneed example<-!><-">

@Bhead title@<+@><:#220,8486>Removing an item

<+@><:#800,8486>Use either the <:X8,-32768;Index "Remove method" #>Remove method of the NotesItem class or the 
<:X8,-32768;Index "RemoveItem method" #>RemoveItem method of the NotesDocument class to remove an item from a document. The Remove method removes only the current object - other items with the same name remain in existence. The RemoveItem method removes all
 items with the specified name.

<+@><:#400,8486>After removing an item, you must call the <:X8,-32768;Index "Update method" #>Update method for the NotesDocument object that contained the item or the update is lost when the program exits.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_REMOVING_AN_ITEM<-*>

@Chead title@<:#200,8486>Examples: removing an item

@Dhead@<:#200,8486>Example 1

<:#600,8486>This example uses the Remove method of the NotesItem class to remove all the ModifiedBy items in the database. To handle multiple items with the same name, the code removes items in a loop that tests HasItem.

@Mono@<:#3000,8486>Sub CLICK(SOURCE As BUTTON)<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Dim itm As NotesItem<**>     Set dc = db.AllDocuments<**>     For j = 
 1 To dc.Count<**>          Set doc = dc.GetNthDocument(j)<**>          While doc.HasItem("ModifiedBy")<**>               Set itm = doc.GetFirstItem("ModifiedBy")<**>               itm.Remove<**>               If doc.Save(True, False) Then Print "Document u
pdated"<**>          Wend<**>     Next<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#400,8486>This example uses the RemoveItem method of the NotesDocument class to remove all the ModifiedBy items in the database.

@Mono@<:#2200,8486>Sub CLICK(SOURCE As BUTTON)<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim dc As NotesDocumentCollection<**>     Dim doc As NotesDocument<**>     Set dc = db.AllDocuments<**>     For j =  1 To dc.Count<**>          S
et doc = dc.GetNthDocument(j)<**>          doc.RemoveItem "ModifiedBy"<**>          If doc.Save(True, False) Then Print "Document updated"<**>     Next<**>End Sub

@Bhead title@<+@><:#220,8486>Working with a rich text item

<+@><:#1000,8486><:X8,-32768;Index "Rich text item" # "in script">The <:X8,-32768;Index "NotesRichTextItem class" #>NotesRichTextItem class inherits from NotesItem and so has the same properties and methods. NotesRichTextItem has an additional property for embedded objects 
and additional methods for creating items and working with embedded objects. If you do not need the additional property and methods, you can access an item as either a NotesItem or NotesRichTextItem object.

<+@>You must use the NotesRichTextItem methods to read and write item values in a rich text item. The properties and methods of NotesItem and NotesDocument do not provide correct results for a rich text item.

<+@><:#800,8486>When a rich text item is the return value of a method such as GetFirstItem in NotesDocument, do not declare it with a Dim statement--leave it a variant. It cannot be declared as a NotesRichTextItem object and if you declare it as a NotesItem object, you can
not use the NotesRichTextItem property and methods.<+"><+!>yy check this out again<-!><-">

<+@><:#200,8486>The <:X8,-32768;Index "GetFormattedText method" #>GetFormattedText method of NotesRichText returns the value of the rich text item as formatted text.

@See also hlp@<+@><:#110,8486><+)>

@See also btn@<+@><:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_WORKING_WITH_A_RICH_TEXT_ITEM<-*>

@Chead title@<:#200,8486>Examples: working with a rich text item

@Dhead@<:#200,8486>Example 1

<:#200,8486>This example prints properties for a rich text item.

@Mono@<:#3200,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("Main View")<**>     Set doc = v.GetFirstDocument<**>     Set itm = doc.GetFirs
tItem("Body")<**>     Print "Name " itm.Name<**>     Print "Text " itm.Text<**>     Select Case itm.Type<**>     Case RICHTEXT : Print "Type rich text"<**>     Case Else : Print "Not rich text"<**>     End Select<**>     Print "ValueLength " itm.ValueLength
<**>     Print Itm.values<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#200,8486>This example formats a rich text item as a text string.

@Mono@<:#1800,8486>Sub INITIALIZE<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim v As NotesView<**>     Dim doc As NotesDocument<**>     Set v = db.GetView("Main View")<**>     Set doc = v.GetFirstDocument<**>     Set itm = doc.GetFirs
tItem("Body")<**>     Print itm.GetFormattedText(False, 40)<**>End Sub

@Dhead@<:#200,8486>Example 3

<:#800,8486>This example creates a new rich text item as the Body field in a standard discussion database. The example reads blocks of text from the user until the user returns an empty string, writes the user text to the rich text item, and separates the blocks of tex
t with two newlines so that each block appears as a paragraph.

@Mono@<:#4600,8486>Sub CLICK(SOURCE As BUTTON)<**>     Dim s As New NotesSession<**>     Dim db As New NotesDatabase("", Inputbox("Name of database file?"))<**>     Dim doc As New NotesDocument(db)<**>     Call doc.AppendItemValue("From", s.UserName)<**>     Call doc.AppendIt
emValue("Subject", Inputbox("Subject?"))<**>     Call doc.AppendItemValue("Categories", Inputbox("Category?"))<**>     Dim richText As New NotesRichTextItem(doc, "Body")<**>     newPara = Inputbox("Paragraph of text for ""Body"" item")<**>     firstPara = T
rue<**>     While newPara <<<;> ""<**>          If firstPara Then<**>               firstPara = False<**>          Else<**>               Call richText.AddNewLine(2)<**>          End If<**>          Call richText.AppendText(newPara)<**>          newPara = I
nputbox("Paragraph of text for ""Body"" item")<**>     Wend<**>     Call doc.Save(True, False)<**>     Set v = db.GetView("Main View")<**>     Call v.Refresh()<**>End Sub

@Bhead title@<+@><:#220,8486>Working with an embedded object

@Ahead@<+@><:#240,8486>Ways to access Notes sessions

<+@><:#400,8486><:X8,-32768;Index "Session" #>The <:X8,-32768;Index "NotesSession class" #>NotesSession class provides a means for accessing attributes of the user environment and persistent information about agents. It also provides methods for accessing environment varia
bles.

<+C><:S+194><:#582,8486>The user environment is the server or workstation containing the formula's database in the following cases: replication formula, agent whose trigger is If New Mail Has Arrived or On Schedule, selection formula, or column formula. Otherwise the user environm
ent is the Notes workstation.

<+@><:#600,8486>A script has only one Notes session so successive calls to the New method return the same session handle. You do not not need the session handle to access databases or perform other operations in Notes, only to access the session properties and methods.

<+@><:#400,8486>You can close a session at any time with the Close method. The Close method is implicit upon program termination.

<+@><:#200,8486>See the following topics:

@Bullet@<:#200,8486><+)>Accessing session properties<-)><+*>H_ACCESSING_SESSION_PROPERTIES<-*>

@Bullet@<:#200,8486><+)>Using environment variables<-)><+*>H_USING_ENVIRONMENT_VARIABLES<-*>

@Bhead title@<+@><:#220,8486>Accessing session properties

<+@><:#800,8486>The following table lists the session properties. You can directly manipulate the properties that are built-in data types. Some of the properties are other Notes objects; for those you must use the associated properties and methods. For example, the Current
Database property must be set to a NotesDatabase object where the NotesDatabase properties and methods are used to access it.

@See also hlp@<:t5>

@See also btn@<:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_ACCESSING_SESSION_PROPERTIES<-*>

@Chead title@<:#200,8486>Examples: accessing session properties

@Dhead@<:#200,8486>Example 1

<:#200,8486>This example prints the values for the session properties that are not objects.

@Mono@<:#2800,8486>Sub INITIALIZE<**>     Dim s As New NotesSession <**>     Print "UserName " s.UserName<**>     Print "Platform " s.Platform<**>     Print "LastRun " s.LastRun<**>     Print "EffectiveUserName " s.EffectiveUserName<**>     If s.IsOnServer Then 
<**>          Print "Is on a server "<**>     Else<**>          Print "Is not on a server"<**>     End If<**>     Print "LastExitStatus " s.LastExitStatus<**>     Print "NotesVersion " s.NotesVersion<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#600,8486>This example prints the title and path name of the current database. A NotesDatabase object is defined and set to the value of the CurrentDatabase property. The title and path name are properties of the database object.

@Mono@<:#1200,8486>Sub INITIALIZE<**>     Dim s As New NotesSession<**>     Dim db As NotesDatabase<**>     Set db = s.CurrentDatabase<**>     Print db.Title " " db.FilePath<**>End Sub

@Dhead@<:#200,8486>Example 3

<:#400,8486>This example prints the title and path name of each address book in the current workspace, and prints whether it is private or public.

@Mono@<:#2800,8486>Sub INITIALIZE<**>     Dim s As New NotesSession<**>     Dim db As NotesDatabase<**>     addressBooks = s.AddressBooks<**>     Forall addressBook In addressBooks<**>          Set db = addressBook<**>          If db.IsPrivateAddressBook Then<**>             
  pvt = "Private"<**>          Else<**>               pvt = "Public"<**>          End If<**>          Print db.Title " " db.FilePath " " pvt<**>     End Forall<**>End Sub

@Bhead title@<+@><:#220,8486>Using environment variables

<+@><:#800,8486><:X8,-32768;Index "Environment variable" # "in script">The <:X8,-32768;Index "GetEnvironmentValue method" #>GetEnvironmentValue, 
<:X8,-32768;Index "GetEnvironmentString method" #>GetEnvironmentString, and 
<:X8,-32768;Index "SetEnvironmentVar method" #>SetEnvironmentVar methods retrieve and set environment variables, which are stored in the local 
<++>notes.ini<-+><:X8,-32768;Index "NOTES.INI file" #> or <:X8,-32768;Index "Preferences file" #>Preferences file. Use GetEnvironmentValue only for numeric environment variables. Use GetEnvironmentString for strings and numeric values.

<+@><:#600,8486>Environment variables are useful for saving state and data between Notes sessions on a single server or workstation where no conflicts are possible. They are also useful for obtaining the environment information set by Notes, such as KitType, Directory, Pre
ferences, Domain, Port, and so on.

<+@><:#400,8486>If you want an environment variable to be accessible to the Notes formula language (@Environment, @SetEnvironment, and ENVIRONMENT), you must prepend a $ to its name.

@See also hlp@<:#110,8486><+)>

@See also btn@<:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_USING_ENVIRONMENT_VARIABLES<-*>

@Chead title@<:#200,8486>Examples: using environment variables

@Dhead@<:#200,8486>Example 1

<:#400,8486>This button example increments an environment variable by one and prints the result. This example is only practical if one user at a time can press the button.

@Mono@<:#2200,8486>Sub INITIALIZE<**>     Dim s As New NotesSession()<**>     envVar = s.GetEnvironmentValue("SeqNo")<**>     If Isempty(envVar) Then<**>          Call s.SetEnvironmentVar("SeqNo", 1)<**>     Else<**>          envVar = envVar + 1<**>          Call s.SetEnviron
mentVar("SeqNo", Cint(envVar))<**>     End If<**>     Print s.GetEnvironmentValue("SeqNo")<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#400,8486>This example prints the value of a user specified environment variable. GetEnvironmentString is used to accept an environment variable that is either a number or a string.

@Mono@<:#2000,8486>Sub Click(Source As Button)<**>     Dim s As New NotesSession()<**>     envVarName = Inputbox$("Environment variable name")<**>     envVar = s.GetEnvironmentString(envVarName)<**>     If envVar = "" Then<**>          Messagebox(envVarName & " not set")<**> 
    Else<**>          Messagebox(envVarName & " = " & envVar)<**>     End If<**>End Sub

@Ahead@<:#240,8486>Ways to access Notes agents

<+@><:#200,8486><+"><+!>yy need intro<-!><-">

@Bullet@<:#200,8486><+)>Access agent properties<-)><+*>H_ACCESSING_AGENT_PROPERTIES<-*>

@Bullet@<:#200,8486><+)>Install and remove an agent<-)><+*>H_INSTALLING_AND_REMOVING_AN_AGENT<-*>

@Bullet@<:#200,8486><+)>Run an agent<-)><+*>H_RUNNING_AN_AGENT<-*>

@Bhead title@<+@><:#220,8486>Accessing agent properties

@Bhead title@<+@><:#220,8486>Installing and removing an agent

@Bhead title@<+@><:#220,8486>Running an agent

@Ahead@<:#240,8486>Ways to access supporting Notes objects

<+@><:#200,8486><+"><+!>yyneed intro <-!><-">NotesLog - NotesTimeDate - NewsLetter

@Bullet@<:#400,8486><+)>Convert between Notes an LotusScript time<-)><+*>H_CONVERTING_BETWEEN_NOTES_AN_LOTUSSCRIPT_TIME<-*>

@Bullet@<:#200,8486><+)>Make a Notes log<-)><+*>H_MAKING_A_NOTES_LOG<-*>

@Bullet@<:#200,8486><+)>Make a Notes newsletter<-)><+*>H_MAKING_A_NOTES_NEWSLETTER<-*>

@Bhead title@<+@><:#220,8486>Converting between Notes and LotusScript time

@Bhead title@<+@><:#220,8486>Making a Notes log

@Bhead title@<+@><:#220,8486>Making a Notes newsletter

<+@><:#200,8486>

@Ahead@<+@><:#240,8486>Accessing the user interface

<+@><:#800,8486>You can access the document that is currently open through the NotesUIWorkspace and NotesUIDocument classes. The NotesUIWorkspace class has one property CurrentDocument which is a reference to the current document. The NotesUIDocument class has numerous pro
perties and methods for examining and manipulating the current document.

<+@><:#200,8486>The NotesUIDocument class has the following read-only properties:

@Indnt bullet@<+@><:#600,8486>Document is a reference to the NotesDocument object associated with this document window, giving you access to the back-end properties and methods. If you modify and save an item using the NotesDocument object, the item is automatically updated in the works
pace.

@Indnt bullet@<+@><:#200,8486>IsNewDoc is true if the document is not yet saved.

@Indnt bullet@<+@><:#200,8486>CurrentField is the name of the current field if the document is in edit mode.

@Indnt bullet@<+@><:#200,8486>WindowTitle is the name of the window title.

<+@><:#400,8486>The NotesUIDocument class has the following read-write properties. Reading the property gets its status. Writing the property sets its status.

<+@><:t6>

<+@><:#200,8486>

@See also btn@<:#200,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_ACCESSING_THE_USER_INTERFACE<-*>

@Chead title@<:#200,8486>Examples: accessing the user interface

@Dhead@<:#200,8486>Example 1

<:#400,8486>This event script executes when the user enters a field in edit mode. The script displays information about the field and document.

@Mono@<:#2400,8486>Sub Entering(Source As Field)<**>     Dim workspace As New NotesUIWorkspace<**>     Set uidoc = workspace.CurrentDocument<**>     If uidoc.EditMode Then<**>          If uidoc.IsNewDoc Then<**>               Messagebox("This is the " & uidoc.CurrentField & "
 field")<**>          Else<**>               Messagebox("This is the " & uidoc.CurrentField & _<**>               " field of " & uidoc.WindowTitle)<**>          End If<**>     End If<**>End Sub

@Dhead@<+@><-!>Example 2

<+@><:#200,8486>This example puts the current document in edit mode if it is not, and toggles the ruler.

@Mono@<:#2400,8486>Sub Click(Source As Button)<**>     Dim workspace As New NotesUIWorkspace<**>     Set uidoc = workspace.CurrentDocument<**>     If Not uidoc.EditMode Then<**>          uidoc.EditMode = True<**>     End If<**>     If uidoc.Ruler Then<**>          uidoc.Ruler
 = False<**>     Else<**>          uidoc.Ruler = True<**>     End If<**>End Sub

@Dhead@<:#200,8486>Example 3

<:#400,8486>This example displays a property of the NotesDatabase object that corresponds to the current workspace document.

@Mono@<:#1200,8486>Sub Click(Source As Button)<**>     Dim workspace As New NotesUIWorkspace<**>     Set uidoc = workspace.CurrentDocument<**>     Set doc = uidoc.Document<**>     Messagebox("Last modified = " & doc.LastModified)<**>End Sub

@Dhead@<:#200,8486>Example 4

<:#400,8486>This example places a value in the Body text item using a NotesDocument object. When the NotesDocument object is saved, the workspace object is automatically updated.

@Mono@<:#2000,8486>Sub Click(Source As Button)<**>     Dim workspace As New NotesUIWorkspace<**>     Set uidoc = workspace.CurrentDocument<**>     Set doc = uidoc.Document<**>     If uidoc.EditMode = False Then uidoc.EditMode = True<**>     bodyText1 = "Please be advised that
 your subscription has expired. "<**>     bodyText2 = "Renew now and save 50%."<**>     Call doc.ReplaceItemValue("Body", bodyText1 & bodyText2)<**>     Call doc.Save(True, False)<**>End Sub

@Ahead@<+@><:#240,8486>Handling errors raised by Notes methods

<+@><:#800,8486><:X8,-32768;Index "Error handling" # "in script">The Notes methods raise 
<:X8,-32768;Index "Runtime error" # "in script">runtime errors to flag most conditions. A few methods, as specified, return a status value or return Nothing as an object handle to indicate a condition, and in these cases the return value should be checked b
efore proceeding. Otherwise you must include an error-handling routine to process errors; if you do not, the script exits when an error occurs.

<+@><:#1200,8486>To trap all errors, include an <:X8,-32768;Index "On Error statement" #>On Error statement without an error number before any executable statements. To trap a specific error, include an On Error statement with the error number before the statement that migh
t cause the error. However, the On Error statements with numbers must follow the On Error statement without a number. For example, if you want to trap the errors ErrDatabaseDoesNotExist and ErrObjectVariableNotSet plus any other errors, you write the follow
ing On Error statements in the following order:

@Mono@<:#600,8486>On Error Goto processError<**>On Error ErrDatabaseDoesNotExist Goto processErrDatabaseDoesNotExist<**>On Error ErrObjectVariableNotSet Goto processErrObjectVariableNotSet

<+@><:#600,8486><+"><+!>yyThe error constants are not yet defined and the error numbers are not in the specifications. For now you have to figure out what error number you want to trap--use Err()--and On Error the number or define a constant yourself. See the examples.<-!>
<-">

@See also hlp@<:#110,8486><+)>

@See also btn@<:#400,8486><+)>{bmc 1details.bmp}<-)><+)>See examples<-)><+*>H_EXAMPLES_HANDLING_ERRORS_RAISED_BY_NOTES_METHODS<-*>

@Chead title@<:#200,8486>Examples: handling errors raised by Notes methods

@Dhead@<:#200,8486>Example 1

<:#400,8486>This example shows the simplest case of an error handler. The first statement establishes a handler for all errors. The handler prints the error number and message, and exits.

@Mono@<:#1800,8486>Sub CLICK(SOURCE As BUTTON)<**>     On Error Goto processError<**>     Dim db As New NotesDatabase(Inputbox("Server?"), Inputbox("Database?"))<**>     Print db.Title<**>     Exit Sub<**>processError:<**>     Print "Error " Err() ": " Error()<**>     Exit Su
b<**>End Sub

@Dhead@<:#200,8486>Example 2

<:#1000,8486>This example traps the error that occurs on a bad directory or file name specification for the Open method of NotesDatabase. In addition, the example handles other errors. If the user enters a bad name, the error handler allows the user to retry or cancel. 
For a retry, the error handler calls the Open method then resumes execution in the mainline code. 
<+"><+!>yyFor now the example must define a constant for the operative error<-!><-"><+!><+"> 4063.<-!><-">

@Mono@<:#400,8486><**>(Declarations)<**>%INCLUDE "lsconst.lss"

@Mono@<:#4200,8486>Sub CLICK(SOURCE As BUTTON)<**>     Const ErrDatabaseDoesNotExist = 4063<**>     Dim db As New NotesDatabase("", "")<**>     On Error Goto processError<**>     On Error ErrDatabaseDoesNotExist Goto processErrDatabaseDoesNotExist<**>     Call db.Open(Inputbo
x("Server?"), Inputbox("Database?"))<**>     Print db.Title<**>     Exit Sub<**>processErrDatabaseDoesNotExist:<**>     r = Messagebox("Server or database name is wrong", MB_RETRYCANCEL)<**>     If r = IDRETRY Then<**>          Call db.Open(Inputbox("Server
?"), Inputbox("Database?"))<**>          Resume<**>     Else<**>          Print "Error " Err() ": " Error()<**>          Exit Sub<**>     End If<**>processError:<**>     Print "Error " Err() ": " Error()<**>     Exit Sub<**>End Sub

>

[Embedded]
00138870
