[ver]
	4
[sty]
	
[files]
[charset]
	82
	ANSI (Windows, IBM CP 1252)
[revisions]
	0
[sequence]
	36
	0
	0
	0
	19
	3
	Numbered list
	0
	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 II NTX
[port]
	LPT1:
[lang]
	1
[fldnames]
	Field1
	Field2
	Field3
	Field4
	Field5
	Field6
	Field7
	Field8
[desc]
	hlp1.sty - Application Developer's Reference - 
	
	
	
	
	801260026
	88
	760043330
	6787
	18
	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]
		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
		.
		,
		$
	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]
		80
	[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]
	Dhead
	9
	[fnt]
		Arial
		180
		0
		16385
	[algn]
		1
		3
		0
		0
		0
	[spc]
		40
		200
		4
		19
		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]
	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]
	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
[tag]
	1st lev para
	0
	[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
[frm]
	16
	1573060
	720
	6974
	7545
	11528
	0
	1
	1
	1 0 0 0 0 0 0
	0
	16777215
	24
	0
	0
	0 0
	[frmlay]
		9919
		6825
		1
		0
		0
		1
		6974
		0
		0
		2
		0
		1
		1
		0
		1
		864
		4896
		0
	[tbl]
		 6 2 0 86 1440 0 1 43 43
		[h]
			 0 200 86 18 0 2 0
			 1 1079 86 2 0 1 0
			 2 679 86 2 0 1 0
			 3 879 86 2 0 1 0
			 4 479 86 2 0 1 0
			 5 679 86 2 0 1 0
		[e]
		[w]
			 0 3065 0 2 0
			 1 3717 0 2 0
		[e]
		[data]
			 0 0 0 0 0 0 4352 1 0 0 0 0
<+!>Keyword syntax<-!>

>
			 0 1 0 0 0 0 4352 1 0 0 0 0
<+!>Description<-!>

>
			 1 0 0 0 0 0 0 1 0 0 0 0
DEFAULT <+">fieldName<-"> := <+">value<-">

>
			 1 1 0 0 0 0 0 1 0 0 0 0
@Body Text@<:X8,-32768;Index "Formulas" # "DEFAULT keyword"><:X8,-32768;Index "DEFAULT keyword" # "formulas"><:f>Associates a value with a field. If the field exists in the document being processed, its current value is used. If the field does not exist, the document 
is treated as if the field does exist and the DEFAULT value is used.

>
			 2 0 0 0 0 0 0 1 0 0 0 0
ENVIRONMENT <+">variable<-"> := <+">textValue<-">

>
			 2 1 0 0 0 0 0 1 0 0 0 0
@Body Text@<:X8,-32768;Index "Formulas" # "ENVIRONMENT keyword"><:X8,-32768;Index "ENVIRONMENT keyword" # "formulas"><:f>A<:f,,>ssigns a value to an environment variable in the user's 
<:f><:f,,><:X8,-32768;Index "NOTES.INI file" #>NOTES.INI file (Windows, OS/2, UNIX) or Notes Preferences file<:X8,-32768;Index "Preferences file" #> (Macintosh)<:f><:f,,>.<:f>

>
			 3 0 0 0 0 0 0 1 0 0 0 0
FIELD <+">fieldname<-"> := <+">value<-">

>
			 3 1 0 0 0 0 0 1 0 0 0 0
@Body Text@<:X8,-32768;Index "Formulas" # "FIELD keyword"><:X8,-32768;Index "FIELD keyword" # "formulas"><:f>A<:f,,>ssigns a value to a field in the current Notes document. If the field does not already exist, it is created; if it already exists, the contents are repl
aced.<:f>

>
			 4 0 0 0 0 0 0 1 0 0 0 0
REM <[>"<+">remarks<-">"]

>
			 4 1 0 0 0 0 0 1 0 0 0 0
@Body Text@<:X8,-32768;Index "Formulas" # "REM keyword"><:X8,-32768;Index "REM keyword" # "formulas"><:f>Inserts documentation into the formula without affecting its function.

>
			 5 0 0 0 0 0 4096 1 0 0 0 0
SELECT <+">logicalValue<-">

>
			 5 1 0 0 0 0 4096 1 0 0 0 0
@Body Text@<:X8,-32768;Index "Formulas" # "SELECT keyword"><:X8,-32768;Index "SELECT keyword" # "formulas"><:f><:f,,>S<:f><:f,,>pecifies whether or not the current document is valid for processing in<:f> view selection, replication, and agent formulas.

>
		[e]
	[tble]
[frm]
	1
	1572932
	720
	6361
	8567
	7844
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	6
	1
	0
	0 0
	[frmlay]
		2635
		7847
		3
		0
		0
		3
		6361
		0
		0
		2
		0
		9
		9
		3377
		1
		1440
		10800
		0
	[tbl]
		 5 4 0 86 2244 86 1 43 43
		[h]
			 0 210 86 2 0 3 0
			 1 200 86 6 0 3 0
			 2 200 86 6 0 3 0
			 3 200 86 6 0 3 0
			 4 200 86 2 0 3 0
		[e]
		[w]
			 0 1698 10 6 0
			 1 2040 86 2 0
			 2 1980 10 6 0
			 3 1980 0 6 0
		[e]
		[data]
			 0 1 0 0 0 0 512 1 0 0 0 0
@Table col hd@Type of Number

>
			 0 2 0 0 0 0 512 1 0 0 0 0
@Table col hd@Constant

>
			 0 3 0 0 0 0 512 1 0 0 0 0
@Table col hd@Result

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

>
			 1 2 8 0 0 0 512 1 0 0 0 0
<+@>123 

>
			 1 3 0 0 0 0 512 1 0 0 0 0
123 

>
			 2 1 0 0 0 0 0 1 0 0 0 0
Decimal

>
			 2 2 8 0 0 0 0 1 0 0 0 0
<+@>.123 

>
			 2 3 0 0 0 0 0 1 0 0 0 0
0.123 

>
			 3 1 0 0 0 0 0 1 0 0 0 0
Negative number

>
			 3 2 0 0 0 0 0 1 0 0 0 0
-123.4 

>
			 3 3 8 0 0 0 0 1 0 0 0 0
<+@>-123.4 

>
			 4 1 0 0 0 0 8192 1 0 0 0 0
Scientific notation

>
			 4 2 0 0 0 0 8192 1 0 0 0 0
123E2, 123E-2

>
			 4 3 0 0 0 0 8192 1 0 0 0 0
12300, 1.23 

>
		[e]
	[tble]
[frm]
	1
	1572932
	720
	960
	9183
	6039
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	9
	2
	0
	0 0
	[frmlay]
		3352
		8463
		3
		0
		0
		3
		960
		0
		0
		2
		0
		9
		51
		12342
		1
		1440
		10800
		0
	[tbl]
		 8 4 0 86 3020 86 1 43 43
		[h]
			 0 210 86 2 0 3 0
			 1 200 86 2 0 3 0
			 2 200 86 2 0 3 0
			 3 479 86 2 0 2 0
			 4 1037 86 2 0 2 0
			 5 1037 86 2 0 2 0
			 6 4106 86 6 0 2 0
			 7 758 86 6 0 2 0
		[e]
		[w]
			 0 1680 0 6 0
			 1 2000 0 6 0
			 2 3020 0 6 0
			 3 1720 0 6 0
		[e]
		[data]
			 0 1 8 0 0 0 256 1 0 0 0 0
@Table col hd@<+@>Operator

>
			 0 2 8 0 0 0 256 1 0 0 0 0
@Table col hd@<+@>Operation

>
			 0 3 24 0 0 0 256 1 0 0 0 0
@Table col hd@<+B>Precedence

>
			 1 1 0 0 0 0 256 1 0 0 0 0
:=

>
			 1 2 0 0 0 0 256 1 0 0 0 0
Assignment<:X8,0;Index "Assignment operator" #>

>
			 1 3 24 0 0 0 256 1 0 0 0 0
<+B>NA

>
			 2 1 0 0 0 0 256 1 0 0 0 0
:

>
			 2 2 0 0 0 0 256 1 0 0 0 0
List concatenation<:X8,0;Index "List Concatenation operator" #>

>
			 2 3 24 0 0 0 256 1 0 0 0 0
<+B>1

>
			 3 1 0 0 0 0 256 1 0 0 0 0
+

-

>
			 3 2 0 0 0 0 256 1 0 0 0 0
Positive<:X8,0;Index "Positive operator" #>

Negative<:X8,0;Index "Negative operator" #>

>
			 3 3 24 0 0 0 256 1 0 0 0 0
<+B>2

>
			 4 1 0 0 0 0 256 1 0 0 0 0
*

**

/

*/

>
			 4 2 0 0 0 0 256 1 0 0 0 0
Multiplication<:X8,0;Index "Multiplication operator" #>

Permuted multiplication<:X8,0;Index "Permuted multiplication operator" #>

Division<:X8,0;Index "Division operator" #>

Permuted division<:X8,0;Index "Permuted division operator" #>

>
			 4 3 24 0 0 0 256 1 0 0 0 0
<+B>3

>
			 5 1 0 0 0 0 256 1 0 0 0 0
+

*+

-

*-

>
			 5 2 0 0 0 0 256 1 0 0 0 0
Addition<:X8,0;Index "Addition operator" #>, concatenation<:X8,0;Index "Concatenation operator" #>

Permuted addition<:X8,0;Index "Permuted addition operator" #>

Subtraction<:X8,0;Index "Subtraction operator" #>

Permuted subtraction

>
			 5 3 24 0 0 0 256 1 0 0 0 0
<+B>4

>
			 6 1 0 0 0 0 256 1 0 0 0 0
=

*=

<<<;>

!=

=!

<;><<

*<<<;>

<<

*<<

<;>*

<;>

<<=

*<<=

<;>=

*<;>=

>
			 6 2 0 0 0 0 256 1 0 0 0 0
Equal<:X8,0;Index "Equal operator" #>

Permuted equal<:X8,0;Index "Permuted equal operator" #>

Not equal<:X8,0;Index "Not equal operator" #>

Not equal

Not equal

Not equal

Permuted not equal<:X8,0;Index "Permuted not equal operator" #>

Less than<:X8,0;Index "Less than operator" #>

Permuted less than<:X8,0;Index "Permuted less than operator" #>

Greater than<:X8,0;Index "Greater than operator" #>

Permuted greater than<:X8,0;Index "Permuted greater than operator" #>

Less than or equal<:X8,0;Index "Less than or equal operator" #>

Permuted less than or equal<:X8,0;Index "Permuted less than or equal operator" #>

Greater than or equa<:X8,0;Index "Greater than or equal operator" #>l

Permuted greater than or equal<:X8,0;Index "Permuted greater than or equal operator" #>

>
			 6 3 24 0 0 0 256 1 0 0 0 0
<+B>5

>
			 7 1 0 0 0 0 4352 1 0 0 0 0
!

&

|

>
			 7 2 0 0 0 0 4352 1 0 0 0 0
Logical NOT<:X8,0;Index "NOT operator" #><:X8,0;Index "Logical NOT operator" #>

Logical AND<:X8,0;Index "AND operator" #><:X8,0;Index "Logical AND operator" #>

Logical OR<:X8,0;Index "OR operator" #><:X8,0;Index "Logical OR operator" #>

>
			 7 3 24 0 0 0 4352 1 0 0 0 0
<+B>6

>
		[e]
	[tble]
[frm]
	1
	1572932
	720
	4310
	9202
	7509
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	13
	3
	257
	2750 0
	[frmlay]
		4308
		8482
		3
		0
		0
		3
		4310
		0
		0
		2
		0
		0
		0
		0
		1
		1440
		10800
		0
	[tbl]
		 11 4 0 86 3020 86 1 43 43
		[h]
			 0 210 86 2 0 3 0
			 1 200 86 6 0 3 0
			 2 200 86 6 0 3 0
			 3 200 86 6 0 3 0
			 4 200 86 6 0 3 0
			 5 200 86 6 0 3 0
			 6 200 86 6 0 3 0
			 7 200 86 6 0 3 0
			 8 200 86 6 0 3 0
			 9 200 86 6 0 3 0
			 10 200 86 6 0 3 0
		[e]
		[w]
			 0 1681 0 6 0
			 1 1898 0 6 0
			 2 2190 0 6 0
			 3 2670 0 6 0
		[e]
		[data]
			 0 1 0 0 0 0 512 1 0 0 0 0
@Table col hd@Pair-wise Operator

>
			 0 2 0 0 0 0 512 1 0 0 0 0
@Table col hd@Permutation Operator

>
			 0 3 0 0 0 0 512 1 0 0 0 0
@Table col hd@Meaning

>
			 1 1 0 0 0 0 512 1 0 0 0 0
*

>
			 1 2 0 0 0 0 512 1 0 0 0 0
**

>
			 1 3 0 0 0 0 512 1 0 0 0 0
Multiplication

>
			 2 1 0 0 0 0 0 1 0 0 0 0
/

>
			 2 2 0 0 0 0 0 1 0 0 0 0
*/

>
			 2 3 0 0 0 0 0 1 0 0 0 0
Division

>
			 3 1 0 0 0 0 0 1 0 0 0 0
+

>
			 3 2 0 0 0 0 0 1 0 0 0 0
*+

>
			 3 3 0 0 0 0 0 1 0 0 0 0
Addition

>
			 4 1 0 0 0 0 0 1 0 0 0 0
-

>
			 4 2 0 0 0 0 0 1 0 0 0 0
*-

>
			 4 3 0 0 0 0 0 1 0 0 0 0
Subtraction

>
			 5 1 0 0 0 0 0 1 0 0 0 0
<;>

>
			 5 2 0 0 0 0 0 1 0 0 0 0
*<;>

>
			 5 3 0 0 0 0 0 1 0 0 0 0
Greater than

>
			 6 1 0 0 0 0 0 1 0 0 0 0
<<

>
			 6 2 0 0 0 0 0 1 0 0 0 0
*<<

>
			 6 3 0 0 0 0 0 1 0 0 0 0
Less than

>
			 7 1 0 0 0 0 0 1 0 0 0 0
<;>=

>
			 7 2 0 0 0 0 0 1 0 0 0 0
*<;>=

>
			 7 3 0 0 0 0 0 1 0 0 0 0
Greater than or equal to

>
			 8 1 0 0 0 0 0 1 0 0 0 0
<<=

>
			 8 2 0 0 0 0 0 1 0 0 0 0
*<<=

>
			 8 3 0 0 0 0 0 1 0 0 0 0
Less than or equal to

>
			 9 1 0 0 0 0 0 1 0 0 0 0
=

>
			 9 2 0 0 0 0 0 1 0 0 0 0
*=

>
			 9 3 0 0 0 0 0 1 0 0 0 0
Equal

>
			 10 1 0 0 0 0 0 1 0 0 0 0
!=

>
			 10 2 0 0 0 0 0 1 0 0 0 0
*!=

>
			 10 3 0 0 0 0 0 1 0 0 0 0
Not equal

>
		[e]
	[tble]
[frm]
	1
	1572932
	960
	960
	9438
	9663
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	14
	4
	29813
	28521 110
	[frmlay]
		4308
		8478
		3
		0
		0
		3
		960
		0
		0
		2
		0
		57
		0
		25
		1
		1440
		10800
		0
	[tbl]
		 11 3 0 86 3020 86 1 43 43
		[h]
			 0 210 240 6 0 3 0
			 1 758 240 6 0 2 0
			 2 679 240 6 0 1 0
			 3 758 240 6 0 2 0
			 4 479 240 6 0 2 0
			 5 758 240 6 0 2 0
			 6 758 240 6 0 2 0
			 7 1037 240 6 0 2 0
			 8 758 240 6 0 2 0
			 9 1595 240 6 0 1 0
			 10 1595 240 6 0 1 0
		[e]
		[w]
			 0 2955 0 6 0
			 1 2840 0 6 0
			 2 2640 0 6 0
		[e]
		[data]
			 0 0 24 0 0 0 512 1 0 0 0 0
@Table col hd@<+B>Operation

>
			 0 1 24 0 0 0 512 1 0 0 0 0
@Table col hd@<+B>Statement

>
			 0 2 24 0 0 0 512 1 0 0 0 0
@Table col hd@<+B>Yields

>
			 1 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>C<:f><:f180,BArial,0,0,0>oncatenation, pair-wise<:f>

>
			 1 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>A"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f180,BArial,0,0,0>+"<:f180,BArial,0,0,0>1"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>2"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>
3"<:f>

<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>A"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f180,BArial,0,0,0>+"<:f180,BArial,0,0,0>1"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>2"<:f>

<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>A"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f180,BArial,0,0,0>+"<:f180,BArial,0,0,0>1"<:f>

>
			 1 2 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>"A1":<:f><:f180,BArial,0,0,0>"B2":"C3<:f>"

<:f180,BArial,0,0,0>"A1":"B2":"C2<:f>"

"A1":"B1":C1"

>
			 2 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>C<:f><:f180,BArial,0,0,0>oncatenation<:f>, permutation

>
			 2 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>A"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f180,BArial,0,0,0>+"<:f180,BArial,0,0,0>1"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>2"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>
3"<:f>

<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>A"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f180,BArial,0,0,0>+"<:f180,BArial,0,0,0>1"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>2"<:f>

>
			 2 2 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>"A1":"A2":"A3":"B1":"B2":"B3":"C1":"C2":"C3"

<:f180,BArial,0,0,0>"A1":"A2":"B1":"B2":"C1":"C2<:f>"

>
			 3 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>A<:f><:f180,BArial,0,0,0>ddition<:f>, pair-wise

>
			 3 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>1:2:3+10:20:30

<:f180,BArial,0,0,0>1:2:3+10:20<:f>

1:2:3+10

>
			 3 2 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>11:22:33

<:f180,BArial,0,0,0>1<:f180,BArial,0,0,0>1:22:23<:f>

11:12:13

>
			 4 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>Addition, permutation<:f><:f>

>
			 4 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>1:2:3*+10:20:30

<:f180,BArial,0,0,0>1:2:3*+10:20<:f>

>
			 4 2 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>11:21:31:12:22:32:13:23:33

<:f180,BArial,0,0,0>11:21:12:22:13:23<:f>

>
			 5 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>Text equality, pair-wise<:f>

>
			 5 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>A"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>=<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>:"A"

<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>A"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>=<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>

<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>B<:f><:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>=<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>

>
			 5 2 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>0 <+">False<:f>

<:f180,BArial,0,0,0>1 <+">True<:f>

<:f180,BArial,0,0,0>1<:f>

>
			 6 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>Text e<:f><:f180,BArial,0,0,0>quality, permutation<:f>

>
			 6 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>A"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>*=<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>:"A"

<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>A"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>*=<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>

<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>B<:f><:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>B"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>C"<:f>*=<:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>D<:f><:f180,BArial,0,0,0>"<:f180,BArial,0,0,0>:"<:f180,BArial,0,0,0>
E<:f><:f180,BArial,0,0,0>"<:f>

>
			 6 2 0 0 0 0 256 1 0 0 0 0
<:f180, Palatino,0,0,0>1

<:f180, Palatino,0,0,0>1

<:f180, Palatino,0,0,0>0

>
			 7 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>Number<:f><:f180,BArial,0,0,0> equality, pair-wise<:f>

>
			 7 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>1:2:3=2:3:1

<:f180,BArial,0,0,0>1:2:3=2:3

<:f180,BArial,0,0,0>2:3:3=2:3

<:f180,BArial,0,0,0>2:3:3=3:1<:f>

>
			 7 2 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>0

<:f180,BArial,0,0,0>1

<:f180,BArial,0,0,0>1

<:f180,BArial,0,0,0>0<:f>

>
			 8 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>Number e<:f><:f180,BArial,0,0,0>quality, permutation<:f>

>
			 8 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>1:2:3*=2:3:1

<:f180,BArial,0,0,0>1:2:3*=2:3

<:f180,BArial,0,0,0>1:2:3*=4:5<:f>

>
			 8 2 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>1

<:f180,BArial,0,0,0>1

<:f180,BArial,0,0,0>0<:f>

>
			 9 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>Date<:f><:f180,BArial,0,0,0> equality, pair-wise<:f>

>
			 9 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0><[>1</m>1</m>90]:<[>2</m>2</m>90]:<[>3</m>3</m>90]=

<:f180,BArial,0,0,0><[>3</m>3</m>90]:<[>2</m>2</m>90]:<[>1</m>1</m>90]

<:f180,BArial,0,0,0><[>1</m>1</m>90]:<[>2</m>2</m>90]:<[>3</m>3</m>90]=

<:f180,BArial,0,0,0><[><:f180,BArial,0,0,0>2</m>2</m>90]:<[>3</m>3</m>90]

<:f180,BArial,0,0,0><[>2</m>2</m>90]:<[>3</m>3</m>90]:<[>3</m>3</m>90]=

<:f180,BArial,0,0,0><[>2</m>2</m>90]:<[>3</m>3</m>90]<:f>

>
			 9 2 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>1<:f>

<:f180,BArial,0,0,0>

<:f180,BArial,0,0,0>1

<:f180,BArial,0,0,0>

<:f180,BArial,0,0,0>1<:f>

>
			 10 0 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>Date<:f><:f180,BArial,0,0,0> e<:f><:f180,BArial,0,0,0>quality, permutation<:f>

>
			 10 1 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0><[>1</m>1</m>90]:<[>2</m>2</m>90]:<[>3</m>3</m>90]*=

<:f180,BArial,0,0,0><[>3</m>3</m>90]:<[>2</m>2</m>90]:<[>1</m>1</m>90]

<:f180,BArial,0,0,0><[>1</m>1</m>90]:<[>2</m>2</m>90]:<[>3</m>3</m>90]*=

<:f180,BArial,0,0,0><[>2</m>2</m>90]:<[>3</m>3</m>90]

<:f180,BArial,0,0,0><[>1</m>1</m>90]:<[>2</m>2</m>90]:<[>3</m>3</m>90]*=

<:f180,BArial,0,0,0><[>4</m>4</m>90]:<[>5</m>5</m>90]<:f>

>
			 10 2 0 0 0 0 256 1 0 0 0 0
<:f180,BArial,0,0,0>1

<:f180,BArial,0,0,0>

<:f180,BArial,0,0,0>1

<:f180,BArial,0,0,0>

<:f180,BArial,0,0,0>0<:f>

>
		[e]
	[tble]
[frm]
	5
	1572932
	960
	960
	8807
	3291
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	22
	5
	0
	0 0
	[frmlay]
		2815
		7847
		3
		0
		0
		3
		960
		0
		0
		2
		0
		9
		9
		3377
		1
		1620
		10980
		0
	[tbl]
		 9 4 0 86 2244 86 1 43 43
		[h]
			 0 210 86 2 0 3 0
			 1 200 86 6 0 3 0
			 2 200 86 6 0 3 0
			 3 200 86 6 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 1698 10 6 0
			 1 2040 86 2 0
			 2 1980 10 6 0
			 3 1980 0 6 0
		[e]
		[data]
			 0 1 24 0 0 0 512 1 0 0 0 0
@Table col hd@<+B>Time-date format

>
			 0 2 24 0 0 0 512 1 0 0 0 0
@Table col hd@<+B>Constant

>
			 0 3 24 0 0 0 512 1 0 0 0 0
@Table col hd@<+B>Result in 12-hour time

>
			 1 1 0 0 0 0 512 1 0 0 0 0
24-hour time

>
			 1 2 8 0 0 0 512 1 0 0 0 0
<+@><[>5:30]

>
			 1 3 0 0 0 0 512 1 0 0 0 0
05:30:00 AM

>
			 2 1 0 0 0 0 0 1 0 0 0 0
12-hour time

>
			 2 2 8 0 0 0 0 1 0 0 0 0
<+@><[>5:30 PM]

>
			 2 3 0 0 0 0 0 1 0 0 0 0
05:30:00 PM 

>
			 3 1 0 0 0 0 0 1 0 0 0 0
24-hour time

>
			 3 2 0 0 0 0 0 1 0 0 0 0
<[>17:30]

>
			 3 3 0 0 0 0 0 1 0 0 0 0
05:30:00 PM

>
			 4 1 0 0 0 0 0 1 0 0 0 0
Date

>
			 4 2 0 0 0 0 0 1 0 0 0 0
<[>6/15]

>
			 4 3 0 0 0 0 0 1 0 0 0 0
06/15/95

>
			 5 1 0 0 0 0 0 1 0 0 0 0
Date

>
			 5 2 0 0 0 0 0 1 0 0 0 0
<[>6/15/95]

>
			 5 3 0 0 0 0 0 1 0 0 0 0
06/15/95

>
			 6 1 0 0 0 0 0 1 0 0 0 0
Time-date

>
			 6 2 0 0 0 0 0 1 0 0 0 0
<[>6/15 5:30 PM]

>
			 6 3 0 0 0 0 0 1 0 0 0 0
06/15/95 05:30:00 PM

>
			 7 1 0 0 0 0 0 1 0 0 0 0
Time-date

>
			 7 2 0 0 0 0 0 1 0 0 0 0
<[>5:30 PM 6/15]

>
			 7 3 0 0 0 0 0 1 0 0 0 0
06/15/95 05:30:00 PM

>
			 8 1 0 0 0 0 4096 1 0 0 0 0
Difference

>
			 8 2 0 0 0 0 4096 1 0 0 0 0
<[>5:30 PM]-<[>5:30]

>
			 8 3 0 0 0 0 4096 1 0 0 0 0
43200 

>
		[e]
	[tble]
[frm]
	11
	1572932
	960
	960
	7743
	3833
	0
	3
	1
	1 0 0 0 0 0 0
	0
	16777215
	23
	6
	0
	256 36
	[frmlay]
		3293
		6783
		3
		0
		0
		3
		960
		0
		0
		2
		0
		12
		0
		0
		1
		1620
		10980
		0
	[tbl]
		 6 2 0 86 4574 86 1 43 43
		[h]
			 0 210 86 6 0 2 0
			 1 400 86 6 0 2 0
			 2 600 86 6 0 1 0
			 3 800 86 6 0 1 0
			 4 400 86 6 0 1 0
			 5 200 86 6 0 2 0
		[e]
		[w]
			 0 2340 0 6 0
			 1 4400 0 6 0
		[e]
		[data]
			 0 0 24 0 0 0 256 1 0 0 0 0
@Table col hd@<+B>@Function

>
			 0 1 24 0 0 0 256 1 0 0 0 0
@Table col hd@<+B>Side</m>effect

>
			 1 0 0 0 0 0 512 1 0 0 0 0
@@V4Command<**>@Command

>
			 1 1 0 0 0 0 512 1 0 0 0 0
A Notes command, such as opening a database, is performed.

>
			 2 0 0 0 0 0 0 1 0 0 0 0
@@DbColumn,<**>@DbCommand<**>@DbLookup

>
			 2 1 0 0 0 0 0 1 0 0 0 0
Another view or database is accessed, and data is retrieved.

>
			 3 0 0 0 0 0 0 1 0 0 0 0
@@DDEInitiate<**>@DDEExecute<**>@DDEPoke<**>@DDETerminate

>
			 3 1 0 0 0 0 0 1 0 0 0 0
A DDE conversation is initiated (or terminated), or a DDE statement is executed.

>
			 4 0 0 0 0 0 0 1 0 0 0 0
@@MailSend

>
			 4 1 0 0 0 0 0 1 0 0 0 0
A Notes mail memo is created and routed to another user or database.

>
			 5 0 0 0 0 0 4096 1 0 0 0 0
@@Prompt

>
			 5 1 0 0 0 0 4096 1 0 0 0 0
A dialog box is displayed; data may be returned.

>
		[e]
	[tble]
[lay]
	Standard
	3079
	[rght]
		12960
		10166
		1
		960
		1200
		3
		960
		720
		2
		1
		0
		1
		0
		2
		1
		960
		9446
		5
		1
		720
		1
		1440
		1
		2880
		1
		4320
		1
		5760
	[lft]
		12960
		10166
		1
		720
		1200
		3
		960
		960
		2
		1
		0
		1
		0
		2
		1
		720
		9206
		5
		1
		720
		1
		1440
		1
		2880
		1
		4320
		1
		5760
	[hlft]
	[lyfrm]
		1
		3008
		0
		0
		10166
		960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		1
	[frmlay]
		960
		10166
		1
		720
		180
		3
		0
		960
		0
		1
		0
		1
		1
		0
		1
		720
		9206
		0
	[txt]
>
	[hrght]
	[lyfrm]
		1
		11200
		0
		0
		10166
		960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		2
	[frmlay]
		960
		10166
		1
		960
		180
		3
		0
		720
		0
		1
		0
		1
		1
		0
		1
		960
		9446
		0
	[txt]
>
	[flft]
	[lyfrm]
		1
		5056
		0
		11760
		10166
		12960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		3
	[frmlay]
		12960
		10166
		1
		720
		480
		3
		11940
		960
		0
		1
		0
		1
		1
		0
		1
		720
		9206
		0
	[txt]
>
	[frght]
	[lyfrm]
		1
		13248
		0
		11760
		10166
		12960
		0
		1
		3
		1 0 0 0 0 0 0
		0
		0
		4
	[frmlay]
		12960
		10166
		1
		960
		480
		3
		11940
		720
		0
		1
		0
		1
		1
		0
		1
		960
		9446
		0
	[txt]
@1st pg foot@<:R1,1,3,8486,>Lotus Confidential	Formulas: Understanding the Notes Formula Language 
<:P19999,0,5->

>
[elay]
[l1]
	0
[pg]
	18
	27 203 24 32 0 0 0 194 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	55 167 57 32 0 0 0 194 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	71 0 55 512 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	103 37 34 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	130 0 20 96 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	152 102 30 0 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	181 0 21 64 0 0 0 200 4 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	209 0 5 0 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 1 0 0
	224 0 5 0 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 6 0 0
	240 0 17 32 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	270 0 25 32 0 1 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	279 0 5 0 0 0 0 194 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 4 0 0
	285 0 27 64 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	317 0 5 0 0 0 0 194 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 1 0 0
	332 499 92 32 0 0 0 194 546 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	350 5 5 96 0 0 0 194 2 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 6 0 0
	379 0 52 0 0 0 0 194 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
	389 0 0 1025 0 0 0 200 65535 Standard	65535 0 0	0 0 0 0 0 0 0 65535 0 0 65535 1 0 0 0 0
[edoc]
@Ahead@<:#240,8486><:f280,,><+!>5. Formulas: Understanding the Notes Formula Language<-!><:f>

<:#200,8486>

<:f,,>The Note<:f><:f,,>s <:X8,-32768;Index "Formula language" #>formula languag<:f>e<:X8,-32768;Index "Notes formula language" "" "See Formula language"><:f,,> provides syntax<:f><:f,,> and @f<:f><:f,,>unctions for evaluating constants and variables, and f
or performing simple logic.<:h<*&>
@Left pg foot@<:R1,1,3,8486,><:P19999,0,5-> Programmer's Guide	Lotus Confidential

>
<:h<**>
@Right pg foot@<:R1,1,3,8486,>Lotus Strictly Private	Formulas: Understanding the Notes Formula Language 
<:P19999,0,5->

>
 Variables can be fields in Notes documents or temporary variables (also called temporary fields) used only for 
<:f><:f,,>the immediate formula.<:f>

<:#600,8486>If you have used macro, command, or programming languages, you can quickly familiarize yourself with the rules of the Notes formula language in this chapter. If you have not used programming languages, you should take more time.

@Ahead@<:#240,8486><:f,,>Ways to enter formulas<:f>

<:#400,8486><:f,,>Screens related to formulas contain a window in which to write the formula. Screens related to formulas, scripts, and simple actions contain a programmer's pane at the bottom<:f><:f,,>.

@bullet@<:#200,8486><+)>Using the formula window<-)><+*>H_USING_THE_FORMULA_WINDOW<-*>

@bullet@<:#200,8486><+)>Using the programmer's<-)><+)> pane<-)><+*>H_USING_THE_PROGRAMMER'S_PANE_TO_ENTER_FORMULAS<-*>

@Bhead title@<:S+194><:#194,8486><:f,,>Using the f<:f><:f,,>ormula w<:f><:f,,>indow<:f>

<:S+194><:#194,8486><:X8,-32768;Index "Formula language" # "window">Formula windows occur in screens related to formulas but not scripts.

@Numbered list@<:S+194><:#194,8486>Display a screen that contains a formula window.

@Numbered list@<:S+194><:#194,8486>If an @ button appears alongside the window, ensure that it is selected.

@Numbered list@<:S+194><:#194,8486>(Optional) Where allowed, Click Zoom In or Formula Window to display a larger formula window.

@Numbered list@<:S+194><:#388,8486>Enter your formula in the formula window. Additional buttons allow you to select @functions, @commands, and fields.

@Numbered list@<:S+194><:#388,8486>If a green checkmark appears alongside the window, click it. You can click the red X to nullify your edits.

@Numbered list@<:S+194><:#194,8486>If you are in the larger window, click OK or Done.

@Numbered list@<:S+194><:#194,8486>If you receive syntax error messages, edit the formula until the errors are corrected.

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

@See also btn@<:S+194><:#194,8486><+)>{bmc 1details.bmp}<-)><+)>See details<-)><+*>H_DETAILS_USING_THE_FORMULA_WINDOW<-*>

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

@Chead title@<:#200,8486><:f,,>Details: using the formula window

<:#400,8486>Depending on the type of formula and window, certain buttons aid you in composing the formula. You do not have to use the buttons--you can manually type the @function element.

@Indnt bullet@<:S+194><:#582,8486>Add @Func--Displays a list of all @functions and keywords. You can select and paste them into your formula. A pasted @function consists of only the name and empty parentheses. You must type in the parameters.<:X8,-32768;Index "@Functions" # "list of during editing">

@Indnt bullet@<:S+194><:#388,8486>Add Field--Displays a list of all fields in the database. You can select and paste them into your formula.<:X8,-32768;Index "Fields" # "list of during editing">

@Indnt bullet@<:S+194><:#194,8486>Fields & Functions or Fields/Functions--Displays both fields and @functions as described above.

@Indnt bullet@<:S+194><:#582,8486>Add Command--Displays a list of all @commands. You can select and paste them into your formula. A pasted @command consists of only "@Command" and the @command keyword in parentheses. You must type the remaining parameters.<:X8,-32768;Index "@Commands" # "list of during editing">

<:S+194><:#582,8486>If the @command button does not appear and the other buttons do, @commands are not permitted in that type of formula. You will not see a button for fields in SmartIcons formulas because fields cannot be addressed at this scope.

<:S+194><:#388,8486>Help for a particular @function or @command is available through these buttons. Select the @function or @command and press F1.<:X8,-32768;Index "Help" # "@functions and @commands">

@Chead title@<:S+194><:#194,8486>Examples: <:f,,>using the formula window<:f>

@Dhead@<:S+194><:#194,8486>Example 1

<:S+194><:#388,8486>This example shows the screen for a SmartIcons formula. Select Formula Window to get a larger window.

<:S+194><:#194,8486><+"><+!>yyneed screen shot<-!><-">

@Dhead@<:S+194><:#194,8486>Example 2

<:S+194><:#582,8486>This example shows the screen for designing a view. At the top of the screen is a window for the selection formula. The @ button must be selected to enter the formula. After the formula is entered, click the green checkmark.

<:S+194><:#194,8486><+"><+!>yyneed screen shot<-!><-">

@Dhead@<:S+194><:#194,8486>Example 3

<:S+194><:#388,8486>This example shows the screen for entering a window title for a view. Click Zoom In to enlarge the window.

<:S+194><:#194,8486><+"><+!>yyneed screen shot<-!><-">

@Bhead title@<:S+194><:#194,8486>Using the programmer's pane

<:S+194><:#388,8486><:X8,-32768;Index "Formula language" # "programmer's pane"><:X8,-32768;Index "Programmer's pane" #>The programmer's pane occurs at the bottom of the screen where a simple action, formula, or script can apply.

@Numbered list@<:S+194><:#194,8486>Display a screen that contains a programmer's pane.

@Numbered list@<:S+194><:#194,8486>Click the Formula button.

@Numbered list@<:S+194><:#388,8486>Ensure that the Object box specifies the correct object. The object can be an action, a button, a hotspot, or a field.

@Numbered list@<:S+194><:#388,8486>For fields, ensure that the Event box specifies the correct event. The event can be Default Value, Input Translation, or Input Validation.

@Numbered list@<:S+194><:#388,8486>Drag the horizontal bar at the top of the pane up or down to increase or decrease the size of the pane.

@Numbered list@<:S+194><:#388,8486>Enter the formula in the window. Additional buttons allow you to select @functions, @commands, and fields.

@Numbered list@<:S+194><:#388,8486>Click the green checkmark that appears alongside the window. You can click the red X to nullify your edits.

@Numbered list@<:S+194><:#194,8486>If you receive syntax error messages, edit the formula until the errors are corrected.

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

@See also btn@<:S+194><:#194,8486><+)>{bmc 1details.bmp}<-)><+)>See details<-)><+*>H_DETAILS_USING_THE_PROGRAMMERS_PANE<-*>

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

@Chead title@<:#200,8486><:f,,>Details: using the programmer's pane<:f>

<:#400,8486>The following buttons aid you in composing the formula. You do not have to use the buttons--you can manually type the @function element.

@Indnt bullet@<:S+194><:#582,8486>Fields & Functions or Fields/Functions--Displays a list of all fields, @functions, and keywords. You can select and paste them into your formula. A pasted @function consists only of the name and empty parentheses. You must type in the parameters.<:X8,-32768;Index "@Functions" # "list of during editing">
<:X8,-32768;Index "Fields" # "list of during editing">

@Indnt bullet@<:S+194><:#582,8486>@Commands--Displays a list of all @commands. You can select and paste one into your formula. A pasted @command consists of only "@Command" and the @command keyword in parentheses. You must type the remaining parameters.<:X8,-32768;Index "@Commands" # "list of during editing">

<:S+194><:#388,8486>Help for a particular @function or @command is available through these buttons. Select the @function or @command and press F1.<:X8,-32768;Index "Help" # "@functions and @commands">

<:S+194><:#388,8486>The column formula has the appearance of a programmer's pane but lacks an Object box. Your formula applies to the column that is currently selected.

@Chead title@<:S+194><:#194,8486>Examples: <:f,,>using the <:f><:f,,>programmer's pane<:f>

@Dhead@<:S+194><:#194,8486>Example 1

<:S+194><:#194,8486>This example shows the screen for designing an agent ...

<:S+194><:#194,8486><+"><+!>yyneed screen shot<-!><-">

@Dhead@<:S+194><:#194,8486>Example 2

<:S+194><:#194,8486>This example shows the screen for designing a form with a button formula selected...

<:S+194><+"><+!>yyneed screen shot<-!><-">

@Dhead@<:S+194><:#194,8486>Example 3

<:S+194><:#194,8486>This example shows the screen for designing a form with the default formula for a field selected ...

<:S+194><+"><+!>yyneed screen shot<-!><-">

@Ahead@<:#240,8486><:f,,>Ways to use<:f><:f,,> the s<:f><:f,,>yntax r<:f><:f,,>ules

<:#200,8486><:X8,-32768;Index "Formula language" # "syntax"><:X8,-32768;Index "Syntax" # "formula language">You understand the Notes formula language through its:

@bullet@<:#200,8486><+)>Lexical elements<-)><+*>H_LEXICAL_ELEMENTS<-*>

@bullet@<+)>General syntax rules<-)><+*>H_GENERAL_SYNTAX_RULES<-*><:p<* >>

