Пример #1
0
        /// <summary>
        /// Evento que se lanza cuando generamos nuestro reporte boton Print
        /// </summary>
        /// <history>
        /// [erosado] 23/Mar/2016 Created
        /// </history>
        private async void imgButtonPrint_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            var listaSaleByLiner = dtgr.DataContext as List <SaleByLiner>;

            if (listaSaleByLiner != null)
            {
                var dateRangeFileName = DateHelper.DateRangeFileName(dtpkFrom.Value.Value, dtpkTo.Value.Value);
                //Obtenemos el nombre del reporte y el dateRange
                const string rptName = "Sales By Liner";
                //Obtenemos el dataTable con la lista formateada
                var dt = TableHelper.GetDataTableFromList(listaSaleByLiner, true);
                //Creamos el reporte
                var fi = await ReportBuilder.CreateCustomExcelAsync(dt, filtersReport, rptName, dateRangeFileName, Utilities.UseFulMethods.getExcelFormatTable(), addEnumeration : true);

                if (fi != null)
                {
                    frmDocumentViewer documentViewer = new frmDocumentViewer(fi, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewer.Owner = this;
                    documentViewer.ShowDialog();
                }
            }
            else
            {
                UIHelper.ShowMessage("There is no info to make a report", MessageBoxImage.Warning);
            }
        }
