22
Sun, Dec
3 New Articles

Adv Function Printing Utilities/400 & Barcoding

Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Brief: If you thought that creating barcodes on the AS/400 meant writing application programs, think again. IBM's Advanced Function Printing Utilities/400 makes creating barcodes something that even end users can do. This product makes it easy to develop and maintain barcode applications.

Sometimes the best programming solution is the simplest: something you can quickly give back to the users without fear of complication. Something that's simple to create and a breeze to modify.

Barcode printing should be exactly such a solution. Your organization should be able to respond quickly when a new barcoded label is required or when an old format needs some modification. Custom programming should not be required for simple barcode labels, yet-more often than not-these simple applications sit in a backlog, waiting for the right application to justify the time a programmer will spend reading the printer manuals.

The print-format definition function of Advanced Function Printing Utilities/400 might be just the tool to help you out. It can create barcodes on Intelligent Printer Data Stream (IPDS) printers, print graphics and images, and query databases to provide you with a comprehensive tool that's quick, familiar and workable. You don't need to be a hex-code wizard to make your IPDS printer produce barcodes. And the design interface-even on a 5250 terminal-might just tempt you to turn over the process to your trusted users.

Requirements

As last month's "Barcoding with DDS" explained, you must have an IPDS printer in order to print barcodes easily on the AS/400. You also must verify that your printer supports the particular barcodes you need.

This month's example uses IBM's Advanced Function Printing Utilities/400 (IBM licensed program 5738-AF1). If you don't have this licensed program on your system, you might consider using the technique discussed in "Barcoding with DDS," MC, February 1994.

Similar Names, Big Difference

Advanced Function Printing Utilities/400 is a group of programs organized into a menu designed to assist programmers working with advanced-function printing. Your first reaction may be, "Oh yeah! I remember advanced-function printing. It's that code that makes the 5225 printers print barcodes and graphics, right?" Wrong!

What you're probably remembering is Advanced Printer Function (APF). The features and the structure of Advanced Printer Function are significantly less robust than advanced-function printing.

Advanced Printer Function was specifically designed for the 5224/5225 series of dot-matrix printers to handle limited barcodes and vector graphics. Advanced- function printing, on the other hand, is a feature which supports its own printer data stream. It is the key that makes IPDS printers live up to potential. Advanced-function printing supports barcodes, graphics, images and fonts at a level that far outstrips the limited capabilities of Advanced Printer Function. And, Advanced Function Printing Utilities/400 is a design tool you can use to take advantage of advanced-function printing. Why IBM chose such similar names for these functions will probably forever remain a mystery.

Elements of Advanced Function Printing Utilities/400

Advanced Function Printing Util-ities/400 is divided into three groups of services.

1. The Overlay Utility allows you to create electronic forms.

2. The Print Format Definition Utility allows you to create a query-like application integrating images, graphics, barcodes and fonts.

3. The Resource Management Utility allows you to manage overlays, page segments, fonts and graphics.

The barcoding application presented here uses only one function from the Advanced Function Printing Utilities/400 services: the Print Format Definition Utility.

The Sample Application

Our sample application is the same as last month: we'll design a report to print the vendor master name and address list. The report will print the vendor number field as a Code 3-of-9 barcode instead of printing it in the usual numeric representation.

The preliminary step to creating the report is, of course, to create a vendor master database. The DDS for this file is shown in 1. Key this into your DDS source file using Source Entry Utility, and then compile it with the Create Physical File (CRTPF) command.

The preliminary step to creating the report is, of course, to create a vendor master database. The DDS for this file is shown in Figure 1. Key this into your DDS source file using Source Entry Utility, and then compile it with the Create Physical File (CRTPF) command.

Creating the application with the Print Format Definition Utility is very similar to running a Query/400 session. But pay close attention to the details; while the steps are similar, the devil is in the detail.

To access the Advanced Function Printing Utilities/400 menu, type STRAFPU on the command line. This displays a menu with the options shown in 2.

To access the Advanced Function Printing Utilities/400 menu, type STRAFPU on the command line. This displays a menu with the options shown in Figure 2.

Creating the Source File