@Bhead title@<:#220,8486>Lexical elements

<:#200,8486><:X8,-32768;Index "Formula language" # "lexical elements"><:X8,-32768;Index "lexical elements" # "Formula language">A Notes formula consists of one or more statements, each consisting of any of the following:

@Bullet@<:#200,8486><+)>Variables<-)><+*>H_WAYS_TO_USE_VARIABLES<-*>

@Bullet@<:#200,8486><+)>Constants<-)><+*>H_WAYS_TO_USE_CONSTANTS<-*>

@Bullet@<:#200,8486><+)>Operators<-)><+*>H_WAYS_TO_USE_OPERATORS<-*>

@Bullet@<:#200,8486><+)>@Functions<-)><+*>H_WAYS_TO_USE_FUNCTIONS<-*>

@Bullet@<:#200,8486><+)>Keywords<-)><+*>H_USING_KEYWORDS<-*>

@See also prnt@See the applicable sections later in this chapter for descriptions of the statement components.

<:#400,8486>A value is a variable, a constant, the result of an @function, or the result of an expression formed by combining any of the foregoing elements with operators. 

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

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

@Chead title@<:R><:#200,8486><:f,,>Examples: lexical elements

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

<:#400,8486>D is a variable, := is an operator, and @Created is an @function without arguments. This formula assigns the creation date of a document to D.

