Call us toll free at (877) 988-1099

4Q Demos

To download a free, fully functioning copy of our software, please go to our demos page.

See What 4Q Looks Like

We now have a series of short QuickTime® movies that demonstrate 4th Quarter®. You can run these from your browser by visiting our Product Tours page (or visit the non-flash version of the Tours page).


Database development is a remarkably complex area of computer technology requiring a comprehensive knowledge of database programming, interface design, business rules and software design. Every job we've done has required extensive communication and education between us and our clients.

For the past ten years Braided Matrix has been working to make the learning process easier by creating educational material. Our more general material has appeared in Dimensions Magazine and 4D Zine. 4th Quarter Developer Notes, that explain the detailed workings of our products, are available to licensed users of 4th Quarter.

All of the documents here are pertinent to the 4Q Shell, 4th Quarter Core, and the 4th Quarter Full application.

Click on a title to open the document using Adobe Acrobat. To download a PDF version to your local machine click on the link and hold down the mouse button. Select the "Save This Link As..." option and save the file in the "source" format. You will need the Adobe Acrobat PDF viewer to open or print these documents. All documents are in PDF format unless otherwise noted. Documents in html format are specially marked.

These documents range in size from 6 to 60 pages each. The average file size is 40k. Files over 250k are noted.

Need to download an Acrobat Reader?

White Papers

4D Embedded Database Cost of Ownership Study

Aberdeen Group: May 2001

Examines the cost of ownership of 4D, Inc. 4D version 6.7 embedded database versus industry average for embedded databases.

4th Dimension, MS Access, and FileMaker Pro: A Comparison

This document examines the following products: MS Access, FileMaker Pro, and 4th Dimension. It focuses on the ability of these three products to meet the needs of a middle range of system requirements.

4th Dimension's Low Administrative

Many companies have chosen 4th Dimension (4D) for its power, flexibility, and reliability. For most companies though, 4D’s low administrative requirements are often the most important factor in selecting 4D as their application server.

Designing Web Services — The View from 60,000'

This overview is for developers interested in creating web services. It discusses what web services are, why you
should be interested in them, and what risks you should be aware of.

4Q Investment Summary

An overview of the opportunity and growth plans for 4th Quarter in the business software marketplace.



4Q™ Product Descriptions

4Q's Features & Benefits

Tabular list of those features that make 4th Quarter unique, and how these features benefit you.

4Q Specifications

Itemized list of 4Q's current functions, arranged by topic.

4Q Product Description

General description of 4th Quarter and where it fits in the universe of accounting products.

4Q Customization

Description of the consulting, project management, programming, training, and installation services that we provide to users of 4th Quarter.

Introduction to Multi-Currency

An overview of the extensive features in 4Q's optional new multi-currency module.

4Q Custom Import/Export

4Q offers a customizable interface for the import and export of relational data. 4Q's system is built on configurable screens and generic code to provide intelligent, monitored import.



4Q Shell

150 pages, 450 K

4th Quarter Tutorial

190 pages, 1.0 Mb

130 pages, 2.8 Mb

20 pages, 1.6 Mb

4th Quarter User's Manual v3

790 pages, 18.5 Mb

4th Quarter Administrator's Manual

300 pages, 4.7 Mb


4th Quarter Training Materials (password required)

These notes accompany our training classes. We offer 3 levels of training:

  • Level 100 for end users.
  • Level 200 for administrators and installers.
  • Level 300 for programmers and developers.

Classes are offered on an "as requested" basis.
Let us know if your interested in attending a class and we'll let you know when the next class is scheduled.

4Q Training - Level 100
(250 pages, 2 meg)

Core Accounting
Interface Overview
Control screens
Maintenance screen
User preferences

Chart of Accounts
General Transaction
Using Journals
4Q Installation & Setup
Cash Accounting
General Transaction
General Ledger
Financial Reports

Full Business System
Purchase Orders

4Q Training - Level 200
(376 pages, 2.5 meg)

Core Accounting

Chart of Accounts
Cash Accounting
Journal Reports
Transaction Templates
General Ledger
Accounts Receivable
Accounts Payable
Financial Report Editor

Full Business System
Purchase Orders

DB Administration
Installation & Set Up
Administration Settings
Importing Data
Low-level Customization
High-level Customization

4Q Training - Level 300
(336 pages, 6.7 meg)

User Issues
Core Accounting
Overview of User Areas
Chart of Accounts
Transactions, Ledgers & Journals

GL & Reporting
Journal Reports
Cash Journal
AR & AP Journals
Maintenance Screen

Developer Issues
Integrating Data & GUI
Combining Structures
Control Screens
Shutdown Integrating Accounting
Programmatic Chart of Accounts
Programmatic Account Creation
Programmatic Transactions

