The CourtRoom Programâ
Service Education, Inc.
History and Company Profile
Located in Penfield, New York (near Rochester) Service Education, Inc. (SEi) was founded in 1983 originally as a documentation development company specializing in developing documentation and training materials for the high-tech companies in and around Rochester, New York. As part of the training for printer products and scanning devices, they produced several specialized diagnostic software products. As an outgrowth of the software side of the business they started developing database software for inventory tracking and political campaign management. When they were approached in 1986 to develop a program to manage court cases in the Courts of New York State, it looked like a fairly small project that would take 2 or 3 months and not lead to much maintenance work. Now fourteen years later 'The CourtRoom Program' is their flagship product and the support effort for over 700 installations is a full time project for the company.
The Switch to Windows
Since the early 1990s our customers have been asking for a ‘Windows’ version of our software. At first I tried to dismiss the requests and justified the DOS based application on speed and ease of use. After all the entire program was menu driven and many of our users had never used a computer before learning to use The CourtRoom Program. However, the tide was turning and there was no way to hold it back forever. The final handwriting on the wall was when the Windows only printers started to consume a major portion of our support time. So in early 1998 I purchased a copy of Xbase++ along with several other development languages that now decorate my shelves. Several months of experimenting followed; exploring the various possibilities for converting our Summer ’87 Clipper application to ‘Windows’. In October 1998 I handed off the day to day support responsibilities to my partner and support staff, locked myself in my office and figured ‘2 or 3 month and this will be done’. How could I have been so short sighted?
A week into the project I had a fairly nice looking login screen, and a rapidly growing pile of new feature requests from the customers. Everyone saw this as their chance to ask for features that they had been secretly wanting for years. The structure of the databases that had seen only minor revision since 1987 was totally revised and the basic reference element that holds all our databases together was changed. I was spinning down into a very dark pit, and to make matters worse I was finding more and more problems with setting up basic procedures and functions in Xbase++. It was at this point where I was about to throw in the towel that I learned of a product called eXPress++ that might be of some help.
I drove to Cleveland, Ohio to meet with Roger Donney, and found the life preserver that I needed to keep my head above water. I learned more about Xbase++ from Roger in a few hours then I had in the past year. It was then and there that I decided that Xbase++, even with it’s limitations was the way to go for my product. Several other third party products have been purchased in the past year, however eXPress++ was the key that unlocked the door to the world of Xbase++ and Windows.
Other products that should be mentioned:
TOP DOWN – Clayton Jones has produced an excellent product and I use his source code often when I need an example of good programming technique.
XIDE – I use this product to get a rough layout for all new screens.
SQLexpress – I hope to eventually do client server databases, but I need to do more work in this area.
JazzAge – I used this as my first interface to VPE (see below) and may go back to this to solve some Windows message problems, again I need to do more work in this area.
VirtualPrintEngine – VPE has solved the printing interface for me. The people at Ideal Software were very helpful. The most expensive add-on library I have ever purchased, but worth it. No more printer drivers to worry about and total compatibility with all windows. If you can print the Windows test pattern to your printer, VPE will handle your printer interface period.
When I started the conversion to Xbase++ I intended to use XbpCrt Screens, with the idea that I would convert later to full GUI XbpDialogs. After discovering eXPress++ and Roger Donnay, it just did not make sense to continue with that plan. Without Roger's wonderful product and tireless help this project with it's full GUI interface would not have been possible in the time frame that I had to work with.
Programming is indeed fun again. Thank you Roger, Clayton and the entire Xbase++ community .
Terry Wolfe, President, Service Education, Inc.
Visit their website at http://www.ServiceEd.Com
Below I have included some of the screens from The Windows and DOS versions of The CourtRoom Program.

Figure 1 The Log In Screen

