Chapter 1: Features
Next
Aubit4GL Manual
John O’Gorman (john@og.co.nz)
8 January 2018
Table of Contents
Chapter 1: Features
Section 1.1: 4GL
Section 1.2: Aubit 4GL
Section 1.3: Aubit4GL Benefits
Subsection 1.3.1: GNU, GPL, OpenSource
Subsection 1.3.2: Commercial Support
Subsection 1.3.3: Productive
Subsection 1.3.4: Fast
Subsection 1.3.5: Compatible
Subsection 1.3.6: Engine Independent
Section 1.4: Aubit4GL Extensions
Section 1.5: What’s New
Chapter 2: Install
Section 2.1: Platforms
Section 2.2: Choices
Subsection 2.2.1: GTK
Subsection 2.2.2: PDFLib
Subsection 2.2.3: Which
Subsection 2.2.4: Whither
Section 2.3: But first
Subsection 2.3.1: Binary
Subsection 2.3.2: Source
Section 2.4: Download
Subsection 2.4.1: Filenames
Subsection 2.4.2: Tarballs
Subsubsection 2.4.2.1: CVS
Section 2.5: Build
Subsection 2.5.1: configure
Subsection 2.5.2: Binary
Subsection 2.5.3: Source
Subsubsection 2.5.3.1: Missing Software
Section 2.6: Connect
Subsection 2.6.1: AUBITDIR
Subsection 2.6.2: PATH
Subsection 2.6.3: ldconfig
Section 2.7: aubitrc
Subsection 2.7.1: Binary
Subsection 2.7.2: Source
Subsection 2.7.3: Plugins
Subsubsection 2.7.3.1: Informix
Subsubsection 2.7.3.2: PostgreSQL
Subsubsection 2.7.3.3: MySQL
Subsubsection 2.7.3.4: SQLite3
Subsubsection 2.7.3.5: Others
Subsection 2.7.4: A4GL_SQLACL
Section 2.8: DECIMAL format
Section 2.9: Remote connection to pg8:
Section 2.10: Check
Subsection 2.10.1: Commands
Subsection 2.10.2: Try to compile a simple 4gl hello
Subsection 2.10.3: With database
Subsection 2.10.4: Test Programs
Subsection 2.10.5: For Informix
Paragraph 2.10.5.5.1: Cient SDK
Paragraph 2.10.5.5.2: Check the SDK
Paragraph 2.10.5.5.3: Set Up Aubit
Paragraph 2.10.5.5.4: Try to compile a simple 4gl
Paragraph 2.10.5.5.5: Try to run it
Chapter 3: Set up
Section 3.1: ODBC
Subsection 3.1.1: ODBC config files
Subsubsection 3.1.1.1: Sample odbcinst.ini
Subsubsection 3.1.1.2: ODBC Datasources
Subsubsection 3.1.1.3: Informix ODBC Drivers
Paragraph 3.1.1.3.1: Informix Driver Manager
Subsubsection 3.1.1.4: PostgreSQL Drivers
Subsubsection 3.1.1.5: SAPDB Drivers
Subsubsection 3.1.1.6: ODBC Warning
Subsubsection 3.1.1.7: Native
Section 3.2: Databases
Subsection 3.2.1: Informix
Subsection 3.2.2: PostgreSQL
Subsubsection 3.2.2.1: Overview
Subsubsection 3.2.2.2: Documentation
Subsubsection 3.2.2.3: Installation
Subsubsection 3.2.2.4: Instances
Paragraph 3.2.2.4.1: initdb
Paragraph 3.2.2.4.2: pg_ctl start
Paragraph 3.2.2.4.3: pg_ctl stop
Paragraph 3.2.2.4.4: createdb
Subsubsection 3.2.2.5: Environment
Subsubsection 3.2.2.6: Maintenance
Paragraph 3.2.2.6.1: vacuumdb
Paragraph 3.2.2.6.2: pg_dump
Subsubsection 3.2.2.7: Commands
Subsubsection 3.2.2.8: psql
Subsubsection 3.2.2.9: Stored Procedures
Paragraph 3.2.2.9.1: PL/pgSQL matches function
Paragraph 3.2.2.9.2: $$ quoting
Paragraph 3.2.2.9.3: E escaping
Paragraph 3.2.2.9.4: PL/pgSQL install
Subsection 3.2.3: MySQL
Subsection 3.2.4: SQLite3
Subsection 3.2.5: SQLServer
Chapter 4: Problems
Section 4.1: Curses
Subsection 4.1.1: Wide Characters
Subsection 4.1.2: Encodings
Subsection 4.1.3: LENGTH
Section 4.2: Engines
Chapter 5: Modules
Subsection 5.2.1: Choices
Chapter 6: Aubit4GL Compilers
Section 6.1: A4GL compilers
Section 6.2: 4glpc
Subsection 6.2.1: Usage
Section 6.3: 4glc
Section 6.4: Compiling forms
Section 6.5: Compiling help files
Section 6.6: Compiling menu files
Chapter 7: 4GL Language
Section 7.1: Introduction
Section 7.2: Summary:
Section 7.3: Short Intro to x4GL
Subsection 7.3.1: 4GL Programs
Subsubsection 7.3.1.1: Structure of a program
Subsubsection 7.3.1.2: DATABASE section
Subsubsection 7.3.1.3: GLOBALS section
Subsubsection 7.3.1.4: Functions
Subsubsection 7.3.1.5: MAIN block
Subsubsection 7.3.1.6: DEFINE section
Subsubsection 7.3.1.7: Arrays Syntax:
Subsubsection 7.3.1.8: Records
Paragraph 7.3.1.8.1: Syntax
Subsubsection 7.3.1.9: Associative Arrays
Paragraph 7.3.1.9.1: Performance Note
Subsubsection 7.3.1.10: Constants
Subsubsection 7.3.1.11: DEFINE NEW TYPE
Subsubsection 7.3.1.12: Packages
Section 7.4: Quick Reference
Subsection 7.4.1: Data Types
Subsection 7.4.2: Constants
Subsection 7.4.3: Global Variables
Subsection 7.4.4: Syntax Conventions
Subsection 7.4.5: Operators
Subsection 7.4.6: Aubit4GL Operators
Subsection 7.4.7: Attribute Constants
Subsection 7.4.8: Key Constants
Subsection 7.4.9: Table Privileges
Subsection 7.4.10: Comments
Subsection 7.4.11: 4GL Statement Syntax
Subsection 7.4.12: Report Syntax
Subsection 7.4.13: Report Statement Syntax
Subsection 7.4.14: Report Expressions
Subsection 7.4.15: PDF Report Syntax
Subsubsection 7.4.15.1: PDF Report Expressions
Subsubsection 7.4.15.2: PDF Statements
Subsubsection 7.4.15.3: PDF_FUNCTION arglists
Section 7.5: Builtin Functions
Subsection 7.5.1: Standard 4GL Builtin Functions
Subsection 7.5.2: Standard 4GL Operators
Subsection 7.5.3: D4GL Builtin Functions
Subsection 7.5.4: Aubit Builtin Functions
Subsection 7.5.5: a4gl_get_info()
Subsubsection 7.5.5.1: Connection
Subsubsection 7.5.5.2: Form
Subsubsection 7.5.5.3: Statement
Subsubsection 7.5.5.4: Window
Subsection 7.5.6: aclfgl_ Builtins
Subsubsection 7.5.6.1: Procedures
Subsubsection 7.5.6.2: Functions
Section 7.6: Form Syntax
Subsection 7.6.1: Tag Description
Subsection 7.6.2: Aubit 4GL GUI Attributes
Section 7.7: Callbacks
Section 7.8: Barcodes
Chapter 8: Help system
Section 8.1: Help message source file
Section 8.2: Compiling help files
Section 8.3: help in programs
Subsection 8.3.1: Within 4GL
Subsection 8.3.2: At runtime
Section 8.4: Decompiling
Section 8.5: Compatibility
Section 8.6: mkmess
Chapter 9: SQL Conversion
Section 9.1: Source SQL dialect
Section 9.2: Target SQL dialect
Section 9.3: Configuration files
Section 9.4: Converting SQL
Section 9.5: Conversion Syntax
Subsection 9.5.1: Simple directives
Subsection 9.5.2: Complex Directives
Subsection 9.5.3: REPLACE directives
Chapter 10: Make
Subsection 10.5.1: GNU make
Section 10.1: Makefiles
Subsubsection 10.1.1.1: Include File
Subsubsection 10.1.1.2: Make glossary:
Subsubsection 10.1.1.3: Makefile Example
Subsection 10.1.1: Pattern Rules
Subsection 10.1.2: Make variables
Subsection 10.1.3: GPATH and VPATH
Subsection 10.1.4: .PHONY
Subsection 10.1.5: Implicit rules
Subsection 10.1.6: Syntax
Subsection 10.1.7: Debugging make
Chapter 11: amake
Section 11.1: Introduction
Section 11.2: Summary
Section 11.3: Converting old makefiles
Subsection 11.3.1: prepmake
Subsection 11.3.2: example
Subsection 11.3.3: amakeallo
Subsection 11.3.4: amakeallf
Section 11.4: 2. amake
Subsection 11.4.1: Requests
Subsection 11.4.2: Notes
Subsection 11.4.3: Installation
Subsection 11.4.4: Credits:
Subsection 11.4.5: #DEFINE
Subsection 11.4.6: 4GL Makefiles
Subsubsection 11.4.6.1: Makefiles for Classic 4GL on Unix
Subsection 11.4.7: D4GL Makefiles on Unix
Subsubsection 11.4.7.1: I4GL Makefiles on Unix
Subsubsection 11.4.7.2: NMAKE
Subsection 11.4.8: Bug in ESQL/C rules:
Chapter 12: A4GL Utilities
Section 12.1: adbschema
Section 12.2: afinderr
Section 12.3: asql
Subsection 12.3.1: runforms
Section 12.4: aupscol
Section 12.5: P-Code Dropped
Section 12.6: configurator
Section 12.7: convertsql
Section 12.8: default_frm
Section 12.9: fcompile
Subsection 12.9.1: Builtin Forms
Section 12.10: fshow
Section 12.11: loadmap
Section 12.12: mkpackage
Section 12.13: prepmake
Section 12.14: decompilers
Section 12.15: Internal Apps
Subsection 12.15.1: xgen
Chapter 13: Aubit4GL Packages
Section 13.1: Packages
Section 13.2: channel
Subsection 13.2.1: Dependencies
Subsection 13.2.2: Function list
Subsubsection 13.2.2.1: open_file
Subsubsection 13.2.2.2: open_pipe
Subsubsection 13.2.2.3: set_delimiter
Subsubsection 13.2.2.4: close
Subsubsection 13.2.2.5: fgl_read*
Subsubsection 13.2.2.6: read
Subsubsection 13.2.2.7: write
Section 13.3: file
Subsection 13.3.1: Dependencies
Subsection 13.3.2: Function list
Subsubsection 13.3.2.1: popen
Subsubsection 13.3.2.2: fopen
Subsubsection 13.3.2.3: ftell
Subsubsection 13.3.2.4: ferror
Subsubsection 13.3.2.5: fseek
Subsubsection 13.3.2.6: fseek_from_end
Subsubsection 13.3.2.7: fsize
Subsubsection 13.3.2.8: fgets
Subsubsection 13.3.2.9: feof
Subsubsection 13.3.2.10: fclose
Subsubsection 13.3.2.11: rewind
Section 13.4: memcached
Subsection 13.4.1: Dependencies
Subsection 13.4.2: Function list
Subsubsection 13.4.2.1: mc_new
Subsubsection 13.4.2.2: mc_server_add
Subsubsection 13.4.2.3: mc_add
Subsubsection 13.4.2.4: mc_replace
Subsubsection 13.4.2.5: mv_req_new
Subsubsection 13.4.2.6: mv_req_add
Subsubsection 13.4.2.7: mv_get
Subsubsection 13.4.2.8: mc_aget
Subsubsection 13.4.2.9: mv_set
Subsubsection 13.4.2.10: mv_res_free
Subsubsection 13.4.2.11: mv_stats
Subsubsection 13.4.2.12: mv_delete
Subsubsection 13.4.2.13: mc_incr
Subsubsection 13.4.2.14: mc_decr
Section 13.5: pcre
Subsection 13.5.1: Dependancies
Subsection 13.5.2: Function list
Subsubsection 13.5.2.1: pcre_text
Subsubsection 13.5.2.2: pcre_match
Section 13.6: pop
Subsection 13.6.1: Dependancies
Subsection 13.6.2: Function list
Subsubsection 13.6.2.1: popget
Subsubsection 13.6.2.2: poperr
Subsubsection 13.6.2.3: popbegin
Subsubsection 13.6.2.4: popnum
Subsubsection 13.6.2.5: popbytes
Subsubsection 13.6.2.6: popmsgsize
Subsubsection 13.6.2.7: popmsguid
Subsubsection 13.6.2.8: popgetmsg
Subsubsection 13.6.2.9: popgethead
Subsubsection 13.6.2.10: popcancel
Subsubsection 13.6.2.11: popend
Subsubsection 13.6.2.12: popdelmsg
Section 13.7: smtp
Subsection 13.7.1: Dependancies
Subsection 13.7.2: Function list
Subsubsection 13.7.2.1: set_errmsg
Subsubsection 13.7.2.2: clear_err
Subsubsection 13.7.2.3: set_server
Subsubsection 13.7.2.4: get_server
Subsubsection 13.7.2.5: get_errmsg
Subsubsection 13.7.2.6: start_message
Subsubsection 13.7.2.7: add_recipient
Subsubsection 13.7.2.8: mime_type_new
Subsubsection 13.7.2.9: connect
Subsubsection 13.7.2.10: disconnet
Subsubsection 13.7.2.11: send_to
Subsubsection 13.7.2.12: part_send_file
Subsubsection 13.7.2.13: send_report
Section 13.8: string
Subsection 13.8.1: Dependencies
Subsection 13.8.2: Function list
Subsubsection 13.8.2.1: split
Subsubsection 13.8.2.2: strstr
Subsubsection 13.8.2.3: strchr
Section 13.9: sxml
Subsection 13.9.1: Dependencies
Subsection 13.9.2: Function list
Section 13.10: dynamic
Subsection 13.10.1: Dependencies
Subsection 13.10.2: Function list
Chapter 14: Extensions
Section 14.1: Fake Comments {! ... !}
Section 14.2: Associative Arrays
Section 14.3: Paused Screen Handling
Section 14.4: TODO statement
Section 14.5: ODBC Data access
Section 14.6: Concurrent Connections
Section 14.7: Constants
Section 14.8: Callback Functions
Subsection 14.8.1: CONSTRUCT VIA
Subsubsection 14.8.1.1: VIA Example
Subsection 14.8.2: SORT ... USING sortfunc
Subsubsection 14.8.2.1: Example code
Subsubsection 14.8.2.2: Example 2
Subsection 14.8.3: LOAD ... USING FILTER fname ...
Section 14.9: Error Hooks
Subsection 14.9.1: A4GL_ERRHOOK
Subsection 14.9.2: errlog()
Subsection 14.9.3: Example
Subsection 14.9.4: sample.4gl
Section 14.10: Map Files
Section 14.11: New Types
Section 14.12: Variable IDs
Section 14.13: Passing IDs
Section 14.14: Embedded C code.
Section 14.15: MOVE WINDOW
Section 14.16: WHENEVER
Section 14.17: Multilevel Menus
Section 14.18: Extended DISPLAY
Section 14.19: Extended USING
Section 14.20: Local functions
Section 14.21: get_info function
Section 14.22: a4gl_get_info()
Section 14.23: get_error_details()
Section 14.24: Dynamic Form Fields
Section 14.25: Remote Functions
Section 14.26: LINKED TO
Section 14.27: ON ANY KEY etc
Section 14.28: Compile Time Environment
Section 14.29: SCHEMA v DATABASE
Section 14.30: SESSIONS
Section 14.31: Application Partitioning
Section 14.32: Y2K Runtime Translation
Section 14.33: Globbing
Section 14.34: A4GL Wizard
Subsection 14.34.1: Program Templates
Section 14.35: PDF Reports
Section 14.36: GUI
Section 14.37: Packages
Section 14.38: a4gl IDE
Subsection 14.38.1: Independent Development Environment
Section 14.39: Logical Reports
Chapter 15: ACE reports
Subsection 15.39.1: generate_aace
Section 15.1: aace
Section 15.2: aace_4gl
Subsection 15.2.1: -C Compatibility
Subsection 15.2.2: -I Insert Cursor
Subsection 15.2.3: -B Batch Size
Chapter 16: New Display Clients
Section 16.1: New GUI Front Ends
Subsection 16.1.1: History
Subsubsection 16.1.1.1: TUI
Subsubsection 16.1.1.2: GTK
Subsubsection 16.1.1.3: HL_TUI, HL_GTK
Subsubsection 16.1.1.4: Graphical Front Ends
Section 16.2: VDC
Section 16.3: Requirements
Section 16.4: Ventas Display Client
Subsection 16.4.1: Linux
Subsubsection 16.4.1.1: Source
Subsubsection 16.4.1.2: Binary
Subsection 16.4.2: Windows
Subsubsection 16.4.2.1: Source
Subsubsection 16.4.2.2: Binary
Section 16.5: Proxy
Subsubsection 16.5.2.1: Authentication
Section 16.6: Form Layouts
Subsection 16.6.1: SCREEN
Subsection 16.6.2: LAYOUT
Subsubsection 16.6.2.1: GRID
Subsubsection 16.6.2.2: TABLE
Subsubsection 16.6.2.3: HBOX, VBOX
Subsubsection 16.6.2.4: FOLDER
Subsubsection 16.6.2.5: Container Syntax
Subsection 16.6.3: Field Widgets
Subsubsection 16.6.3.1: Widget Syntax
Section 16.7: Settings/Environment Variables
Subsection 16.7.1: Debugging
Section 16.8: Special functions
Section 16.9: Ventas GUI Client
Subsection 16.9.1: Startup
Section 16.10: Look & Feel
Subsection 16.10.1: Toolbars
Subsection 16.10.2: Images
Subsection 16.10.3: Application Launcher
Subsubsection 16.10.3.1: STYLES
Subsubsection 16.10.3.2: Attributes
Subsubsection 16.10.3.3: Modifiers
Subsubsection 16.10.3.4: Actions
Subsubsection 16.10.3.5: Attributes
Subsection 16.10.4: SSH client mode
Section 16.11: Other GUI clients
Section 16.12: Protocol
Subsection 16.12.1: Testing
Subsection 16.12.2: DTDs
Chapter 17: PDF Reports
Section 17.1: Before you start
Section 17.2: Introduction
Section 17.3: Output Section
Subsection 17.3.1: Fonts
Subsection 17.3.2: Report Structure
Subsection 17.3.3: Extras
Subsubsection 17.3.3.1: Positioning
Subsubsection 17.3.3.2: Images
Subsection 17.3.4: Example program
Section 17.4: Printing generated reports
Chapter 18: Logical Reports
Section 18.1: Invoking a logical report
Subsection 18.1.1: ’Finishing’ the report
Subsection 18.1.2: Converting to "filename"
Subsection 18.1.3: Default layouts
Subsection 18.1.4: Converting to many
Section 18.2: Saved Meta Data
Subsection 18.2.1: The Report Viewer
Subsection 18.2.2: The layout editor
Subsection 18.2.3: The report processor
Subsection 18.2.4: Tips for CSV layouts
Section 18.3: Helper programs
Chapter 19: Debugging
Section 19.1: Coredumps
Section 19.2: Unexpected behaviour
Section 19.3: All other errors
Section 19.4: compiler errors
Section 19.5: Reporting bugs
Chapter 20: Web Services
Section 20.1: 4GL Web Tools
Subsection 20.1.1: Client
Subsection 20.1.2: Server
Section 20.2: WSDL and SOAP
Section 20.3: gSOAP
Subsection 20.3.1: Warning
Section 20.4: wsdl2fgl
Subsection 20.4.1: Client Example
Subsection 20.4.2: Web Server
Subsection 20.4.3: Limitations
Subsubsection 20.4.3.1: Single Threaded
Subsubsection 20.4.3.2: Limited Datatypes
Subsubsection 20.4.3.3: Unsupported Services
Chapter 21: Revisions
Section 21.1: 2010-8-23
Section 21.2: 2006-8-1
Section 21.3: 2005-9-9
Section 21.4: 2005-3-12
Section 21.5: 2004-4-27
Section 21.6: 2004-2-22
Section 21.7: Problems
Chapter 22: Environment Variables
Subsection 22.7.1: Version 1.2
Chapter 23: This Manual
Section 23.1: LyX
Section 23.2: TeX
Section 23.3: LaTeX
Section 23.4: PDF and HTML
Subsection 23.4.1: PDF
Subsection 23.4.2: HTML
Subsubsection 23.4.2.1: Export LyX to TeX
Subsubsection 23.4.2.2: Convert TeX to HTML
Subsection 23.4.3: Makefile
Chapter 1: Features
Next