Listening Has Always Been Our Strongest Tool!

Just Give Us a Try, we respond to all messages within 1 business day. Really!


How can we reach out to you?






NDA From The Start
We keep your idea safe. We're always willing to sign a Non-Disclosure Agreement with you and fully protect your intellectual property.

captcha

Other Ways To Meet Us :info@zealousys.com
Our Blog
Apr 24
2014

IBM Informix 4GL

By zealousys

IBM® Informix® 4GL is a fourth-generation application development and production environment that provides power and flexibility without the need for third-generation languages like C and COBOL. Informix 4GL Rapid Development System and Informix 4GL Interactive Debugger provides an optimal environment for developing applications, while Informix 4GL C Compiler provides high-performance application execution in the production environment.

Benefits of Informix 4gl with Genero:-

  • It provides tools needed to create sophisticated database applications in lesser time compared to other platforms. It provides three easy packages with one consistent interface. Used together, Informix 4GL Rapid Development System and Informix 4GL Interactive Debugger provide an optimal environment for developing applications. While Informix 4GL Compiler provides high-performance application execution in the production environment.
  • The Civica Code Generator (‘wacgen’ library developed in Informix 4GL) makes more powerful for Rapid Development to achieve below benefits.
  • It generates the code for basic CRUD operations such as (ADD, UPDATE, and DELETE). Hence, it help developers to reduce the redundant work for CRUD operations in every individual form.
  • It also helps in generating the basic search functionality in the same program.
  • It is really an ease to add new menu and menu-items in any 4GL program screen.
  • Less trivial designing issue compared to any other platform benefits developer to concentrate on developing tedious business logic with an extra amount of care.
  • Its rapid development of screen and easy customization helps in meeting customer requirements with less effort.
  • It reduces the pain of maintaining several files used in the same application for different forms by adding multiple data entry forms in the same screen allowing to enter data in different tables and maintain the relationships between them.
  • It also helps in generating excel for all the data used in that program.

We will develop a new screen having multiple tabs through which we can enter data into all the related tables using one single screen.

Below is the basic dissection of all the sections of screen developed in Rapid Informix dynamic server Genero BDS.

There can be a copyright block at the start of the screen.

######################################################################

# # All rights reserved.
# Use, modification, duplication, and/or distribution of this
# software is limited by the software license agreement.
# non_source_form embellished_per

1) Database section: – This section lists all the tables which are going to be utilized in the screen generation.

General Syntax:
database dbname [ ‘@’ server ]
{ list-of-tables }

 

2) Screen Section: Form design is done via nested containers. Parent Containers can be layouts, wizards. All other containers can be child containers of the root containers. Group, folder, page, grid, vbox, hbox, scroll grid, table are types of containers.

layout {
hbox {
grid (group=””) {
textboxA [A1 ]
buttoneditB [A2 ..][AX ]
comboboxC [A3 ..]
radiogroupD [A4 ]
dateeditE [A5 ..]
checkboxF [A6 ]
}
}
}

 

3) Attributes Section: All the attributes declared in the screen design need to be declared over here. All the Attributes such as textbox, text area, radio group, combo box, date edit, button edit declared in the screen section need to be declared over here.

Example:

A1 = tableA.col_nameA, Upshift, comments=”column help “;
A2= buttonedit tableB.col_nameB, comments=”column details”;
A3= combobox tableC.col_nameC, items=(“I1”=”Item1 description”, “B”=”item2 Description”,……),comments=”column details”;
A4 = radiogroup tableD.col_nameD, items = (“o1″=”option1”, “o2″=”option2”), orientation=horizontal, comments = “column details”;
A5 = dateedit tableE.col_nameE, comments=”column details”;
A6 = checkbox tableF.col_nameF, checked=”Y”, unchecked=”N”, not null, comments=”column details”;

 

4) Screen record section : Include all the fields in the screen records such as

screen record s_screenname (tableA.col_nameA, tableB.col_nameB, tableC.col_nameC, ableD.col_nameD, tableE.col_nameE, tableF.col_nameF);

5) Menu section: Include new menu items in this section.All these menu items will get enabled when any record is being searched from the program.

