Пример #1
0
        static void Main(string[] args)
        {
            string reportsFolder = FindReportsFolder();

            Report report = new Report();

            report.Load(Path.Combine(reportsFolder, "Simple List.frx"));

            DataSet data = new DataSet();

            data.ReadXml(Path.Combine(reportsFolder, "nwind.xml"));

            report.RegisterData(data, "NorthWind");

            report.Prepare();

            PDFSimpleExport pdfExport = new PDFSimpleExport();

            pdfExport.Export(report, "Simple List.pdf");
        }
Пример #2
0
        public void export_report_using_expression_pdf()
        {
            var report = builder.Report(list)
                         .ReportTitle(title => title
                                      .Text("Employee List - [MonthName(Month([Date]))]")
                                      .HorzAlign(HorzAlign.Center)
                                      )
                         .Data(data =>
            {
                data.Column(col => col.FirstName);
                data.Column(col => col.LastName).Expression("UpperCase({0})");
                data.Column(col => col.BirthDate);
                data.Column(col => col.IsActive);
                data.Column(col => col.Level);
            })
                         .Prepare();

            PDFSimpleExport pdfExport = new PDFSimpleExport();

            pdfExport.Export(report, "Employees.pdf");
        }
Пример #3
0
        public void export_report_using_column_format_pdf()
        {
            var report = builder.Report(list)
                         .ReportTitle(title => title
                                      .Text("Employee List")
                                      .HorzAlign(HorzAlign.Center)
                                      )
                         .Data(data =>
            {
                data.Column(col => col.FirstName);
                data.Column(col => col.LastName);
                data.Column(col => col.BirthDate).Format("MM/dd/yyyy");
                data.Column(col => col.IsActive);
                data.Column(col => col.Level);     // this column formatted with data annotation
            })
                         .Prepare();

            PDFSimpleExport pdfExport = new PDFSimpleExport();

            pdfExport.Export(report, "Employees.pdf");
        }
Пример #4
0
        public void export_report_resized_columns_by_percentage_pdf()
        {
            var report = builder.Report(list)
                         .ReportTitle(title => title
                                      .Text("Employee List")
                                      .HorzAlign(HorzAlign.Center)
                                      )
                         .Data(data =>
            {
                data.Column(col => col.FirstName).Width(25); // 25%
                data.Column(col => col.LastName).Width(20);  // 20%
                data.Column(col => col.BirthDate);           // other three columns are equal - (55/3)%
                data.Column(col => col.IsActive);
                data.Column(col => col.Level);
            })
                         .Prepare();

            PDFSimpleExport pdfExport = new PDFSimpleExport();

            pdfExport.Export(report, "Employees.pdf");
        }
Пример #5
0
        public void export_basic_report_pdf()
        {
            var report = builder.Report(list)
                         .ReportTitle(title => title
                                      .Text("Employee List")
                                      .HorzAlign(HorzAlign.Center)
                                      )
                         .Data(data =>
            {
                data.Column(col => col.FirstName);     // this column get title with data annotation
                data.Column(col => col.LastName).Title("Last Name");
                data.Column(col => col.BirthDate);
                data.Column(col => col.IsActive);
                data.Column(col => col.Level);
            })
                         .Prepare();

            PDFSimpleExport pdfExport = new PDFSimpleExport();

            pdfExport.Export(report, "Employees.pdf");
        }
