private void btnBalancing_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                btnBalancing.IsEnabled = false;
                if (StartDate > EndDate)
                {
                    MessageBox.ShowBox("MessageID282", BMC_Icon.Information);
                    return;
                }

                if (StartDate > System.DateTime.Now)
                {
                    MessageBox.ShowBox("MessageID283", BMC_Icon.Information);
                    return;
                }

                if (EndDate > System.DateTime.Now)
                {
                    MessageBox.ShowBox("MessageID284", BMC_Icon.Information);
                    return;
                }


                IReports objReports = ReportsBusinessObject.CreateInstance();

                LogManager.WriteLog("Fetching report data from database...", LogManager.enumLogLevel.Info);

                DataSet SystemBalancingDetails = null;

                switch (URoleBased.Count)
                {
                    case 0:
                        {
                            if (Security.SecurityHelper.CurrentUser.User_No == UserNo)
                            {
                                SystemBalancingDetails = objReports.GetSystemBalancingDetails(StartDate, EndDate, UserNo, iRoute_No);
                            }
                            break;
                        }
                    case 1:
                        {
                            if (UserNo == 0)
                            {
                                SystemBalancingDetails = objReports.GetSystemBalancingDetails(StartDate, EndDate, 0, iRoute_No);
                            }
                            else
                            {
                                SystemBalancingDetails = objReports.GetSystemBalancingDetails(StartDate, EndDate, UserNo, iRoute_No);
                            }
                            break;
                        }
                }
                if (SystemBalancingDetails.Tables[0].Rows.Count == 0)
                {
                    LogManager.WriteLog("No Records found for the selected criteria - Return", LogManager.enumLogLevel.Info);

                    MessageBox.ShowBox("MessageID261", BMC_Icon.Information);
                    return;
                }


                using (CReportViewer cReportViewer = new CReportViewer())
                {
                    LogManager.WriteLog("Report data fetched successfully from database", LogManager.enumLogLevel.Info);

                    cReportViewer.ShowSystemBalancingReport(SystemBalancingDetails, StartDate, EndDate);
                    cReportViewer.SetOwner(System.Windows.Window.GetWindow(this));

                    cReportViewer.Show();
                }


                LogManager.WriteLog("ShowSystemBalancingReport Successfull", LogManager.enumLogLevel.Info);
            }
            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }
            finally
            {
                btnBalancing.IsEnabled = true;
            }
        }