Tutorial 28 - Creating a Balance Sheet

During this Tutorial, you will create a Balance Sheet Report consisting of several Print Templates and Procedures. You will also learn about the Simulate Posting option.

A Balance Sheet is a snapshot of the cumulative activities ("total since inception"), to a certain point in time ("As At" a given date) and involving Assets, Liabilities, and Equity accounts. This "total since inception" can be derived by summing all transactions since inception (which can be a very time-consuming task) or posting the transactions to a Summary table and retrieving the Summary total for each account. However, whereas accounting transactions are always saved (still editable), they are not necessarily posted (no longer editable) in a timely manner. Consequently, Simulate Posting will deliniate the proper cut-of for the specified "End date" whether or not transactions are posted.

The Simulate Posting option
This option is available with all System "Retrieval" Functions* (not to be confused with the Retrieval object) which act upon the Summary table.

* (TotalSinceInception, YearToDate, DebitAmount, and CreditAmount)
When this option is called for, STEP FORWARD determines first of all whether or not the reporting "End date" is the last day of an Accounting Period and "unravel" posted transactions if necessary:

If the reporting date = the last day of the Accounting Period and Simulate Posting is set to Yes,
the posted Summary total will be retrieved for the specified Period, according the provisions of the Function used, plus the summed-up values for all applicable unposted (but postable i.e. Completed) transactions that fit into the specified date range.

If the reporting date != the last day of the Accounting Period and Simulate Posting is set to Yes,
the posted Summary total will be retrieved for the period previous to the one specified, according the provisions of the Function used, plus the summed-up values for all applicable posted transactions for the partial current period and all unposted transactions that fit into the specified date range.

The TotalSinceInception Function
There are a number of ways of obtaining a precise cut-off (even in a mix of posted and unposted transactions); however, for the purposes of this Tutorial you will be using the TotalSinceInception System function:

The YearToDate Function
This Function is used to obtain the Balance Forward value for an account (or a series of accounts depending on the Retrieval/Search specifications). The Parameters are the same as for the TotalSinceInception Function; however, you have to watch the fiscal year-cut off. In STEP FORWARD you never close the books in the traditional sense i.e. you do not set the Revenue and Expense accounts to zero at the end of the fiscal year. This must be observed and understood when using the YearToDate Function to retrieve a Balance Forward.

Consider the fiscal year end to be December 31, 1998 (as it is in "The Tutorial Company") and you want to run reports for the month of January, 1999 being Period 99/01. The Balance Forward Ending date called for by the Function is December 31, 1998 and will return the 1998 year-end-balance as the Balance Forward. However, being the beginning of a new year the Balance Forward is 0.00 for Revenue and Expense accounts. The solution is simple: use the Period Components function as in the example below where the Period Parameter is the Starting Period specified in your Report starting Parameters.


Exercise 28 - 1, Creating Ten Print Templates
This is not as complex as it may sound. But we chose this route to help you get a feel for the "freedom to be creative" that STEP FORWARD offers you - any report can have as many Print Templates as you wish in order to create any Report that you can conceive. The following ten templates are used to create a single report. For that reason, they must have something in common and that is the page definition consisting of the Page Layout and the Grid Inspector. We used these settings in our examples.

 

The ten Templates are identified as BSHeader, BSSection, and BS1 - BS8. The various Inspector settings are either explained right below each image, or if they apply to several of them as follows:

the Template view - Printing is Start on the next available line for all Templates except the BSHeader which is set to Always start at the new page;
all Templates which have a Header area with the Print field Section heading have insert 1 blank line before printing the fields in their Segment view setting;
all Templates which have a Footer area have their Segment view set to Print when template ends;
all Money fields (however described e.g. S1Total, Amount, etc. - they are obvious) have these Alignment |->| and Formatting settings:
Separate 000's by commas
Precision: 2 decimals
Show negatives as 123-
Sign: Keep



