OE Techniques and Coding

Code samples, whitepapers, and discussion on techniques for using various ABL features and solving various requirements faced in writing ABL code.

Code Samples

Small fragments of ABL code which illustrate some principle or technique

Coding Standards and Best Practice

Discussions and Examples related to coding standards and best practices in developing ABL applications

Components & Managers

Code samples which are unifed components or managers ready to be incorporated in other code

Interfaces to Other Languages or Databases

Code and tools for creating a connection between ABL applications and other language systems or databases


Code, discussions, and whitepapers related to the use of object-oriented techniques in coding ABL applications.

Operating System and Application Interfaces

Information and examples for interfacing ABL applications to the operating system and common applications such as word processors, spreadsheets, and e-mail


Documentation and examples on how to use ProDataSets


Code, discussions, and whitepapers related to reporting from ABL applications

UI design guidelines

General User Interface design and review guidelines

Web Services & Other Integration Technologies

Whitepapers and code samples related to webservices and other related integration technologies.

Web UI Development

This section covers WebSpeed, Ajax, eScript and any other technology for creating and deploying browser user interfaces (WUI).


Tools and samples related to the use of XML

Using .net user control with 4GL (adm2) container

The sample shows how a .net user control can be used with an ADM2 container. There is no specific support for ADM2 otherwise (links, etc) but it should be quite possible to modify the window super-proc to support automated display of date values in a date picker, f.ex, along the lines it's done for the JukeBox framework.


Super proc for container that keeps track of control(s) in window, (re-)creates the window menu as .net menu and manages resize of control(s)


The DocxFactory Project

DocxFactory is a free project for generating .DOCX files.

Features at a glance -

  • Simple to use - To create a .DOCX file, design a template (regular .DOCX file) and merge your data with the template using 4GL/ABL or from the command line. No technical knowledge of the .DOCX file format (Open XML) is required.
  • Powerful - Does a lot more than simply inserting values and creating simple letters, it allows you to truly create real world, sophisticated reports and includes barcodes, pictures, paging features and much more.

Progress 4GL Wrapper for Zlib Library

Gzip encoding for Progress 4GL based on zlib library written by Jean-loup Gailly - http://www.zlib.net/

Date Picker in pure ABL

This Time picker is written pure in 4GL/ABL. No need to using any other ocx. I written this tool because I don't like to use MS products much... :)

This code is written in Turkish but I'm sure it's easily to convert other languages by coder...


Marginal Tiete - progress game

I made this game to emulate Atari's Grand Prix.
You can use this code to view how to use dynamic objects and other functions like includes, and methods.

1. Extract all files,
2. Select car.p and right click, choose RUN under window's context menu or open it with progress procedure editor.

Skype me jaison.antoniazzi for questions.

Enjoy :D

Best regards,
Jaison Antoniazzi

Haversine implementation in ABL

This is the Haversine formula translated into an ABL procedure. The Haversine formula is used for determining the Great-Circle distance in km between two latitude/longitude references.

The formula is based off the Javascript interpretation here: http://www.codecodex.com/wiki/Calculate_Distance_Between_Two_Points_on_a...

Requires Progress STandard Libraries with math_asin function uncommented (see http://www.oehive.org/node/2057)

New Version of base64encode.p

Dries Feys was good enough to send out a new base64encode.p file over the peg. I am posting it here for further distribution (and use!)

(Note: Some have said they have had problems with this.)


abljsonabljsonJSON Parser for Progress ABL is a "wrapper" for the cJSON parser - ultra-lightweight, portable, single-file, simple-as-can-be ANSI-C compliant JSON parser.

The reader object can be used to load and parse a JSON string from either a file on the file system or from a character, longchar or memptr variable.

Web Services Deployment

Hi, Some One has an complete example of deploy and consumption od Web Services in Progress


A reusable .p that gives you the contents of an xml in two temp-tables (elements and attributes).
See the fileheader for a how-to-use.

Syndicate content