Ejemplo n.º 1
0
        public async void PrintPDF(Memo memo)
        {
            Reports = new Reports(memo);
            //var stream = new InMemoryRandomAccessStream();
            //FileSavePicker fileSavePicker = new FileSavePicker();
            WriterFormat format = WriterFormat.PDF;

            //fileSavePicker.SuggestedFileName = "ExportReport";
            //var savedItem = await fileSavePicker.PickSaveFileAsync();

            //if (savedItem != null)
            //

            Windows.Storage.StorageFolder storageFolder =
                Windows.Storage.ApplicationData.Current.LocalFolder;

            Windows.Storage.StorageFile savedItem =
                await storageFolder.CreateFileAsync("sample.pdf",
                                                    Windows.Storage.CreationCollisionOption.ReplaceExisting);

            //var savedItem = await FileSavePicker.PickSaveFileAsync();
            MemoryStream exportFileStream = new MemoryStream();

            Assembly assembly = typeof(HomePage).GetTypeInfo().Assembly;
            // Ensure the report loaction and application name.
            Stream reportStream = assembly.GetManifestResourceStream("UwpApp.Report.Inv.rdlc");

            BoldReports.UI.Xaml.ReportDataSourceCollection datas = new BoldReports.UI.Xaml.ReportDataSourceCollection();
            datas.Add(new BoldReports.UI.Xaml.ReportDataSource {
                Name = "PatientInfo", Value = Reports.LoadReport()
            });
            datas.Add(new BoldReports.UI.Xaml.ReportDataSource {
                Name = "MemoDetails", Value = Reports.loadmemodetail()
            });



            ReportWriter writer = new ReportWriter(reportStream, datas);

            writer.ExportMode = ExportMode.Local;
            await writer.SaveASync(exportFileStream, format);



            try
            {
                using (IRandomAccessStream stream = await savedItem.OpenAsync(FileAccessMode.ReadWrite))
                {
                    // Write compressed data from memory to file
                    using (Stream outstream = stream.AsStreamForWrite())
                    {
                        byte[] buffer = exportFileStream.ToArray();
                        outstream.Write(buffer, 0, buffer.Length);
                        outstream.Flush();
                    }
                }
                exportFileStream.Dispose();
            }
            catch { }
        }
Ejemplo n.º 2
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            Reports = new Reports(Memo);
            //var stream = new InMemoryRandomAccessStream();
            //FileSavePicker fileSavePicker = new FileSavePicker();
            WriterFormat format = WriterFormat.PDF;

            //fileSavePicker.SuggestedFileName = "ExportReport";
            //var savedItem = await fileSavePicker.PickSaveFileAsync();

            //if (savedItem != null)
            //

            MemoryStream exportFileStream = new MemoryStream();

            Assembly assembly = typeof(HomePage).GetTypeInfo().Assembly;
            // Ensure the report loaction and application name.
            Stream reportStream = assembly.GetManifestResourceStream("UwpApp.Report.Inv.rdlc");

            BoldReports.UI.Xaml.ReportDataSourceCollection datas = new BoldReports.UI.Xaml.ReportDataSourceCollection();
            datas.Add(new BoldReports.UI.Xaml.ReportDataSource {
                Name = "PatientInfo", Value = Reports.LoadReport()
            });
            datas.Add(new BoldReports.UI.Xaml.ReportDataSource {
                Name = "MemoDetails", Value = Reports.loadmemodetail()
            });



            ReportWriter writer = new ReportWriter(reportStream, datas);

            writer.ExportMode = ExportMode.Local;
            await writer.SaveASync(exportFileStream, format);



            //InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream()
            //exportFileStream.AsRandomAccessStream
            //memStream.Position = 0;
            PdfDocument doc = await PdfDocument.LoadFromStreamAsync(exportFileStream.AsRandomAccessStream());

            Load(doc);
        }
