Problem solve Get help with specific problems with your technologies, process and projects.

Display or print file field descriptions

The DSPFFD command on the AS/400 is quite cumbersome to read through. So, I wrote a routine that will give me the field descriptions and sizes along with a record size summary, which encapsulates the detail found in the DSPFFD command. I call mine DFD. It uses the DSPFFD command to output to a file in QTEMP. Then I run a query over the file, selecting those fields that I want to display or print. In the command and CLP I designate whether to display the query output or to print the output using the query output options on the RUNQRY command. It's really quick, the tech support and programming staff use it regularly and are grateful for not having to dig through the DSPFFD display.


DFD Command Specifications

Command:

	CMD         PROMPT('Display File Field Description')      
	PARM       KWD(FILE) TYPE(*CHAR) LEN(11) MIN(1) +        
            	 PROMPT('File Name -' 01)                    
	PARM       KWD(LIBRARY) TYPE(*CHAR) LEN(11) MIN(1) +     
            	 PROMPT('Library Name -' 02)                 
	PARM       KWD(OUTPUT) TYPE(*CHAR) LEN(11) RSTD(*YES) +  
            	    DFT(*DISPLAY) VALUES(*DISPLAY *PRINTER) +   
           	 	    MIN(0) PROMPT('Output Device -' 03)         

Program:

	             PGM        PARM(&FILE &LIBRARY &OUTPUT)                    
             DCL        VAR(&FILE) TYPE(*CHAR) LEN(11)                  
             DCL        VAR(&LIBRARY) TYPE(*CHAR) LEN(11)               
             DCL        VAR(&OUTPUT) TYPE(*CHAR) LEN(11)                
             DLTF       QTEMP/DDSLIST                                   
             MONMSG     MSGID(CPF0000)                                  
             DSPFFD     FILE(&LIBRARY/&FILE) OUTPUT(*OUTFILE) +         
                          OUTFILE(QTEMP/DDSLIST)                        
             MONMSG     MSGID(CPF3012 CPF3064) EXEC(DO)                 
             SNDPGMMSG  MSG('File Not Found!!!  Command Aborted!!!')    
             GOTO       CMDLBL(EXIT)                                    
             ENDDO                                                      
             RUNQRY     QRY(COMMON/DSPFFDQ) QRYFILE((QTEMP/DDSLIST)) +  
                          OUTTYPE(&OUTPUT) OUTFORM(*DETAIL)             
EXIT:                                                                   
             ENDPGM                                                     	

Query:

1. First to do is to run the Command "DSPFFD", going to and Outfile in Library OTEMP

2.

Create a Query, placing it in QGPL or a library common to all users.

	     a.  File . . . . . . . . .   DDSLIST        Name, F4 for list         
                      Library  . . . . .    QTEMP        Name, *LIBL, F4 for list  
                      Member . . . . . .  *FIRST         Name, *FIRST, F4 for list 
                      Format . .  . . . .   QWHDRFFD       Name, *FIRST, F4 for list
	     b.  Select and Sequence:
		  Seq   Field             Text                                                 Len  Dec 
                            10   WHFILE        File                                                  10      
                            20   WHFTYP       Type of file: P=Phy, L=Log, D=Dev      1      
                            30   WHNAME      Record format                                  10      
                            40   WHFLDE       External field name 		  10      
                            50   WHFLDB       Field length in bytes                            5    0 
                            60   WHFLDP       Decimal positions to right of decimal    2    0 
                            70   WHFLDD       Number of digits                                 2    0 
                            80   WHIBO          Input buffer position                            5    0 
                            90   WHFTXT        Field text description                          50           
	      c.  Set up a Sort Pattern
     			Sort                                                                          
			Prty A/D  Field           Text                                      		  Len  Dec
  			10  A   WHFILE          File                                         		  10     
 			20  A   WHFTYP          Type of file: P=Physical, L=Logical, D=D      1     
  			30  A   WHNAME          Record format                               	  10 
	      d.  Set Up Report for Selected fields accepting defaults
	      e.  Report Summary Functions
		---Options---  Field                Text                                   
            		     5  WHFLDE          External field name                 
		    1           5  WHFLDB          Field length in bytes               
              		         
	       f.  Define Report Breaks
 		Break    Sort                                                       
		Level    Prty  Field                 Text                                 
 		    1        10  WHFILE            File                                 
  		    1        20  WHFTYP          Type of file: P=Physical, L=Logical  
  		    1        30  WHNAME          Record format
	       g.  Output Type and Output form
                        Output type  . . . . . . . . . . .   1     1=Display       
                                                                         2=Printer       
                                                                         3=Database file 
                                                            
                      Form of output . . . . . . . . . .   1     1=Detail        
                                                                         2=Summary only 

This will set up will place the output to your display when the Command DFD is executed, unless you change the default for the Command to place the output to a printer (see values clause in third parm of DFD Command source).

Dig Deeper on RPG iSeries programming

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.

-ADS BY GOOGLE

SearchDataCenter

Close