All fields are Title fields (Static) with the exception of the Date field which is a Print field (Dynamic). The Date field's Alignment is |<-| and the Formatting option is Month D, YYYY.
Segment view - Header is Print in both cases; insert 2 blank lines before printing the fields and insert 1 blank line after printing the fields.

Segment view - Body; insert 1 blank line before printing the fields and insert 1 blank line after printing the fields.



Has Header, Body, and Footer segment.

Has Header, Body, and Footer segment.

Has Body, and Footer segment.

Has Body segment only but set insert 1 blank line before printing the fields in the Segment view.

Has Header, and Body segment.

Has Body segment only.

Has Body segment only.

Has Header, Body, and Footer segment.


Exercise 28 - 2, Creating Five Report Procedures
Four of these Procedures deal with different sections of the Balance Sheet:
BalanceSheetA1 = Current Asset Section
BalanceSheetA2 = Fixed Asset Section
BalanceSheetL1 = Liabilities
BalanceSheetS1 = Shareholders' Equity
The fifth Procedure, BalanceSheet, is the only one marked as Selectable as a Report in the Inspector's Legend view because it uses the first four Procedures as Functions (encapsulated Procedures). The reasons for structuring this Tutorial in this manner are:
to teach you the Encapsulated Procedure concept and
to reduce the size of the Balance Sheet executable flowchart Procedure into meaningful chunks whose image can be grabbed for display in this Tutorial.

As part of this exercise, create the five Report Procedures. Most of the Procedures can be configured by you by following the examples. However, the Inspector settings for Retrievals are not obvious and we have numbered the Retrieval objects in each Procedure and listed the settings immediately below each image. In regards to the Print objects, all mapping is automatic with one exception - watch for the explanation. Watch also for the Yes/No Exit orientation of the Condition objects - we don't always use the default settings. All Retrievals use the Query return: Multiple rows (all).

Retrieval Inspector Settings:
1. Search: GL Prefix = 1
GL Number Between 104 and 112
Sort: GL Number ASC
2. Search: GL Prefix Between 2 and 3
GL Number = 120
Sort: GL Number ASC

Retrieval Inspector Settings:
1. Search: GL Prefix Between 1 and 3
GL Number = 210
Sort: GL Prefix ASC
2. Search: GL Prefix Between 1 and 3
GL Number = 214
Sort: GL Prefix ASC
3. Search: GL Prefix Between 1 and 3
GL Number = 211
Sort: GL Prefix ASC
4. Search: GL Prefix Between 1 and 3
GL Number = 215
Sort: GL Prefix ASC

Retrieval Inspector Settings:
1. Search: GL Prefix = 1
GL Number Between 308 and 324
Sort: GL Number ASC

Map (drag from Palette) Local var S1Total against the Subtotal BS6 Print field.



The next Procedure, BalanceSheetS1, deals with the Equity section of the Balance Sheet. One of the component parts of this section is the determination of the net operating results "to date," whether Profit or Loss. In this Tutorial we are guiding you through a net operating result determination method that will sum up all Balance Sheet accounts, reverse the sign (+/-) and, based upon the sign value select a Profit or Loss description for the print line.

The TotalSinceInception will accept in its GL Account field a GL Account Number (hard-coded, or fed to it through a retrieval process using AcctName.[GL Number]) or a list as set up with the Account List editor. In the next Procedure you will be using an Account List named BS, but before you can use it, you must set it up:

1. Launch the Account List editor.
2. Drag-select GL Accounts 104 to 420.
3. Save with the Name as BS and the Description as Balance Sheet Accounts.

The Account List window, with BS selected, should look like this:

And , finally, you combine these four Procedures (which have the Selectable as a Report switch set to No) in the BalanceSheet Procedure (only this one Procedure name of the five Procedures created will be visible in the Select Report panel of the Run Reports function).

You are now ready to test this Procedure and, based on the Opening Journal Entry entered as part of Tutorial 27, the Report should look like this:


Go To
  Tutorial 29 - Creating a Consolidated Income Statement
  Index