Пример #2
0
        /// <summary>
        /// Muestra el Personnel Log en el DocumentViewer
        /// </summary>
        /// <history>
        /// [emoguel] 17/10/2016 created
        /// </history>
        private async void btnPrintlog_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Mouse.OverrideCursor = Cursors.Wait;
                List <GetPersonnelLog> lstPersonnelLog = dtgPersonnelLog.ItemsSource as List <GetPersonnelLog>;

                FileInfo fileInfo = await ReportBuilder.CreateCustomExcelAsync(
                    TableHelper.GetDataTableFromList(lstPersonnelLog, true, true, true),
                    new List <Tuple <string, string> > {
                    Tuple.Create("Personnel ID", _idPersonnelLog)
                },
                    "Personnel Log",
                    DateHelper.DateRangeFileName(DateTime.Today, DateTime.Today),
                    EpplusHelper.OrderColumns(dtgPersonnelLog.Columns.ToList(), clsFormatReport.RptPersonnelLog()));

                if (fileInfo != null)
                {
                    frmDocumentViewer documentViewver = new frmDocumentViewer(fileInfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewver.Owner = this;
                    documentViewver.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
            finally
            {
                Mouse.OverrideCursor = null;
            }
        }
Пример #3
0
        /// <summary>
        /// Evento que se encarga de generar el reporte de las estadisticas mostradas en el grid
        /// </summary>
        /// <history>
        /// [erosado] 08/Mar/2016 Created
        /// [emoguel] 09/09/2016 Modified. Ahora abre el visor de reportes
        /// </history>
        private async void imgButtonPrint_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            List <RptPRStats> lstRptStats = dtgr.DataContext as List <RptPRStats>;

            if (lstRptStats != null)
            {
                string    dateRangeFileName = DateHelper.DateRangeFileName(dtpkFrom.Value.Value, dtpkTo.Value.Value);
                FileInfo  templatePath      = new FileInfo(string.Concat(Directory.GetCurrentDirectory(), "\\ReportTemplate\\RptPRStatistics.xlsx"));
                DataTable dt            = TableHelper.GetDataTableFromList(lstRptStats);
                string    nombreReporte = "PR Statistics";



                FileInfo finfo = await ReportBuilder.CreateCustomExcelAsync(dt, filterTuple, nombreReporte, dateRangeFileName, UsefulMethods.getExcelFormatTable(), addEnumeration : true, blnShowSubtotal : true, blnRowGrandTotal : true);

                if (finfo != null)
                {
                    frmDocumentViewer documentViewer = new frmDocumentViewer(finfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewer.Owner = this;
                    documentViewer.ShowDialog();
                }
            }
            else
            {
                UIHelper.ShowMessage("There is no info to make a report", MessageBoxImage.Information, "PR Statistics");
            }
        }
Пример #4
0
        /// <summary>
        /// Evento que se lanza cuando generamos nuestro reporte boton Print
        /// </summary>
        /// <history>
        /// [erosado] 23/Mar/2016 Created
        /// </history>
        private async void imgButtonPrint_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            var listaSaleByPr = dtgr.DataContext as List <SaleByPR>;

            if (listaSaleByPr != null)
            {
                if (dtpkFrom.Value != null & dtpkTo.Value != null)
                {
                    //Obtenemos el dateRange(Nombre sugerido al momento de generar el archivo del reporte es una concatenacion de fechas From -> To )
                    var dateRangeFileName = DateHelper.DateRangeFileName(dtpkFrom.Value.Value, dtpkTo.Value.Value);
                    //Nombre del Reporte
                    const string rptName = "Sales By PR";
                    //Obtenemos el dataTable con la lista formateada
                    var dt = TableHelper.GetDataTableFromList(listaSaleByPr, true);
                    //Creamos el reporte
                    var fileInfo = await ReportBuilder.CreateCustomExcelAsync(dt, _filtersReport, rptName, dateRangeFileName, Utilities.UseFulMethods.getExcelFormatTable(),
                                                                              addEnumeration : true, blnRowGrandTotal : true);

                    if (fileInfo != null)
                    {
                        frmDocumentViewer documentViewer = new frmDocumentViewer(fileInfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                        documentViewer.Owner = this;
                        documentViewer.ShowDialog();
                    }
                }
            }
            else
            {
                UIHelper.ShowMessage("There is no info to make a report", MessageBoxImage.Warning);
            }
        }
Пример #5
0
 /// <summary>
 /// abre el reporte de excel despues de guardarse
 /// </summary>
 /// <history>
 /// [jorcanche] 07/05/2016 created
 /// [emoguel] 08/09/2016 Modified. Ahora abre el visor de reportes
 /// </history>
 private static void OpenFile(FileInfo file, Window window)
 {
     if (file != null)
     {
         frmDocumentViewer documentViewer = new frmDocumentViewer(file, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
         documentViewer.Owner = window;
         documentViewer.ShowDialog();
     }
 }
Пример #6
0
 /// <summary>
 /// Muestra el reporte en un report viewver
 /// </summary>
 /// <param name="finfo">File a mostrat</param>
 /// <history>
 /// [emoguel] 07/09/2016 modified---> ahora ya no habre el archivo de excel
 /// </history>
 private void OpenReport(FileInfo finfo)
 {
     if (finfo != null)
     {
         frmDocumentViewer documentViewver = new frmDocumentViewer(finfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
         documentViewver.Owner = this;
         documentViewver.ShowDialog();
     }
 }
Пример #7
0
        /// <summary>
        /// Exporta el reporte seleccionado a un archivo de excel.
        /// </summary>
        /// <history>
        /// [jorcanche] 31/ago/2016 Created
        /// [emoguel] 08/09/2016 Ahora abre el visor de reportes
        /// </history>
        private async void lstReports_Select(object sender, RoutedEventArgs e)
        {
            if (e.GetType() == typeof(KeyEventArgs) && ((KeyEventArgs)e).Key != Key.Enter)
            {
                return;
            }
            var      filters      = new List <Tuple <string, string> >();
            var      daterange    = DateHelper.DateRange(dtpDate.Value.Value, dtpDate.Value.Value);
            var      dateFileName = DateHelper.DateRangeFileName(dtpDate.Value.Value, dtpDate.Value.Value);
            FileInfo fileinfo     = null;

            if (lstReports.SelectedItem == null)
            {
                UIHelper.ShowMessage("You must select a report");
                return;
            }
            switch ((lstReports.SelectedItem as ListBoxItem).Content.ToString())
            {
            case "Deposits by PR":
                var lstRptDepPr = await BRReportsByLeadSource.GetRptDepositByPR(dtpDate.Value.Value, dtpDate.Value.Value, Context.User.LeadSource.lsID);

                if (lstRptDepPr.Any())
                {
                    filters.Add(Tuple.Create("Filter Range", daterange));
                    filters.Add(Tuple.Create("Lead Source", Context.User.LeadSource.lsID));

                    var lstDepPr   = lstRptDepPr[0] as List <RptDepositsByPR>;
                    var currencies = lstRptDepPr[1] as List <Currency>;
                    var payType    = lstRptDepPr[2] as List <PaymentType>;

                    lstDepPr.ForEach(c => {
                        c.guPRInvit1 = $"{c.guPRInvit1} {c.peN}";
                        c.gucu       = currencies.First(cu => cu.cuID == c.gucu).cuN ?? "";
                        c.gupt       = payType.First(pt => pt.ptID == c.gupt).ptN ?? "";
                    });

                    fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(lstDepPr, true, false),
                                                                          filters, "Deposits by PR", dateFileName, clsFormatReports.RptDepositByPr(), blnShowSubtotal : true, blnRowGrandTotal : true, isPivot : true, addEnumeration : true);
                }
                else
                {
                    UIHelper.ShowMessage("There is no data for make a report");
                }
                break;
            }

            if (fileinfo != null)
            {
                frmDocumentViewer documentViewer = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                documentViewer.Owner = this;
                documentViewer.ShowDialog();
            }
        }
Пример #8
0
        /// <summary>
        /// Exporta los registros de grid a un archivo de excel.
        /// </summary>
        /// <history>
        /// [edgrodriguez] 08/07/2016 Created
        /// [edgrodriguez] 05/09/2016 Modified. Se cambio el método CreateExcelCustom por CreatCustomExcel
        /// [emoguel] 08/09/2016 modified. Ahora abre el visor de reportes
        /// </history>
        private async void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            if (((List <ExchangeRateLogData>)_cvsExchangeRate.Source).Any())
            {
                var fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList((List <ExchangeRateLogData>)_cvsExchangeRate.Source, true, true, true),
                                                                          new List <Tuple <string, string> > {
                    Tuple.Create("Date Range", DateHelper.DateRange(DateTime.Today, DateTime.Today)), Tuple.Create("Gift ID", string.Join(",", ((List <ExchangeRateLogData>)_cvsExchangeRate.Source).Select(c => c.elcu).Distinct().ToList()))
                },
                                                                          "Exchange Rates Log", DateHelper.DateRangeFileName(DateTime.Today, DateTime.Today), EpplusHelper.OrderColumns(getExchangeRateLogDataGrid.Columns.ToList(), clsFormatReport.RptExchangeRatesLog()));

                if (fileinfo != null)
                {
                    frmDocumentViewer documentViewer = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewer.Owner = this;
                    documentViewer.ShowDialog();
                }
            }
            else
            {
                UIHelper.ShowMessage("There is no info to make a report");
            }
        }