Figure 2 The MainMenu Screen (with logo)
The fifteen mainmenu items and many of the submenus from the old mainmenu screen (Figure 3) have been regrouped into the five menu items as shown in Figure 2. I also added a place for the Court Seal as shown in the middle of Figure 2. When the program starts, it looks for a file called Client.BMP if found, it is displayed as shown. If the court does not have a seal the court name is converted to a bitmap at run time and shown as in Figure 4. This feature can be switched on or off as one of many options in the court.ini file.

Figure 3 Old MainMenu Screen

Figure 4 The MainMenu Screen (w/o logo)
When adding new cases the operator is first presented with the screen shown in Figure 5. This is one of many option selection screens designed to work with either keyboard or mouse input. For the old DOS program users this is a very easy screen to learn since it looks almost identical to the screens they are used to, and it reacts to the same key strokes.

Figure 5 Add Case Selection Screen
Figure 6 shows one of the totally redesigned screens. The use of tab pages simplifies screen layout and the ability to just tab or hit enter through the data entry fields makes the DOS users feel right at home. Hitting the Enter key in the last field (comment) takes you right on to the Charges Tab page. Early feedback from the beta test sites really like this feature.

Figure 6 Add Case Data Screen
The use of DC_FindBrowse has also been well received for the lookup of names, zip codes, law codes etc. (See Figure 7)

Figure 7 Add Case Name Selection Screen
Figures 8 and 9 show the similarity of the DOS and Windows Search Option Screens. The use of DC_HotKey on this type of screen is a real time saver. A valid statement in the DCGET commands shown in Figure 8 is used so when you enter a search criteria in any one of the six search fields you immediately go to the selected case unless multiple cases match the search criteria. If multiple cases match the search, you are presented with the selection screen shown in Figure 10.

Figure 8 Case Search Option Screen

Figure 9 Old Case Search Option Screen
Figure 10 is a hybrid screen that displays very fast and is key compatible with the old DOS version shown in Figure 11.

Figure 10 Case Search Selection Screen

Figure 11 Old Case Search Selection Screen
Figures 12, 13, and 14 show the Case Information Screen. Since this is an MDI program you can have multiple Case Information Screens open at one time. I limit this to 6 screens to conserve windows resources on Win 95 and Win 98 machines. Note the small colored icon next to the ‘Show Notes’ pushbutton this is on of several icons tied to codeblocks so they can change appearance based on the supported data. This particular icon is greyed out if there are no notes on the case, and switched to color if there are notes.

Figure 12 Case Information Screen

Figure 13 Old Case Information Screen
Figure 14 shows some of the optional effects possible on the Case Information Screen. Pressing the ‘Show Notes’ pushbutton opens the note window on the lower half of the screen and changes the pushbutton caption to ‘Hide Notes’. If any data is added or changed in the note the ‘Save Changes’ confirmation screen is displayed on exit. (The grayed out version of the note icon is also shown.)

Figure 14 Case Information Screen (with an open note)

Figure 15 Checkbook Edit Screen

Figure 16 Monthly Report SetUp Screen
Figures 17 and 18 show the printer preview screen and the printer selection screen. The preview is true WYSIWYG and has the added feature that you can assign ‘Hot Spots’ to the display. On the screen in Figure 17 if you mouse click on any name it will open the associated case file and allow you to view or edit the data represented on that line. (Also note the email and print icons on the preview toolbar.)

Figure 17 Monthly Report Preview Screen
Figure 18 shows the printer dialog screen and all printer properties are available. It handles true number of copies and paper tray selection, also print to file, page selection, portrait/landscape and any other printer property supported by the printer selected.

Figure 18 Printer Selection/SetUp Screen
Well that’s a quick overview, if you have any comments, questions, or suggestions, please let me know. Thanks for letting me show off a little, the program has come a long way in the past 14 months since I felt that I was falling into that dark hole. Thanks again to those who threw me a rope and helped out.
A Very Special thank you to Roger Donnay and eXPress++, and to the Alaska team for their great product Xbase++ and their help.