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


OOABL

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


ProDataSets

Documentation and examples on how to use ProDataSets


Reporting

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


XML

Tools and samples related to the use of XML


DOM Tool Kit

Working with the DOM ABL statements can be a bit grueling. This tool kit makes four easy to use procedures and functions to read any given instance of an XML document tag's data or it's attributes based on the ideas found in Javascript.

A sample use:

Given

 
<?xml version="1.0" ?>
<Books>
  <Book>
     <Title subject="SciFi" entry="one">War OF The Worlds</Title>
  </Book>
  <Book>
     <Title subject="SciFi" entry="two">Battlestar Galactica</Title>
  </Book>
  <Book>

Code Standards - developing a manual

I am working on a manual of code standards for my division, and would appreciate input about this. I've incorporated (or adapted) many of the entries from the prolint lists of bugs, style improvement, performance enhancements, etc. Of course this will be a combination of helpful advice, common sense, ways to make the code more readable and re-usable, and ways to prevent problems down the line.

I will appreciate any suggestions or ideas that are sent in.


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.


Directory Tools

dir-tools.p can be used to work with files and directories and:

* obtain file information for a specified directory level or for an entire directory tree.
* compile programs and saving r-code to a target directory tree
* copying files and directories
* merge multiple directory trees to a target directory path
* delete files, directories, and directory trees
* show a status to the user as it works


ganimede - transaction server

The goal of this project is to make possible to access Progress database from any external program that can use sockets. The server (broker and agents) are written in Progress 4GL and made use of sockets capabilities of Progress V9.


Pure4GLTv a clone of the MS treeview in pure ABL

This object provides an alternate solution to using a treeview OCX, and demonstrate the power of ABL to achieve fast and sophisticated UI Objects. It supports all the basic treeview features, as well as drag and drop, node moves, popup menu's, plus it can load nodes in a very fast way (1000 nodes in 0.73 seconds on a 2GHz CPU, so faster than the MS OCX).

pure4glTv works fine on Linux with Wine (where a few OCXs can make problems) so it helps to open the door to this configuration. The package includes sample code and documentation. Last update in January 2007. On July 2006: Restructuration regarding support of mulitple skins (XP Luna, Royale and Classic included). A few new API's like getSelectedNodeKey(). New expandAll functionality on '*' key.


ABL(4GL) General Code Samples Book

This is the top level book/outline node for some general ABL (formerly known as Progress 4GL) code samples. This includes code snippets, code examples, utility programs, tricks, techniques, and patterns. There are other books and libraries for more specific topics, such as Win32 API programming and OO programming. This book is a more general catch-all.


ProDataSet mimimal case read example

This is a minimal case example of using a ProDataset to marshal data from one TT to another TT. This code was written to demonstrate how a data-source, dataset, and a set of temp-tables are structurally assembled to read data from one table into another table.

   /* Procedure Temp-Tables         */

DEFINE TEMP-TABLE tt-src   NO-UNDO
   FIELD i1    AS INTEGER

   INDEX i-i1     i1
   .

DEFINE TEMP-TABLE tt-tgt   NO-UNDO
   LIKE tt-src
   .

   /* Procedure Variables           */

DEFINE VARIABLE cur-cnt    AS INTEGER     NO-UNDO.
Syndicate content