Пример #9
0
        /// <summary>
        /// Imprime el reporte del Sale Log
        /// </summary>
        /// <history>
        /// [jorcanche]  created 07072016
        /// [edgrodriguez] 05/09/2016 Modified. Se cambio el método CreateExcelCustom por CreatCustomExcel
        /// </history>
        private async void btnPrintSaleLog_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (saleLogDataDataGrid == null)
                {
                    return;
                }
                if (saleLogDataDataGrid.Items.Count == 0)
                {
                    UIHelper.ShowMessage("There is no info to make a report");
                    return;
                }
                Mouse.OverrideCursor = Cursors.Wait;
                FileInfo fileInfo = await ReportBuilder.CreateCustomExcelAsync(
                    TableHelper.GetDataTableFromList((List <SaleLogData>)saleLogDataDataGrid.ItemsSource, true, true, true),
                    new List <Tuple <string, string> > {
                    Tuple.Create("Sale Id", _sale.ToString())
                },
                    "Sale Log",
                    DateHelper.DateRangeFileName(DateTime.Today, DateTime.Today),
                    EpplusHelper.OrderColumns(saleLogDataDataGrid.Columns.ToList(), Classes.clsFormatReport.RptSaleLog()));

                if (fileInfo != null)
                {
                    frmDocumentViewer documentViewver = new frmDocumentViewer(fileInfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewver.Owner = this;
                    documentViewver.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
            finally
            {
                Mouse.OverrideCursor = null;
            }
        }
Пример #10
0
        /// <summary>
        /// Exporta los registros de grid a un archivo de excel.
        /// </summary>
        /// <history>
        /// [edgrodriguez] 08/07/2016 Created
        /// [edgrodriguez] 05/09/2016 Modified. Se cambio el método CreateExcelCustom por CreatCustomExcel
        /// [emoguel] 08/09/2016 Modified. Ahora se abre el visor de reportes
        /// </history>
        private async void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            if (((List <SalesRoomLogData>)_salesRoomLog.Source).Any())
            {
                var fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList((List <SalesRoomLogData>)_salesRoomLog.Source, true, true, true),
                                                                          new List <Tuple <string, string> > {
                    Tuple.Create("Date Range", DateHelper.DateRange(DateTime.Today, DateTime.Today)), Tuple.Create("Sales Room ID", Context.User.SalesRoom.srID)
                },
                                                                          "Sales Rooms Log", DateHelper.DateRangeFileName(DateTime.Today, DateTime.Today), EpplusHelper.OrderColumns(dtgSalesRoomLog.Columns.ToList(), clsFormatReport.RptCloseSalesRoomLog()));

                if (fileinfo != null)
                {
                    frmDocumentViewer documentViewver = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewver.Owner = this;
                    documentViewver.ShowDialog();
                }
            }
            else
            {
                UIHelper.ShowMessage("There is no info to make a report");
            }
        }
