}// default Constructor

        // Scenario: Request Provider Report
        private void providerReport()
        {
            try
            {
                //Get the provider number
                long number = ui.promptForLong("Provider Number: ");

                //Search for the provider number in the collection
                Providers providers = new Providers();
                providers.open();
                Provider theProvider = providers.find(number);
                providers.close();

                if (theProvider == null)
                {
                    ui.errorMessage("Invalid Provider Number");
                    return;
                }

                //Get the end date
                DateTime endDate = ui.promptForDate("End date of week ("
                                                    + UserInterface.DATE_FORMAT + "): ");

                //Generate report for specified week
                ProviderReportGenerator generator
                    = new ProviderReportGenerator(theProvider, endDate);
                ProviderReport report = generator.getReport();

                //Display the report
                report.display(ui);

                //"Print" (save the report to a file) if the user wishes
                String answer = ui.promptForString("Save the report? (Y)es or (N)o: ");
                if (answer != null && answer.Length >= 1 &&
                    Char.ToUpper(answer[0]) == 'Y')
                {
                    report.print(theProvider.getName());
                    ui.message("The report has been saved as "
                               + report.getFileName() + "\n");
                }//if
                else
                {
                    ui.message("Report not saved");
                }
            }
            catch (FileNotFoundException ex)
            {
                //occurs if the file cannot be created
                ui.errorMessage(ex.Message);
            }
        }//providerReport