Beispiel #1
0
        public static void ProcessReportSystemAudit(CustomReportDisplayMode pViewMode, string filter, string filterHumanReadable)
        {
            try
            {
                //Move This to CustomReport SubClasses ex Filename, Params, DataSources etc

                string       reportFile   = GetReportFilePath("ReportSystemAuditList.frx");
                CustomReport customReport = new CustomReport(reportFile, 1);
                //Report Parameters
                customReport.SetParameterValue("Report Title", Resx.report_list_audit_table);
                //customReport.SetParameterValue("Factura No", 280);

                //Prepare and Declare FRBOGenericCollections
                FRBOGenericCollection <FRBOSystemAuditView> gcSystemAudit = new FRBOGenericCollection <FRBOSystemAuditView>(filter);

                //Prepare and Enable DataSources
                customReport.RegisterData(gcSystemAudit, "SystemAudit");
                if (customReport.GetDataSource("SystemAudit") != null)
                {
                    customReport.GetDataSource("SystemAudit").Enabled = true;
                }

                //customReport.ReportInfo.Name = FILL THIS WITH REPORT NAME;
                customReport.Process(pViewMode);
                customReport.Dispose();
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
            }
        }
Beispiel #2
0
        //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        //Static

        // report_label_list_family_subfamily_articles : Relatório - Familias, SubFamilias e Artigos
        public static void ProcessReportArticle(CustomReportDisplayMode pViewMode)
        {
            try
            {
                //Move This to CustomReport SubClasses ex Filename, Params, DataSources etc

                string       reportFile   = GetReportFilePath("ReportArticleList.frx");
                CustomReport customReport = new CustomReport(reportFile, 1);
                //Report Parameters
                customReport.SetParameterValue("Report Title", Resx.report_list_family_subfamily_articles);
                //customReport.SetParameterValue("Factura No", 280);

                //Prepare and Declare FRBOGenericCollections
                //"Oid,Designation,ButtonLabel"
                FRBOGenericCollection <FRBOArticleFamily>    gcArticleFamily = new FRBOGenericCollection <FRBOArticleFamily>();
                FRBOGenericCollection <FRBOArticleSubFamily> gcArticleSubFamily;
                FRBOGenericCollection <FRBOArticle>          gcArticle;

                //Render Child Bussiness Objects
                foreach (FRBOArticleFamily family in gcArticleFamily)
                {
                    //Get SubFamily
                    gcArticleSubFamily      = new FRBOGenericCollection <FRBOArticleSubFamily>(string.Format("Family = '{0}'", family.Oid), "Ord");
                    family.ArticleSubFamily = gcArticleSubFamily.List;

                    //Get Articles
                    foreach (FRBOArticleSubFamily subFamily in family.ArticleSubFamily)
                    {
                        gcArticle         = new FRBOGenericCollection <FRBOArticle>(string.Format("SubFamily = '{0}'", subFamily.Oid), "Ord");
                        subFamily.Article = gcArticle.List;
                    }
                }

                //Prepare and Enable DataSources
                customReport.RegisterData(gcArticleFamily, "ArticleFamily");
                if (customReport.GetDataSource("ArticleFamily") != null)
                {
                    customReport.GetDataSource("ArticleFamily").Enabled = true;
                }
                if (customReport.GetDataSource("ArticleFamily.ArticleSubFamily") != null)
                {
                    customReport.GetDataSource("ArticleFamily.ArticleSubFamily").Enabled = true;
                }
                if (customReport.GetDataSource("ArticleFamily.ArticleSubFamily.Article") != null)
                {
                    customReport.GetDataSource("ArticleFamily.ArticleSubFamily.Article").Enabled = true;
                }

                //customReport.ReportInfo.Name = FILL THIS WITH REPORT NAME;
                customReport.Process(pViewMode);
                customReport.Dispose();
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
            }
        }
Beispiel #3
0
        public static void ProcessReportDocumentMasterList(CustomReportDisplayMode pViewMode, string reportTitle, string groupCondition, string groupTitle, string filter, string filterHumanReadable)
        {
            try
            {
                //Move This to CustomReport SubClasses ex Filename, Params, DataSources etc

                string       reportFile   = GetReportFilePath("ReportDocumentFinanceMasterList.frx");
                CustomReport customReport = new CustomReport(reportFile, 1);
                //Report Parameters
                customReport.SetParameterValue("Report Title", reportTitle);
                if (!string.IsNullOrEmpty(filterHumanReadable))
                {
                    customReport.SetParameterValue("Report Filter", filterHumanReadable);
                }

                // Get Objects
                GroupHeaderBand groupHeaderBand     = (GroupHeaderBand)customReport.FindObject("GroupHeader1");
                TextObject      groupHeaderBandText = (TextObject)customReport.FindObject("TextGroupHeader1");
                if (groupHeaderBand != null && groupHeaderBandText != null)
                {
                    groupHeaderBand.Condition = groupCondition;
                    groupHeaderBandText.Text  = groupTitle;
                }
                else
                {
                    _log.Error("Error cant find Report Objects");
                }

                //Prepare and Declare FRBOGenericCollections
                FRBOGenericCollection <FRBODocumentFinanceMaster> gcDocumentFinanceMaster = new FRBOGenericCollection <FRBODocumentFinanceMaster>(filter);

                //Prepare and Enable DataSources
                customReport.RegisterData(gcDocumentFinanceMaster, "DocumentFinanceMaster");
                if (customReport.GetDataSource("DocumentFinanceMaster") != null)
                {
                    customReport.GetDataSource("DocumentFinanceMaster").Enabled = true;
                }

                //customReport.ReportInfo.Name = FILL THIS WITH REPORT NAME;
                customReport.Process(pViewMode);
                customReport.Dispose();
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
            }
        }