Code Management & Examples
Query, Report, & Custom Check Hooks
Customizing 4Q's Input/Output Forms
Method Patching
Debugging Tips
Version Control
Sample Systems


4th Quarter Developer's Notes

Database Design

Strategies for Complex Projects

General guidelines for organizing a programming project that involves several programmers.

Working Toward Step One

A method for deriving a 4D file structure from a description of required functions.

Debugging Chronicles- Chapter #1

How to improve the programming process by recognizing the common problems that plague custom applications. Chapter 1 includes the following sections:

1.2-Understanding the Problem
1.3-Understanding the Object
1.4-Adequate Specifications
1.5-Flexible Coding
1.6-Programmer Inexperience

4D versus SQL

Focusing on the difference between 4D and SQL in their ability to search the datafile.

Database Programming

Squeaky Clean — Black Box Methods with Soap

Developers interested in creating and publishing their own web services need to understand the new middle-ware design requirements of a web services server. This paper recommends certain designs for web services.


Group to Group Relations

A method for locating groups of records in one table with a group of records in another table. This powerful technique incorporates both the Joins and Projections in a single operation.

Implementing a Multi-Window Choice List

Describes how to create a choice list that opens in a separate process so that the list of choices appear in an independent (nonmodal) window.

Managing Multiple Record Entries, Part I
Managing Multiple Record Entries, Part II

An essential description of the various ways that record locking can be accomplished across multiple tables.

Maintainable Code I: Naming Conventions
Maintainable Code II: Clarity
Maintainable Code III: Stable Code
Maintainable Code IV: Modularity

The basic concepts behind writing robust, maintainable code: careful design and adherence to discipline.

A Temporary Subrecord Method for Entering Related-Many Records

Describes how 4th Quarter uses subrecords for temporary storage of information during data entry. This is an important alternative to the use of arrays.

Standards for Modular Programming in 4D

This PDF document is a first attempt at providing standards for modular coding in 4th Dimension. Modular programming is concept that's basic to understanding and using 4th Quarter Accounting.

Database Accounting

Database Accounting 101a

Basic primer on implementing accounting functions in a database.

Structure of Accounting Systems: How to Store Accounts

Describes the basic concept of a generic table that stores all account information. This is one of the essential components of 4th Quarter's patented design.

Accounting the OO and RDB Way

Part I: Concepts
Part II: Methods
Part III: Application

This presents the basic concepts behind the design of 4th Quarter and explains why these concepts represent a milestone in the design of accounting applications.

Accounting Transactions

Part I: Debits & Credits
Part II: Cash Transactions
Part III: Batch Processing
Part IV: Invoices

An in-depth discussion of the different ways accounting transactions are handled in 4th Quarter.








Developer's Tech Notes

The following technical notes provide detailed explanations of the mechanisms of 4th Quarter Accounting Solution. They cover topics pertinent to the 4Q Shell, 4th Quarter Core, and the 4th Quarter Full application.

Each note is listed along with its table of contents. Licensee's of 4th Quarter products are given passwords enabling them to access these documents.

If you are interested in a particular document and are not currently a customer of ours, then drop us a line and we will email you the document directly.

#1.1 - Data Dictionary (4Q Full)

Describes all tables and fields in the Full version of 4Q.

#1.2 - Data Dictionary (4Q Core)
Describes all tables and fields in the Core version of 4Q.

 #2 - Procedure Call Tracing

What is Procedure Call Tracing?
When to use Call Tracing
How to use Call Tracing
How Call Tracing Works

#3 - Naming Conventions

What are naming conventions?
When to use naming conventions
Naming conventions are used in 4th Quarter

#4 - Sample Code

Presenting the Search Screen
Search Screen Form Method
Code to Perform the Search
Other Supporting Methods

#5 - List Management Screens

What are the List Management Screens?
Designer List Management
the Account and Transaction Lists Management Screens
the Data Transfer User Area - a Review
the Record Transfer Lists Screen
User List Management Screen and Storage Mechanism

#6 - Use of the Menu Bars

The Menu Bars
Menu Bar Library
Adding Menu Bars
Moving Menu Bars into 4th Quarter from Other Applications
Exception: Menu Bar #1
Recording Menu Bar Changes

#7 - Password Protection of Accounting Functions

What is password protection?
How 4D Groups are assigned.
The Required Groups: Design, Administration, Restricted, Payable, Cash Withdrawal.
How the Administrator manages password protection.
Example: potential users
How to add or modify password access.
Groups assigned to menu items.
Groups assigned to procedures.

#8 - The Quit Loop

What is the Quit Loop?
Quitting Gracefully
Interprocess Messaging
Determining Which Processes to Message
How Processes Respond
Getting Messages
Handling Exceptions
the _SYQuitLoop Procedure

#9 - Handling Multiple Processes in 4Q

