Customizing Reports and Graphs

Reports and graphs can be customized in several ways.


1. You can customize the logo graphic shown in each report and graph. The default graphic is the logo.jpg file located in the \Logo subdirectory. You can either overwrite this graphic with your own logo or edit the TBKTrackerReporter.exe.config file and put in your file name instead of logo.jpg (other graphic extensions like .gif and .png are acceptable). The file must be located in the \Logo directory. The relevant section of the file is shown below.


                 <setting name="LogoName" serializeAs="String">




This graphic shows the default logo:




2. The certificate reports use either the course or lesson certificate graphic. This is also located in the \Logo subdirectory. Again, you can either overwrite the existing file or edit the TBKTrackerReporter.exe.config file. The relevant sections are shown below.


                 <setting name="Certificate_Course" serializeAs="String">



            <setting name="Certificate_Lesson" serializeAs="String">




This graphic shows the default lesson certificate graphic:




3. Using a editor like Visual Studio (preferably) or even Notepad, you can customize the reports and graphics. They are located in the \Reports and \Graphics subdirectories and organized by type (Classes, Companies (organizations), Courses, Lessons, and Students). The graphic below shows the development environment in Visual Studio. Note that the lists of reports and graphs in TBK Tracker Reporter are built dynamically. So if you create a new .rdlc file in one of these directories, Reporter will display it in the appropriate list.




4. If you need additional information for a report or create a new report, you'll need to edit or create the associated query. These files are located in the \Queries subdirectory and again are organized by type (Classes, Companies (organizations), Courses, Lessons, and Students). The query file is typically the name of the report minus any spaces, characters like -, and the word Pie. You can tell for sure by looking at the DataSet name within the .rdlc file as shown below.


<DataSet Name="ClassCourseLessonTrainingHistory">


If you create a new report based on existing report or graph, you will need to edit the DataSet name and create the query file to match. Within the query file, there are some placeholders as shown in the query:


SELECT Students.StudentID, Students.LastName, Students.FirstName, Students.MiddleInitial, Students.Identifier1, Students.Identifier2, Students.Identifier3,

                         Students.SocialSecurityNumber, Students.Department, Students.TelephoneNumber,, Students.FaxNumber, Students.Telephone2,

                         Students.CellPhone, Students.Pager, Companies.Company, Students.LastName + ', ' + Students.FirstName AS StudentInfoLF,

                         Students.FirstName + ' ' + Students.LastName AS StudentInfoFL, Lessons.LessonID, Lessons.lessonLongName,



                         Companies ON Students.CompanyID = Companies.CompanyID) INNER JOIN

                         SessionLessonStudentLog ON Students.StudentID = SessionLessonStudentLog.StudentID) INNER JOIN

                         Lessons ON SessionLessonStudentLog.LessonID = Lessons.LessonID)

WHERE (SessionLessonStudentLog.LessonSessionDate >= {1}) AND (SessionLessonStudentLog.LessonSessionDate <= {2}) {3} {0}

ORDER BY Students.LastName, Students.FirstName, Lessons.lessonLongName, SessionLessonStudentLog.LessonSessionDate


{0} can be an IN() clause such as: Lessons.LessonID IN (3,4)


{1} reflects the selected starting date in a format appropriate for either Access or SQL Server.


{2} reflects the selected ending date.


{3} is potentially and " AND " clause so that both the dates and the lessons are limited in the query above.


{4} limits the LessonTestScore on certain querys. It is "Iif(SessionLessonStudentLog.LessonTestScore = -1, NULL, SessionLessonStudentLog.LessonTestScore)" if Access and "CASE WHEN SessionLessonStudentLog.LessonTestScore = -1 THEN NULL ELSE SessionLessonStudentLog.LessonTestScore END" if SQL Server.


{5} is a WHERE clause if there is not already one there.


{6} is a representation of the True needed by a few queries. It is "True" if Access and "1" if SQL Server.