Beispiel #4
0
        //public static string DocumentMasterCreatePDF(DocumentFinanceMaster pDocumentFinanceMaster, string pDestinationFileName, CustomReportDisplayMode pCustomReportDisplayMode)
        public static string DocumentMasterCreatePDF(CustomReportDisplayMode pViewMode, FIN_DocumentFinanceMaster pDocumentFinanceMaster, string pDestinationFileName)
        {
            string result = String.Empty;

            try
            {
                //Generate Default CopyNames from DocumentType
                List <int> copyNames  = CopyNames(pDocumentFinanceMaster.DocumentType.PrintCopies);
                string     hash4Chars = ProcessFinanceDocument.GenDocumentHash4Chars(pDocumentFinanceMaster.Hash);
                result = ProcessReportFinanceDocument(pViewMode, pDocumentFinanceMaster.Oid, hash4Chars, copyNames, pDestinationFileName);
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
            }
            return(result);
        }
Beispiel #5
0
        // report_label_list_customers : Relatório - Clientes
        public static void ProcessReportCustomer(CustomReportDisplayMode pViewMode)
        {
            try
            {
                //Move This to CustomReport SubClasses ex Filename, Params, DataSources etc

                string       reportFile   = GetReportFilePath("ReportCustomerList.frx");
                CustomReport customReport = new CustomReport(reportFile, 1);
                //Report Parameters
                customReport.SetParameterValue("Report Title", Resx.report_list_customers);
                //customReport.SetParameterValue("Factura No", 280);

                //Prepare and Declare FRBOGenericCollections
                //"Oid,Designation,ButtonLabel"
                FRBOGenericCollection <FRBOCustomerType> gcCustomerType = new FRBOGenericCollection <FRBOCustomerType>();
                FRBOGenericCollection <FRBOCustomer>     gcCustomer;

                //Render Child Bussiness Objects
                foreach (FRBOCustomerType customerType in gcCustomerType)
                {
                    //Get SubFamily
                    gcCustomer            = new FRBOGenericCollection <FRBOCustomer>(string.Format("CustomerType = '{0}'", customerType.Oid), "Ord");
                    customerType.Customer = gcCustomer.List;
                }

                //Prepare and Enable DataSources
                customReport.RegisterData(gcCustomerType, "CustomerType");
                if (customReport.GetDataSource("CustomerType") != null)
                {
                    customReport.GetDataSource("CustomerType").Enabled = true;
                }
                if (customReport.GetDataSource("CustomerType.Customer") != null)
                {
                    customReport.GetDataSource("CustomerType.Customer").Enabled = true;
                }

                //customReport.ReportInfo.Name = FILL THIS WITH REPORT NAME;
                customReport.Process(pViewMode);
                customReport.Dispose();
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
            }
        }
Beispiel #6
0
        //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        //ProcessReportFinanceDocumentPayment

        public static string ProcessReportFinanceDocumentPayment(CustomReportDisplayMode pViewMode, Guid pDocumentFinancePaymentOid, List <int> pCopyNames, string pDestinationFileName = "")
        {
            string result = String.Empty;

            try
            {
                string       fileUserReportDocumentFinancePayment = FrameworkUtils.OSSlash(string.Format("{0}{1}\\{2}", GlobalFramework.Path["reports"], "UserReports", "ReportDocumentFinancePayment.frx"));
                CustomReport customReport = new CustomReport(fileUserReportDocumentFinancePayment, pCopyNames);

                //Get Result Objects from FRBOHelper
                ResultFRBODocumentFinancePayment fRBOHelperResponseProcessReportFinancePayment = FRBOHelper.GetFRBOFinancePayment(pDocumentFinancePaymentOid);
                //Get Generic Collections From FRBOHelper Results
                FRBOGenericCollection <FRBODocumentFinancePaymentView> gcDocumentFinancePayment = fRBOHelperResponseProcessReportFinancePayment.DocumentFinancePayment;

                //Prepare and Enable DataSources
                customReport.RegisterData(gcDocumentFinancePayment, "DocumentFinancePayment");
                if (customReport.GetDataSource("DocumentFinancePayment") != null)
                {
                    customReport.GetDataSource("DocumentFinancePayment").Enabled = true;
                }
                if (customReport.GetDataSource("DocumentFinancePayment.DocumentFinancePaymentDocument") != null)
                {
                    customReport.GetDataSource("DocumentFinancePayment.DocumentFinancePaymentDocument").Enabled = true;
                }

                //Add ReportInfo.Name, to be used for Ex in Pdf Filenames, OS etc
                customReport.ReportInfo.Name = gcDocumentFinancePayment.List[0].PaymentRefNo;
                result = customReport.Process(pViewMode, pDestinationFileName);
                customReport.Dispose();

                return(result);
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
                throw new Exception(ex.Message);
            }
        }
Beispiel #7
0
        public static string DocumentPaymentCreatePDF(FIN_DocumentFinancePayment pDocumentFinancePayment, string pDestinationFileName, CustomReportDisplayMode pCustomReportDisplayMode)
        {
            string result = String.Empty;

            try
            {
                //Generate Default CopyNames from DocumentType
                List <int> copyNames = CopyNames(pDocumentFinancePayment.DocumentType.PrintCopies);
                result = ProcessReportFinanceDocumentPayment(pCustomReportDisplayMode, pDocumentFinancePayment.Oid, copyNames, pDestinationFileName);
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
            }
            return(result);
        }