Пример #11
0
        /// <summary>
        /// Guarda un excel con los datos del grid
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [emoguel] created 01/07/2016
        /// [edgrodriguez] 05/09/2016 Modified. Se cambio el método CreateExcelCustom por CreatCustomExcel
        /// </history>
        private async void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Mouse.OverrideCursor = Cursors.Wait;
                var fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList((List <GiftLogData>)dgrGifsLog.ItemsSource, true, true, true), new List <Tuple <string, string> > {
                    Tuple.Create("GIFT ID", idGift)
                },
                                                                          $"Gift Logs - {idGift}", DateHelper.DateRangeFileName(DateTime.Today, DateTime.Today), EpplusHelper.OrderColumns(dgrGifsLog.Columns.ToList(), clsFormatReport.RptGiftLog()));

                frmDocumentViewer documentViewver = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                documentViewver.Owner = this;
                documentViewver.ShowDialog();
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
            finally
            {
                Mouse.OverrideCursor = null;
            }
        }
Пример #12
0
        /// <summary>
        /// Exporta el reporte seleccionado a un archivo de excel.
        /// </summary>
        /// <history>
        /// [edgrodriguez] 21/Jun/2016 Created
        /// [jorcanche] 01/09/2016 modified se agrego validacion si no se selecciono un reporte
        /// [edgrodriguez] 05/09/2016 Modified. Se cambio el método CreateExcelCustom por CreatCustomExcel
        /// [emoguel] 08/09/2016 Modified. Ahora abre el visor de reportes
        /// </history>
        private async void lstHostReports_Select(object sender, RoutedEventArgs e)
        {
            if (e.GetType() == typeof(KeyEventArgs) && ((KeyEventArgs)e).Key != Key.Enter)
            {
                return;
            }
            var      filters      = new List <Tuple <string, string> >();
            var      daterange    = DateHelper.DateRange(dtpDate.Value.Value, dtpDate.Value.Value);
            var      dateFileName = DateHelper.DateRangeFileName(dtpDate.Value.Value, dtpDate.Value.Value);
            FileInfo fileinfo     = null;

            if (lstHostReports.SelectedItem == null)
            {
                UIHelper.ShowMessage("You must select a report");
                return;
            }
            switch ((lstHostReports.SelectedItem as ListBoxItem).Content.ToString())
            {
            case "Premanifest":
                var lstPremanifest = await BRGeneralReports.GetRptPremanifest(dtpDate.Value.Value, salesRoom : Context.User.SalesRoom.srID);

                if (lstPremanifest.Any())
                {
                    filters.Add(Tuple.Create("Filter Range", daterange));
                    filters.Add(Tuple.Create("Sales Room", Context.User.SalesRoom.srID));
                    fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(lstPremanifest, true, true), filters, "Premanifest", dateFileName, clsFormatReports.RptPremanifest());
                }
                else
                {
                    UIHelper.ShowMessage("There is no data for make a report");
                }
                break;

            case "Premanifest With Gifts":
                var lstPremanifestWithG = await BRGeneralReports.GetRptPremanifestWithGifts(dtpDate.Value.Value, salesRoom : Context.User.SalesRoom.srID);

                if (lstPremanifestWithG.Any())
                {
                    filters.Add(Tuple.Create("Filter Range", daterange));
                    filters.Add(Tuple.Create("Sales Room", Context.User.SalesRoom.srID));
                    fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(lstPremanifestWithG, true, true), filters, "Premanifest With Gifts", dateFileName, clsFormatReports.RptPremanifestWithGifts());
                }
                else
                {
                    UIHelper.ShowMessage("There is no data for make a report");
                }
                break;

            case "Up List End":
                var lstUplistEnd = await BRReportsBySalesRoom.GetRptUplist(dtpDate.Value.Value.Date, salesRoom : Context.User.SalesRoom.srID, uplistType : 1);

                if (lstUplistEnd.Any())
                {
                    filters.Add(Tuple.Create("Filter Range", daterange));
                    filters.Add(Tuple.Create("Sales Room", Context.User.SalesRoom.srID));
                    var salesmans = lstUplistEnd.Select(c => c.Salesman).Distinct().ToList();

                    salesmans.ForEach(s =>
                    {
                        var first = lstUplistEnd.FirstOrDefault(u => u.Salesman == s);
                        var index = lstUplistEnd.IndexOf(first);
                        lstUplistEnd.Where(c => c.Salesman == s && lstUplistEnd.IndexOf(c) != index).ToList().ForEach(c =>
                        {
                            c.AmountM   = 0;
                            c.AmountYtd = 0;
                        });
                    });

                    fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(lstUplistEnd, true, true), filters, "Up List End", dateFileName, clsFormatReport.RptUpList(), isPivot : true, addEnumeration : true);
                }
                else
                {
                    UIHelper.ShowMessage("There is no data for make a report");
                }
                break;

            case "Up List Start":
                var lstUplistStart = await BRReportsBySalesRoom.GetRptUplist(dtpDate.Value.Value, salesRoom : Context.User.SalesRoom.srID);

                if (lstUplistStart.Any())
                {
                    filters.Add(Tuple.Create("Filter Range", daterange));
                    filters.Add(Tuple.Create("Sales Room", Context.User.SalesRoom.srID));

                    var newUplist = new List <RptUpList>();
                    var times     = new List <string> {
                        "08:00", "10:00", "12:00"
                    };
                    //Replicamos los registros por cada registro de la lista times
                    lstUplistStart.ForEach(c =>
                    {
                        times.ForEach(t =>
                        {
                            newUplist.Add(new RptUpList
                            {
                                Salesman      = c.Salesman,
                                SalesmanN     = c.SalesmanN,
                                SalesmanPost  = c.SalesmanPost,
                                SalesmanPostN = c.SalesmanPostN,
                                DayOffList    = c.DayOffList,
                                Language      = c.Language,
                                Location      = c.Location,
                                Time          = c.Time,
                                TimeN         = t,
                                AmountYtd     = c.AmountYtd,
                                AmountM       = c.AmountM
                            });
                        });
                    });

                    fileinfo = await ReportBuilder.CreateCustomExcelAsync(TableHelper.GetDataTableFromList(newUplist, true, true), filters, "Up List Start", dateFileName, clsFormatReport.RptUpList(), isPivot : true, addEnumeration : true);
                }
                else
                {
                    UIHelper.ShowMessage("There is no data for make a report");
                }
                break;
            }

            if (fileinfo != null)
            {
                frmDocumentViewer documentViewver = new frmDocumentViewer(fileinfo, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                documentViewver.Owner = this;
                documentViewver.ShowDialog();
            }
        }
