Beginning with today’s blog and over the next couple of blogs, we will explore the building of a sales invoice tracking system using Intersoft ClientUI, IdeaBlade DevForce and nested dialog boxes.
I have been a Windows programmer since the early 1990s using both Visual Basic and Visual C++ MFC. I prefer building Windows apps that have a main page with a navigation bar on the left hand side of the main form and a content page on the right hand side that holds a grid of data.
The above screen shot is a typical application that I recently did for a client who wanted to maintain an inventory for entertainment tickets and the tracking of their purchases, sales, and transfers. From the navigation bar on the left, the user can move to any module of the program. The content panel on the right displays the list view of the module. Using the above list view the user can find existing sales invoice by filling in one or more of the criteria fields and clicking on the Find button. The user can then edit or void a sales invoice or the user can add a new sales invoice.
If the user chooses to add a new sales invoice or edit an existing sales invoice, a UXDialogBox is displayed to collect the information. When the user is finished entering data, the dialog box is closed and the user is returned to the list view. Here is a screen shot showing the dialog box for adding and editing data.
A member has the ability to buy multiple sets of tickets from various vendors on the same sales invoice. Therefore, a UXGridView is used to track the various tickets purchased. Rather than using inline editing in the grid for the purchase of the ticket, I display another dialog box on top of this dialog box for the entering of the detail information. After the detail dialog box is closed, the new row is added to the grid and the user can add another item or finish the sale. Here is a screen shot using the nested dialog boxes.
In the next blog, we will discuss the database structure and the classes used to create the application. In future blogs, we will create the project, the views, the view models, and the repository class. By the time we are done, we will a line of business application that has modules for Customers or Members, Inventory, Sales Invoices, and Purchases. This application will be fully functional and Model View View-Model (MVVM) compliant.