The Print Format Definition Utility stores its specifications in separate members called PFD definitions. A special type of file called a PFD definition file stores these PFD definitions, similar to the way source code is stored. Think of PFD definition files as source files, PFD definitions as source members, and print-format definition specifications as source code. Although they are not exactly the same, the concept is similar.

You can have multiple definition files, each holding different groups of specifications. Perhaps you'll create one file for your testing environment and another for production specifications. Once created, these definition files may contain numerous print-format definition specifications which are, in fact, the equivalent of program code.

The Print Format Definition Util-ity doesn't compile PFD definitions into AS/400 objects-it is an interpreter, translating the selected definition specs into executable code. Keep this in mind when you consider the value of the utility. If you want an integrated barcode environment working within your own production code, you probably won't want to make the Print Format Definition Utility an element. But if you want to create an application that quickly converts a database file into output, the Print Format Definition Utility might be the perfect fit.

To create a PFD definition file for storing our specifications, use option 12 (Work with PFD definition files) from the Advanced Function Printing Utilities menu. The screens which follow are similar to using PDM. Basically, you start at the file level, work your way down to the definition level and finally to the specification level.

The first screen asks you which PFD definition files you want to work with. Enter a library name and specify *ALL for the file. Then create a new PFD definition file by using option 1 and supplying the name of the file. I chose PFDSRC.

Creating VDRLBL Application Specs

Within the PFD definition file, you must specify a name for your new definition. Each definition within the file represents a query against a particular database file. Since this application is to generate labels for the vendor master file, I chose to name it VDRLBL.

The create process is activated by using option 1. Once the PFD definition is created, you may use the other options, such as Change (option 2), Copy (option 3), Delete (option 4), Print definition (option 6), Rename (option 7) or Print the database file (option 9).

These options look hauntingly like the Query/400 product. This is what makes the Print Format Definition Utility so powerful for the casual user: the learning curve is level. Only the actual definition process will look unfamiliar. But more about this in a moment.

Creating the PFD Definition

Like Query/400, the Print Format Definition Utility automatically tells you which actions are required by placing a 1 (select) beside them (see 3). The three requirements are:

Like Query/400, the Print Format Definition Utility automatically tells you which actions are required by placing a 1 (select) beside them (see Figure 3). The three requirements are:

1. Specify database file

2. Design record layout

3. Design page layout

Other options allow you to define the actual print-format definition specs, specify fonts, specify record selection, and map (override) variables to other objects within the system. Our simple application requires none of this, so just press Enter and proceed through the required actions one by one.

Defining the Database File

Defining the database file is also a very familiar process for programmers who know Query/400. But, unlike Query/400, the Print Format Definition Utility allows you to specify only one database and one record format. No file joining is allowed for this simple utility. If you need to pull various files together, you'll have to create a merged database or a joined logical file over the required information.

Designing the Record Layout

Defining the actual print-format definition specification is a two-step process. First, you create a record layout in which you specify the fields to be printed. Then, this record is placed on a page layout.

Because the Record Layout screen is almost identical to the Page Layout screen, you may feel a bit confused the first time you pass through this process. Take heart-there's actually a good design reason for segmenting the process in this way.

The Design Record Layout screen is bordered by position rulers along the top and left-hand side. The traditional AS/400 perspective would lead us to assume that these ruler marks represent rows and columns for placing fields on the page. In actuality, these ruler notations may represent rows and columns, inches or centimeters. If you refer to the screen in 3, you'll find an option to define PFD specifications. Within that option, you can identify the units of measure for the record and page layout.

The Design Record Layout screen is bordered by position rulers along the top and left-hand side. The traditional AS/400 perspective would lead us to assume that these ruler marks represent rows and columns for placing fields on the page. In actuality, these ruler notations may represent rows and columns, inches or centimeters. If you refer to the screen in Figure 3, you'll find an option to define PFD specifications. Within that option, you can identify the units of measure for the record and page layout.

Since the example is relatively straightforward, I've used the default of columns in defining the specification. Consequently, each field placed on the record layout will consume an equal number of columns.

For those who have experience with DisplayWrite, laying out the record with Print Format Definition Utility should feel very familiar: the editor model for the Print Format Definition Utility is based upon DisplayWrite. You move the cursor to the position on the record where you want to place a field, code or graphic and then press a function key. You can place a text field. You can also mark the coordinates of a box or a line. You can mark the position of a graphic or an image, or you can place a reference to a barcode.