@Mono@<:#200,8486>D := @Created

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

<:#400,8486>@@Trim is an @Function with an argument. The argument, Subject, is a variable. This formula removes extraneous spaces from subject.

@Mono@<:#200,8486>@Trim(Subject)

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

<:#400,8486>@@Prompt is an @Function with three arguments. The first argument, <[>OK], is a keyword; the second and third arguments are text constants. This formula displays a dialog box.

@Mono@<:#200,8486>@Prompt(<[>OK]; "Update Complete"; "Your update has been posted")

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

<:#400,8486>SELECT is a keyword and @All is an @function without arguments. This formula selects all documents for an operation, for example, for inclusion in a view.

@Mono@<:#200,8486>SELECT @All

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

<:#400,8486>LastName is a variable, + is an operator, ", " is a constant, and FirstName is a variable.This formula concatenates LastName, a comma followed by a space, and FirstName.

@Mono@<:#200,8486>LastName + ", " + FirstName

@Bhead title@<:S+194><:#194,8486><:f,,>General s<:f><:f,,>yntax r<:f><:f,,>ules

<:S+194><:#194,8486><:f,,><:X8,-32768;Index "Syntax" # "general rules">A Notes formula must follow<:f><:f,,> these general syntax rules.

@Chead@<:S+194><:#194,8486><:f,,>Statement s<:f><:f,,>eparators

