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 { } }
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); }
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 { } } }
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); }
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); }