The important thing to note in working with the Print Format Definition Utility's editor is that it is marking references or notations to fields or objects, and not pasting the fields or objects themselves in place. This is a crucial point when you work with the utility and, to my way of thinking, a limitation imposed by the inability of 5250-style terminals to display interactive graphics. Anyone who's used a PC-style drawing program-or even a sophisticated word processor-would find this interface extremely cumbersome. But the point is to provide a utility to the greatest number of potential users, and that means making it work on the lowest common denominator. So we're stuck with a 5250-terminal style of editor. Regardless of your preferences, designing the record layout by reference is functional, if not particularly friendly.

For similar reasons, the editor can't be more SDA-like. Because the 5250 terminal data stream can't represent different fonts, barcodes or images, there really can't be a satisfactory representation on the screen. These limitations provide a blatant example of how these advanced data streams have far outstripped the old display capabilities of the *SCS terminals upon which we're programming.

Defining Fields

Pressing the F6 (Text) function key displays a small prompt at the bottom of the screen for specifying the text that you want to include in the record (see 4). The screen allows you to key in constant text and to change the coordinates of the element you're adding to the screen.

Pressing the F6 (Text) function key displays a small prompt at the bottom of the screen for specifying the text that you want to include in the record (see Figure 4). The screen allows you to key in constant text and to change the coordinates of the element you're adding to the screen.

When you press F4, the prompt expands, showing you the complete list of options that are available (see 5). These include the degree of rotation for the text, the color which you want to print the text in, and other characteristics such as bolding or underlining.

When you press F4, the prompt expands, showing you the complete list of options that are available (see Figure 5). These include the degree of rotation for the text, the color which you want to print the text in, and other characteristics such as bolding or underlining.

But where do you identify the database field name? If you place the cursor on the "text data" field and press F4 a second time, another list shows the fields available within the database file (see 6). The process of selecting fields is very straightforward. Each selected field is inserted into the previous prompt, representing the data field with a preceding ampersand (&) character (see 7). This process continues until the record format includes all the fields you want to print as text.

But where do you identify the database field name? If you place the cursor on the "text data" field and press F4 a second time, another list shows the fields available within the database file (see Figure 6). The process of selecting fields is very straightforward. Each selected field is inserted into the previous prompt, representing the data field with a preceding ampersand (&) character (see Figure 7). This process continues until the record format includes all the fields you want to print as text.

Now you've reached the process of referencing the barcode. The steps are very similar to those used for text. Instead of pressing F6 (Text), you will press F11 (Barcode). See 8. The prompt that appears on the bottom of the screen allows you to key in constant data, or you can press F4 to expand the prompt into more detail.

Now you've reached the process of referencing the barcode. The steps are very similar to those used for text. Instead of pressing F6 (Text), you will press F11 (Barcode). See Figure 8. The prompt that appears on the bottom of the screen allows you to key in constant data, or you can press F4 to expand the prompt into more detail.

The Define Barcode Detail (9) prompt allows you to specify the particular type of barcode you want to print. But it's important to note that, despite the number of different barcodes represented on the prompt, you must know the limitations and capabilities of the printer to which you'll be sending your output.

The Define Barcode Detail (Figure 9) prompt allows you to specify the particular type of barcode you want to print. But it's important to note that, despite the number of different barcodes represented on the prompt, you must know the limitations and capabilities of the printer to which you'll be sending your output.

For instance, you may desire to print a Code 128 barcode, so you dutifully identify option 11 (CODE128) on this prompt. But if your printer doesn't support Code 128-even though it's explicitly referenced within the print- format definition specs-you'll have no way of knowing whether it truly is supported.

This can be a frustrating, confusing circumstance for some novice users of the Print Format Definition Utility. Even if the program completes successfully and executes without a hitch, the actual printout could fail because of incompatibility.

Why isn't this field edited to prevent the user from selecting options which his environment doesn't support? IBM claims that this type of environmental editing would actually place a limitation on the software.

