/// <summary> Constructor for a new instance of the Ad_Hoc_Report_Display_Form form </summary>
        /// <param name="Display_Set">Set of titles/items to display within this form</param>
        public Ad_Hoc_Report_Display_Form(DataSet Display_Set)
        {
            InitializeComponent();
            BackColor = Color.FromArgb(240, 240, 240);

            displaySet = Display_Set;

            // Check for values at each hierarchical level and author and publisher
            bool hasLevel1Data    = false;
            bool hasLevel2Data    = false;
            bool hasLevel3Data    = false;
            bool hasAuthorData    = false;
            bool hasPublisherData = false;
            bool hasDateData      = false;

            // Move the date column to the right spot
            Display_Set.Tables[0].Columns["PubDate"].SetOrdinal(8);


            // Get the columns
            DataColumn level1Column    = displaySet.Tables[0].Columns["Level1_Text"];
            DataColumn level2Column    = displaySet.Tables[0].Columns["Level2_Text"];
            DataColumn level3Column    = displaySet.Tables[0].Columns["Level3_Text"];
            DataColumn publisherColumn = displaySet.Tables[0].Columns["Publisher"];
            DataColumn authorColumn    = displaySet.Tables[0].Columns["Author"];
            DataColumn dateColumn      = displaySet.Tables[0].Columns["PubDate"];

            // Step through each row and check for data existence
            foreach (DataRow thisRow in Display_Set.Tables[0].Rows)
            {
                if ((hasLevel1Data) && (hasLevel2Data) && (hasLevel3Data) && (hasPublisherData) && (hasAuthorData) && (hasDateData))
                {
                    break;
                }
                if ((!hasLevel1Data) && (thisRow[level1Column].ToString().Length > 0))
                {
                    hasLevel1Data = true;
                }
                if ((!hasLevel2Data) && (thisRow[level2Column].ToString().Length > 0))
                {
                    hasLevel2Data = true;
                }
                if ((!hasLevel3Data) && (thisRow[level3Column].ToString().Length > 0))
                {
                    hasLevel3Data = true;
                }
                if ((!hasPublisherData) && (thisRow[publisherColumn].ToString().Length > 0))
                {
                    hasPublisherData = true;
                }
                if ((!hasAuthorData) && (thisRow[authorColumn].ToString().Length > 0))
                {
                    hasAuthorData = true;
                }
                if ((!hasDateData) && (thisRow[dateColumn].ToString().Length > 0))
                {
                    hasDateData = true;
                }
            }

            // Create the custom grid
            gridPanel = new CustomGrid_Panel
            {
                Size = new Size(panel1.Width - 2, panel1.Height - 2), Location = new Point(0, 0)
            };

            // Configure some table level style settings
            gridPanel.Style.Default_Column_Width = 80;
            gridPanel.Style.Default_Column_Color = Color.LightBlue;
            gridPanel.Style.Header_Back_Color    = Color.DarkBlue;
            gridPanel.Style.Header_Fore_Color    = Color.White;

            // Set the background and border style
            gridPanel.BackColor   = Color.WhiteSmoke;
            gridPanel.BorderStyle = BorderStyle.FixedSingle;
            gridPanel.Anchor      = (((((AnchorStyles.Top | AnchorStyles.Bottom) | AnchorStyles.Left) | AnchorStyles.Right)));
            panel1.Controls.Add(gridPanel);

            gridPanel.DataTable = displaySet.Tables[0];

            gridPanel.Current_Sort_String = "BibID ASC, VID ASC";

            // Configure for this table
            gridPanel.Style.Column_Styles[1].Width     = 50;
            gridPanel.Style.Column_Styles[2].Visible   = false;
            gridPanel.Style.Column_Styles[3].Visible   = false;
            gridPanel.Style.Column_Styles[4].Visible   = false;
            gridPanel.Style.Column_Styles[5].Width     = SMaRT_UserSettings.Ad_Hoc_Report_Form_Title_Width;
            gridPanel.Style.Column_Styles[5].BackColor = Color.White;
            gridPanel.Style.Column_Styles[6].BackColor = Color.White;

            if (!hasAuthorData)
            {
                gridPanel.Style.Column_Styles[6].Width = SMaRT_UserSettings.Ad_Hoc_Report_Form_Author_Width;
            }
            else
            {
                gridPanel.Style.Column_Styles[6].Visible = false;
            }

            gridPanel.Style.Column_Styles[7].BackColor = Color.White;
            if (hasPublisherData)
            {
                gridPanel.Style.Column_Styles[7].Width = SMaRT_UserSettings.Ad_Hoc_Report_Form_Publisher_Width;
            }
            else
            {
                gridPanel.Style.Column_Styles[7].Visible = false;
            }

            gridPanel.Style.Column_Styles[8].BackColor = Color.White;
            if (hasDateData)
            {
                gridPanel.Style.Column_Styles[8].Width = SMaRT_UserSettings.Ad_Hoc_Report_Form_Date_Width;
            }
            else
            {
                gridPanel.Style.Column_Styles[8].Visible = false;
            }

            if (hasLevel1Data)
            {
                gridPanel.Style.Column_Styles[9].Width = SMaRT_UserSettings.Ad_Hoc_Report_Form_Level1_Width;
            }
            else
            {
                gridPanel.Style.Column_Styles[9].Visible = false;
            }

            gridPanel.Style.Column_Styles[9].Text_Alignment = HorizontalAlignment.Left;
            gridPanel.Style.Column_Styles[10].Visible       = false;
            if (hasLevel2Data)
            {
                gridPanel.Style.Column_Styles[11].Width = SMaRT_UserSettings.Ad_Hoc_Report_Form_Level2_Width;
            }
            else
            {
                gridPanel.Style.Column_Styles[11].Visible = false;
            }
            gridPanel.Style.Column_Styles[11].Text_Alignment = HorizontalAlignment.Left;
            gridPanel.Style.Column_Styles[12].Visible        = false;
            if (hasLevel3Data)
            {
                gridPanel.Style.Column_Styles[13].Width = SMaRT_UserSettings.Ad_Hoc_Report_Form_Level3_Width;
            }
            else
            {
                gridPanel.Style.Column_Styles[13].Visible = false;
            }
            gridPanel.Style.Column_Styles[13].Text_Alignment = HorizontalAlignment.Left;
            gridPanel.Style.Column_Styles[14].Visible        = false;
            gridPanel.Style.Column_Styles[15].Visible        = false;
            gridPanel.Style.Column_Styles[16].Visible        = false;
            gridPanel.Style.Column_Styles[17].Visible        = false;
            gridPanel.Style.Column_Styles[18].Visible        = false;

            gridPanel.Style.Column_Styles[20].Visible           = false;
            gridPanel.Style.Column_Styles[21].Header_Text       = "Comments";
            gridPanel.Style.Column_Styles[24].Header_Text       = "Digitized";
            gridPanel.Style.Column_Styles[24].Short_Date_Format = true;
            gridPanel.Style.Column_Styles[25].Header_Text       = "Processed";
            gridPanel.Style.Column_Styles[25].Short_Date_Format = true;
            gridPanel.Style.Column_Styles[26].Header_Text       = "QC'd";
            gridPanel.Style.Column_Styles[26].Short_Date_Format = true;
            gridPanel.Style.Column_Styles[27].Header_Text       = "Online";
            gridPanel.Style.Column_Styles[27].Short_Date_Format = true;
            gridPanel.Style.Column_Styles[38].Visible           = false;

            // Set some sort values
            gridPanel.Style.Column_Styles[9].Ascending_Sort   = "Level1_Index ASC, Level2_Index ASC, Level3_Index ASC";
            gridPanel.Style.Column_Styles[9].Descending_Sort  = "Level1_Index DESC, Level2_Index DESC, Level3_Index DESC";
            gridPanel.Style.Column_Styles[11].Ascending_Sort  = "Level2_Index ASC, Level3_Index ASC";
            gridPanel.Style.Column_Styles[11].Descending_Sort = "Level2_Index DESC, Level3_Index DESC";
            gridPanel.Style.Column_Styles[5].Ascending_Sort   = "SortTitle ASC, Level1_Index ASC, Level2_Index ASC, Level3_Index ASC";
            gridPanel.Style.Column_Styles[5].Descending_Sort  = "SortTitle DESC, Level1_Index DESC, Level2_Index DESC, Level3_Index DESC";
            gridPanel.Style.Column_Styles[8].Ascending_Sort   = "SortDate ASC, SortTitle ASC, Level1_Index ASC, Level2_Index ASC, Level3_Index ASC";
            gridPanel.Style.Column_Styles[8].Descending_Sort  = "SortDate DESC, SortTitle DESC, Level1_Index DESC, Level2_Index DESC, Level3_Index DESC";


            gridPanel.Double_Clicked           += gridPanel_Double_Clicked;
            gridPanel.Clipboard_Copy_Requested += new CustomGrid_Panel_Delegate_Multiple(gridPanel_Clipboard_Copy_Requested);

            // Add the context menu
            gridPanel.Set_Context_Menus(null, contextMenu1);

            // Add the object to print
            gridPrinter = new CustomGrid_Printer(gridPanel, printDocument1);

            // Set the hits value
            hitCountLabel.Text = "Your search resulted in " + number_to_string(displaySet.Tables[0].Rows.Count) + " items in " + number_to_string(displaySet.Tables[1].Rows.Count) + " titles";


            // Set the size correctly
            Size = SMaRT_UserSettings.Ad_Hoc_Report_Form_Size;
            int screen_width  = Screen.PrimaryScreen.WorkingArea.Width;
            int screen_height = Screen.PrimaryScreen.WorkingArea.Height;

            if ((Width > screen_width) || (Height > screen_height) || (SMaRT_UserSettings.Ad_Hoc_Report_Form_Maximized))
            {
                WindowState = FormWindowState.Maximized;
            }

            // GEt the username
            username = Environment.UserName;

            // Set the action on click
            if (SMaRT_UserSettings.Ad_Hoc_Form_Action_On_Click == View_Items_Form_Action_On_Click_Enum.Open_On_Web)
            {
                openItemFromWebMenuItem.Checked = true;
                viewItemFormMenuItem.Checked    = false;
            }
            else
            {
                openItemFromWebMenuItem.Checked = false;
                viewItemFormMenuItem.Checked    = true;
            }
        }
        /// <summary> Constructor for a new instance of this class </summary>
        /// <param name="resultSet"> Results set to display </param>
        //public Results_Form(DataTable resultSet, ArrayList resultList, SobekCM_Item bibPackage)
        public Results_Form(DataTable resultSet, Importer_Type_Enum importerType, bool preview_mode)
        {
            // Initialize this form
            InitializeComponent();

            // Perform some additional work if this was not XP theme
            if (!Windows_Appearance_Checker.is_XP_Theme)
            {
                saveButton.FlatStyle  = System.Windows.Forms.FlatStyle.Flat;
                printButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
                closeButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
            }

            // Save these values
            this.resultTable = resultSet;

            // Show the result set
            customGrid_Panel1.DataTable = resultSet;

            // Set some overall styles
            customGrid_Panel1.Style.Default_Column_Color = System.Drawing.Color.LightBlue;
            customGrid_Panel1.Style.Header_Back_Color    = Color.DarkBlue;
            customGrid_Panel1.Style.Header_Fore_Color    = Color.White;
            customGrid_Panel1.Style.Default_Column_Color = System.Drawing.Color.LightBlue;

            // assign the context menu to the custom grid
            this.customGrid_Panel1.Double_Clicked += new CustomGrid_Panel_Delegate_Single(this.customGrid_Panel1_Double_Clicked);
            this.customGrid_Panel1.ContextMenu     = this.contextMenu1;


            // determine what should be displayed on the results form
            switch (importerType)
            {
            case Importer_Type_Enum.MARC:
                // set column styles for displaying the results table
                customGrid_Panel1.Style.Column_Styles[0].Visible           = false;
                customGrid_Panel1.Style.Column_Styles[1].Header_Text       = "Bib ID";
                customGrid_Panel1.Style.Column_Styles[1].Fixed_Print_Width = 100;
                customGrid_Panel1.Style.Column_Styles[1].Width             = 100;
                customGrid_Panel1.Style.Column_Styles[2].Header_Text       = "VID";
                customGrid_Panel1.Style.Column_Styles[2].Width             = 70;
                customGrid_Panel1.Style.Column_Styles[2].Fixed_Print_Width = 65;
                customGrid_Panel1.Style.Column_Styles[3].Header_Text       = "Comment";
                customGrid_Panel1.Style.Column_Styles[3].Width             = 200;
                customGrid_Panel1.Style.Column_Styles[4].Visible           = false;
                customGrid_Panel1.Style.Column_Styles[5].Header_Text       = "Aleph";
                customGrid_Panel1.Style.Column_Styles[5].Width             = 70;
                customGrid_Panel1.Style.Column_Styles[6].Header_Text       = "OCLC";
                customGrid_Panel1.Style.Column_Styles[6].Width             = 70;
                customGrid_Panel1.Style.Column_Styles[7].Header_Text       = "Bib Title";
                customGrid_Panel1.Style.Column_Styles[7].Width             = 300;
                customGrid_Panel1.Style.Column_Styles[7].BackColor         = Color.White;
                customGrid_Panel1.Style.Column_Styles[8].Header_Text       = "Volume Title";
                customGrid_Panel1.Style.Column_Styles[8].Width             = 300;
                customGrid_Panel1.Style.Column_Styles[8].BackColor         = Color.White;
                customGrid_Panel1.Style.Column_Styles[9].Header_Text       = "Author";
                customGrid_Panel1.Style.Column_Styles[9].Width             = 150;
                customGrid_Panel1.Style.Column_Styles[9].BackColor         = Color.White;
                customGrid_Panel1.Style.Column_Styles[10].Header_Text      = "Type";
                customGrid_Panel1.Style.Column_Styles[10].Width            = 70;
                customGrid_Panel1.Style.Column_Styles[11].Header_Text      = "Project";
                customGrid_Panel1.Style.Column_Styles[11].Width            = 70;

                // set text on menu item
                this.detailsMenuItem.Text = "Show MARC XML";
                this.detailsMenuItem_ContextMenuItem.Text = "Show MARC XML";
                this.Text = "MARC Importer - Results Form";
                break;

            case Importer_Type_Enum.METS:
            case Importer_Type_Enum.Spreadsheet:
                // set column styles for displaying the results table
                customGrid_Panel1.Style.Column_Styles[0].Visible           = false;
                customGrid_Panel1.Style.Column_Styles[1].Header_Text       = "Bib ID";
                customGrid_Panel1.Style.Column_Styles[1].Width             = 100;
                customGrid_Panel1.Style.Column_Styles[1].Fixed_Print_Width = 100;
                customGrid_Panel1.Style.Column_Styles[2].Header_Text       = "VID";
                customGrid_Panel1.Style.Column_Styles[2].Width             = 70;
                customGrid_Panel1.Style.Column_Styles[2].Fixed_Print_Width = 65;
                customGrid_Panel1.Style.Column_Styles[3].Header_Text       = "Comment";
                customGrid_Panel1.Style.Column_Styles[3].Width             = 200;
                customGrid_Panel1.Style.Column_Styles[4].Visible           = false;
                customGrid_Panel1.Style.Column_Styles[5].Header_Text       = "Aleph";
                customGrid_Panel1.Style.Column_Styles[5].Width             = 70;
                customGrid_Panel1.Style.Column_Styles[6].Header_Text       = "OCLC";
                customGrid_Panel1.Style.Column_Styles[6].Width             = 70;
                customGrid_Panel1.Style.Column_Styles[7].Header_Text       = "Bib Title";
                customGrid_Panel1.Style.Column_Styles[7].Width             = 300;
                customGrid_Panel1.Style.Column_Styles[7].BackColor         = Color.White;
                customGrid_Panel1.Style.Column_Styles[8].Header_Text       = "Volume Title";
                customGrid_Panel1.Style.Column_Styles[8].Width             = 300;
                customGrid_Panel1.Style.Column_Styles[8].BackColor         = Color.White;
                customGrid_Panel1.Style.Column_Styles[9].Header_Text       = "Author";
                customGrid_Panel1.Style.Column_Styles[9].Width             = 150;
                customGrid_Panel1.Style.Column_Styles[9].BackColor         = Color.White;
                customGrid_Panel1.Style.Column_Styles[10].Header_Text      = "Type";
                customGrid_Panel1.Style.Column_Styles[10].Width            = 70;
                customGrid_Panel1.Style.Column_Styles[11].Header_Text      = "Project";
                customGrid_Panel1.Style.Column_Styles[11].Width            = 70;

                // set text on menu item
                this.detailsMenuItem.Text = "Show METS";
                this.detailsMenuItem_ContextMenuItem.Text = "Show METS";
                if (importerType == Importer_Type_Enum.METS)
                {
                    this.Text = "METS Importer - Results Form";
                }
                else
                {
                    this.Text = "SpreadSheet Importer - Results Form";
                }
                break;
            }

            if (preview_mode)
            {
                this.Text = this.Text + " (PREVIEW ONLY!)";
            }

            // Set the default print as landscape
            printDocument1.DefaultPageSettings.Landscape = true;

            // Create the object to print the grid
            gridPrinter = new CustomGrid_Printer(customGrid_Panel1, printDocument1);
        }