Пример #13
0
        public async static void PremanifestToExcel(List <RptPremanifestOuthouse> lstpremanifest, Window window)
        {
            _filters = new List <Tuple <string, string> > {
                Tuple.Create("Lead Source", Context.User.LeadSource.lsID)
            };
            var date = BRHelpers.GetServerDate();

            if (lstpremanifest.Count > 0)
            {
                var premanifestAux = lstpremanifest.Select(c => new
                {
                    c.srN,
                    c.guID,
                    c.guOutInvitNum,
                    c.Deposit,
                    c.guHotel,
                    c.guRoomNum,
                    c.guLastName1,
                    c.guFirstName1,
                    c.guco,
                    c.coN,
                    c.guBookD,
                    c.guBookT,
                    c.guPRInvit1,
                    guShow = c.guShow ? "✓" : "",
                    guSale = c.guSale ? "✓" : "",
                    c.guComments,
                }).ToList();

                var dt = TableHelper.GetDataTableFromList(premanifestAux, true);
                _rptName = "Premanifest  Outhouse " + Context.User.LeadSource.lsN;
                var dateRange = DateHelper.DateRangeFileName(date, date);
                var format    = new ColumnFormatList();

                format.Add("SR", "srN", isGroup: true, isVisible: false);
                format.Add("Deposit", "Deposit", isGroup: true, isVisible: false);
                format.Add("GUID", "guID");
                format.Add("Out Invit", "guOutInvitNum");
                format.Add("Hotel", "guHotel");
                format.Add("Room", "guRoomNum");
                format.Add("Last Name", "guLastName1");
                format.Add("Firs tName", "guFirstName1");
                format.Add("Country ID", "guco");
                format.Add("Country", "coN");
                format.Add("Book D", "guBookD", format: EnumFormatTypeExcel.Date);
                format.Add("Book T", "guBookT", format: EnumFormatTypeExcel.Time);
                format.Add("PR B", "guPRInvit1");
                format.Add("Sh", "guShow", axis: ePivotFieldAxis.Values, aligment: ExcelHorizontalAlignment.Center, function: DataFieldFunctions.Count);
                format.Add("Sale", "guSale", axis: ePivotFieldAxis.Values, aligment: ExcelHorizontalAlignment.Center, function: DataFieldFunctions.Count);
                format.Add("Deposits / Comments", "guComments");

                var info = await ReportBuilder.CreateCustomExcelAsync(dt, _filters, _rptName, dateRange, format, blnShowSubtotal : true, blnRowGrandTotal : true, addEnumeration : true);

                if (info != null)
                {
                    frmDocumentViewer documentViewer = new frmDocumentViewer(info, Context.User.HasPermission(EnumPermission.RptExcel, EnumPermisionLevel.ReadOnly), false);
                    documentViewer.Owner = window;
                    documentViewer.ShowDialog();
                }
            }
        }