Example: command = command name = found
6) Query section: Normally the CONSTRUCT generated for the Find command only allows the user to enter search values into the fields of the header and detail tables. Commands have been added to allow the programmer to remove some of those fields from the construct, include fields from ancillary tables, and perform some standard actions on the fields such as zooms and lookups.

Example: exclude ‘=’ { field ‘,’… }+
Blocks the named header or detail fields from participating in the Find command
Includes the named fields from ancillary tables into the Find command.
include ‘=’ { field ‘,’… }+

 

7) Browse section: This section manages all the fields of browse section of the screen. We can also add labels to the table field which don’t have any labels in their table declaration.

label = memos=”Memo Count”, svc_grp=”Service Group”

 

8) Function section: This section helps in including or excluding auto generated functions from 4gl programs. Suppose we need to include any function to enable ring menu, we can include in this section.

function
include = ringMenu_enable
exclude = lld_zoom_filter

 

9) Defaults section: This section displays the title of the program. It shows the directory in which program is developed, type of the program it is.

defaults :
title = “ Program name “
module = directory
type = header

 

10) Input section : This section defines the main table which we will utilize in the screen. This section includes table, key, no null, defaults, zooms, look up, filters.All this information is declared in this section. Their can be multiple input sections in the screen. But only the first section will be in the header section. Rest of all the sections will always in grid form.

Input 1
table = tablename
key = primary key of the table.
nonull = list fields which should remain possess some value in the it at the time of submission of form.
default = this sections field will remain default.
Zoom = list all the zooms declared in the screen section over here.
Lookups = list all the lookups here.

Below is the code of a full-fledged 4gl program which allows entering values in employee table for a company database.

###################################################################### All rights reserved.
# Use, modification, duplication, and/or distribution of this
# Software is limited by the software license agreement.
# Sccsid: %Z% %M% %I% Delta: %G%
######################################################################

Database Company

Employee

layout {
grid (group=”Employee Master”) {
No [A1 ]
Name [A2 ]
Role [A3..] [A4 ]
Job Type [A5 ..]
Gender [A6]
Address [A7 ]
[ ]
[ ]
[ ]
[ ]
Date of Birth [A12 ..]
<G G01 >
Accounting [A13]
I.T/I.T.E.S [A14]
}
}

G01 GROUP : align, text=”Skills”;
A1 = employee.emp_num, comments = “Employee Number”;
A2 = employee.emp_nam, comments = “Employee Name”;
A3 buttonedit = employee.role, comments = “Employee Role”;
A4 = employee.rol_dsc, comments = “Employee Name”;
A5 combobox = employee.job_typ, items=(“F”=”Full Time”, “P”=”Part Time”, “C”=”Casual”), upshift, comments = “Employee Job Type”;
A6 radiogroup = employee.gender, items = (“L” = “Male”, “U” = “Female”), comments = “Gender”;
A7 textedit = employee.address, scrollbars = none, comments=”Address”;
A12 dateedit = employee.birth_dte, comments = “Birth date”;
A13 checkbox = employee.skill1, not null, checked=”Y”, unchecked=”N”, comments = “Employee skill 1″;
A14 checkbox = employee.skill2, not null, checked=”Y”, unchecked=”N”, comments = “Employee Skill 2”;

screen record s_employee (employee.emp_num, employee.emp_nam, employee.role, employee.rol_dsc, employee.job_typ, employee.gender, employee.address, employee.birth_dte, employee.skill1, employee.skill2)

menu
command = memo
command = desktop

query
exclude = skill1, skill2
include = emp_nam, role

browse
label = emp_nam = “Employee Name”,
role = “Role”,
job_typ = “Job Type”,
gender = “Gender”,
address = “Address”,
birth_dte = “Birthdate”,
skill1 = “Skill1”,
skill2 = “Skill2”

defaults
title =”Employee Master”
module = employee
type = header
init = 1=0

input 1
table = employee
key = emp_num
nonull = emp_num, role, job_typ, gender, address, birth_dte, skill1, skill2

info-4gl

Image Courtesy of civica.com.au

  • Good firms
  • Clutch
  • Microsoft Partner
  • Google Agency Partner
  • D & B Partner
  • Adobe Solutions
View My Stats