PurplePen.Reports.CreateCourseSummaryReport C# (CSharp) Method

CreateCourseSummaryReport() public method

public CreateCourseSummaryReport ( EventDB eventDB ) : string
eventDB EventDB
return string
        public string CreateCourseSummaryReport(EventDB eventDB)
        {
            InitReport();

            // Header.
            WriteH1(string.Format(ReportText.CourseSummary_Title, QueryEvent.GetEventTitle(eventDB, " ")));

            // Table of all courses.
            BeginTable("", 4, "leftalign", "rightalign", "rightalign", "rightalign");
            WriteTableHeaderRow(ReportText.ColumnHeader_Course, ReportText.ColumnHeader_Controls, ReportText.ColumnHeader_Length, ReportText.ColumnHeader_Climb);

            // Enumerate all courses.
            Id<Course>[] courseIds = QueryEvent.SortedCourseIds(eventDB);

            // Write row for each course.
            foreach (Id<Course> courseId in courseIds) {
                BeginTableRow();
                CourseView courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(courseId));

                // Course name
                WriteTableCell(courseView.CourseName);

                // # of normal controls
                WriteTableCell(Util.RangeIfNeeded(courseView.MinNormalControls, courseView.MaxNormalControls));

                // Length (empty for score course)
                if (courseView.Kind == CourseView.CourseViewKind.Score)
                    WriteTableCell("");
                else
                    WriteTableCell(Util.GetLengthInKm(courseView.MinTotalLength, courseView.MaxTotalLength, 1));

                // Climb (empty for score course or no climb defined)
                if (courseView.Kind == CourseView.CourseViewKind.Score || courseView.TotalClimb < 0)
                    WriteTableCell("");
                else
                    WriteTableCell(Convert.ToString(Math.Round(courseView.TotalClimb / 5, MidpointRounding.AwayFromZero) * 5.0) + " m");

                EndTableRow();
            }

            EndTable();

            return FinishReport();
        }

Usage Example

Example #1
0
        private void courseSummaryMenu_Click(object sender, EventArgs e)
        {
            Reports reportGenerator = new Reports();

            string testReport = reportGenerator.CreateCourseSummaryReport(controller.GetEventDB());

            ReportForm reportForm = new ReportForm(Util.RemoveHotkeyPrefix(courseSummaryMenu.Text), "", testReport, "ReportsCourseSummary.htm");
            reportForm.ShowDialog(this);
            reportForm.Dispose();
        }