So, at present, the Print Format Definition Utility does not warn you of the limitations of any particular printer. It merely allows you to mark references to particular types of barcodes and builds the specifications accordingly.

The next step is to place the cursor in the barcode data field, press F4 and choose the field to be translated. In the example, I chose to translate the Vendor Number field into Code 3-of-9. (My IBM 3812 supported that one... I checked!) If your printer supports POSTNET, you could just as well translate the zip code field into a POSTNET barcode and save your company some postage. That's all there is to barcode functions using Advanced Function Printing Utilities/400!

That's how simple the process of translating barcodes is with AFPDS. The Print Format Definition Utility-with its little sidelights and limitations-seems a relatively useful and quick tool for our simple application. If you want, you can draw a box around the record, to really make it appear as a label. You could place a logo (code page) or a graphic; you can rotate the text too, making it print vertically instead of horizontally. Each step of the way, the interface is the same-not exactly WYSIWYG, but certainly better than encapsulated hex codes.

Designing the Page

With all this ground you've covered, you'd think you were about done, right? Not quite! You've designed a record for the output, but you have yet to place that output onto a page.

Think of this step as placing the label onto a sheet of paper. You can specify a single label to print on each page, or you can specify multiples to print two-up or three-up. To do this, you need to use the Design Page Layout screen.

Just like the Design Record Layout screen, the Design Page Layout screen is ruled along the top and along the side. Again, depending upon how you set up the specs, the numbers of the ruler represent either rows and columns, inches or centimeters. Along the bottom are command keys which identify the options available to you.

Now you must place the newly created record layout onto this page. To do this, press F13 (Place) followed by F11 (Place record layout). You should see the display shown in 10.

Now you must place the newly created record layout onto this page. To do this, press F13 (Place) followed by F11 (Place record layout). You should see the display shown in Figure 10.

The Design Page Layout screen allows you to place multiple records on a single page. Pressing the F4 (Detail) key presents you with a secondary screen that prompts you to define the number of records per page and the spaces between them.

The confusing portion of this prompt is that it seems to be asking you to identify the number of spaces between the records; it's actually asking you for the number of spaces between placement markers. Secondly, the display doesn't always accurately represent how you've defined the placement of records. You may have to play around a bit to determine the precise placements. The experimentation may become tedious, but eventually you will be printing multiple records on a page, two-up and three-up.

Saving the Definition

You can define other specifications if you want, but the ones we've covered represent the basics. Once the definition is complete, you'll want to save it into the PFDSRC file. Press F3 to exit the program. You're prompted to verify your choices and key in a description.

This wraps up the design function of the Print Format Definition Utility-now you need to actually print the form.

Printing the Database File Member

Option 9 from the Work with PFD Definitions screen allows you to print the database file member using the new print-format definition specification (see 11).

Option 9 from the Work with PFD Definitions screen allows you to print the database file member using the new print-format definition specification (see Figure 11).

The prompt allows you to override the database file which you identified in the definition process, and to perform record selection against the database. You can redirect the output to a particular output queue as well. This is all very much like the Query/400 environment you are probably familiar with.

However, actually obtaining output from the printer can represent a challenge if you're uncertain of your particular IPDS printer's capabilities. Since the construction of the advanced-function printing data stream occurs prior to the actual interface with the particular printer, it's not until the output is actually ported through the print writer out to the IPDS printer that you'll know for certain that all of your specifications are supported.

This can be a frustrating experience if you initially take the default *ABSOLUTE for print fidelity. If the printer can't resolve a problem, it issues an error message to tell the AS/400 that a problem exists in the data stream. The AS/400 then logs the error message in the QSYSOPR message queue and holds the output in the output queue. You get no output and a cryptic message, leaving you with a hollow feeling and nothing to tell you what went wrong.

One working solution is to re-edit the PFD definition and use the Define Printout Specifications option. This presents you with the screen shown in 12. Change the print fidelity from *ABSOLUTE to *CONTENT. Then, if the IPDS printer comes across an incompatability, it prints out what it can, giving you at least some feedback to resolve the compatibility problem. Usually, comparing your specification with the printer manual resolves most difficulties.

