Adam’s July 2018 Meeting Summary


Due to illness there was a change in the published agenda.

  • Talk: Crystal reports 2016 and the Cut Light library add-on for ad-hoc SQL queries
  • Nugget: Model Maker Code Explorer – Adam Brett
  • Open Session: Lead by Jason Chapman

Adam’s Feedback

Mark spoke on Crystal Reports and an add-in tool Cut Light.
Cut Light (a $50.00 product) provides extensive additional functionality to Crystal Reports. Mark demonstrated features of Crystal Reports, which he has found powerful and functional as a banded report generator, and how he has used Cut Light to allow Crystal Report to access data from multiple databases simultaneously. Cut Light includes functionality to read barcodes, encrypt and decrypt data, add geo-location, and extensively extend SQL functionality of Crystal Reports.

Adam spoke about MMX (formerly ModelMaker Code Explorer) the Delphi and C# IDE enhancement tool.
Now a free, open source tool and install-able in all versions of Delphi from Delphi 7, it offers a wide range of powerful code-writing and code-cleaning enhancements. Written by coders for coders it is well organized and intuitive. The only problem is that it has so many tools and features it is hard to learn to use more than just a few.

Jason spoke about code-practices for large project migration.
He has a project with hundreds of thousands of code-lines, hundreds of data-modules, and vast quantities of business logic. It uses the BDE, and FIBPlus, both now totally deprecated technologies. A code-huddle discussed different methods for working on the problem. The creation of stub, wrapper classes holding empty method and properties for all the calls that currently go to BDE and FIBPlus was suggested, as this allows a clear definition of the existing problem-space. Exactly how to manage modernization v. transition of code is a complex issue. Many aspects of the existing code are long-winded, and could be made more object-oriented or encapsulated better in class or interface definitions, some aspects of the existing structure such as the fact that it closely couples data-modules and frames are clearly bad design, and should be changed, but because they are so deeply rooted in the application require a major change in the system architecture.

Jason then spoke about sensible mechanisms for auditing and change-logging in a database application.
Particularly managing logs of changes linked to comments from staff members using a system. Issues with bloating of databases that save all changes made by any user, how to use triggers and back-end server-based controls to manage the problem, how to architect a solution and whether to use a portable data format like JSON to store logs were all discussed.

Further information and links for all the talks are available in the Members Group