<:S+194><:#194,8486><:f,,><:X8,-32768;Index "Statement separators" # "formula language">Separate m<:f><:f,,>ultiple statements 
<:f><:f,,>with <:f><:f,,>semicolons.<:f>

@Mono@<:#400,8486>FIELD RegionalManager := AreaManager;<**>FIELD AreaManager := @DeleteField

@Chead@<:S+194><:#194,8486><:f,BArial,>Spaces

<:S+194><:#582,8486><:X8,-32768;Index "Spaces" # "formula language"><:f,,>You can <:f><:f,,>place 
<:f><:f,,>any number of spaces, including none, between operators, punctuation, and values<:f><:f,,>.<:f> However, keywords must be delineated by at least one space, and spaces within text constants are significant.

<:S+194><:#194,8486>For example, the following statements are equivalent.

@Mono@<:#400,8486>LastName + ", " + FirstName;<**>LastName+", "+FirstName

<:S+194><:#194,8486>In the following statement, at least one space must follow the keyword SELECT.

@Mono@<:S+194><:#194,8486>SELECT @All

@Chead@<:S+194><:#194,8486>Case

<:S+194><:X8,-32768;Index "Case" # "formula language">Case is not significant except within text constants. By convention, keywords such as FIELD are uppercase, and @function and @command names such as ProperCase are mixed uppercase and lowercase. You need not foll
ow these conventions when typing, but Notes changes the case to conform to the conventions when saving a formula.