One working solution is to re-edit the PFD definition and use the Define Printout Specifications option. This presents you with the screen shown in Figure 12. Change the print fidelity from *ABSOLUTE to *CONTENT. Then, if the IPDS printer comes across an incompatability, it prints out what it can, giving you at least some feedback to resolve the compatibility problem. Usually, comparing your specification with the printer manual resolves most difficulties.

Although we have taken a lot of time walking through each screen of the Print Format Definition Utility, the process itself isn't nearly as daunting as it might seem. Running the Print Format Defi-nition Utility is really no more rigorous than your first foray into building a query. It's only the first time or two-the time in which you're stretching your own knowledge base about the capabilities of your printer-that you might experience a problem.

Advanced Function Printing Utilities/400 Gets the Job Done

The Print Format Definition Utility and the other utilities within Advanced Function Printing Util-ities/400 are good, solid building blocks which can turn around a simple printing application in a hurry. Barcode printing doesn't have to be relegated to the backlog if these tools are available to you.

While the Print Format Definition Utility may not provide you with the ultimate barcode application, it may be just the tool to demonstrate the ease of creating barcodes to your organization. Once your coworkers see how quickly you can create and modify a barcode label, you might suddenly find that they're more interested in expanding the use of the technology within your organization. And that's always the best recommendation for any utility program.

T.M. Stockwell is an associate technical editor for Midrange Computing.


Adv Function Printing Utilities/400 & Barcoding

Figure 1 The Vendor Physical File

 
   *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 
  A       R VNDMST 
  A         VNDNBR               5P  0      TEXT('VENDOR NUMBER') 
  A         NAME                25A         TEXT('VENDOR NAME') 
  A         ADDR                25A         TEXT('ADDRESS') 
  A         CITY                15A         TEXT('CITY') 
  A         STATE                2A         TEXT('STATE') 
  A         ZIPCD                5P  0      TEXT('ZIP CODE') 
   *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 

Adv Function Printing Utilities/400 & Barcoding

Figure 2 The AFPU Main Menu

 
 
   AFPU                 Advanced Function Printing Utilities 
 
   Select one of the following: 
 
     Overlay Utility 
        1. Work with source overlays 
        2. Work with source overlay files 
 
     Print Format Utility 
       11. Work with PFD definitions 
       12. Work with PFD definition files 
       13. Print database file member 
 
     Resource Management Utility 
       21. Convert to page segment 
       22. Work with overlays 
       23. Work with page segments 
 
 
   Selection or command 
   ===> 
  __________________________________________________________________________ 
  _______________________________________________________________________________ 
   F3=Exit   F4=Prompt   F9=Retrieve   F12=Cancel   F16=System main menu 

Adv Function Printing Utilities/400 & Barcoding

Figure 3 Create PFD Definition

 
                               Create PFD Definition 
 
   File . . . . . . . . . . . :   PFDSRC 
     Library  . . . . . . . . :     MYLIB 
   PFD definition . . . . . . :   VDRLBL 
 
   Type options, press Enter. 
     1=Select 
 
   Opt     Action 
    _      Define PFD specifications 
    _      Work with PFD definition fonts 
    1      Specify database file 
    _      Specify break fields 
    1      Design record layout 
    1      Design page layout 
    _      Specify record selection 
    _      Define printout specifications 
    _      Specify mapping object name 
 
 
 
   F3=Exit   F5=Refresh   F9=Select all   F12=Cancel 

Adv Function Printing Utilities/400 & Barcoding

Figure 4 Design Record Layout Text Prompt

 
                                Design Record Layout           Columns:   1- 74 
   Control  . . ______ 
       *...+....1....+....2....+....3....+....4....+....5....+....6....+....7.... 
   001 %T001 
   002 
   003 
   004 
   005 
   006 
   007 
   008 
   009 
   010 
   011 
   012 
                                                                          More... 
                                     Define Text 
    Mark . . . . . . : *T001         Measurement method . . . . : Row/Column 
    Position . . . . . Across       1     Down        1 
    Text data  . . . . __________________________________________________________ 
 
   F3=Exit      F4=Detail   F6=Change measurement method 
   F12=Cancel   F24=More keys 

Adv Function Printing Utilities/400 & Barcoding