Beispiel #8
0
        public static void ProcessReportDocumentDetail(CustomReportDisplayMode pViewMode, string resourceString, string groupField, string groupCondition, string groupTitle, string filter, string filterHumanReadable, bool grouped)
        {
            try
            {
                //Move This to CustomReport SubClasses ex Filename, Params, DataSources etc

                string       reportFile   = GetReportFilePath("ReportDocumentFinanceDetailList.frx");
                CustomReport customReport = new CustomReport(reportFile, 1);

                // Add PostFix to Report Title
                Tuple <string, string> tuppleResourceString = GetResourceString(resourceString);
                string reportTitleString        = tuppleResourceString.Item1;
                string reportTitleStringPostfix = tuppleResourceString.Item2;

                //Report Parameters
                customReport.SetParameterValue("Report Title", String.Format("{0}{1}", reportTitleString, reportTitleStringPostfix));
                if (!string.IsNullOrEmpty(filterHumanReadable))
                {
                    customReport.SetParameterValue("Report Filter", filterHumanReadable);
                }

                // Get Objects
                GroupHeaderBand groupHeaderBand     = (GroupHeaderBand)customReport.FindObject("GroupHeader1");
                TextObject      groupHeaderBandText = (TextObject)customReport.FindObject("TextGroupHeader1");
                if (groupHeaderBand != null && groupHeaderBandText != null)
                {
                    groupHeaderBand.Condition = groupCondition;
                    groupHeaderBandText.Text  = groupTitle;
                }
                else
                {
                    _log.Error("Error cant find Report Objects");
                }

                //Prepare and Declare FRBOGenericCollections for non grouped and gouped reports
                if (!grouped)
                {
                    // Using view_documentfinance
                    FRBOGenericCollection <FRBODocumentFinanceMasterDetailView> gcDocumentFinanceMasterDetail = new FRBOGenericCollection <FRBODocumentFinanceMasterDetailView>(filter);
                    //Prepare and Enable DataSources
                    customReport.RegisterData(gcDocumentFinanceMasterDetail, "DocumentFinanceDetail");
                }
                else
                {
                    // Using view_documentfinancesellgroup
                    FRBOGenericCollection <FRBODocumentFinanceMasterDetailGroupView> gcDocumentFinanceMasterDetail = new FRBOGenericCollection <FRBODocumentFinanceMasterDetailGroupView>(filter, groupField, string.Empty);
                    //Prepare and Enable DataSources
                    customReport.RegisterData(gcDocumentFinanceMasterDetail, "DocumentFinanceDetail");

                    DataBand   dataBandData3               = (DataBand)customReport.FindObject("Data3");
                    TextObject textColumnDateHeader        = (TextObject)customReport.FindObject("TextColumnDateHeader");
                    TextObject textColumnDateData          = (TextObject)customReport.FindObject("TextColumnDateData");
                    TextObject textColumnCodeHeader        = (TextObject)customReport.FindObject("TextColumnCodeHeader");
                    TextObject textColumnCodeData          = (TextObject)customReport.FindObject("TextColumnCodeData");
                    TextObject textColumnDesignationHeader = (TextObject)customReport.FindObject("TextColumnDesignationHeader");
                    TextObject textColumnDesignationData   = (TextObject)customReport.FindObject("textColumnDesignationData");
                    // Change Objects
                    if (dataBandData3 != null && groupHeaderBandText != null && textColumnDateData != null && textColumnCodeHeader != null && textColumnCodeData != null && textColumnDesignationHeader != null && textColumnDesignationData != null)
                    {
                        // Remove [DocumentFinanceDetail.Date] and use sencon Sort has Priority
                        dataBandData3.Sort[0].Expression = dataBandData3.Sort[1].Expression;
                        dataBandData3.Sort[1].Expression = string.Empty;
                        // Date : Disable non exitence fields [DocumentFinanceDetail.Date] in sort and firts colum data
                        textColumnDateHeader.Delete();
                        textColumnDateData.Delete();
                        // Code
                        textColumnCodeHeader.Left         = 0;
                        textColumnCodeData.Left           = 0;
                        textColumnDesignationHeader.Left  = 56.7F;
                        textColumnDesignationData.Left    = 56.7F;
                        textColumnDesignationHeader.Width = 292.95F;
                        textColumnDesignationData.Width   = 292.95F;
                    }
                    else
                    {
                        _log.Error("Error cant find Report Objects");
                    }
                }

                if (customReport.GetDataSource("DocumentFinanceDetail") != null)
                {
                    customReport.GetDataSource("DocumentFinanceDetail").Enabled = true;
                }

                //customReport.ReportInfo.Name = FILL THIS WITH REPORT NAME;
                customReport.Process(pViewMode);
                customReport.Dispose();
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
            }
        }
Beispiel #9
0
 public static void ProcessReportDocumentDetail(CustomReportDisplayMode pViewMode, string resourceString, string groupField, string groupCondition, string groupTitle, bool grouped)
 {
     ProcessReportDocumentDetail(pViewMode, resourceString, groupField, groupCondition, groupTitle, null, null, grouped);
 }
Beispiel #10
0
 public static void ProcessReportDocumentMasterList(CustomReportDisplayMode pViewMode, string resourceString, string groupCondition, string groupTitle)
 {
     ProcessReportDocumentMasterList(pViewMode, resourceString, groupCondition, groupTitle, null, null);
 }
