Perhaps, like me, you are disturbed by all that wasted empty space at the right of the screen. Makes you wonder if this spreadsheet was designed for the 95LX or if it's a garden variety. Moving the cursor right you will find a generous 46 character column for entering descriptions. Moving farther to the right you will find columns for entering specific types of expenses and at the far right a total column.
Let's do a little editing to get the spreadsheet better fitted to the 95LX's screen. Move the cell pointer back to column A and set this column to 8 characters wide (press <MENU> Worksheet Column Set-Width 8 <ENTER>). This will provide a column wide enough to capture the day and month but will, unfortunately, mess up some descriptions at the top and bottom of the expense report. We will deal with this later.
Now move the cell pointer to column B and set column width to 28 characters, which is probably enough to describe most expenses. It is more space than my company gives me on its expense report form. Column A and column B can now be displayed on the screen simultaneously. Move the cell pointer back to column A.
When I am exploring a strange spreadsheet the first thing I do is look for macros. 1-2-3's macro language is a powerful programming language that lets commands be coded and automatically executed as if they had been typed on the keyboard. It is a real time saver for repetitious exercises like printing or simply moving from one part of the spreadsheet to another. Macros are range names (\A, \B, ...\Z, \0). The macro named \0 executes automatically whenever the spreadsheet is loaded. Other macros are executed by holding down <ALT> and pressing the appropriate letter key.
To find the macros in _EXPENSE.WK1 press F5 (GOTO), then press F3 (NAME) twice to display a list of range names. Use <Down Arrow> to scroll to the end of the list and you will see three macros: \A, \B, and \P. The instructions indicate \P is a printing routine. Place the pointer on \P and press <ENTER>. If you did this right the cell pointer should be at cell B64 and, oops -- there is nothing there! Look at the upper left of the screen and you will see: B64: (H) PR [W28]. This tells us the cell pointer is located at cell B64. [W28] indicates the column is 28 characters wide, PR indicates the cell is protected and that the worksheets global protection is enabled. Try writing in the cell. You will not be able to. To disable the worksheets global protection, press <MENU> Worksheet Global Protection Disable) and watch what happens. The contents of the cell are now displayed at the top of the screen, but still not visible at the cell pointer. (H) indicates the cell is hidden. If you move the cell pointer left to column A, you will find another hidden cell. There are a number of hidden cells in this part of the spreadsheet. Let's make them visible by resetting to the default format. Press <MENU> Range Format Reset. Press <Down Arrow> until the cell pointer is at cell A87. Press <Right Arrow> until the cell pointer is at cell E87, and press <ENTER>. This will unhide a bunch of macro commands.
Since the spreadsheet is no longer protected, it is easy to overwrite these cells, but that's nothing to worry about. The original spreadsheet is permanently etched into ROM -- just reload it and start over.
If you are going to modify and experiment with a spreadsheet, it must be unprotected. I don't know any serious spreadsheet user who gets a spreadsheet application developed to the point where it's perfect and needs no further tinkering.
I also have never seen a spreadsheet application that could be effectively used by someone with no knowledge of 1-2-3. And I most certainly have never seen any knowledgeable 1-2-3 user be satisfied with the logic in a spreadsheet developed by someone else. I know I can improve every spreadsheet on the 95LX.
Macro \P begins in cell B64. Ranges in 1-2-3 may be assigned more than one name. Cell B64 is also assigned the name PRINTRPT as indicated in the adjacent cell in column A. If you scroll down this column, you will find the names of several more ranges beginning in column B. This is a very good technique for macro programming. Identifying the location of named ranges avoids confusion and makes locating key codes easier.
In addition to the previously mentioned slash (MENU) commands, macros can incorporate @ functions and 50 so-called "advanced macro commands." These commands are embraced by { } "French brackets". As you can see, this spreadsheet uses a number of these advanced macro commands. I'll let you look up the commands {indicate} and {windows off} yourself, but I want to explain {menucall __}, since it is one of the most useful of the macro commands. It permits developing sliding bar menus almost indistinguishable from 1-2-3's to control macro execution. My spreadsheets always have an <ALT>-M macro that activates a menu to access other macros on the spreadsheet. It's much easier to remember <ALT>-M than a bunch of other ALT commands.
If the <ALT>-P macro on this spreadsheet is activated, it will display a menu of printer options. This menu begins at cell B73, which is named SELPRINT, and contains the first option. The next cell down explains the option and the cells below this contain macro code to implement the option. Other options are contained in adjacent cells to the right.
This spreadsheet uses an interesting technique to send setup strings to the printer. Depending on the options selected, setup strings are copied from a storage area to cells in column A at the beginning and end of the print range. The first string sets the printer to print the expense report and the second string resets the printer to default values. These strings can be found at cells B70 through C71. Take a look at how they are formatted. This technique is sort of mentioned at the top of page 2-22 of the 95LX User's Guide, but it is not very well explained. I don't know if this technique is of much use to the 95LX, but on other computers it may be the best way to send complicated LaserJet setup strings exceeding the length of setup strings permitted within the /Print command.