Ejemplo n.º 3
0
        async void Button_Click(object sender, RoutedEventArgs e)
        {
            FileSavePicker fileSavePicker = new FileSavePicker();
            WriterFormat   format         = WriterFormat.PDF;

            if (pdf.IsChecked == true)
            {
                fileSavePicker.FileTypeChoices.Add("PDF", new List <string> {
                    ".pdf"
                });
                fileSavePicker.DefaultFileExtension = ".pdf";
                format = WriterFormat.PDF;
            }
            else if (excel.IsChecked == true)
            {
                fileSavePicker.FileTypeChoices.Add("Excel", new List <string> {
                    ".xls"
                });
                fileSavePicker.DefaultFileExtension = ".xls";
                format = WriterFormat.Excel;
            }
            else if (word.IsChecked == true)
            {
                fileSavePicker.FileTypeChoices.Add("Word", new List <string> {
                    ".doc"
                });
                fileSavePicker.DefaultFileExtension = ".doc";
                format = WriterFormat.Word;
            }
            else if (html.IsChecked == true)
            {
                fileSavePicker.FileTypeChoices.Add("Html", new List <string> {
                    ".html"
                });
                fileSavePicker.DefaultFileExtension = ".html";
                format = WriterFormat.HTML;
            }

            fileSavePicker.SuggestedFileName = "ExportReport";
            var savedItem = await fileSavePicker.PickSaveFileAsync();

            if (savedItem != null)
            {
                MemoryStream exportFileStream = new MemoryStream();
                Assembly     assembly         = typeof(Syncfusion.SampleBrowser.UWP.ReportViewer.MainPage).GetTypeInfo().Assembly;
                Stream       reportStream     = assembly.GetManifestResourceStream("Syncfusion.SampleBrowser.UWP.ReportViewer.ReportViewer.ReportElement.Table Summaries.rdlc");

                ReportDataSourceCollection datas = new ReportDataSourceCollection();
                datas.Add(new ReportDataSource {
                    Name = "Sales", Value = Syncfusion.SampleBrowser.UWP.ReportViewer.TableSummaries.SalesDetails.GetData()
                });

                ReportWriter writer = new ReportWriter(reportStream, datas);
                writer.ExportMode       = Syncfusion.ReportWriter.ExportMode.Local;
                writer.ExportCompleted += Writer_ExportCompleted;
                await writer.SaveASync(exportFileStream, format);

                try
                {
                    using (IRandomAccessStream stream = await savedItem.OpenAsync(FileAccessMode.ReadWrite))
                    {
                        // Write compressed data from memory to file
                        using (Stream outstream = stream.AsStreamForWrite())
                        {
                            byte[] buffer = exportFileStream.ToArray();
                            outstream.Write(buffer, 0, buffer.Length);
                            outstream.Flush();
                        }
                    }
                    exportFileStream.Dispose();
                }
                catch { }
            }
        }
Ejemplo n.º 4
0
        public static bool ExportRDL(ZOperationResult operationResult, ref string exportPath, string exportFormat,
                                     string reportDirectory, string reportName, IDictionary <string, string> reportParameters)
        {
            try
            {
                ReportWriter reportWriter = new ReportWriter();
                reportWriter.ReportPath = "/" + MultiTenantHelper.Tenant.Name +
                                          (String.IsNullOrEmpty(reportDirectory) ? "" : "/" + reportDirectory) +
                                          "/" + reportName;
                reportWriter.ReportProcessingMode = ProcessingMode.Remote;

                // Report Credentials

                string user     = ConfigurationHelper.AppSettings <string>("Report.RDL.User");
                string password = ConfigurationHelper.AppSettings <string>("Report.RDL.Password");
                reportWriter.ReportServerCredential = new System.Net.NetworkCredential(user, password);

                reportWriter.ReportServerUrl = ConfigurationHelper.AppSettings <string>("Report.RDL.Url");

                // Data Source Credentials

                string   connection   = reportDirectory;
                string[] userPassword = AdoNetHelper.GetUserPassword(connection);
                DataSourceCredentials dataSourceCredentials = new DataSourceCredentials(connection, userPassword[0], userPassword[1]);
                reportWriter.SetDataSourceCredentials(new DataSourceCredentials[] { dataSourceCredentials });

                // Parameter(s)

                IList <ReportParameter> reportWriterParameters = new List <ReportParameter>(); // Syncfusion.Reports.EJ.ReportParameter
                foreach (KeyValuePair <string, string> pair in reportParameters)
                {
                    ReportParameter reportParameter = new ReportParameter();
                    reportParameter.Name = pair.Key;
                    reportParameter.Values.Add(pair.Value);
                    reportWriterParameters.Add(reportParameter);
                }
                reportWriter.SetParameters(reportWriterParameters);

                // Data Source(s) & DataSet(s)

                // Export

                string       fileExtension = ".pdf";
                WriterFormat writerFormat  = WriterFormat.PDF;
                switch (exportFormat.ToLower())
                {
                case "doc":
                    fileExtension = ".doc";
                    writerFormat  = WriterFormat.Word;
                    break;

                case "xls":
                    fileExtension = ".xls";
                    writerFormat  = WriterFormat.Excel;
                    break;
                }
                exportPath = exportPath.Trim() + fileExtension;
                FileStream fileStream = new FileStream(exportPath, FileMode.Create);
                reportWriter.Save(fileStream, writerFormat);
                fileStream.Close();

                operationResult.StatusMessage = exportPath;
            }
            catch (Exception exception)
            {
                operationResult.ParseException(exception);
            }

            return(operationResult.Ok);
        }