Beispiel #11
0
        public static string ProcessReportFinanceDocument(CustomReportDisplayMode pViewMode, Guid pDocumentFinanceMasterOid, string pHash4Chars, List <int> pCopyNames, bool pSecondCopy, string pMotive, string pDestinationFileName = "")
        {
            string result = String.Empty;

            try
            {
                //TODO: Move This to CustomReport SubClasses ex Filename, Params, DataSources etc

                //Get DocumentFinanceMaster
                FIN_DocumentFinanceMaster documentMaster = (FIN_DocumentFinanceMaster)GlobalFramework.SessionXpo.GetObjectByKey(typeof(FIN_DocumentFinanceMaster), pDocumentFinanceMasterOid);

                // Build Final Filename Report
                string fileName = (documentMaster.DocumentType.WayBill) ? "ReportDocumentFinanceWayBill.frx" : "ReportDocumentFinance.frx";
                string fileUserReportDocumentFinance = FrameworkUtils.OSSlash(string.Format("{0}{1}\\{2}", GlobalFramework.Path["reports"], "UserReports", fileName));

                CustomReport customReport = new CustomReport(fileUserReportDocumentFinance, pCopyNames);
                customReport.DoublePass = (documentMaster.DocumentDetail.Count > SettingsApp.CustomReportReportDocumentFinanceMaxDetail);
                customReport.Hash4Chars = pHash4Chars;
                //Report Parameters
                //customReport.SetParameterValue("Invoice Noº", 280);

                //Get Result Objects from FRBOHelper
                ResultFRBODocumentFinanceMaster fRBOHelperResponseProcessReportFinanceDocument = FRBOHelper.GetFRBOFinanceDocument(pDocumentFinanceMasterOid);
                //Get Generic Collections From FRBOHelper Results
                FRBOGenericCollection <FRBODocumentFinanceMasterView> gcDocumentFinanceMaster = fRBOHelperResponseProcessReportFinanceDocument.DocumentFinanceMaster;

                //Prepare and Enable DataSources
                customReport.RegisterData(gcDocumentFinanceMaster, "DocumentFinanceMaster");
                if (customReport.GetDataSource("DocumentFinanceMaster") != null)
                {
                    customReport.GetDataSource("DocumentFinanceMaster").Enabled = true;
                }
                if (customReport.GetDataSource("DocumentFinanceMaster.DocumentFinanceDetail") != null)
                {
                    customReport.GetDataSource("DocumentFinanceMaster.DocumentFinanceDetail").Enabled = true;
                }
                if (customReport.GetDataSource("DocumentFinanceMaster.DocumentFinanceMasterTotal") != null)
                {
                    customReport.GetDataSource("DocumentFinanceMaster.DocumentFinanceMasterTotal").Enabled = true;
                }

                //Scripts - Dont Delete this Comment, may be usefull if we remove Script from Report File
                //Print X Records per Data Band
                //FastReport.DataBand dataBand = (DataBand) customReport.FindObject("Data1");
                //int dataBandRec = 1;
                ////Used to Break Page on X Recs, Usefull to leave open space for Report Summary
                //int dataBandMaxRecs = 30;
                //dataBand.AfterPrint += delegate {
                //  Console.WriteLine(string.Format("dataBandRec.RowNo:[{0}], dataBandMaxRecs:[{1}], , dataBand.RowNo[{2}], report.Pages.Count[{3}]", dataBandRec, dataBandMaxRecs, dataBand.RowNo, report.Pages.Count));
                //  if (dataBandRec == dataBandMaxRecs) {
                //    dataBandRec = 1;
                //    dataBand.StartNewPage = true;
                //  }
                //  else
                //  {
                //    dataBandRec++;
                //    dataBand.StartNewPage = false;
                //  };
                //};

                //Assign Second Copy Reference
                _secondCopy = pSecondCopy;

                //Add ReportInfo.Name, to be used for Ex in Pdf Filenames, OS etc
                customReport.ReportInfo.Name = gcDocumentFinanceMaster.List[0].DocumentNumber;
                result = customReport.Process(pViewMode, pDestinationFileName);
                customReport.Dispose();

                return(result);
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
                throw new Exception(ex.Message);
            }
        }
Beispiel #12
0
        //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        //ProcessReportFinanceDocument - All FinanceMasterDocuments - Except Payments

        public static string ProcessReportFinanceDocument(CustomReportDisplayMode pViewMode, Guid pDocumentFinanceMasterOid, string pHash4Chars, List <int> pCopyNames, string pDestinationFileName = "")
        {
            return(ProcessReportFinanceDocument(pViewMode, pDocumentFinanceMasterOid, pHash4Chars, pCopyNames, false, String.Empty, pDestinationFileName));
        }
Beispiel #13
0
        public string Process(CustomReportDisplayMode pViewMode, string pDestinationFileName = "")
        {
            string result = String.Empty;

            //Prepare Modes
            switch (pViewMode)
            {
            case CustomReportDisplayMode.Preview:
            case CustomReportDisplayMode.Print:
            case CustomReportDisplayMode.ExportPDF:
            case CustomReportDisplayMode.ExportPDFSilent:
                //Get Object Reference to Change CopyName
                TextObject textCopyName = (TextObject)this.FindObject("TextCopyName");
                //Get Object Reference to Change SecondPrint Label for DocumentFinanceDocuments
                TextObject textSecondPrint = (TextObject)this.FindObject("TextSecondPrint");

                //Loop Copies and Change CopyName
                for (int i = 0; i < this.PrintSettings.CopyNames.Length; i++)
                {
                    if (textCopyName != null)
                    {
                        textCopyName.Text = this.PrintSettings.CopyNames[i];
                    }
                    if (textSecondPrint != null)
                    {
                        textSecondPrint.Text = (_secondCopy && i < 1) ? Resx.global_print_second_print : String.Empty;
                    }
                    //Store PreparedFiles in Custom SystemVariable, Required to PageNo in Reports ex "[ToInt32([PreparedPages]) + [Page]]"
                    //Else Page start aways in 1, when we call prepare, and we cannot have a usefull Page Counter working with .Prepare
                    this.Dictionary.SystemVariables.FindByName("PreparedPages").Value = (this.PreparedPages != null) ? this.PreparedPages.Count : 0;
                    //Call Report Prepare
                    this.Prepare(true);
                }
                break;
            }

            //NOT USED ANYMORE : Now we can Reset Copies to 1
            //this.PrintSettings.Copies = 1;

            //Send to ViewMode
            switch (pViewMode)
            {
            case CustomReportDisplayMode.Preview:
                this.ShowPrepared();
                break;

            case CustomReportDisplayMode.Print:
                this.PrintPrepared();
                break;

            case CustomReportDisplayMode.Design:
                this.Design();
                break;

            case CustomReportDisplayMode.ExportPDF:
            case CustomReportDisplayMode.ExportPDFSilent:
                //Prepare FileName
                string fileName = String.Empty;
                if (pDestinationFileName != String.Empty)
                {
                    fileName = pDestinationFileName;
                }
                //Default Filename
                else
                {
                    string dateTimeFileFormat = SettingsApp.FileFormatDateTime;
                    string dateTime           = FrameworkUtils.CurrentDateTimeAtomic().ToString(dateTimeFileFormat);
                    string reportName         = (this.ReportInfo.Name != String.Empty) ? string.Format("_{0}", this.ReportInfo.Name) : String.Empty;
                    fileName = string.Format("print_{0}{1}{2}", dateTime, reportName, ".pdf");
                    fileName = fileName.Replace('/', '-').Replace(' ', '_');
                    //2015-06-12 apmuga
                    fileName = FrameworkUtils.OSSlash(string.Format(@"{0}{1}", GlobalFramework.Path["temp"], fileName));
                    //Mario
                    //fileName = (GlobalFramework.Settings["AppEnvironment"].ToUpper() == "web".ToUpper())
                    //    ? FrameworkUtils.OSSlash(string.Format(@"{0}{1}", GlobalFramework.Path["temp"], fileName))
                    //    : FrameworkUtils.OSSlash(string.Format(@"{0}\{1}{2}", Environment.CurrentDirectory, GlobalFramework.Path["temp"], fileName))
                    //;
                }
                FastReport.Export.Pdf.PDFExport export = new FastReport.Export.Pdf.PDFExport();
                //if (export.ShowDialog()) report.Export(export, fileName);
                try
                {
                    this.Export(export, fileName);
                }
                catch (Exception ex)
                {
                    _log.Error(ex.Message, ex);
                }

                //Show Pdf
                if (pViewMode == CustomReportDisplayMode.ExportPDF && File.Exists(fileName))
                {
                    if (GlobalFramework.CanOpenFiles)
                    {
                        //Use full Path, keep untoutched fileName for result
                        System.Diagnostics.Process.Start(FrameworkUtils.OSSlash(string.Format(@"{0}\{1}", Environment.CurrentDirectory, fileName)));
                    }
                }
                result = fileName;
                break;

            default:
                break;
            }

            return(result);
        }
