COBOL PICTURE Clause
							
	
	
PICTURE clause specifies the characteristics of the variable while declaring it, i.e., variable type, length, etc.
Syntax -
 level-number variable-name 
				[PIC|PICTURE picture-symbol(variable-length)
				[VALUE literal]].
	 Note! All statements coded in [ ] are optional.
For example - Declaring a variable of alphabetic type to store a value HELLO.
 01 WS-VAR      PIC A(05) VALUE "HELLO".
				
- level-number - Specifies the level number of the declaration from 01 to 49. From the example, it is 01.
 
- variable-name - Specifies the name of the variable. From the example, it is WS-VAR.
 
- PIC - PIC is a short form for PICTURE
 
- picture-symbol (data-type-character) - Specifies the variable type. From the example, it is A (Alphabetic).
 
- variable-length -  Specifies the variable length to store the data. From the example, it is 05 (variable length is 5).
 
- literal - Specifies the literal character string. From the example, it is HELLO.
 
Notes -
- PICTURE clause should code with every elementary and individual variable to specify its type and length.
 
- PICTURE clause not applicable to the below -
- Index variables
 
- RENAMES clause
 
- Internal floating-point variables
 
- 88-level number
 
- COMP-1 and COMP-2 variables
 
 
PICTURE Symbol - 
PICTURE symbol is the letter used to specify the type of the variable during its declaration. 
PICTURE symbols are two types -
- PICTURE symbol for data types
 
- PICTURE symbol for editing.
 
PICTURE Symbol for Data Types - 
This type specifies the PICTURE symbols assigned for each data type in COBOL. Those are -
	
		
			| Data Type | 
			PICTURE Symbol | 
			Declaration Meaning  | 
		
	
	
		
		    | Alphabetic | 
			A | 
			Alphabetic character or space. 
Represents alphabetic data type.
For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| HELLO | 
			PIC A(5) | 
			HELLO | 
		 
	
  | 
		
		
		    | Numeric | 
			9 | 
			Numeric character. 
Represents numeric data type.
For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 123 | 
			PIC 9(5) | 
			00123 | 
		 
		
			| 000123 | 
			PIC 9(4) | 
			0123 | 
		 
	
  | 
		
		
		
		    | Alphanumeric | 
			X | 
			Alphanumeric character or space. 
Represents alphanumeric data type.
For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| HELLO | 
			PIC X(5) | 
			HELLO | 
		 
		
			| HI | 
			PIC X(5) | 
			HI | 
		 
	
  | 
		
		
		| Assumed decimal point | 
		V | 
		Represents the decimal point. 
It is not counted in the size of the variable/variable.
For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 123.45 | 
			PIC 999V99 | 
			12345 | 
		 
		
			| 123.45 | 
			PIC 99V99 | 
			2345 | 
		 
	
 
		 | 
		
		| Operational sign | 
		S | 
		Represents the Sign of the value. 
It is not counted in the size of the variable unless a SIGN clause with the SEPARATE CHARACTER phrase is specified. 
For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| -123 | 
			PIC S999 | 
			12L | 
		 
		
			| +123 | 
			PIC S999 | 
			12C | 
		 
		
			| -123 | 
			PIC S999 SIGN IS LEADING SEPERATE CHARACTER | 
			-123 | 
		 
		
			| -123 | 
			PIC S999 SIGN IS TRAILING SEPERATE CHARACTER | 
			123- | 
		 
	
 
		 | 
	
PICTURE Symbol for Editing - 
PICTURE symbol for editing is used to display the data in the user's desired format. 
These are classified into two types, and those are -
1. Insertion editing - It is a way to format the data in the numeric variables, for displaying in human-readable format.
- Simple insertion  -
Simple insertion editing involves inserting , (comma), B (blank character), / (forward slash), 0 (Zero) in the 
PICTURE string while displaying for better readability. 
 
- Special insertion  -
Special insertion editing is used to insert the decimal-point while displaying the decimal values of a variable.
Special insertion symbols are - . (Dot).
 