Figure 5 Define Text Detail

 
 
 
                                 Define Text Detail 
 
   Mark:   *T001             Measurement method:   Row/Column 
 
   Type choices, press Enter. 
 
     Position: 
       Across . . . . . . . . . .   1            1-999 
       Down . . . . . . . . . . .   1            1-999 
     Text data  . . . . . . . . . 
  ______________________________________________ 
  _______________________________________________________________________________ 
  _ 
  _____________________________________________________________________________ 
                                                 F4 for list 
     Element  . . . . . . . . . .   ____         Name 
     Format . . . . . . . . . . .   1            1=Horizontal, 2=Vertical 
     Degree of rotation . . . . .   0            0, 90, 180, 270 
     Color  . . . . . . . . . . .   *DEFAULT     *DEFAULT, 1=Blue, 2=Red 
                                                 3=Magenta, 4=Green, 5=Cyan 
                                                 6=Yellow, 7=Brown, 8=Black 
     Underline  . . . . . . . . .   N            Y=Yes, N=No 
                                                                          More... 
   F3=Exit   F4=Prompt   F5=Refresh   F6=Change measurement method 
   F10=Edit numeric      F12=Cancel 

Adv Function Printing Utilities/400 & Barcoding

Figure 6 Select Field in Record Format

 
                           Select Field in Record Format 
 
   Database file  . . . . . . :   VENDOR 
     Library  . . . . . . . . :     MYLIB 
   Record Format  . . . . . . :   VNDMST 
 
   Type option, press Enter. 
     1=Select 
 
   Opt  Field       Length  Type  Text 
    _   VNDNBR         5,0    P 
    1   NAME            25    C 
    _   ADDR1           25    C 
    _   CITY            15    C 
    _   STATE            2    C 
    _   ZIPCD          5,0    P 
 
 
 
 
                                                                           Bottom 
   F5=Refresh   F11=Select reserved variable   F12=Cancel 

Adv Function Printing Utilities/400 & Barcoding

Figure 7 Define Text Detail

 
                                 Define Text Detail 
 
   Mark:   *T001             Measurement method:   Row/Column 
 
   Type choices, press Enter. 
 
     Position: 
       Across . . . . . . . . . .   1            1-999 
       Down . . . . . . . . . . .   1            1-999 
     Text data  . . . . . . . . .   &NAME. 
  _______________________________________________________________________________ 
  _ 
  _____________________________________________________________________________ 
                                                 F4 for list 
     Element  . . . . . . . . . .   NAME         Name 
     Format . . . . . . . . . . .   1            1=Horizontal, 2=Vertical 
     Degree of rotation . . . . .   0            0, 90, 180, 270 
     Color  . . . . . . . . . . .   *DEFAULT     *DEFAULT, 1=Blue, 2=Red 
                                                 3=Magenta, 4=Green, 5=Cyan 
                                                 6=Yellow, 7=Brown, 8=Black 
     Underline  . . . . . . . . .   N            Y=Yes, N=No 
                                                                          More... 
   F3=Exit   F4=Prompt   F5=Refresh   F6=Change measurement method 
   F10=Edit numeric      F12=Cancel 

Adv Function Printing Utilities/400 & Barcoding

Figure 8 Design Record Layout Barcode Prompt

 
                                Design Record Layout           Columns:   1- 74 
   Control  . . ______ 
       *...+....1....+....2....+....3....+....4....+....5....+....6....+....7.... 
   001 *NAME 
   002 *ADDR . 
   003 *CITY           *ST   . 
   004 
   005 %C005 
   006 
   007 
   008 
   009 
   010 
   011 
   012 
                                                                          More... 
                                   Define Barcode 
    Mark . . . . . . : *C005         Measurement method . . . . : Row/Column 
    Position . . . . . Across       1     Down       5     Barcode type . . . __ 
    Barcode data  . . __________________________________________________________ 
 
   F3=Exit      F4=Detail   F6=Change measurement method 
   F12=Cancel   F24=More keys 

Adv Function Printing Utilities/400 & Barcoding

