KB_Soft Group - Software Vendor's Development Partner
Start page
Site map

Job Monitor with a Non-Standard GUI



The project objective was to develop the program that would trace working time of employees and labor hours for each project implemented by a company.


As soon as a working day begins, the program fixes the time when the employee starts working. The employee chooses the project he is going to work with, and this action fixes the starting time for this project. During his working day, the employee registers in the program the projects he works with, and the program fixes the starting time and the final time for every project. As soon as a working day is over, the program generates a report based on a special user-defined template, and puts it to the shared network resource. If this resource is not accessible, then this information is stored locally until the shared resource becomes accessible.


Technical peculiarities

Among the most interesting peculiarities of the project the following ones should be highlighted:

The main dialog window has a non-standard layout, as it is created on the basis of a template (the designer-defined picture), i.e. the dialog window may be of any shape preset by the picture in BMP format or others.

Skin controls were designed such as buttons of a special shape, scrollbars, combo boxes, edit boxes, which allow changing their shape and appearance according to the skin images kept in a file or in application resources.

A simple HTML-like language was created that
enables the user to set a report template used to generate job reports with the help of tokens. The tokens, in their turn, are used to create the report structure and information to be displayed in the report (i.e. the user name, the date, when the working hours start and end, when the project starts and ends, description of the performed work, when the break starts and ends, total working hours minus the break time, etc.).

A parser was created for the template description language, as well as a report generator using these templates.