- Fixed insertion  -
Fixed insertion editing is used to insert fixed characters (-, +, CR, DB, and $) into a numeric edited item. 
 
- Floating insertion   -
Floating insertion editing is used for formatting numeric variables, mainly when dealing with currency values. 
The symbols are - currency (CS), plus (+), and minus (-).
 
2. ZERO suppression and replacement editing   
Zero Suppression involves omitting leading zeros from a number, and replacement editing involves replacing leading zeros with another character, typically a space (B) or an asterisk (*). 
Examples -
Below are the total PICTURE clause symbol list -
	
		| Symbol	 | 
		Declaration Meaning	 | 
	
	
		| B | 
Space insertion character that represents numeric-edited and alphanumeric-edited character. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 150682 | 
			PIC 99B99B99 | 
			15 06 82 | 
		 
		
			| 15061982 | 
			PIC XXBXXBXXXX | 
			15 06 1982 | 
		 
	
 
		 | 
		| 	P	 | 	Decimal scaling position but not counted in size of variable. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 77 | 
			PIC 99P | 
			77 | 
		 
		
			| 77 | 
			PIC P99 | 
			77 | 
		 
	
 		
		 | 
		| 	Z	 | 	Zero suppression character. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 123 | 
			PIC ZZZZZ. | 
			  123 | 
		 
		
			| 000123 | 
			PIC ZZZZZZ. | 
			   123 | 
		 
	
 
		 | 
		| 	0	 | 	Zero insertion character. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 1234 | 
			PIC 990099. | 
			120034 | 
		 
		
			| 1234 | 
			PIC 999900. | 
			123400 | 
		 
	
 
		 | 
		| 	/	 | 	Slash insertion character. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 150682 | 
			PIC 99/99/99. | 
			15/06/82 | 
		 
	
 
		 | 
		| 	,	 | 	Comma insertion character. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 123456 | 
			PIC 999,999. | 
			123,456 | 
		 
		
			| 12345 | 
			PIC zzz,999. | 
			 12345 | 
		 
	
 
		 | 
		| 	.	 | 	Decimal point or period editing control character. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 1234.56 | 
			PIC 9999.99. | 
			1234.56 | 
		 
		
			| 1234.56 | 
			PIC 999.99. | 
			234.56 | 
		 
		
			| 1234.56 | 
			PIC 9999.9. | 
			1234.5 | 
		 
	
 
		 | 
		| 	+	 | 	Plus sign insertion editing control character. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| +12345 | 
			PIC +9(5). | 
			+12345 | 
		 
		
			| -123 | 
			PIC +9(3). | 
			-123 | 
		 
		
			| -123 | 
			PIC 9(3)+. | 
			123- | 
		 
	
 
		 | 
		| 	-	 | 	Minus sign editing control character. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| -123 | 
			PIC -9(3). | 
			-123 | 
		 
		
			| +123 | 
			PIC +9(3). | 
			 123 | 
		 
		
			| -123 | 
			PIC 9(3)-. | 
			123- | 
		 
	
 
		 | 
		| 	CR	 | 	Credit editing control character. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| +123 | 
			PIC 9(3)CR. | 
			123  | 
		 
		
			| -123 | 
			PIC 9(3)CR. | 
			123CR | 
		 
	
 
		 | 
		| 	DB	 | 	Debit editing control character or Check protect insertion character.For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| +123 | 
			PIC 9(3)DB. | 
			123  | 
		 
		
			| -123 | 
			PIC 9(3)DB. | 
			123DB | 
		 
	
 
		 | 
		| 	$	 | 	Currency symbol insertion character. $ is the default. For example -
	
		
			| Input | 
			PICTURE Clause | 
			Output | 
		 
	
	
		
			| 000 | 
			PIC $,$$9.99. | 
			    0.00 | 
		 
		
			| 90 | 
			PIC $$9.00. | 
			$90.00 | 
		 
		
			| 12345 | 
			PIC $$,$$9. | 
			$2,345 | 
		 
	
 
		 | 
	
	
		
			
			
				
					-  Insertion Editing  
						
					
 
					-  ZERO suppression and replacement Editing