Ejemplo n.º 5
0
        public static bool ExportRDLC(ZOperationResult operationResult, ref string exportPath, string exportFormat,
                                      string rdlcDirectory, string reportDirectory, string reportName, IDictionary <string, string> reportParameters)
        {
            try
            {
                string reportPath = Path.Combine(rdlcDirectory,
                                                 MultiTenantHelper.Tenant.Name,
                                                 reportDirectory,
                                                 reportName + ".rdl");
                ReportWriter reportWriter = new ReportWriter(reportPath);
                reportWriter.ReportProcessingMode = ProcessingMode.Local;

                // Parameter(s)

                IList <ReportParameter> reportWriterParameters = new List <ReportParameter>(); // Syncfusion.Reports.EJ.ReportParameter
                foreach (KeyValuePair <string, string> pair in reportParameters)
                {
                    ReportParameter reportParameter = new ReportParameter();
                    reportParameter.Name = pair.Key;
                    reportParameter.Values.Add(pair.Value);
                    reportWriterParameters.Add(reportParameter);
                }
                //reportWriter.SetParameters(reportWriterParameters); // ???

                // Data Source(s) & Data Set(s)

                global::Syncfusion.RDL.DOM.ReportDefinition reportDefinition = DeSerializeReport(reportPath);
                IList <string> dataSetNames = reportWriter.GetDataSetNames();

                reportWriter.DataSources.Clear();
                foreach (var dataSetName in dataSetNames)
                {
                    var dataSet        = reportDefinition.DataSets.Where(x => x.Name == dataSetName);
                    var connectionName = MultiTenantHelper.GetConnectionName(dataSet.First().Query.DataSourceName);
                    var sql            = dataSet.First().Query.CommandText;

                    DbConnection connection = null;

                    try
                    {
                        DbProviderFactory provider;

                        provider   = AdoNetHelper.GetProvider(connectionName);
                        connection = provider.CreateConnection();
                        connection.ConnectionString = AdoNetHelper.GetConnectionString(connectionName);
                        connection.Open();

                        DbCommand    command;
                        DbDataReader reader;

                        command                = provider.CreateCommand();
                        command.Connection     = connection;
                        command.CommandTimeout = 600;
                        command.CommandType    = System.Data.CommandType.Text;
                        command.CommandText    = sql;

                        command.Parameters.Clear();
                        //foreach (var reportParameter in reportWriter.GetParameters()) // ???
                        foreach (var reportParameter in reportWriterParameters)
                        {
                            var defaultValue = reportParameter.Values.First() == null ? null : reportParameter.Values.First();

                            DbParameter parameter = command.CreateParameter();
                            //parameter.DbType = GetDbType(reportParameter.DataType); // ???
                            parameter.DbType        = DbType.String;
                            parameter.ParameterName = "@" + reportParameter.Name;
                            if (defaultValue == null)
                            {
                                parameter.Value = DBNull.Value;
                            }
                            else
                            {
                                parameter.Value = defaultValue;
                            }
                            command.Parameters.Add(parameter);

                            //command.AddParameterWithValue("@" + reportParameter.Name, defaultValue);
                        }

                        reader = command.ExecuteReader();

                        DataTable table = new DataTable();
                        table.Load(reader);

                        // System.Data.EnumerableRowCollection<System.Data.DataRow>
                        // https://msdn.microsoft.com/en-us/library/system.data.enumerablerowcollection%28v=vs.110%29.aspx
                        // System.Data.DataRow
                        // https://msdn.microsoft.com/en-us/library/system.data.datarow%28v=vs.110%29.aspx

                        reportWriter.DataSources.Add(new ReportDataSource {
                            Name = dataSetName, Value = table.AsEnumerable()
                        });
                    }
                    catch (Exception exception)
                    {
                        operationResult.ParseException(exception);
                    }
                    finally
                    {
                        if (connection != null)
                        {
                            connection.Close();
                        }
                    }
                }

                if (operationResult.Ok)
                {
                    // Export

                    string       fileExtension = ".pdf";
                    WriterFormat writerFormat  = WriterFormat.PDF;
                    switch (exportFormat.ToLower())
                    {
                    case "doc":
                        fileExtension = ".doc";
                        writerFormat  = WriterFormat.Word;
                        break;

                    case "xls":
                        fileExtension = ".xls";
                        writerFormat  = WriterFormat.Excel;
                        break;
                    }

                    //PageSettings pageSettings = new PageSettings();
                    //pageSettings.LeftMargin = 0.39; // 10mm
                    //pageSettings.RightMargin = 0.39; // 10mm
                    //pageSettings.TopMargin = 0.39; // 10mm
                    //pageSettings.BottomMargin = 0.39; // 10mm
                    //pageSettings.PageWidth = 8.27; // 210mm
                    //pageSettings.PageHeight = 11.69; // 297mm
                    //reportWriter.PageSettings = pageSettings;

                    exportPath = exportPath.Trim() + fileExtension;
                    FileStream fileStream = new FileStream(exportPath, FileMode.Create);
                    reportWriter.Save(fileStream, writerFormat);
                    fileStream.Close();

                    operationResult.StatusMessage = exportPath;
                }
            }
            catch (Exception exception)
            {
                operationResult.ParseException(exception);
            }

            return(operationResult.Ok);
        }