Figure 9 Define Barcode Detail

 
                                Define Barcode Detail 
 
   Mark:   *C005             Measurement method:   Row/Column 
 
   Type choices, press Enter. 
 
     Position: 
       Across . . . . . . . . . .   1            1-999 
       Down . . . . . . . . . . .   5            1-999 
     Barcode type . . . . . . . .   1            1=CODE3OF9, 2=MSI, 3=UPC-A 
                                                 4=UPC-E, 5=EAN-8, 6=EAN-13 
                                                 7=INDUST25, 8=MATRIX25 
                                                 9=INTERL25, 10=CODABAR 
                                                 11=CODE128, 12=POSTNET 
     Barcode data . . . . . . . .   &VNDNBR. 
  ______________________________________________________ 
                                                 F4 for list 
     Element  . . . . . . . . . .   VNBR         Name 
 
 
                                                                           Bottom 
   F3=Exit   F4=Prompt   F5=Refresh   F6=Change measurement method   F12=Cancel 

Adv Function Printing Utilities/400 & Barcoding

Figure 10 Design Page Layout

 
                                 Design Page Layout            Columns:   1- 74 
   Control  . . ______ 
       *...+....1....+....2....+....3....+....4....+....5....+....6....+....7.... 
   001 %R001-001 
   002 
   003 
   004 
   005 
   006 
   007 
   008 
   009 
   010 
   011 
   012 
                                                                          More... 
                                Place Record Layout 
    Mark . . . . . . : *R001         Measurement method . . . . : Row/Column 
    Position . . . . . Across       1     Down       1 
 
 
   F3=Exit      F4=Detail   F6=Change measurement method 
   F12=Cancel   F24=More keys 

Adv Function Printing Utilities/400 & Barcoding

Figure 11 Print Database File Member

 
                             Print Database File Member 
 
     File . . . . . . . . . . . . . :   PFDSRC 
       Library  . . . . . . . . . . :     MYLIB 
     PFD definition . . . . . . . . :   VDRLBL 
 
 
   Type choices, press Enter. 
 
     Database file  . . . . . . . . .   *PFD           Name, *PFD, F4 for list 
       Library  . . . . . . . . . . .     *LIBL        Name, *LIBL, *CURLIB 
     Member . . . . . . . . . . . . .   *FIRST         Name, *FIRST, F4 for list 
 
     Include grid . . . . . . . . . .   N              Y=Yes, N=No 
     Record selection . . . . . . . .   Y              Y=Yes, N=No 
     Ending page  . . . . . . . . . .   *END           1-9999, *END 
 
     Output queue . . . . . . . . . .   *JOB           Name, *JOB 
       Library  . . . . . . . . . . .                  Name, *LIBL, *CURLIB 
     Copies . . . . . . . . . . . . .   *PFD           1-255, *PFD 
 
 
   F3=Exit   F4=Prompt   F5=Refresh   F12=Cancel 

Adv Function Printing Utilities/400 & Barcoding

Figure 12 Define Printout Specifications

 
                           Define Printout Specifications 
 
   Type choices, press Enter. 
 
   Copies . . . . . . . . . . . . . .   1              1-255 
   Print fidelity . . . . . . . . . .   *CONTENT       *ABSOLUTE, *CONTENT 
   Print quality  . . . . . . . . . .   *STD           *STD, *DRAFT, *NLQ 
   Duplex . . . . . . . . . . . . . .   N              Y=Yes, N=No 
   Form type  . . . . . . . . . . . .   *STD           Character value, *STD 
   Source drawer  . . . . . . . . . .   1              1, 2, 3, *E1 
   Front side overlay: 
     Overlay  . . . . . . . . . . . .   *NONE          Name, *NONE, F4 for list 
       Library  . . . . . . . . . . .     *LIBL        Name, *LIBL, *CURLIB 
     Offset across  . . . . . . . . .   .00            0.00-22.75 
     Offset down  . . . . . . . . . .   .00            0.00-22.75 
   Back side overlay: 
     Overlay  . . . . . . . . . . . .   *NONE          Name, *NONE, F4 for list 
       Library  . . . . . . . . . . .     *LIBL        Name, *LIBL, *CURLIB 
     Offset across  . . . . . . . . .   .00            0.00-22.75 
     Offset down  . . . . . . . . . .   .00            0.00-22.75 
 
 
   F3=Exit   F4=Prompt   F5=Refresh   F12=Cancel 
BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: