private void ShowMeterListReport(string installationNo, string assetNo)
        {
            DataSet dsMeterDetails = null;
            DataSet dsMeterDetail = null;

            try
            {
                LogManager.WriteLog("Inside ShowMeterListReport method", LogManager.enumLogLevel.Info);

                dsMeterDetails = new DataSet();

                IReports objReports = ReportsBusinessObject.CreateInstance();

                if (installationNo == "ALL")
                {
                    LogManager.WriteLog("Fetching Asset Numbers from database....", LogManager.enumLogLevel.Info);

                    DataTable dtAssetNumbers = objReports.GetAssetNumberforActiveInstallations();

                    if (dtAssetNumbers.Rows.Count > 0)
                    {
                        LogManager.WriteLog("Asset Numbers fetched successfully from database", LogManager.enumLogLevel.Info);

                        foreach (DataRow dataRow in dtAssetNumbers.Rows)
                        {
                            LogManager.WriteLog(string.Format("{0} - {1}", "Fetching report data from database for Installation No", 
                                dataRow["InstallationNo"].ToString()), LogManager.enumLogLevel.Info);

                            dsMeterDetail = objReports.GetMeterDetails(Convert.ToInt32(dataRow["InstallationNo"]));

                            LogManager.WriteLog("Report data fetched successfully from database", LogManager.enumLogLevel.Info);

                            LogManager.WriteLog("Merging dataset...", LogManager.enumLogLevel.Info);

                            dsMeterDetails.Merge(dsMeterDetail);

                            LogManager.WriteLog("Merge dataset Successfull", LogManager.enumLogLevel.Info);                            

                            if (dsMeterDetail != null) { dsMeterDetail = null; }
                        }
                    }
                    else
                    {
                        LogManager.WriteLog("Asset Number not available - Return", LogManager.enumLogLevel.Info);

                        MessageBox.ShowBox("MessageID261", BMC_Icon.Information);
                        return;
                    }
                }
                else
                {
                    LogManager.WriteLog("Fetching report data from database...", LogManager.enumLogLevel.Info);

                    dsMeterDetails = objReports.GetMeterDetails(Convert.ToInt32(installationNo));

                    LogManager.WriteLog("Report data fetched successfully from database", LogManager.enumLogLevel.Info);
                }

                if (dsMeterDetails.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())
                {
                    cReportViewer.ShowMeterListReport(dsMeterDetails, assetNo);
                    cReportViewer.ShowDialog();
                }

                LogManager.WriteLog("ShowMeterListReport Successfull", LogManager.enumLogLevel.Info);
            }
            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
                MessageBox.ShowBox("MessageID262", BMC_Icon.Error);
            }            
        }