Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 63 Next »

 

 

Table of Contents

 

The Goal of This Example

Show how a Universal Display File can work in tandem with a Rich Display File's List Box Widget's choices URL property. You could also utilize the choices URL property within a Combo Box Widget, but this example will be using a List Box Widget.

Files Used by This Example

Below are downloadable versions of the files used in this example:

The Universal Display File

Read more about it: Using the Universal Display File Editor

Below are screen shots of the Universal Display File being created the Universal Designer. There are 3 record formats representing the parts of an HTML page, the HeaderBody, and Footer. The middle image shows CONAME and COHEX as the bound fields. CONAME (color name) is the variable containing names of colors. COHEX (color hex) is the variable containing the hex values of CONAME's colors. Our Universal Display File will access the information in these bound fields and display them in our program. Please refer to the  for more information with this step. 


The Header - Click for Larger Image

Header

The Header format is used to define the file/object being made by the Universal Display Program and is only printed once to the file/object. The Header format in this example defines the start of a JSON object .


The Body - Click for Larger Image

Body

The Body  format is used to define a section of the file/object that will be printed one or more times depending on an input source. The Body format in this example defines an Option for the List Box and will be printed to the JSON object as many times as there are records in the COLORSP database file.


Footer

The Footer format is used to define the end of the file/object that will only be printed once. The Footer format in this example ends the JSON object .

The Universal Display RPG Source Code

Read more about it:  RPG Coding for Universal Display Files

The source code file of this example is named COLORSR. An important part to mention is that the Universal Handler is used for this program.

What this program will do is grab a list of colors from a specified database file, COLORSP for this example, on the IBM i and create a JSON object that will contain the option objects that will populate the List Box.  CONAME will display in the List Box and the corresponding COHEX will be passed to the program when a selection is made.

Universal Display RPG Source Code File
**FREE          // This program is utilizing FREE-FORMAT RPG
ctl-opt DFTACTGRP(*NO);

dcl-f   COLORSD WorkStn
                // Use the Universal Handler as the handler in this program.
                Handler('UNIVERSAL(HANDLER)');
dcl-f   COLORSP Keyed;
 
Write   Header; // Write the Header from the Universal Display File to the JSON object.
Read    COLORS; // Read a record from the database file COLORSP. 
Dow Not %Eof(); // While not at the end of COLORSP
  Write Body;   // Write the record to the JSON object
  Read  COLORS; // Read the next record of COLORSP
EndDo;
 
Write  Footer;  // Write the Footer from teh Universal Display File to the JSON object.
 
// End program
*InLr = *On;
RETURN;

Remember!

Hard coded libraries are a bad practice! We strongly suggest you do not use hard coded libraries!

The Rich Display File

Read more about it: Visual Designer BasicsUsing the Web ConnectorWork with URL Mappings Tool

Below is a screen shot of the layout of the SHOWCOLORD rich display file. There are 3 bound fields. Two for  OK and  EXIT  buttons, and one for the color bound field. Once you click the  OK button after selecting a color name in the List Box, the background color of the label underneath will change to the corresponding color. The COLOR bound field is bound to the background color attribute of the label widget, and is also bound to the value property of the List Box; this is how the label is able to change colors accordingly. 

The Choices URL property of the List Box is what populates the choices of colors that can be picked. We set this property to the URL of our Universal Display File application. 

 


The Header - Click for Larger Image

Example Display Arrangement

This is an image of the Visual Designer with the arrangement of elements of this example.



Remember!

Don't forget that the choices url value needs to be mapped! The Web Connector, as of Profound UI 5.10.0, has a URL Mappings Tool that can be used to maintain the URL Mappings, previous versions require a PUIMAPP record to be created.

 

The Rich Display RPG Source Code

File name is SHOWCOLORR. Notice that the ProfoundUI Handler is being used in the handler for this program. The EXFMT operation will display the SHOWCOLORD display file. 

Rich Display RPG Source Code
**FREE  // This program is utilizing FREE-FORMAT RPG
ctl-opt DFTACTGRP(*NO);
dcl-f   SHOWCOLORD WorkStn 
        // Use the ProfoundUI Handler as the handler in this program
        Handler('PROFOUNDUI(HANDLER)');
 
// Run program until the exit button is pressed
Dou BTNEXIT = *On;
 ExFmt SHOWCOLORS;
EndDo;

// End program
*InLr = *On;
RETURN;

Remember!

Hard coded libraries are a bad practice! We strongly suggest you do not use hard coded libraries!

 

The Result

After compiling the Universal Display File (COLORSD) and the Rich Display File (SHOWCOLORD) the corresponding RPG programs, COLORSR and SHOWCOLORR, may be compiled and the program run.

To run the program, login to a Genie session and use EDTLIBL or ADDLIBLE to make sure the libraries where the program files are stored are in the library list. Please make sure that PROFOUNDUI is included in your library list. Then CALL YOURLIBRARY/SHOWCOLORR. This will run your program and you can display the colors after highlighting a color name and pressing the Ok button. 

 


Actions in Order:

  1. Select Silver -> Click Ok
  2. Select Red

  3. Scroll down using ▼ of the scrollbar
  4. Double-click Olive to select and pass to program
  5. Select Maroon -> Press "Enter" on keyboard
  6. Click Exit to exit the program

 

 

The Program in Action

Why Do It This Way?

  1. Restful Aplications
  2. Security
  3. Object Oriented Design 
  • No labels