@Chead@<:S+194><:#194,8486>Operators and values

<:S+194><:#194,8486><:X8,-32768;Index "Operators and values" # "formula language">Two values must be separated by at least one operator.

@Ahead@<:#240,8486>Ways to use variables

<:#200,8486><:X8,-32768;Index "Formula language" # "variables"><:X8,-32768;Index "Variables" # "formula language"><:f>Variables are of two types:

@Bullet@<+)>Fields<-)><+*>H_FIELDS<-*>

@Bullet@<:#200,8486><+)>Temporary variables<-)><+*>H_TEMPORARY_VARIABLES<-*>

@See also btn@
@Crossref@<+)>Fields in AppDevGuide<-)><+*>H_FIELDS_IN_APPDEVGUIDE<-*>

@Bhead title@<:#220,8486>Fields

<:#400,8486><:X8,-32768;Index "Formula language" # "fields"><:X8,-32768;Index "Fields" # "formula language"><:f>A formula has access to the fields in the document being processed. The name and type of each field is as specified in the database design.

@Chead@<:#200,8486>Data types

<:#600,8486><:X8,-32768;Index "Data type" # "formula language">Data types must be correct for the operation or @function being performed. For example, if TotalValue is a number field, you cannot display it directly with @Prompt because @Prompt requires a text argument.
 You must first convert the argument with @Text:

@Mono@<:#200,8486>@Prompt(<[>OK]; "Value of MyNumber"; @Text(TotalValue));

@Chead@<:#200,8486>Rich text fields

<:#800,8486><:X8,-32768;Index "Rich text field" # "formula language">Rich text fields cannot be evaluated for content. For example, if BodyText is a rich text field, you cannot display its contents with @Prompt, and you cannot convert it to plain text by specifying @Te
xt(BodyText). However, you can access the attributes of the field. The following formula tests for the availability of a rich text field.

@Mono@<:#400,8486>@Prompt(<[>OK]; "Is BodyText Available"; @If(@IsAvailable(BodyText); "Yes"; "No"))

@Chead@<:#200,8486>Lists

<:#600,8486><:X8,-32768;Index "List" # "formula language">Lists are fields that contain multiple values. Certain @functions and operators deal specifically with lists. For example, if Locations is a field that allows multiple values, the following statement returns the
 number of values in the list:

@Mono@<:#200,8486>@Elements(Locations)

@Chead@<:#200,8486>Field values

<:X8,-32768;Index "Field value" # "formula language">The value of a field is as specified in the document when a formula starts. The formula can modify the value of a field unless prohibited by access control. You must use the 
<+)>FIELD keyword<-)><+*>H_FIELD_KEYWORD<-*> to modify a field--otherwise, the variable is treated as a temporary variable. The FIELD keyword can also be used to create a new field in the current document. The following formula writes a value to the text fi
eld Subject.

@Mono@<:#200,8486>FIELD Subject := "No Subject"

@Chead@<:#200,8486>Null fields

<:#600,8486><:X8,-32768;Index "Null field" # "formula language">A null field is equivalent to the text constant "" (empty quotation marks). The following example tests the field named Subject in the current document. If the value of Subject is null, it is reset to "No 
Subject." Otherwise, its value does not change.

@Mono@<:#200,8486>FIELD Subject := @If(Subject=""; "No Subject"; Subject)

Since "" is a text constant, you should avoid its use in non-text fields. In particular, editable non-text fields should use a default formula to ensure that the field contains a value of the correct type.

@Chead@<:#200,8486><:f,BHelvetica,>Deleting f<:f><:f,BHelvetica,>ields

<:#200,8486><:X8,-32768;Index "Delete field" # "formula language"><:f,BHelvetica,>Use @DeleteField to delete a field from a document.

@Mono@<:#200,8486>FIELD BodyText := @DeleteField

@Chead@<:#200,8486>Form fields

<:X8,-32768;Index "Form fields" # "formula language">If the form used to create a document is not stored in the document, a field named Form is available and contains the name of the form. If the form is stored in the document, fields named $TITLE, $Info, $
WindowTitle (if the design specifies a window title), and $Body are available. $TITLE contains the name of the form. The following example, which works in a button or hotspot, displays the name of the form used to create the current document.

@Mono@<:#200,8486>@Prompt(<[>OK]; "Form"; @If(@IsAvailable(Form); Form; $TITLE))

Choose File - Document Properties, and select Fields to see what fields are in a document.

<:#800,8486><:X8,-32768;Index "$TITLE field" #><:f><:X8,-32768;Index "$Info field" #><:f><:X8,-32768;Index "$WindowTitle field" #><:f><:X8,-32768;Index "$Body field" #><:f><:f,,>You can remove a form stored in a document by deleting $TITLE, $Info, $WindowTitle, and $Bo
dy. You must then create a Form field and place in it the name of a form in the database. The following formula, which works as an agent, removes the form Travel Request stored in the current document and replaces it with the database form Travel Arrangemen
ts.

@Mono@<:#1200,8486>SELECT $TITLE="Travel Request";<**>FIELD $TITLE := @DeleteField;<**>FIELD $Info := @DeleteField;<**>FIELD $WindowTitle := @DeleteField;<**>FIELD $Body := @DeleteField;<**>FIELD Form := "Travel Arrangements"

@Bhead title@<:#220,8486>Temporary variables

<:#400,8486><:X8,-32768;Index "Formula language" # "temporary variables"><:X8,-32768;Index "Temporary variables" # "formula language"><:f><:f,,>A temporary variable<:f><:f,,> exists only within a formula. Its scope is<:f><:f,,> that formula<:f><:f,,> and it has no attr
ibutes other than the ones assigned to it within the formula. 

<:#200,8486>The syntax for creating a temporary variable is:

@1st lev para@<:#200,8486><:f180, Helvetica,0,0,0><+">v<:f><:f180, Helvetica,0,0,0>ariable<:f><:f180, Helvetica,0,0,0>Name<-"> := 
<+">value<-">

<:#600,8486><:X8,-32768;Index "Boolean data type" #>The variable takes the type of the value on the righthand side of the equation. This value can be any of the field types or boolean. Boolean data types are returned by certain @functions and have a value of true (eval
uates to a text value of 1) or false (evaluates to a text value of 0).

<:#400,8486><:X8,-32768;Index "FIELD keyword" #>Using a variable name on the lefthand side of an equation results in a temporary variable unless preceded by the keyword FIELD.

<:f,,>The following example makes extensive user of temporary variables to place the name of the current month in a field named MonthName. The steps are: place the current date in the temporary variable date<:f><:f,,>; extract from date<:f><:f,,> and conver
t<:f><:f,,> to text<:f><:f,,> month,<:f><:f,,> the number of the month<:f><:f,,>; create a text list nMonths with the values 1 through 12; c<:f>reate a text list months with the values January through December; and replace the number value of the current mo
nth with its name.

@Mono@<:#1400,8486><**>date := @Created;<**>month := @Text(@Month(date));<**>nMonths := "1" : "2" : "3" : "4" : "5" : "6" : "7" : "8" : "9" : "10" : "11" : "12";<**>months := "January" : "February" : "March" : "April" : "May" : "June" : "July" : "August" : "September" : "Octo
ber" : "November" : "December";<**>FIELD MonthName := @Replace(month; nMonths; months)

@Ahead@<:#240,8486>Ways to use constants

<:X8,-32768;Index "Formula language" # "constants"><:X8,-32768;Index "Constants" # "formula language"><:f><:f,,>Notes formulas use three types of constant.<:f>

@Bullet@<:#200,8486><:f,,><+)>Text constants<-)><:f><+*>H_TEXT_CONSTANTS<-*>

@Bullet@<:#200,8486><:f,,><+)>Numeric constants<-)><:f><+*>H_NUMERIC_CONSTANTS<-*>

@Bullet@<:#200,8486><:f,,><+)>Time-date constants<-)><:f><+*>H_TIMEDATE_CONSTANTS<-*>

<:#200,8486><:f,,>Lists can also be specified in a constant format.

@Bhead title@<:#220,8486>Text constants 

<:#400,8486><:X8,-32768;Index "Formula language" # "text constants"><:X8,-32768;Index "Text constants" # "formula language"><:f><:f,,><:X8,-32768;Index "Quotation marks" #>Specify a text constant by enclosing characters, including spaces, numbers, and special character
s, in quotation marks.

<:#200,8486><:f,,>Do not enter<:f><:f,,> variable<:f><:f,,> names in quotation marks<:f><:f,,>, or they will be treated as text<:f><:f,,>.<:f>

<:#400,8486><:f180, Helvetica,0,0,0>Enter numbers in quotation marks when you want them treated as text and without quotation marks when you want them treated numerically.<:f>

<:#200,8486>To include multiple characters, for example, spaces, use @Repeat<:f,2Palatino,>.<:f>

<:f,,>The backslash<:f><:f,,> ( \ )<:f><:f,,> serves as<:f><:f,,> an escape character in a 
<:f><:f,,>text constant. To embed<:f><:f,,> quotation marks in<:f><:f,,> a text constant<:f><:f,,>, precede each embedded quotation mark with<:f><:f,,> a backslash<:f><:f,,>.<:f> 
<-!><:f,,>To embed a backslash in a text constant, type two backslashes.<:f>

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

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

@Chead title@<:R><:#200,8486>Examples: text constants

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

<:#200,8486>If you enter the following as a field default value formula, <:f,,>the word Cost appears as the value in the field.<:f>

@Mono@<:#200,8486>"Cost"

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

The formula is:

@Mono@<:#200,8486>"From: " + Author + " (" + @Text(@Created) + ")"

<:#200,8486><:f,,>The result is:<:f><:f,,> 

@Mono@From: Mary Tsen (6/15/95)

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

<:#200,8486>The formula is:

@Mono@<:#200,8486>"From:" + @Repeat(" "; 8) + Author + " (" + @Text(@Created) + ")"

<:#200,8486><-!><:f,,>The result is:

@Mono@<:#200,8486><:f,,>From:        Mary Tsen (3<:f><:f,,>/15/95<:f><:f,,>)

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

<:#200,8486><:X8,-32768;Index "Backslash" #><:X8,-32768;Index "Escape character" #><:f,,>T<*(>he formula is:

@Mono@<:#200,8486>"Type \"Yes\" or \"No\""

<:#200,8486><:f,,>The result is:<:f>

@Mono@<:#200,8486>Type "Yes" or "No"

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

<:#200,8486><:f,,> The formula is:<:f>

@Mono@<:#200,8486>"Type \\Yes\\ or \\No\\"

<:#200,8486><:f,,>The result is:<:f>

@Mono@<:#200,8486>Type \Yes\ or \No\

@Bhead title@<:#220,8486>Numeric constants

<:#400,8486><:X8,-32768;Index "Formula language" # "numeric constants"><:X8,-32768;Index "Numeric constants" # "formula language"><:f><:f,,>A numeric constant consists of numeric and special characters,<:f><:f,,> with no intervening spaces, that conform to the followin
g rules:<:f>

@Bullet@<:#200,8486><:f,,><:X8,-32768;Index "Integer" #>Integer--<:f><:f,,>The characters 0 - 9 without intervening spaces comprise a positive integer.

@Bullet@<:#200,8486><:X8,-32768;Index "Decimal" #><:f,,>Decimal<:f><:f,,>--A decimal point may be placed before, after, or within the numeric characters.<:f>

@Bullet@<:#200,8486><:X8,-32768;Index "Plus sign" #><:X8,-32768;Index "Minus sign" #><:f,,>Sign--The first character of a number may be<:f><:f,,> a plus or minus<:f><:f,,> sign.<:f>

@Bullet@<:#400,8486><:X8,-32768;Index "Scientific notation" #><:f,,>Scientific notation--A number may be suffixed by the letter E, an optional plus (default) or minus sign, and an integer.

<:#200,8486><:X8,-32768;Index "Negative number" #>The table below shows the acceptable formats for entering numbers. 

@Table Text@<:t1>

@Bhead title@<:#220,8486>Time</m>date constants

<:#200,8486><:X8,-32768;Index "Formula language" # "time-date constants"><:X8,-32768;Index "Time-date constants" # "formula language"><:f><:f,,>A time-date<:f><:f,,> constant consists of a time and/or a date enclosed in square brackets<:f><:f,,> formatted as follows<:f>
<:f,,>:<:f>

@Bullet@<:#400,8486><:X8,-32768;Index "Time format" #><:X8,-32768;Index "Hour format" #><:f,,>12-hour time--A time in the format <[>hh:mm:ss] (the seconds are optional and default to 00) followed by the letters AM or PM.<:f><:f,,> The hours can range from 00 to 12.<:f>

@Bullet@<:#400,8486><:f,,>24<:f><:f,,>-hour time--A time in the format <[>hh:mm:ss] (the seconds are optional and default to 00)<:f><:f,,>.<:f><:f,,> The hours can range from 00 to 23<:f><:f,,>.<:f>

@Bullet@<:#800,8486><:X8,-32768;Index "Date format" #><:f,,>Date<:f><:f,,>--A date<:f><:f,,> in the format <[>mm/dd/yy]<:f><:f,,>. The year is optional and defaults to the current year.<:f><:f,,> 
<:f>The validity of a date format depends on the date separator that users choose in their operating system control panel. The default separator for Windows, UNIX, and Macintosh is a slash ( / ). The default separator for OS/2 is a hyphen ( 
</m> ).

@Bullet@<:#200,8486><:f,,>Time and date<:f><:f,,>--A time and a date in the format <[>time date] or <[>date time].<:f>

<:#400,8486>If time-date values are subtracted, the result is an integer that represents the difference between the times in seconds.

The table below shows the acceptable formats.

<:t5>

@Ahead@<:#240,8486>Ways to use operators

<:#200,8486><:X8,-32768;Index "Formula language" # "operators"><:X8,-32768;Index "Operators" # "formula language"><:f>Operators assign values, modify values, and combine existing values into new values.

@Bullet@<:#200,8486><+)>Operator overview and precedence<-)><+*>H_OPERATOR_OVERVIEW_ AND_PRECEDENCE<-*>

@Bullet@<:#200,8486><+)>Order of evaluation<-)><+*>H_ORDER_OF_EVALUATION<-*>

@Bullet@<:#200,8486><+)>Assignment operator<-)><+*>H_ASSIGNMENT_OPERATOR<-*>

@Bullet@<:#200,8486><+)>List operator<-)><+*>H_LIST_OPERATOR<-*>

@Bullet@<:#200,8486><+)>Unary operators<-)><+*>H_UNARY_OPERATORS<-*>

@Bullet@<:#200,8486><+)>Arithmetic operators<-)><+*>H_ARITHMETIC_OPERATORS<-*>

@Bullet@<:#200,8486><+)>Text operator<-)><+*>H_TEXT_OPERATOR<-*>

@Bullet@<:#200,8486><+)>Comparison operators<-)><+*>H_COMPARISON_OPERATORS<-*>

@Bullet@<:#200,8486><+)>Logical operators<-)><+*>H_LOGICAL_OPERATORS<-*>

@Bullet@<:#200,8486><+)>Operations on lists<-)><+*>H_OPERATIONS_ON_LISTS<-*>

@Bhead title@<:#220,8486>Operator overview and precedence

<:#400,8486><:X8,-32768;Index "Formula language" # "operator overview"><:X8,-32768;Index "Operator overview" # "formula language"><:f><:X8,-32768;Index "Formula language" # "precedence"><:X8,-32768;Index "Precedence" # "formula language"><:f><:f,,>The table below lists
 the operators and their<:f><:f,,> precedence, where 1 is the highest precedence<:f><:f,,>. The horizontal lines separate operators of different precedence.<:f>

@AmiTable@<:t2>

@Bhead title@<:S+194><:#194,8486>Order of evaluation

<:S+194><:#388,8486>The values inv<:f,,>olved in an operation must be of the same data type.<:f> 
<:X8,-32768;Index "Formula language" # "order of evaluation"><:X8,-32768;Index "Order of evaluation" # "formula language"><:f>Operations occur in the following order:

@Bullet@<:S+194><:#388,8486><:X8,-32768;Index "Parentheses" # "formula language">Parentheses--You can explicitly force the order of evaluation with parentheses. Operations within parentheses occur first. For example: 

@Indnt mono@<:S+194><:#194,8486>(5 - 3) * (6 - 4) = 4

@Bullet@<:S+194>Precedence--Operations not in parentheses occur in order of precedence starting with precedence 1. For example, m<:f,BHelvetica,>ultiplication has greater precedence than subtraction so 3 * 6 occurs first:<:f>

@Indnt mono@<:S+194><:#194,8486>5 - 3 * 6 - 4 = -17 

@Bullet@<:S+194><:#194,8486>Left to right--Operations of equal precedence occur left to right. For example:

@Indnt mono@<:R1,1,1,360,>8 / 4 * 2 = 4 

@Bhead title@<:S+194><:R>Assignment operator

<:S+194><:#388,8486><:X8,-32768;Index "Assignment operator" # "formula language">The assignment operator (:=) assigns a value on the righthand side to a variable on the lefthand side. The variable assumes the type of the value on the righthand side.

<:S+194>This example a<:f,BHelvetica,>ssigns the numeric value 1 to the temporary variable n<:f><:f,BHelvetica,>.<:f>

@Mono@<:#200,8486>n := 1

<:S+194>This example i<:f,BHelvetica,>ncrements the temporary variable n<:f><:f,BHelvetica,> by 1.<:f>

@Mono@<:#200,8486>n := n + 1

<:S+194>This example assigns the text value "London" to the temporary variable City1.

@Mono@<:#200,8486>city1 := "London"

<:S+194><:#582,8486>The variable on the lefthand side may be preceded by the keyword <+)>DEFAULT<-)><+*>H_DEFAULT_KEYWORD<-*>, 
<+)>ENVIRONMENT<-)><+*>H_ENVIRONMENT_KEYWORD<-*>, or <+)>FIELD<-)><+*>H_FIELD_KEYWORD<-*>. A variable not preceded by a keyword is a temporary variable.

@Bhead title@<:S+194>List operator

<:#400,8486><:X8,-32768;Index "List operator" # "formula language">The list operator (:) concatenates values into a list. The values must all be of the same type. This example is a three-member text list.

@Mono@<:#200,8486>"London" : "New York" : "Tokyo"

<:#200,8486>The values can be constants and variables, including other lists.

@Mono@<:#400,8486><+,>LNY<-,> := "London" : "New York";<+,><**>LNY<-,> : "Tokyo"

@Bhead title@<:S+194><:#194,8486><:f,,>Unary o<:f><:f,,>perators

<:S+194><:#388,8486><:X8,-32768;Index "Unary operators" # "formula language"><:X8,-32768;Index "Plus operator" # "formula language"><:X8,-32768;Index "Minus operator" # "formula language"><:f,,>The unary operators (+ and -) specify<:f><:f,,> the sign of a numeric value. An uns
igned<:f><:f,,> numeric value is positive. The following numeric values are equivalent:<:f>

@Mono@<:#200,8486>5

@Mono@<:#200,8486>+5

@Mono@<:#200,8486>-(-5)

@Bhead title@<:S+194><:#194,8486><:f,,>Arithmetic o<:f><:f,,>perators

<:S+194><:#388,8486><:X8,-32768;Index "Arithmetic operators" # "formula language"><:X8,-32768;Index "Multiplication operator" # "formula language"><:X8,-32768;Index "Division operator" # "formula language"><:X8,-32768;Index "Plus operator" # "formula language"><:X8,-32768;Index "Minus operator" # "formula language">
<:f,,>The arithmetic operators (*  /  +  -) combine two numeric values using multiplication, division, addition, and<:f><:f,,> subtraction. The following operations all result in the numeric value 16:

@Mono@<:#200,8486>4 * 4

@Mono@<:#200,8486>64 / 4

@Mono@<:#200,8486>12 + 4

@Mono@<:#200,8486>20 - 4

@Bhead title@<:S+194><:#194,8486><:f,,>Text o<:f><:f,,>perator

<:S+194><:#388,8486><:X8,-32768;Index "Text operator" # "formula language"><:f,,>The text concatenation operator (+) combines two text values. The following operation results in<:f><:f,,> the value of the variable CompanyName followed<:f><:f,,> by a comma, a space, and Inc.

@Mono@<:#200,8486>CompanyName + ", Inc."

@Bhead title@<:S+194><:#194,8486><:f,,>Comparison o<:f><:f,,>perators

<:S+194><:#388,8486><:X8,-32768;Index "Comparison operators" # "formula language"><:X8,-32768;Index "Equals operator" # "formula language"><:X8,-32768;Index "Not equals operator" # "formula language"><:X8,-32768;Index "Less than operator" # "formula language"><:X8,-32768;Index "Less than or equals operator" # "formula language">
<:X8,-32768;Index "Greater than operator" # "formula language"><:X8,-32768;Index "Greater than or equals operator" # "formula language"><:f,,>The comparison operators (=, <<<;>, !=, <;><<, <<, <;>, <<=, and <;>=) compare values of the same type and produce 
a logical result (<:f><:f,,>true or false). The following operations all result in a logical value of true:

@Mono@<:#200,8486>"London" = "Lon" + "don"

@Mono@<:#200,8486>"London" != "Tokyo"

@Mono@<:#200,8486>2 + 2 <;> 3

@Bhead title@<:S+194><:#194,8486><:f,,>Logical o<:f><:f,,>perators 

<:S+194><:X8,-32768;Index "Logical operators" # "formula language"><:X8,-32768;Index "Not operator" # "formula language"><:X8,-32768;Index "And operator" # "formula language"><:X8,-32768;Index "Or operator" # "formula language">The logical operators (!, &, and |) c
ombine logical values. The following operations all result in a value of true. The operations are shown twice, with and without parentheses. The parentheses clarify the order of evaluation but are unnecessary because the logical operations are lower in prec
edence than the surrounding comparison operations.

@Mono@<:R1,1,1,2880,><:#200,8486>4 = 2 + 2 & 5 = 3 + 2	(4 = 2 + 2) & (5 = 3 + 2)

@Mono@<:R1,1,1,2880,><:#200,8486>4 = 2 + 2 | 5 = 2 + 2	(4 = 2 + 2) | (5 = 2 + 2)

@Mono@<:R1,4,1,720,1,2880,1,4320,1,5760,><:#200,8486>! 5 = 2 + 2	! (5 = 2 + 2)

@Bhead title@<:R><:#220,8486>Operations on lists

<:S+194><:#194,8486><:X8,-32768;Index "Formula language" # "list operations"><:X8,-32768;Index "List operations" # "formula language"><:f><:f,,>Operations on lists are of two types:<:f>

@Bullet@<:S+194><:#1164,8486><:f,,>Pair-wise<:X8,-32768;Index "Pair-wise list operation" #>--<:f><:f,,>Pair</m>wise operators act on two lists in parallel</m>element fashion. The first element of list 1 pairs with<:f><:f,,> the first element of list 2, the second element of list 1 pair
s with<:f><:f,,> the second element of list 2, and so on<:f><:f,,>. 
<:f>If one list has fewer elements than the other, the last element in the shorter list is repeated for operations with the remaining elements of the longer list. If list 1 consists of 
</S>A</T>:</S>B</T>:</S>C</T> and list 2 consists of </S>1</T>:</S>2</T>, the operation is performed as though list 2 contained 
</S>1</T>:</S>2</T>:</S>2</T>.<:f,BArial,> For pair</m>wise equality tests, only one match is needed for the statement to return True, or 1.<:f>

@Bullet@<:S+194><:f,,>Permuted<:X8,-32768;Index "Permuted list operation" #><:f><:f,,>--<:f><:f,,>Permutation operators act on two lists, pairing<:f><:f,,> every possible combination of their values. 
<:f><:f,,>The<:f><-!> resulting list has an element for each pairing in the following order: list 1 element 1 paired with each element in list 2, list 1 element 2 paired with each element in list 2, and so on through the last element in list 1.

<:S+194><:#388,8486><-!>If an operation occurs on a list and a non-list value, the non-list value is paired with each element in the list.

<:S+194>The table below shows the pair</m>wise and permutation operators.

@AmiTable@<:S+194><:t3>

<:S+194><-!><:f,,>The table below shows<:f><:f,,> how<:f><:f,,> pair</m>wise and permutation operators differ<:f><:f,,>. 

@AmiTable@<:S+194><:t4>

@Ahead@<:S+194><:#194,8486><-!><-!><-!><:f,,>Ways to use<:f><:f,,> @f<:f><:f,,>unctions

<:X8,-32768;Index "Formula language" # "@functions"><:X8,-32768;Index "@Functions" #><:f><:f,,>Notes @functions are built</m>in formulas that perform specialized calculations and return a value. The following are the general rules for @functions<:f><:f,,>.<:f>

@Bullet@<:#200,8486><+)>Syntax<-)><+*>H_SYNTAX<-*>

@Bullet@<:#200,8486><+)>Return value<-)><+*>H_RETURN_VALUE<-*>

@Bullet@<:#200,8486><+)>Side-effects<-)><+*>H_SIDE_EFFECTS<-*>

@Bullet@<:#200,8486><+)>@Commands<-)><+*>H_COMMANDS<-*>

@Bullet@<:#200,8486><+)>Order of evaluation<-)><+*>H_ORDER_OF_EVALUATION<-*>

@See also prnt@<:#200,8486>See Chapters 7 and 8 for the individual @function and @command descriptions.

@Bhead title@<:#220,8486><:f,,>Syntax

<:S+194><:#194,8486><:X8,-32768;Index "@Functions" # "syntax"><:X8,-32768;Index "Syntax" # "@functions"><:f><:f,,>The general format of an @function is: 

@1st lev para@<:S+194><:#194,8486><:f180, Helvetica,0,0,0><+">@function-nam<-"><+">e<-">(<+">a<:f><:f180, Helvetica,0,0,0>rgument1<-"><+!>;<-!> 
<+">a<:f><:f180, Helvetica,0,0,0>rgument2<-"><+!>;<-!> ... <+">a<:f><:f180, Helvetica,0,0,0>rgument<-"><:f180, Helvetica,0,0,0><+">n<:f180, Helvetica,0,0,0><-">);<:f>

<:f,,>An @function consists of the name of the @function followed by 
<:f><:f,,>argument<:f><:f,,>s, if any<:f><:f,,>. The first character of the name of an @function is always @.<:f>

@Chead@<:#200,8486><:f,,>Parentheses

<:S+194><:#194,8486><:X8,-32768;Index "Parentheses" # "@functions"><:f>Enclose @function arguments in parentheses. 

@Mono@<:#200,8486>@Abs(</m>4)

<:f,,>Omit parentheses for @functions without argument<:f><:f,,>s.<:f>

@Mono@<:S+194><:#194,8486>@Created

@Chead@<:S+194><:f,,>Multiple argument<:f><:f,,>s

<:S+194><:X8,-32768;Index "Multiple parameters" # "@functions"><:f><:f,,>Separate multiple argument<:f><:f,,>s with a semicolon. 

@Mono@<:S+194><:#194,8486>@IsCategory("Yes"; "No")

@Mono@<:S+194><:#194,8486><-!>@Middle<+!>(<-!>Company; 4; 4<+!>)<-!>

@Chead@<:f,,>Keyword<:f><:f,,> <:f><:f,,>argument<:f><:f,,>s

<:S+194><:X8,-32768;Index "Keyword parameters" # "@functions"><:f><:f,,>Enclose<:f><:f,,> keyword<:f><:f,,> argument<:f><:f,,>s in squar<:f><:f,,>e brackets. 
<:f>@V4Command, @Command, @MailSend, @Name, and @Prompt use keyword parameters. 

@Mono@<:S+194><:#194,8486>@Prompt(<[>OK]; "Response"; Y)

@Mono@<:S+194><:#194,8486>@Name(<[>CN]; AUTHOR)

@Mono@<:S+194><:#194,8486>@V4Command(<[>EditClear])

@Chead@<:S+194><:#194,8486><:f,,>Argument<:f><:f,,> d<:f><:f,,>ata t<:f><:f,,>ypes

<:#600,8486><:X8,-32768;Index "Data types" # "@functions"><:f><:f,,>Specify the correct data type for each 
<:f><:f,,>@function argument<:f><:f,,> <:f>per the @function description. For example, the first argument to @Prompt must be a keyword. If the keyword is <[>OK], it must be followed by two arguments of type text.

@Mono@<:S+194><:#194,8486>@Prompt(<[>OK]; "The answer is ..."; @Text(N));

@Bhead title@<:S+194><:#194,8486>Return value

<:#400,8486><:X8,-32768;Index "@Functions" # "return value"><:X8,-32768;Index "Return value" # "@functions"><:f>An @function calculates a return value and replaces itself with the value. The use of the @function must be appropriate for its data type. For example, @Powe
r can compute the value of a numeric field:

@Mono@<:S+194><:#194,8486>@Power(2; Exp)

<:#200,8486>But must be wrapped in @Text to compute the value of a text field:

@Mono@<:S+194><:#194,8486>@Text(@Power(2; Exp))

@Bhead title@<:S+194><:#194,8486>Side</m>effects

<:#600,8486><:X8,-32768;Index "@Functions" # "side-effects"><:X8,-32768;Index "Side-effects" # "@functions"><:f><:f,,>A 
<:f>side</m>effect<-!><:f,,> is an action that occurs outside the immediate scope of the formula.<:f><:f,,> 
<:f>For example, @Prompt displays a dialog box in addition to returning a value. 
<:f,,>Make sure<:f><:f,,> that a side-effect occurs at the correct point of a formula's execution.