Beispiel #14
0
 // Used in Detail
 public static void ProcessReportDocumentDetail(CustomReportDisplayMode pViewMode, string resourceString, string groupCondition, string groupTitle, string filter, string filterHumanReadable)
 {
     ProcessReportDocumentDetail(pViewMode, resourceString, groupCondition, groupTitle, null, null, null, null, false);
 }
Beispiel #15
0
        private void PrintReportRouter(object sender, EventArgs e)
        {
            CustomReportDisplayMode displayMode = (Debugger.IsAttached)
                ? CustomReportDisplayMode.Design
                : CustomReportDisplayMode.ExportPDF;

            // Override Default Development Mode
            displayMode = CustomReportDisplayMode.ExportPDF;

            // Local Variables
            string reportFilter = string.Empty;
            string reportFilterHumanReadable = string.Empty;
            string databaseSourceObject      = string.Empty;

            AccordionChildButton button = (sender as AccordionChildButton);
            //_log.Debug(String.Format("Button.Name: [{0}], Button.label: [{1}]", button.Name, button.Label));

            // Get Token From buttonName
            ReportsTypeToken token = (ReportsTypeToken)Enum.Parse(typeof(ReportsTypeToken), button.Name, true);

            // Prepare ReportsQueryDialogMode
            ReportsQueryDialogMode reportsQueryDialogMode = ReportsQueryDialogMode.UNDEFINED;

            // Catch REPORT_SALES_DETAIL_* and REPORT_SALES_DETAIL_GROUP_* use same View
            if (token.ToString().StartsWith("REPORT_SALES_DETAIL_"))
            {
                reportsQueryDialogMode = ReportsQueryDialogMode.FINANCIAL_DETAIL;
                databaseSourceObject   = "view_documentfinance";
            }
            else if (token.ToString().StartsWith("REPORT_SALES_"))
            {
                reportsQueryDialogMode = ReportsQueryDialogMode.FINANCIAL;
                databaseSourceObject   = "fin_documentfinancemaster";
            }
            else if (token.ToString().Equals("REPORT_LIST_STOCK_MOVEMENTS"))
            {
                reportsQueryDialogMode = ReportsQueryDialogMode.ARTICLE_STOCK_MOVEMENTS;
                databaseSourceObject   = "view_articlestockmovement";
            }
            else if (token.ToString().Equals("REPORT_LIST_AUDIT_TABLE"))
            {
                reportsQueryDialogMode = ReportsQueryDialogMode.SYSTEM_AUDIT;
                databaseSourceObject   = "view_systemaudit";
            }
            else if (token.ToString().Equals("REPORT_LIST_CURRENT_ACCOUNT"))
            {
                reportsQueryDialogMode = ReportsQueryDialogMode.CURRENT_ACCOUNT;
                databaseSourceObject   = "view_documentfinancecurrentaccount";
            }
            else if (token.ToString().Equals("REPORT_LIST_USER_COMMISSION"))
            {
                reportsQueryDialogMode = ReportsQueryDialogMode.USER_COMMISSION;
                databaseSourceObject   = "view_usercommission";
            }

            // Common GetReportsQueryDialogFilter for All Non Undefined ReportsQueryDialogMode
            if (reportsQueryDialogMode != ReportsQueryDialogMode.UNDEFINED)
            {
                // Call PosReportsQueryDialog to get Filter
                List <string> dialogresultFilter = GetReportsQueryDialogFilter(reportsQueryDialogMode, databaseSourceObject);
                if (dialogresultFilter != null && dialogresultFilter.Count == 2)
                {
                    reportFilter = dialogresultFilter[0];
                    reportFilterHumanReadable = dialogresultFilter[1];
                }
                // ResponseType.Cancel
                else
                {
                    reportFilter = null;
                    reportFilterHumanReadable = null;
                }
            }

            // Proceed if we have a Filter != null (ResponseType.Ok), ex can be a string.Empty
            //if (reportFilter != null || !financialViewMode)
            if (reportFilter != null /* || reportsQueryDialogMode != ReportsQueryDialogMode.UNDEFINED*/)
            {
                switch (token)
                {
                case ReportsTypeToken.REPORT_SALES_PER_FINANCE_DOCUMENT:
                    CustomReport.ProcessReportDocumentMasterList(displayMode
                                                                 , Resx.ResourceManager.GetString(token.ToString().ToLower())
                                                                 , "[DocumentFinanceMaster.DocumentType.Ord]"
                                                                 , "[DocumentFinanceMaster.DocumentType.Designation] ([DocumentFinanceMaster.DocumentType.Code])",
                                                                 reportFilter,
                                                                 reportFilterHumanReadable
                                                                 );
                    break;

                case ReportsTypeToken.REPORT_SALES_PER_DATE:
                    CustomReport.ProcessReportDocumentMasterList(displayMode
                                                                 , Resx.ResourceManager.GetString(token.ToString().ToLower())
                                                                 , "[DocumentFinanceMaster.DocumentDate]"
                                                                 , "[DocumentFinanceMaster.DocumentDate]",
                                                                 reportFilter,
                                                                 reportFilterHumanReadable
                                                                 );
                    break;

                case ReportsTypeToken.REPORT_SALES_PER_USER:
                    CustomReport.ProcessReportDocumentMasterList(displayMode
                                                                 , Resx.ResourceManager.GetString(token.ToString().ToLower())
                                                                 , "[DocumentFinanceMaster.CreatedBy.Ord]"
                                                                 , "[DocumentFinanceMaster.CreatedBy.Name] ([DocumentFinanceMaster.CreatedBy.Code])",
                                                                 reportFilter,
                                                                 reportFilterHumanReadable
                                                                 );
                    break;

                case ReportsTypeToken.REPORT_SALES_PER_TERMINAL:
                    CustomReport.ProcessReportDocumentMasterList(displayMode
                                                                 , Resx.ResourceManager.GetString(token.ToString().ToLower())
                                                                 , "[DocumentFinanceMaster.CreatedWhere.Ord]"
                                                                 , "[DocumentFinanceMaster.CreatedWhere.Designation] ([DocumentFinanceMaster.CreatedWhere.Code])",
                                                                 reportFilter,
                                                                 reportFilterHumanReadable
                                                                 );
                    break;

                case ReportsTypeToken.REPORT_SALES_PER_CUSTOMER:
                    CustomReport.ProcessReportDocumentMasterList(displayMode
                                                                 , Resx.ResourceManager.GetString(token.ToString().ToLower())
                                                                 , "[DocumentFinanceMaster.EntityFiscalNumber]"
                                                                 , "[DocumentFinanceMaster.EntityName] ([DocumentFinanceMaster.EntityFiscalNumber])",
                                                                 reportFilter,
                                                                 reportFilterHumanReadable
                                                                 );
                    break;

                case ReportsTypeToken.REPORT_SALES_PER_PAYMENT_METHOD:
                    CustomReport.ProcessReportDocumentMasterList(displayMode
                                                                 , Resx.ResourceManager.GetString(token.ToString().ToLower())
                                                                 , "[DocumentFinanceMaster.PaymentCondition.Ord]"
                                                                 , "[DocumentFinanceMaster.PaymentCondition.Designation] ([DocumentFinanceMaster.PaymentCondition.Code])",
                                                                 // Required to Exclude Documents without PaymentMethod else Errors Occur
                                                                 (string.IsNullOrEmpty(reportFilter)) ? "PaymentMethod IS NOT NULL" : string.Format("{0} AND PaymentMethod IS NOT NULL", reportFilter),
                                                                 reportFilterHumanReadable
                                                                 );
                    break;

                case ReportsTypeToken.REPORT_SALES_PER_PAYMENT_CONDITION:
                    CustomReport.ProcessReportDocumentMasterList(displayMode
                                                                 , Resx.ResourceManager.GetString(token.ToString().ToLower())
                                                                 , "[DocumentFinanceMaster.PaymentCondition.Ord]"
                                                                 , "[DocumentFinanceMaster.PaymentCondition.Designation] ([DocumentFinanceMaster.PaymentCondition.Code])",
                                                                 // Required to Exclude Documents without PaymentCondition else Errors Occur
                                                                 (string.IsNullOrEmpty(reportFilter)) ? "PaymentCondition IS NOT NULL" : string.Format("{0} AND PaymentCondition IS NOT NULL", reportFilter),
                                                                 reportFilterHumanReadable
                                                                 );
                    break;

                case ReportsTypeToken.REPORT_SALES_PER_CURRENCY:
                    CustomReport.ProcessReportDocumentMasterList(displayMode
                                                                 , Resx.ResourceManager.GetString(token.ToString().ToLower())
                                                                 , "[DocumentFinanceMaster.Currency.Ord]"
                                                                 , "[DocumentFinanceMaster.Currency.Designation] ([DocumentFinanceMaster.Currency.Code])",
                                                                 // Required to Exclude Documents without PaymentCondition else Errors Occur
                                                                 (string.IsNullOrEmpty(reportFilter)) ? "PaymentCondition IS NOT NULL" : string.Format("{0} AND PaymentCondition IS NOT NULL", reportFilter),
                                                                 reportFilterHumanReadable
                                                                 );
                    break;

                case ReportsTypeToken.REPORT_SALES_PER_COUNTRY:
                    CustomReport.ProcessReportDocumentMasterList(displayMode
                                                                 , Resx.ResourceManager.GetString(token.ToString().ToLower())
                                                                 , "[DocumentFinanceMaster.EntityCountry]"
                                                                 , "[DocumentFinanceMaster.EntityCountry]",
                                                                 reportFilter,
                                                                 reportFilterHumanReadable
                                                                 );
                    break;

                //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
                // Detail

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_FINANCE_DOCUMENT:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.DocumentTypeOrd]"
                                                             , "[DocumentFinanceDetail.DocumentTypeDesignation] ([DocumentFinanceDetail.DocumentTypeCode])",
                                                             reportFilter,
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_DATE:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.DocumentDate]"
                                                             , "[DocumentFinanceDetail.DocumentDate]",
                                                             reportFilter,
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_USER:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.UserDetailOrd]"
                                                             , "[DocumentFinanceDetail.UserDetailName] ([DocumentFinanceDetail.UserDetailCode])",
                                                             reportFilter,
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_TERMINAL:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.TerminalOrd]"
                                                             , "[DocumentFinanceDetail.TerminalDesignation] ([DocumentFinanceDetail.TerminalCode])",
                                                             reportFilter,
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_CUSTOMER:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.EntityFiscalNumber]"
                                                             , "[DocumentFinanceDetail.EntityName] ([DocumentFinanceDetail.EntityFiscalNumber])",
                                                             reportFilter,
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_PAYMENT_METHOD:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.PaymentMethodOrd]"
                                                             , "[DocumentFinanceDetail.PaymentMethodDesignation] ([DocumentFinanceDetail.PaymentMethodCode])",
                                                             (string.IsNullOrEmpty(reportFilter)) ? "fmPaymentMethod IS NOT NULL" : string.Format("{0} AND fmPaymentMethod IS NOT NULL", reportFilter),
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_PAYMENT_CONDITION:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.PaymentConditionOrd]"
                                                             , "[DocumentFinanceDetail.PaymentConditionDesignation] ([DocumentFinanceDetail.PaymentConditionCode])",
                                                             (string.IsNullOrEmpty(reportFilter)) ? "fmPaymentCondition IS NOT NULL" : string.Format("{0} AND fmPaymentCondition IS NOT NULL", reportFilter),
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_CURRENCY:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.CurrencyOrd]"
                                                             , "[DocumentFinanceDetail.CurrencyDesignation] ([DocumentFinanceDetail.CurrencyCode])",
                                                             reportFilter,
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_COUNTRY:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.CountryOrd]"
                                                             , "[DocumentFinanceDetail.CountryDesignation] ([DocumentFinanceDetail.EntityCountryCode2])",
                                                             reportFilter,
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_FAMILY:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.ArticleFamilyOrd]"
                                                             , "[DocumentFinanceDetail.ArticleFamilyDesignation] ([DocumentFinanceDetail.ArticleFamilyCode])",
                                                             reportFilter,
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_FAMILY_AND_SUBFAMILY:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.ArticleSubFamilyOrd]"
                                                             , "[DocumentFinanceDetail.ArticleFamilyDesignation] ([DocumentFinanceDetail.ArticleFamilyCode]) / [DocumentFinanceDetail.ArticleSubFamilyDesignation] ([DocumentFinanceDetail.ArticleSubFamilyCode])",
                                                             reportFilter,
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_PLACE:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.PlaceOrd]"
                                                             , "[DocumentFinanceDetail.PlaceDesignation] ([DocumentFinanceDetail.PlaceCode])",
                                                             // Required to Exclude Documents without Place
                                                             (string.IsNullOrEmpty(reportFilter)) ? "cpPlace IS NOT NULL" : string.Format("{0} AND cpPlace IS NOT NULL", reportFilter),
                                                             reportFilterHumanReadable
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_PER_PLACE_TABLE:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "[DocumentFinanceDetail.PlaceTableOrd]"
                                                             , "[DocumentFinanceDetail.PlaceDesignation] ([DocumentFinanceDetail.PlaceCode]) / [DocumentFinanceDetail.PlaceTableDesignation] ([DocumentFinanceDetail.PlaceTableCode])",
                                                             // Required to Exclude Documents without PlaceTable
                                                             (string.IsNullOrEmpty(reportFilter)) ? "dmPlaceTable IS NOT NULL" : string.Format("{0} AND dmPlaceTable IS NOT NULL", reportFilter),
                                                             reportFilterHumanReadable
                                                             );
                    break;

                //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
                // Detail/Group

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_FINANCE_DOCUMENT:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "ftOid, ftDocumentTypeOrd, ftDocumentTypeCode, ftDocumentTypeDesignation"
                                                             , "ftOid AS GroupOid, ftDocumentTypeOrd AS GroupOrd, ftDocumentTypeCode AS GroupCode, ftDocumentTypeDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , reportFilter
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_DATE:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "fmDocumentDate"
                                                             , "fmDocumentDate AS GroupOid, fmDocumentDate AS GroupOrd, fmDocumentDate AS GroupCode, fmDocumentDate AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation]"
                                                             , reportFilter
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_USER:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "udUserDetail, udUserDetailOrd, udUserDetailCode, udUserDetailName"
                                                             , "udUserDetail AS GroupOid, udUserDetailOrd AS GroupOrd, udUserDetailCode AS GroupCode, udUserDetailName AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , reportFilter
                                                             , reportFilterHumanReadable
                                                             , true
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_TERMINAL:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "trTerminal, trTerminalOrd, trTerminalCode, trTerminalDesignation"
                                                             , "trTerminal AS GroupOid, trTerminalOrd AS GroupOrd, trTerminalCode AS GroupCode, trTerminalDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , reportFilter
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_CUSTOMER:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "fmEntity, cuEntityOrd, cuEntityCode, fmEntityName"
                                                             , "fmEntity AS GroupOid, cuEntityOrd AS GroupOrd, cuEntityCode AS GroupCode, fmEntityName AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , reportFilter
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_PAYMENT_METHOD:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "fmPaymentMethod, pmPaymentMethodOrd, pmPaymentMethodCode, pmPaymentMethodDesignation"
                                                             , "fmPaymentMethod AS GroupOid, pmPaymentMethodOrd AS GroupOrd, pmPaymentMethodCode AS GroupCode, pmPaymentMethodDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , (string.IsNullOrEmpty(reportFilter)) ? "fmPaymentMethod IS NOT NULL" : string.Format("{0} AND fmPaymentMethod IS NOT NULL", reportFilter)
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_PAYMENT_CONDITION:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "fmPaymentCondition, pcPaymentConditionOrd, pcPaymentConditionCode, pcPaymentConditionDesignation"
                                                             , "fmPaymentCondition AS GroupOid, pcPaymentConditionOrd AS GroupOrd, pcPaymentConditionCode AS GroupCode, pcPaymentConditionDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , (string.IsNullOrEmpty(reportFilter)) ? "fmPaymentCondition IS NOT NULL" : string.Format("{0} AND fmPaymentCondition IS NOT NULL", reportFilter)
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_CURRENCY:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "fmCurrency, crCurrencyOrd, crCurrencyCode, crCurrencyDesignation"
                                                             , "fmCurrency AS GroupOid, crCurrencyOrd AS GroupOrd, crCurrencyCode AS GroupCode, crCurrencyDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , reportFilter
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_COUNTRY:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "ccCountry, ccCountryOrd, ccCountryCode, ccCountryDesignation"
                                                             , "ccCountry AS GroupOid, ccCountryOrd AS GroupOrd, ccCountryCode AS GroupCode, ccCountryDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , reportFilter
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_FAMILY:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "afFamily, afFamilyOrd, afFamilyCode, afFamilyDesignation"
                                                             , "afFamily AS GroupOid, afFamilyOrd AS GroupOrd, afFamilyCode AS GroupCode, afFamilyDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , reportFilter
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_FAMILY_AND_SUBFAMILY:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "sfSubFamily, sfSubFamilyOrd, sfSubFamilyCode, sfSubFamilyDesignation"
                                                             , "sfSubFamily AS GroupOid, sfSubFamilyOrd AS GroupOrd, sfSubFamilyCode AS GroupCode, sfSubFamilyDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , reportFilter
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_PLACE:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "cpPlace, cpPlaceOrd, cpPlaceCode, cpPlaceDesignation"
                                                             , "cpPlace AS GroupOid, cpPlaceOrd AS GroupOrd, cpPlaceCode AS GroupCode, cpPlaceDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , (string.IsNullOrEmpty(reportFilter)) ? "cpPlace IS NOT NULL" : string.Format("{0} AND cpPlace IS NOT NULL", reportFilter)
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                case ReportsTypeToken.REPORT_SALES_DETAIL_GROUP_PER_PLACE_TABLE:
                    CustomReport.ProcessReportDocumentDetail(displayMode
                                                             , token.ToString().ToLower()
                                                             , "dmPlaceTable, ctPlaceTableOrd, ctPlaceTableCode, ctPlaceTableDesignation"
                                                             , "dmPlaceTable AS GroupOid, ctPlaceTableOrd AS GroupOrd, ctPlaceTableCode AS GroupCode, ctPlaceTableDesignation AS GroupDesignation"
                                                             , "[DocumentFinanceDetail.GroupOid]"
                                                             , "[DocumentFinanceDetail.GroupDesignation] ([DocumentFinanceDetail.GroupCode])"
                                                             , (string.IsNullOrEmpty(reportFilter)) ? "dmPlaceTable IS NOT NULL" : string.Format("{0} AND dmPlaceTable IS NOT NULL", reportFilter)
                                                             , reportFilterHumanReadable
                                                             , true
                                                             );
                    break;

                //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

                // Where it is Called?

                /*
                 * case ReportsTypeToken.REPORT_SALES_PER_FAMILY_AND_SUBFAMILY:
                 *  CustomReport.ProcessReportDocumentDetail(displayMode
                 *      , Resx.ResourceManager.GetString(token.ToString().ToLower())
                 *      , "[DocumentFinanceDetail.ArticleFamilyCode]"
                 *      , "[DocumentFinanceDetail.ArticleFamilyDesignation] ([DocumentFinanceDetail.ArticleFamilyCode])"
                 *      , false
                 *      );
                 *  break;
                 * // Where it is Called?
                 * case ReportsTypeToken.REPORT_SALES_PER_ZONE_TABLE:
                 *  CustomReport.ProcessReportDocumentDetail(displayMode
                 *      , Resx.ResourceManager.GetString(token.ToString().ToLower())
                 *      , "[DocumentFinanceDetail.ArticleFamilyCode]"
                 *      , "[DocumentFinanceDetail.ArticleFamilyDesignation] ([DocumentFinanceDetail.ArticleFamilyCode])"
                 *      , true
                 *      );
                 *  break;
                 */

                //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
                // Other Non REPORT_SALES_* Reports

                // Auxiliar Tables
                case ReportsTypeToken.REPORT_LIST_FAMILY_SUBFAMILY_ARTICLES:
                    // Where it is Called?
                    CustomReport.ProcessReportArticle(displayMode);
                    break;

                case ReportsTypeToken.REPORT_LIST_CUSTOMERS:
                    CustomReport.ProcessReportCustomer(displayMode);
                    break;

                // Other Reports
                case ReportsTypeToken.REPORT_LIST_AUDIT_TABLE:
                    CustomReport.ProcessReportSystemAudit(displayMode, reportFilter, reportFilterHumanReadable);
                    break;

                case ReportsTypeToken.REPORT_LIST_STOCK_MOVEMENTS:
                    CustomReport.ProcessReportArticleStockMovement(displayMode, reportFilter, reportFilterHumanReadable);
                    break;

                case ReportsTypeToken.REPORT_LIST_CURRENT_ACCOUNT:
                    CustomReport.ProcessReportDocumentFinanceCurrentAccount(displayMode, reportFilter, reportFilterHumanReadable);
                    break;

                case ReportsTypeToken.REPORT_LIST_USER_COMMISSION:
                    CustomReport.ProcessReportUserCommission(displayMode, reportFilter, reportFilterHumanReadable);
                    break;

                // ABove are not Implemented Yet
                case ReportsTypeToken.REPORT_TOTAL_PER_FAMILY:
                    break;

                case ReportsTypeToken.REPORT_TOP_CLOSE_EMPLOYEES:
                    break;

                case ReportsTypeToken.REPORT_OCCUPATION_AVERAGE:
                    break;

                case ReportsTypeToken.REPORT_ZONE_TOTAL:
                    break;

                case ReportsTypeToken.REPORT_CLOSE_PEAK_HOUR:
                    break;

                case ReportsTypeToken.REPORT_TOP_OFFERS:
                    break;

                case ReportsTypeToken.REPORT_TOP_EMPLOYEE_RECORDS:
                    break;

                case ReportsTypeToken.REPORT_RECORD_PEAK_HOUR:
                    break;

                case ReportsTypeToken.REPORT_EMPLOYEE_MOVENTS:
                    break;

                case ReportsTypeToken.REPORT_ACOUNT_BALANCE:
                    break;

                case ReportsTypeToken.REPORT_WITHHOLDING_TAX:
                    break;

                case ReportsTypeToken.REPORT_BALANCE_SHEET:
                    break;

                case ReportsTypeToken.REPORT_SERVICE_HOURS:
                    break;

                case ReportsTypeToken.REPORT_COURIER_DELIVER:
                    break;

                case ReportsTypeToken.REPORT_CANCELED_ARTICLES_PER_EMPLOYEE:
                    break;

                case ReportsTypeToken.REPORT_LIST_INVENTORY:
                    break;

                case ReportsTypeToken.REPORT_DISCOUNTS_PER_USER:
                    break;

                case ReportsTypeToken.REPORT_LIST_CONSUMPTION_PER_USER:
                    break;

                case ReportsTypeToken.REPORT_CASH_TOTAL:
                    break;

                case ReportsTypeToken.REPORT_LIST_WORKSESSION:
                    break;

                case ReportsTypeToken.REPORT_LIST_CLOSE_WORKSESSION:
                    break;

                default:
                    _log.Error(String.Format("Undetected Token: [{0}]", token));
                    break;
                }
            }
        }