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 editingZero 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