<:S+194><:#194,8486><:X8,-32768;Index "@Command" # "side-effect"><:X8,-32768;Index "@Prompt" # "side-effect"><:X8,-32768;Index "@DbColumn" # "side-effect"><:X8,-32768;Index "@DbCommand" # "side-effect"><:X8,-32768;Index "@DbLookup" # "side-effect"><:X8,-32768;Index "@DDEInitiate" # "side-effect">
<:X8,-32768;Index "@DDEExecute" # "side-effect"><:X8,-32768;Index "@DDEPoke" # "side-effect"><:X8,-32768;Index "@DDETerminate" # "side-effect"><:X8,-32768;Index "@MailSend" # "side-effect">The following @functions have side</m>effects:

<:S+194><:t6>

@Bhead title@<:#220,8486>@Commands

<:#600,8486><:X8,-32768;Index "@Functions" # "@commands"><:X8,-32768;Index "@Command" #><:f><:X8,-32768;Index "@V4Command" #>The @V4Command and @Command functions execute a Notes command. The first argument to @V4Command or @Command is a keyword argument that specifies
 the Notes command. Depending on the Notes command, other arguments may be required.

The difference between @V4Command and @Command is the order of evaluation<+*>.<-*>

<:#600,8486>Because of their large number and special status, these @functions comprise a separate category called @commands. Each @command is named after the first argument to @V4Command or @Command, which is a keyword argument.

Most @commands mimic a Notes menu command. For example:

@Mono@<:#200,8486>@V4Command(<[>AddDatabase]; "Legal1":"Trademrk.nsf")

@Mono@<:#200,8486>@V4Command(<[>AdminRegisterUser])

@Mono@<:#200,8486>@Command(<[>DesignForms])

@Mono@<:#200,8486>@Command(<[>EditDown]; "5")

You must be careful with @commands due to their <+)>side-effects<-)><+*>H_SIDE_EFFECTS<-*> and their 
<+)>order of evaluation<-)><+*>H_ORDER_OF_EVALUATION<-*>.

<:#600,8486>You can use @commands in formulas for SmartIcons, buttons, hotspots, and actions. See the individual @command descriptions for further restrictions. Using an @command in an agent formula may result in an infinite loop.

<:#400,8486><:X8,-32768;Index "Disable" # "@command">Setting the NoExternalApps environment variable<:X8,-32768;Index "NoExternalApps environment variable" #> to 1 disables any formula containing an @command. The user does not receive an error message--the formula simp
ly does not execute.

@Bhead title@<:#220,8486>Order of evaluation

<:S+194><:#776,8486><:X8,-32768;Index "@Functions" # "order of evaluation"><:X8,-32768;Index "Order of evaluation" # "@functions"><:f><:f,,>Notes evaluates formulas from top to bottom and left to right, completing each statement before proceeding to the next, except that @Comm
and and a few<:f><:f,,> @V4Command functions<:f><:f,,> are executed in order 
<+">after<-"> all other @functions complete execution. <:f><:f,,>The Notes formula language does not contain any branching or iteration constructs. It does contain several<:f><:f,,> @functions for control logic.

<:S+194>Except for @commands, the formula language operates on back-end Notes objects. For example, a field named in a formula refers to the field as it currently exists in a Notes document and the FIELD keyword modifies a field in a document. @Commands operate in 
the user interface; changes made there are not reflected in the back-end until a document is saved. You cannot intersperse back-end and user interface accesses of the same document and get correct results. Once you use @V4Command to access a document, conti
nue to use only the @V4Command<:f,,> to access the document until it is saved.

@Chead@<:S+194><:#194,8486><:f,,>Evaluation of @c<:f><:f,,>ommands

<:S+194><:#388,8486><:X8,-32768;Index "@Commands" # "order of evaluation"><:X8,-32768;Index "Order of evaluation" # "@commands"><:f><:f,,>Execution of an<:f><:f,,> @Command function occurs after all other @functions in the formula. If you write the following formula:

@Mono@<:S+194><:#582,8486><:f,,>@Command(<[>CommandName]; Argument<:f><:f,,>);<**>@If(Condition; TrueStatement; FalseStatement);<**>FIELD X := "Text"<:f>

<:S+194><:#194,8486><:f,,>The first statement is executed last.

<:S+194><:#388,8486><:f,,>Execution of an @V4Command function occurs in the order it appears with some exceptions. The exceptions execute in @Command order and are: <[>ToolsRunMacro]; 
<+"><+!>yy not complete<-"><-!>.

@Chead@<:S+194><:#194,8486><:f,,>@If f<:f><:f,,>unction

<:S+194><:#194,8486><:f,,><:X8,-32768;Index "@If" #>@If executes one statement or another depending on whether a logical value is true or false:

@Mono@<:S+194><:#194,8486>@If(LogicalValue; TrueStatement; FalseStatement)

@Chead@<:S+194><:#194,8486><:f,,>@Do f<:f><:f,,>unction

<:S+194><:#388,8486><:f,,><:X8,-32768;Index "@Do" #>@Do executes a number of statements in sequence and can be used as an execution path within an @If 
<:f><:f,,>function:<:f>

@Mono@<:S+194><:#194,8486>@If(LogicalValue; @Do(TrueStatement1; TrueStatement2); FalseStatement)

<:#400,8486><-!><:f>Any @Commands functions within an @Do function are executed in order after all other @functions, both within and without the @Do function, are executed.

@Chead@<:S+194><:#194,8486><:f,,>@Return f<:f><:f,,>unction

<:S+194><:#194,8486><:f,,>@Return<:X8,-32768;Index "@Return" #> stops execution of the formula:<:f>

@Mono@<:S+194><:#194,8486>@If(LogicalValue;  @Return; "")

@Ahead@<:S+194><:#194,8486><:f,,>Using<:f><:f,,> keywords

<:S+194><:#194,8486><:X8,-32768;Index "Formula language" # "keywords"><:X8,-32768;Index "Keywords" # "formulas"><:f><:f,,>The Notes formula 
<:f><:f,,>language includes a set of keywords that perform special functions<:f><:f,,>:<:f>

<:S+194><:f,,><:t0>

<:S+194>A keyword is always the first word in a statement. By convention, keywords are entered in uppercase. You can enter them in lowercase, but Notes converts them to uppercase when saving a formula.

@See also hlp@<:S+194><:#264,8486>

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

@Chead title@<:S+194><:#194,8486>Examples: using keywords

@Chead@<:S+194><:#194,8486>Example 1 (DEFAULT)

<:S+194><:#388,8486><:f,,>If the field KeyThought exists<:f><:f,,>, whatever value is in that field is used for the computed field. If the field KeyThought does not exist, the value of Topic<:f><:f,,> is used.<:f>

@Mono@<:S+194><:#388,8486>DEFAULT KeyThought := Topic;<**>KeyThought

<:S+194><:f,,>This<:f><:f,,> formula is equivalent<:f><:f,,>:<:f>

@Mono@<:S+194><:#194,8486>@If(@IsAvailable(KeyThought); KeyThought; Topic)

@Chead@<:S+194><:#194,8486>Example 2 (ENVIRONMENT)

<:S+194><:#194,8486>Converts a number to text and saves it as an environment variable.

@Mono@<:S+194><:#194,8486>ENVIRONMENT OrderNumber := @Text(NewOrderNumber)

@Chead@<:S+194><:#194,8486>Example 3 (FIELD)

<:S+194><:#194,8486>This formula adds </S>Inc.</T> to the value of the Company field.

@Mono@<:S+194><:#388,8486>@If(@Matches(@LowerCase(Company); "*, inc*"); @Return(""); "");<**>FIELD Company := Company + ", Inc."; 

@Chead@<:S+194><:#194,8486><:f,,>Example 4 (FIELD)

<:S+194><:#582,8486><:f,,>This formula<:f><:f,,> creates a new field called CompanyName 
<:f><:f,,>to hold the name of the company plus </S><:f><:f,,>Inc.</T><:f><:f,,> T<:f><:f,,>he field does not become visible unless you add it to the form design, but you can access it by naming it in formulas.<:f>

@Mono@<:S+194><:#194,8486>FIELD CompanyName := Company + ", Inc."; 

@Chead@<:S+194><:#194,8486><:f,,>Example 5 (FIELD)

<:S+194><:#194,8486><:f,,>This formula<:f><:f,,> deletes the field CompanyName.<:f>

@Mono@<:S+194><:#194,8486>FIELD CompanyName := @DeleteField; 

@Chead@<:S+194><:#194,8486>Example 6 (REM)

@Mono@<:S+194>REM "6/15/95";<**>REM "The following formula calculates the date";<**>REM "for the DueDate field";<**>REM "DueDate is the Date field + thirty days";<**>REM;<**>@Adjust(Date; 0;0;30;0;0;0)

@Chead@<:S+194><:#194,8486>Example 7 (SELECT)

<:S+194><:#194,8486>This formula selects all documents in the database.

@Mono@<:S+194><:#194,8486>SELECT @All

@Chead@<:S+194><:#194,8486>Example 8 (SELECT)

<:S+194><:#388,8486>This view selection formula selects only documents composed from the Product Specification form or that are response documents.

@Mono@<:S+194><:#194,8486>SELECT Form="Product Specification" | @IsResponseDoc

@Chead@<:S+194><:#194,8486>Example 9 (SELECT)

<:S+194><:#388,8486>This example changes the value of the Status field to Closed except for documents whose Categories Field is "Unsigned Documents."

@Mono@<:S+194><:#388,8486>SELECT Categories != "Unsigned Contracts";<**>FIELD Status := "Closed"

@Ahead@<:#240,8486>Debugging formulas

<:X8,-32768;Index "Debugging" # "formulas"><:X8,-32768;Index "Formula language" # "debugging">The formula language does not provide a formal debugging mechanism. You can use @Prompt<:X8,-32768;Index "@Prompt @function" #> to stop at certain points and to ex
amine variables. This example uses @Prompt to set a checkpoint and then to examine a variable. After you establish that your code is running correctly, remove the debug statements.

@Mono@<:#600,8486>@Prompt(<[>OK]; "Checkpoint"; "About to calculate LastName");<**>LastName := @RightBack(@Left(@UserName; "/"); " ");<**>@Prompt(<[>OK]; "Value of LastName"; LastName)

In some locations, such as agents and selection formulas, @Prompt does not work. You do not receive a warning when you write or run the formula--the statement simply does not run. To work around this problem, you can write the formula in a SmartIcons object
, an action, or some other object in which @Prompt works. After testing the formula there, remove the debug statements and copy and paste the formula into the desired object.

<:#800,8486>Alternatively, you can design debug fields into the form for the documents your formula processes. Your formula loads the debug fields during testing and you open the documents processed to examine the fields. After testing, remove the debug fields from the
 form as well as the debug statements from the formula.

@Mono@<:#200,8486>FIELD DebugLastName := lastName

@Mono@<:#200,8486>

>

[Embedded]
00093054