What are Multiple Processes?
Performance and Multiple Processes
How Processes Use Memory
How 4th Quarter Handles Multiple Processes
Protected Processes
The Control Screen and the User/Runtime Process
4th Quarter's System Process Procedures
Procedures for User Area Processes
Interprocess Messaging
Menu Structure

#10 - Resizing the Output Screen

What is Output Screen Resizing?
When Output Screen Resizing is Used
How Output Screen Resizing Works
The .SYSetWindSize Procedure
How to Use Output Screen Resizing

#11 - Version Numbering and Version Control

Version Numbering
What is Version Control?
Using the Version Control Application
How to Update the Structure

#12 - Assigning ID's and Updating Counters

What are ID's and Counters?
When to Use ID's
The ID_Number File
Assigning ID's
The .SYIncrmntSeqNm Procedure
The Procedure_Lock File
Resetting Counters
Creating Your Own Counters

#13 - List Dictionary

4th Quarter Lists
List Dictionary

#14 - Modifying 4Q Procedures Using Patching

What is Procedure Patching?
When to use Patching
How to use Patching
Combining Pre- and Post-Patching
Initializing the Pre- and Post-Patch Tables
Multi-programmer Patching

#15 - Types of Transaction Records

What Are Transaction Types?
The Different Types of Input Layouts
List of Types
How Transaction Types Work
Using Existing Types and Defining New Ones
Where to Record Your Custom Types
Why Define Types?

#16 - Using 4D Insider Libraries

What are 4D Insider Libraries?
Using Libraries for Code Management
Setting up 4D Insider
How to Use Libraries
How Libraries Work

#17 - Invoice Transactions

What are Invoice Transactions?
The Role of Invoice Transactions in Customization
Invoice Layout Procedure
The Invoice Entry Sequence

#18 - Application Version Numbering

Multiple Applications, Multiple Versions
Where Versions are Stored
Uses of Version Numbers
The "vers" Resource

#19 - Managing Transactions

Accounting Transactions
Linking Transactions to Other Objects
Transaction and Account Updating
Creating Transactions Using Arrays
Creating Transaction Components Using Subrecords
Modifying Transactions
Deleting Transactions
Procedures List

#20 - Default Accounts

What are Default Accounts?
How Default Accounts are Used
When Default Accounts are Created
How to Modify Default Accounts
When to use Default Accounts
How Default Accounts Work
Appendix I: Creating Default GL Accounts
Appendix II: Common Used Default Accounts

#21 - Inventory Accounts

What are Inventory Accounts?
How Inventory Accounts are Used
Custom Inventory Accounts
Default Inventory Accounts and GL Accounts
Modifying Inventory Accounting

#22 - Replacing Boolean Fields

Problems with Boolean Fields
Replacements and Extensions
Database Updating Procedure
Consequences of the Change
Testing Boolean Alternatives

#23 - Assigning Accounts

The Use of Accounts
General Ledger Accounts and Accounts
Creating Accounts
Updating Accounts
Deleting Accounts

#24 - Messaging

What are Messages?
When to use Local IP Messaging
When to use Global Semaphores
How to Use 4Q's Local Messaging
How to Use 4Q's Global Semaphores
Other Methods

#25 - Merging Applications with 4Q

Creating the Combined Code Base
Rearranging Tables
Joining Structures
Combining Code - Supporting Items
Combining Code - Methods & Variables
Combining Forms
Other Code Elements

#26- Installing an Alternate Control Screen

Integrating Control Screens
The 4Q Control Screen
4Q Hooks for Installing an Alternate Control Screen

 #27 - System Module Methods

System Module
Methods by Function
Alphabetical List of Methods

 #28 - Updating a 4Q Structure File

The problem of updating a 4Q structure file
When to update the structure
The new DB Field List function
The "4Q Structure Changes" document
Using BBEdit to find structure changes
Performing the update
Altering 4D Insider
Even 4Q Core users need to update 4Q Full tables

 #29 - Product Serialization

What is Serialization?
Serialization Supports Modules
Serialization in Source Code Versions
The Database User Table
Entering New Serial Numbers

 #30 - Custom Checks

What Are Custom Checks?
Printing Custom Checks
Installing the SuperReport Plug-in
Creating a Custom Check in SuperReports
Required Variables
Admin Default Setting

 #31 - Custom Import / Export

4Q's Data Transfer System
Automatic I/O Functions
Adding to the I/O List
Setting Up a New I/O Structure
Using the New I/O Form
Importing Related Table Data



Developer Program

4Q Product Description for Developers

General description of the product that includes information on the 4Q certified developer program.

4Q Developer Policy

Discusses benefits and requirements for certified 4Q developers.

If you have questions about these documents or would like to know more about using these documents please email us directly.

Need to download an Acrobat Reader?

[ Home Page]