Category Systems & Tables (July 21)

This week our staff finished the last of the 70+ lists in our new accounting software. 25+ of them have tables that show tax brackets or other details. Those were the hardest.

The way list tables work now is not ideal. If a table cell changes, it notifies the Qt table, which contacts the old Goldenseal table, then the old cell. Sometimes messages go back: old cell to old table to new table to new cell. It’s roundabout, but easier than rewriting a lot of existing code. If Qt ever dies, it also will be slightly easier to swap to some other framework. Hopefully that won’t happen anytime soon.

The very hardest list was Category Systems. It has two tables, with fancier behavior. When you click on a category in the top table, it fills subcategories into the bottom one. The data is also complex: each category has a list of subcategories, so we can’t just do the normal table save. It needed an entirely different way to manage category data.

There also was a bigger problem. The programmer who wrote the interface for Category Systems was not very good. Their code worked, but it was spaghetti. Too hard to understand. After a near-total rewrite, it’s simpler, and about 1/3 as big.

Category Systems are the heart of our job costing software. They organize estimates, then mark expenses so you can compare estimated vs actual costs. Many accounting systems use simpler ways to track expenses, but they miss out on some real benefits.

For one thing, construction companies need at least two ways to group expenses: one for construction work, and one for office overhead. The categories are totally different. For retail you’ll also want two: for whatever you sell, and overhead.

Categories with subcategories are also a good way to choose items when there are many choices. Put in a category, and there are fewer items to look at. Add a subcategory, and it narrows down even further. Subcategories are helpful for construction estimates (choose from 1,000 assemblies) and retail (choose from 10,000 products).

Tables in general are not completely done. They still need code for inserting and deleting rows. Goldenseal does that with control-clicks and shift-control clicks. The new software will use a right-click menu instead. That’s next on the list.

Tables currently use real checkboxes for yes/no choices, but we haven’t been able to get them to look good. We’ll probably go back to √ text as in the current Goldenseal. And we still haven’t figured out how to highlight rows when you click on them. It’s a common question on Stack Overflow, but none of the answers have worked yet.

We also need to tidy up printing and a few other details. In a few more weeks we can start using the app to actually run TurtleSoft. Up until now our staff has done that in a few brief spurts, but each time it ran into a roadblock.

Dennis Kolva
Programming Director
TurtleSoft.com

 

Author: Dennis Kolva

Programming Director for Turtle Creek Software. Design & planning of accounting and estimating software.