Components & Managers

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

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...



The libxlsx project has been moved to the Free DocxFactory Project.

The Progress STandard Libraries (STL)

The Progress Standard Libraries

In general the libraries are compatible with Progress version 9 and upwards and are O/S neutral, unless noted differently.

To install the libraries place the slib/ directory in a directory on your PROPATH and you're ready to go, no need to change your PROPATH.

I usually just copy the slib dir to every project I do.

To use a library add the library include file to the external procedure file.

Although the libraries are essentially persistent super procedures.

Temp-table Expositor

Contributed by Jeff Pilant

This program is designed to assist in the generation of output for other programs. Its basic function is to take a temp table and create a file with the contents of the temp table in a convenient form. Output can be to the screen via a browse, or to a file in any of the following formats: plain text (*.TXT), comma-separated values (*.CSV), Excel spreadsheet (*.XLS), Sylk spreadsheet (*.SLK), XML file (*.XML), and Dictionary Definition file (*.DF).

The program is called as follows:

RUN tt-file.p(temp-table tt-name:handle, filename, switch)

Session Variable Manager

The variable manager is a super procedure which can replace the functionality usually provided by SHARED and GLOBAL-SHARED variables, as well as adding functionality such as access permissions.

See "SessionVariableManager" in Amduus code repository:

by Tim Keuhn

Zeno process-spawner

The Zeno processor is a framework of scripts and code that allows the user to spawn off on or more processes on one or more machines to handle requests.

Browse the code (and documentation):

Cache manager

Often in web applications we will need to draw up a large set of result data stored in a table. This often takes a lot of time to pull out of the main tables, collate, and join together fields. This can become expensive on pages only meant to display a portion of the data at a time (the concept of “paging” the data so the web page is manageable to read.) By using a cache manager, it will be easier to store the result set to disk and use some procedures to pull back “pages” of data that we desire.
This manager can be used in Web 1.0 as well as in AJAX type web applications.

4GL Thrown Exceptions

The project is now part of the Standard Libraries project


Unzip the files, make sure they're on the PROPATH and that's it.

Procedure Manager

The procedure manager provides a standardized way of managing when a persistent or super procedure is instantiated, which procedures parent it, how many procedure instances are created, and when they are deleted.

The primary application for this program is enabling writing new PP/SP code with OO style structures, which enables easier development of new code and upgrading existing legacy applications with minimal code impact.

Query Manager

The query manager abstracts commonly-performed life-cycle management of static and dynamic queries, and browses into a standard block of 4GL / ABL code.

This enables a developer to compose a query filter with an arbitrary number of AND conditions by performing a RUN to add each filter condition to a given buffer of the query.

Syndicate content