Пример #6
0
        /// <summary>
        /// 用 FastReport return the PDF in byte array
        /// </summary>
        /// <param name="fromCode"></param>
        /// <param name="toCode"></param>
        /// <param name="fromDate"></param>
        /// <param name="toDate"></param>
        /// <returns></returns>
        public static byte[] PDF(string fromCode, string toCode, string fromDate, string toDate)
        {
            byte[] result = null;

            var sql = string.Format(_Sql, fromDate, toDate, fromCode, toCode);

            //! 提供一個 data connection object (依家用 MsSql)
            FastReport.Utils.RegisteredObjects.AddConnection(typeof(FastReport.Data.MsSqlDataConnection));

            using (MemoryStream stream = new MemoryStream()) //Create the stream for the report
            {
                try
                {
                    Config.WebMode = true;

                    using (Report report = new Report())
                    {
                        report.Load(ReportFilePath);

                        #region populate data source
                        //! 首先,取消 designer 用緊嘅 Connection
                        report.Dictionary.Connections.Clear();

                        //! 再準備 custom 嘅 data source
                        DataSet ds = new DataSet();
                        ds = SqlHelper.Default.ExecuteDataSet(CommandType.Text, sql);

                        //! 替代 design time 嘅設定
                        string desingTimeDataSourceAlias = "Table", desingTimeDataBandName = "Data1";
                        report.Dictionary.Report.RegisterData(ds, desingTimeDataSourceAlias, true);
                        ((DataBand)report.Report.FindObject(desingTimeDataBandName)).DataSource = report.GetDataSource(desingTimeDataSourceAlias);
                        report.GetDataSource(desingTimeDataSourceAlias).Enabled = true;
                        //! DataSource 已經 sorted,不過 DataBand 會亂來,除非你喺 designer 設定咗 DataBand 個 Sort
                        //! 我選擇喺 code 度搞
                        ((DataBand)report.Report.FindObject(desingTimeDataBandName)).Sort.AddRange(new Sort[] {
                            new Sort(string.Format("[{0}.TxDate]", desingTimeDataSourceAlias), false),
                            new Sort(string.Format("[{0}.TxType]", desingTimeDataSourceAlias), false),
                            new Sort(string.Format("[{0}.TxNumber]", desingTimeDataSourceAlias), false)
                        });
                        #endregion

                        #region render 個 report 前作最後處理
                        ((TextObject)report.Report.FindObject("lblReportTitle")).Text = WestwindHelper.GetWord("report.SA1330", "Setting");

                        ((TextObject)report.Report.FindObject("txtPageNofM")).Text = string.Format(WestwindHelper.GetWord("reports.pageNofM", "General"), "[Page]", "[TotalPages]");

                        report.SetParameterValue("pCompanyName", WestwindHelper.GetWord("companyInfo.name", "Setting"));    // SystemInfoEx.CurrentInfo.Default.CompanyName);
                        ((TextObject)report.Report.FindObject("lblSelectedRange")).Text     = WestwindHelper.GetWordWithColon("reports.selectedRange", "General");
                        ((TextObject)report.Report.FindObject("lblSelectedStockCode")).Text = WestwindHelper.GetWordWithColon("article.code", "Product");
                        ((TextObject)report.Report.FindObject("lblSelectedDate")).Text      = WestwindHelper.GetWordWithColon("transaction.date", "Transaction");
                        report.SetParameterValue("pSelectedStockCode", string.Format("{0} ⇔ {1}", fromCode, toCode));
                        report.SetParameterValue("pSelectedDate", string.Format("{0} ⇔ {1}", fromDate, toDate));
                        ((TextObject)report.Report.FindObject("lblPrintedOn")).Text = WestwindHelper.GetWordWithColon("reports.printedOn", "General");
                        ((TextObject)report.Report.FindObject("lblPage")).Text      = WestwindHelper.GetWordWithColon("reports.page", "General");

                        ((TextObject)report.Report.FindObject("lblStockCode")).Text = WestwindHelper.GetWordWithColon("article.code", "Product");
                        ((TextObject)report.Report.FindObject("lblAppendix1")).Text = WestwindHelper.GetWordWithColon("appendix.appendix1", "Product");
                        ((TextObject)report.Report.FindObject("lblAppendix2")).Text = WestwindHelper.GetWordWithColon("appendix.appendix2", "Product");
                        ((TextObject)report.Report.FindObject("lblAppendix3")).Text = WestwindHelper.GetWordWithColon("appendix.appendix3", "Product");
                        ((TextObject)report.Report.FindObject("lblClass1")).Text    = WestwindHelper.GetWordWithColon("class.class1", "Product");
                        ((TextObject)report.Report.FindObject("lblClass2")).Text    = WestwindHelper.GetWordWithColon("class.class2", "Product");
                        ((TextObject)report.Report.FindObject("lblClass3")).Text    = WestwindHelper.GetWordWithColon("class.class3", "Product");
                        ((TextObject)report.Report.FindObject("lblClass4")).Text    = WestwindHelper.GetWordWithColon("class.class4", "Product");
                        ((TextObject)report.Report.FindObject("lblClass5")).Text    = WestwindHelper.GetWordWithColon("class.class5", "Product");
                        ((TextObject)report.Report.FindObject("lblClass6")).Text    = WestwindHelper.GetWordWithColon("class.class6", "Product");
                        ((TextObject)report.Report.FindObject("lblBFQty")).Text     = WestwindHelper.GetWordWithColon("inventory.bfQty", "Product");
                        ((TextObject)report.Report.FindObject("lblBFAmount")).Text  = WestwindHelper.GetWordWithColon("inventory.bfAmount", "Product");
                        ((TextObject)report.Report.FindObject("lblCDQty")).Text     = WestwindHelper.GetWordWithColon("inventory.cdQty", "Product");
                        ((TextObject)report.Report.FindObject("lblCDAmount")).Text  = WestwindHelper.GetWordWithColon("inventory.cdAmount", "Product");

                        ((TextObject)report.Report.FindObject("lblTxDate")).Text       = WestwindHelper.GetWord("transaction.date", "Transaction");
                        ((TextObject)report.Report.FindObject("lblTxType")).Text       = WestwindHelper.GetWord("transaction.type", "Transaction");
                        ((TextObject)report.Report.FindObject("lblQtyIn")).Text        = WestwindHelper.GetWord("transaction.qtyIn", "Transaction");
                        ((TextObject)report.Report.FindObject("lblQtyOut")).Text       = WestwindHelper.GetWord("transaction.qtyOut", "Transaction");
                        ((TextObject)report.Report.FindObject("lblPrice")).Text        = WestwindHelper.GetWord("transaction.price", "Transaction");
                        ((TextObject)report.Report.FindObject("lblCost")).Text         = WestwindHelper.GetWord("transaction.cost", "Transaction");
                        ((TextObject)report.Report.FindObject("lblTxNumber")).Text     = WestwindHelper.GetWord("transaction.number", "Transaction");
                        ((TextObject)report.Report.FindObject("lblReference")).Text    = WestwindHelper.GetWord("transaction.reference", "Transaction");
                        ((TextObject)report.Report.FindObject("lblLocation")).Text     = WestwindHelper.GetWord("workplace", "Model");
                        ((TextObject)report.Report.FindObject("lblSupplierCode")).Text = WestwindHelper.GetWord("supplier", "Model");
                        ((TextObject)report.Report.FindObject("lblRemarks")).Text      = WestwindHelper.GetWord("transaction.remarks", "Transaction");
                        ((TextObject)report.Report.FindObject("lblSubTotal")).Text     = WestwindHelper.GetWordWithColon("transaction.subtotal", "Transaction");
                        #endregion

                        report.Prepare();   //Prepare the report

                        #region export as PDF
                        var pdf = new PDFSimpleExport();
                        pdf.Export(report, stream);

                        // debug: write to a file
                        //pdf.Export(report, string.Format("C:\\Temp\\{0}.pdf", ReportFileName));

                        stream.Position = 0;
                        result          = stream.ToArray();

                        #endregion

                        stream.Flush();
                    }
                }
                catch (Exception ex)
                {
                    //
                }
                finally
                {
                    stream.Dispose();
                }
            }
            return(result);
        }