/// <summary> /// Constructor /// </summary> /// <param name="report">report document</param> /// <param name="data">report data</param> /// <exception cref="ArgumentException">Flow document must have a specified page height</exception> /// <exception cref="ArgumentException">Flow document must have a specified page width</exception> /// <exception cref="ArgumentException">Flow document can have only one report header section</exception> /// <exception cref="ArgumentException">Flow document can have only one report footer section</exception> public ReportPaginator(ReportDocument report, ReportData data) { _report = report; _data = data; _flowDocument = report.CreateFlowDocument(); _pageSize = new Size(_flowDocument.PageWidth, _flowDocument.PageHeight); if (_flowDocument.PageHeight == double.NaN) throw new ArgumentException("Flow document must have a specified page height"); if (_flowDocument.PageWidth == double.NaN) throw new ArgumentException("Flow document must have a specified page width"); _dynamicCache = new ReportPaginatorDynamicCache(_flowDocument); ArrayList listPageHeaders = _dynamicCache.GetFlowDocumentVisualListByType(typeof(SectionReportHeader)); if (listPageHeaders.Count > 1) throw new ArgumentException("Flow document can have only one report header section"); if (listPageHeaders.Count == 1) _blockPageHeader = (SectionReportHeader)listPageHeaders[0]; ArrayList listPageFooters = _dynamicCache.GetFlowDocumentVisualListByType(typeof(SectionReportFooter)); if (listPageFooters.Count > 1) throw new ArgumentException("Flow document can have only one report footer section"); if (listPageFooters.Count == 1) _blockPageFooter = (SectionReportFooter)listPageFooters[0]; _paginator = ((IDocumentPaginatorSource)_flowDocument).DocumentPaginator; // remove header and footer in our working copy Block block = _flowDocument.Blocks.FirstBlock; while (block != null) { Block thisBlock = block; block = block.NextBlock; if ((thisBlock == _blockPageHeader) || (thisBlock == _blockPageFooter)) _flowDocument.Blocks.Remove(thisBlock); } // get report context values _reportContextValues = _dynamicCache.GetFlowDocumentVisualListByInterface(typeof(IInlineContextValue)); FillData(); }
/// <summary> /// Constructor /// </summary> /// <param name="report">report document</param> /// <param name="data">multiple report data</param> /// <exception cref="ArgumentException">Need at least two ReportData objects</exception> public MultipleReportPaginator(ReportDocument report, IEnumerable<ReportData> data) { if (data == null) throw new ArgumentException("Need at least two ReportData objects"); // create a list of report paginators and compute page counts _pageCount = 0; int dataCount = 0; int totalPages = 0; foreach (ReportData rd in data) { if (rd == null) continue; ReportPaginator temp = new ReportPaginator(report, rd); DocumentPage dp = temp.GetPage(0); totalPages += temp.PageCount; } foreach (ReportData rd in data) { if (rd == null) continue; ReportPaginator paginator = new ReportPaginator(report, rd); _reportPaginators.Add(paginator); paginator.PageShift = _pageCount; paginator.TotalPageCount = totalPages; DocumentPage dp = paginator.GetPage(0); if ((dp != DocumentPage.Missing) && (dp.Size != Size.Empty)) _pageSize = paginator.PageSize; _pageCount += paginator.PageCount; dataCount++; } if (_reportPaginators.Count <= 0) throw new ArgumentException("Need at least two ReportData objects"); }
/// <summary> /// Constructor /// </summary> /// <param name="exception">exception</param> /// <param name="report">associated report document</param> /// <param name="image">image object being processed</param> public ImageErrorEventArgs(Exception exception, ReportDocument report, Image image) { Exception = exception; Image = image; Handled = false; ReportDocument = report; }
/// <summary> /// Constructor /// </summary> /// <param name="report">report document</param> /// <param name="data">multiple report data</param> /// <exception cref="ArgumentException">Need at least two ReportData objects</exception> public MultipleReportPaginator(ReportDocument report, IEnumerable<ReportData> data) { using (var counter = new TimeCounter("\tMultipleReportPaginator Total: {0}", true, true)) { if (data == null) throw new ArgumentException("Need at least two ReportData objects"); // create a list of report paginators and compute page counts _pageCount = 0; foreach (ReportData rd in data) { if (rd == null) continue; ReportPaginator paginator = new ReportPaginator(report, rd); _reportPaginators.Add(paginator); paginator.PageShift = _pageCount; paginator.TotalPageCount = _pageCount; counter.ShowTick("\tMultipleReportPaginator Paginator: {0}"); DocumentPage dp = paginator.GetPage(0); if ((dp != DocumentPage.Missing) && (dp.Size != Size.Empty)) _pageSize = paginator.PageSize; _pageCount += paginator.PageCount; counter.ShowTick("\tMultipleReportPaginator PageCount: {0}"); } counter.ShowTick("\tMultipleReportPaginator Paginators: {0}"); foreach (ReportPaginator paginator in _reportPaginators) paginator.TotalPageCount = _pageCount; if (_reportPaginators.Count <= 0) throw new ArgumentException("Need at least two ReportData objects"); counter.ShowTick("\tMultipleReportPaginator PageCount: {0}"); } }
/// <summary> /// Window has been activated /// </summary> /// <param name="sender">sender</param> /// <param name="e">event details</param> private void Window_Activated(object sender, EventArgs e) { if (!_firstActivated) return; _firstActivated = false; Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(delegate { try { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader(new FileStream(@"Templates\BarcodeReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData data = new ReportData(); // set constant document values data.ReportDocumentValues.Add("PrintDate", DateTime.Now); // print date is now // sample table "Ean" DataTable table = new DataTable("Ean"); table.Columns.Add("Position", typeof(string)); table.Columns.Add("Item", typeof(string)); table.Columns.Add("EAN", typeof(string)); table.Columns.Add("Count", typeof(int)); Random rnd = new Random(1234); for (int i = 1; i <= 100; i++) { // randomly create some items StringBuilder sb = new StringBuilder(); for (int j = 1; j <= 13; j++) sb.Append(rnd.Next(10)); table.Rows.Add(new object[] { i, "Item " + i.ToString("0000"), sb.ToString(), rnd.Next(9) + 1 }); } data.DataTables.Add(table); DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); // show the elapsed time in window title Title += " - generated in " + (DateTime.Now - dateTimeStart).TotalMilliseconds + "ms"; } catch (Exception ex) { // show exception MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } finally { busyDecorator.IsBusyIndicatorHidden = true; } })); }
public DocumentPaginator GenerateReport() { DateTime dt = DateTime.Now; ReportDocument reportDocument = new ReportDocument(); reportDocument.XamlData = GetXaml(); DocumentPaginator documentPaginator = GetPaginator(reportDocument); Debug.WriteLine("Build report: {0}", DateTime.Now - dt); return documentPaginator; }
private void WindowActivated(object sender, EventArgs e) { if (!_firstActivated) return; _firstActivated = false; try { var reportDocument = new ReportDocument(); String appStartPath = System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); var reader = new StreamReader(new FileStream(appStartPath + @"\LPReport\ReportTemplate\StandardTemplate.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory,appStartPath + @"\LPReport\ReportTemplate"); reader.Close(); var data = new ReportData(); data.ReportDocumentValues.Add("PrintDate", DateTime.Now); // print date is now List<LPConstraint> constraint = _model.GetConstraint; string strConstraints = constraint.Aggregate("", (current, variable) => current + String.Format("{0}{1}", variable.ToString(), Environment.NewLine)); data.ReportDocumentValues.Add("ModelGoal", _model.GoalKind.ToString() + " : " + _model.Objective); // print date is now data.ReportDocumentValues.Add("ModelConstraints", strConstraints); // print date is now IModelSolver solver = new MicrosoftSolverFoundation(_model); solver.TrySolve(); string result = solver.GetResult(); result = result.Substring(result.IndexOf("===Solution Details===", System.StringComparison.Ordinal)); data.ReportDocumentValues.Add("ReportSec", result); //TABLE Goes Here DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); // show the elapsed time in window title Title += string.Format(" - Generated in {0}ms", (DateTime.Now - dateTimeStart).TotalMilliseconds); } catch (Exception) { } }
public DocumentPaginator GenerateReport() { using (new TimeCounter("Build report: {0}")) { ReportDocument reportDocument = new ReportDocument(); reportDocument.XamlData = GetXaml(); DocumentPaginator documentPaginator = GetPaginator(reportDocument); return documentPaginator; } }
private DocumentPaginator GetPaginator(ReportDocument reportDocument) { var singleReport = _reportProvider as ISingleReportProvider; if (singleReport != null) return new ReportPaginator(reportDocument, singleReport.GetData()); var multiReport = _reportProvider as IMultiReportProvider; if (multiReport != null) return new MultipleReportPaginator(reportDocument, multiReport.GetData()); return null; }
public void DocViewerLoaded(DocumentViewer documentViewer) { try { ReportDocument reportDocument = new ReportDocument(); reportDocument.ImageProcessing += reportDocument_ImageProcessing; reportDocument.ImageError += reportDocument_ImageError; StreamReader reader = new StreamReader(new FileStream(@"Templates\EndoscopyResults.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData data = new ReportData(); //Clinic info if (_clinic != null) { data.ReportDocumentValues.Add("ClinicName", _clinic.Name.ToUpper()); data.ReportDocumentValues.Add("ClinicAddress", _clinic.Address); data.ReportDocumentValues.Add("ClinicPhone", _clinic.Phone); } //Patient info data.ReportDocumentValues.Add("PatientName", _patient.Name.ToUpper()); data.ReportDocumentValues.Add("BirthDay", "Ngày sinh: " + _patient.Birthday); data.ReportDocumentValues.Add("Address", _patient.Address); data.ReportDocumentValues.Add("Sex", "Giới tính: " + _patient.Sex); data.ReportDocumentValues.Add("Diagnose", _session.Diagnose); data.ReportDocumentValues.Add("Type", _esRecord.EndoscopyType.Name); //Endoscopy results data.ReportDocumentValues.Add("Result", _esRecord.Result); //Note string tmp = "Ngày " + string.Format("{0:dd}", _session.Date) + " tháng " + string.Format("{0:MM}", _session.Date) + " năm " + String.Format("{0:yyyy}", _session.Date); data.ReportDocumentValues.Add("Date", tmp); data.ReportDocumentValues.Add("DoctorName", _session.DoctorName); XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { IsBusyHidden = true; NotifyOfPropertyChange(() => IsBusyHidden); } }
/// <summary> /// Window has been activated /// </summary> /// <param name="sender">sender</param> /// <param name="e">event details</param> private void Window_Activated(object sender, EventArgs e) { if (!_firstActivated) return; _firstActivated = false; try { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader(new FileStream(@"Templates\ComplexReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); DateTime dateTimeStart = DateTime.Now; // start time measure here List<ReportData> listData = new List<ReportData>(); for (int i = 0; i < 5; i++) // generates five reports { ReportData data = new ReportData(); // set constant document values data.ReportDocumentValues.Add("PrintDate", dateTimeStart); // print date is now data.ReportDocumentValues.Add("ReportNumber", (i + 1)); // report number // sample table "Ean" DataTable table = new DataTable("Ean"); table.Columns.Add("Position", typeof(string)); table.Columns.Add("Item", typeof(string)); table.Columns.Add("EAN", typeof(string)); table.Columns.Add("Count", typeof(int)); Random rnd = new Random(1234 + i); int count = rnd.Next(20) * (rnd.Next(2) + 1); for (int j = 1; j <= count; j++) { // randomly create some articles table.Rows.Add(new object[] { j, "Item " + (j + (1000 * (i + 1))).ToString("0000"), "123456790123", rnd.Next(9) + 1 }); } data.DataTables.Add(table); listData.Add(data); } XpsDocument xps = reportDocument.CreateXpsDocument(listData); documentViewer.Document = xps.GetFixedDocumentSequence(); // show the elapsed time in window title Title += " - generated in " + (DateTime.Now - dateTimeStart).TotalMilliseconds + "ms"; } catch (Exception ex) { // show exception MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
// ReSharper restore InconsistentNaming /// <summary> /// Constructor /// </summary> /// <param name="report">report document</param> /// <param name="data">report data</param> /// <exception cref="ArgumentException">Flow document must have a specified page height</exception> /// <exception cref="ArgumentException">Flow document must have a specified page width</exception> /// <exception cref="ArgumentException">Flow document can have only one report header section</exception> /// <exception cref="ArgumentException">Flow document can have only one report footer section</exception> public ReportPaginator(ReportDocument report, ReportData data, Action<int, int> PageGeneratedCallBack = null, FlowDocument flowDocument = null) { _report = report; _data = data; _pageGeneratedCallBack = PageGeneratedCallBack; _flowDocument = flowDocument; if (_flowDocument == null) _flowDocument = report.CreateFlowDocument(); _pageSize = new Size(_flowDocument.PageWidth, _flowDocument.PageHeight); if (_flowDocument.PageHeight == double.NaN) throw new ArgumentException("Flow document must have a specified page height"); if (_flowDocument.PageWidth == double.NaN) throw new ArgumentException("Flow document must have a specified page width"); _dynamicCache = new ReportPaginatorDynamicCache(_flowDocument); ArrayList listPageHeaders = _dynamicCache.GetFlowDocumentVisualListByType(typeof(SectionReportHeader)); if (listPageHeaders.Count > 1) throw new ArgumentException("Flow document can have only one report header section"); if (listPageHeaders.Count == 1) _blockPageHeader = (SectionReportHeader)listPageHeaders[0]; ArrayList listPageFooters = _dynamicCache.GetFlowDocumentVisualListByType(typeof(SectionReportFooter)); if (listPageFooters.Count > 1) throw new ArgumentException("Flow document can have only one report footer section"); if (listPageFooters.Count == 1) _blockPageFooter = (SectionReportFooter)listPageFooters[0]; _paginator = ((IDocumentPaginatorSource)_flowDocument).DocumentPaginator; // remove header and footer in our working copy Block block = _flowDocument.Blocks.FirstBlock; while (block != null) { Block thisBlock = block; block = block.NextBlock; if ((thisBlock == _blockPageHeader) || (thisBlock == _blockPageFooter)) _flowDocument.Blocks.Remove(thisBlock); } // get report context values _reportContextValues = _dynamicCache.GetFlowDocumentVisualListByInterface(typeof(IInlineContextValue)); FillData(); /*Application.Current.Dispatcher.Invoke(new Action(() => { Window aa = new Window(); FlowDocumentPageViewer bb = new FlowDocumentPageViewer(); bb.Document = _flowDocument; aa.Content = bb; aa.SizeToContent = SizeToContent.WidthAndHeight; aa.ShowDialog(); }));*/ }
/// <summary> /// Constructor /// </summary> /// <param name="report">report document</param> /// <param name="data">multiple report data</param> /// <exception cref="ArgumentException">Need at least two ReportData objects</exception> public MultipleReportPaginator(ReportDocument report, IEnumerable<ReportData> data) { if (data == null) throw new ArgumentException("Need at least two ReportData objects"); // create a list of report paginators and compute page counts _pageCount = 0; int dataCount = 0; foreach (ReportData rd in data) { if (rd == null) continue; ReportPaginator paginator = new ReportPaginator(report, rd); _reportPaginators.Add(paginator); DocumentPage dp = paginator.GetPage(0); if ((dp != DocumentPage.Missing) && (dp.Size != Size.Empty)) _pageSize = paginator.PageSize; _firstPages.Add(dp); // just cache the generated first page _pageCount += paginator.PageCount; dataCount++; } if ((_reportPaginators.Count <= 0) || (dataCount < 2)) throw new ArgumentException("Need at least two ReportData objects"); }
/// <summary> /// Window has been activated /// </summary> /// <param name="sender">sender</param> /// <param name="e">event details</param> private void Window_Activated(object sender, EventArgs e) { if (!_firstActivated) return; _firstActivated = false; try { ReportDocument reportDocument = new ReportDocument(); reportDocument.ImageProcessing += reportDocument_ImageProcessing; reportDocument.ImageError += reportDocument_ImageError; StreamReader reader = new StreamReader(new FileStream(@"Templates\ImageReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData data = new ReportData(); // set constant document values data.ReportDocumentValues.Add("PrintDate", DateTime.Now); // print date is now DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); // show the elapsed time in window title Title += " - generated in " + (DateTime.Now - dateTimeStart).TotalMilliseconds + "ms"; } catch (Exception ex) { // show exception MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
private void GenerateReport() { using (new TimeCounter("Build report: {0}")) using (new WaitWrapper()) { var reportDocument = new ReportDocument(); using (new TimeCounter("\tGet template: {0}")) reportDocument.XamlData = GetXaml(); using (new TimeCounter("\tGet paginator: {0}")) DocumentPaginator = GetPaginator(reportDocument); PageNumber = 0; } }
/// <summary> /// Window has been activated /// </summary> /// <param name="sender">sender</param> /// <param name="e">event details</param> private void Window_Activated(object sender, EventArgs e) { if (!_firstActivated) return; _firstActivated = false; try { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader(new FileStream(@"Templates\DynamicReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); DataTable tableHeader = null; DataTable tableData = null; object[] obj = null; ReportData data = new ReportData(); // REPORT 1 DATA tableHeader = new DataTable("Header"); tableData = new DataTable("Data"); tableHeader.Columns.Add(); tableHeader.Rows.Add(new object[] { "Service" }); tableHeader.Rows.Add(new object[] { "Amount" }); tableHeader.Rows.Add(new object[] { "Price" }); tableData.Columns.Add(); tableData.Columns.Add(); tableData.Columns.Add(); obj = new object[3]; for (int i = 0; i < 15; i++) { obj[0] = String.Format("Service oferted. Nº{0}", i); obj[1] = i*2; obj[2] = String.Format("{0} €", i); tableData.Rows.Add(obj); } data.DataTables.Add(tableData); data.DataTables.Add(tableHeader); // REPORT 2 DATA tableHeader = new DataTable("Header2"); tableData = new DataTable("Data2"); tableHeader.Columns.Add(); tableHeader.Rows.Add(new object[] { "Service" }); tableHeader.Rows.Add(new object[] { "Amount" }); tableData.Columns.Add(); tableData.Columns.Add(); obj = new object[2]; for (int i = 0; i < 15; i++) { obj[0] = String.Format("Service offered. Nº{0}", i); obj[1] = i; tableData.Rows.Add(obj); } data.DataTables.Add(tableData); data.DataTables.Add(tableHeader); XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); } catch (Exception ex) { // show exception MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
public StockAdministrationViewModel(ISession session, IProductService productService, IStockService stockService) { _session = session; _productService = productService; _stockService = stockService; #region Maintance - Products Actions.Add(new AdministrationActionViewModel() { Action = (p) => { IsBusy = true; Dispatcher.CurrentDispatcher.BeginInvoke((Action)delegate { View = new EditorView(_session); var _viewModel = new EditorViewModel<Product>(_session); _viewModel.ItemRemoved += (sender, e) => { _session.Delete<Data.Models.Stock>(s => s.ProductId == e.Item.Id); _session.CommitChanges(); }; _viewModel.NewItemSaved += (sender, e) => { _session.Add<Data.Models.Stock>(new Data.Models.Stock() { Id = Guid.NewGuid(), ProductId = e.Item.Id, Units = 0 }); _session.CommitChanges(); }; View.DataContext = _viewModel; IsBusy = false; }, DispatcherPriority.Background); }, Category = "Maintance", Title = "Products" }); #endregion #region Maintance - Tax Actions.Add(new AdministrationActionViewModel() { Action = (p) => { IsBusy = true; Dispatcher.CurrentDispatcher.BeginInvoke((Action)delegate { View = new EditorView(_session); View.DataContext = new EditorViewModel<Tax>(_session); IsBusy = false; }, DispatcherPriority.Background); }, Category = "Maintance", Title = "Tax" }); #endregion #region Maintance - Categories Actions.Add(new AdministrationActionViewModel() { Action = (p) => { IsBusy = true; Dispatcher.CurrentDispatcher.BeginInvoke((Action)delegate { View = new EditorView(_session); View.DataContext = new EditorViewModel<Category>(_session); IsBusy = false; }, DispatcherPriority.Background); }, Category = "Maintance", Title = "Categories" }); #endregion #region Maintance - Stock Maintance Actions.Add(new AdministrationActionViewModel() { Action = (p) => { IsBusy = true; Dispatcher.CurrentDispatcher.BeginInvoke((Action)delegate { View = new StockMaintanceView_Main(); View.DataContext = new StockMaintanceViewModel( _productService, _stockService); IsBusy = false; }, DispatcherPriority.Background); }, Category = "Maintance", Title = "Stock Maintance" }); #endregion #region Reports - Products Actions.Add(new AdministrationActionViewModel() { Action = (p) => { IsBusy = true; Dispatcher.CurrentDispatcher.BeginInvoke((Action)delegate { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader( new FileStream( @"Templates\ProductsReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine( Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData reportData = new ReportData(); DataTable table = new DataTable("Products"); table.Columns.Add("Reference", typeof (string)); table.Columns.Add("Name", typeof (string)); table.Columns.Add("BuyPrice", typeof (double)); table.Columns.Add("SellPrice", typeof (double)); foreach ( var product in _productService.GetProducts()) { table.Rows.Add(new object[] { product.Reference, product.Name, product.BuyPrice, product.SellPrice }); } reportData.DataTables.Add(table); XpsDocument xps = reportDocument.CreateXpsDocument( reportData); View = new SimpleReportView(xps); IsBusy = false; }, DispatcherPriority.SystemIdle); }, Category = "Reports", Title = "Products" }); #endregion #region Reports - Current Inventory Actions.Add(new AdministrationActionViewModel() { Action = (p) => { IsBusy = true; Dispatcher.CurrentDispatcher.BeginInvoke((Action)delegate { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader( new FileStream( @"Templates\CurrentInventoryReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine( Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData reportData = new ReportData(); DataTable table = new DataTable("Products"); table.Columns.Add("Reference", typeof (string)); table.Columns.Add("Name", typeof (string)); table.Columns.Add("Units", typeof (double)); foreach ( var product in _productService.GetProducts()) { Data.Models.Stock stock = _stockService.GetStockByProductId( product.Id); table.Rows.Add(new object[] { product.Reference, product.Name, stock.Units }); } reportData.DataTables.Add(table); XpsDocument xps = reportDocument.CreateXpsDocument( reportData); View = new SimpleReportView(xps); IsBusy = false; }, DispatcherPriority.SystemIdle); }, Category = "Reports", Title = "Current Inventory" }); #endregion }
/// <summary> /// Constructor /// </summary> /// <param name="exception">exception</param> /// <param name="report">associated report document</param> public ImageErrorEventArgs(Exception exception, ReportDocument report) : this(exception, report, null) { }
/// <summary> /// Constructor /// </summary> /// <param name="report">associated report document</param> /// <param name="image">Image object being processed</param> public ImageEventArgs(ReportDocument report, Image image) { ReportDocument = report; Image = image; }
/// <summary> /// Constructor /// </summary> /// <param name="report">associated report document</param> public ImageEventArgs(ReportDocument report) : this(report, null) { }
/// <summary> /// Constructor /// </summary> /// <param name="report">associated report document</param> /// <param name="row">DataRow object being processed</param> public DataRowBoundEventArgs(ReportDocument report, DataRow row) { ReportDocument = report; DataRow = row; }
private void Window_Activated(object sender, EventArgs e) { //if (!_firstActivated) return; //_firstActivated = false; try { ReportDocument reportDocument = new ReportDocument(); //StreamReader reader = new StreamReader(new FileStream(@"..\..\..\..\..\..\Projects\FireMonitor\Modules\SKDModule\Reports\T13.xaml", FileMode.Open, FileAccess.Read)); StreamReader reader = new StreamReader(new FileStream(@"..\..\Templates\Test.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); var table = new DataTable(); using (var sr = new StringReader(tableData)) table.ReadXml(sr); //const int RecordOnPage = 3; //var data = new List<ReportData>(); //ReportData reportData = null; //int countOnPage = RecordOnPage; //for (int i = 0; i < table.Rows.Count; i++) //{ // if (reportData == null) // { // reportData = new ReportData(); // SetDocumentValues(reportData); // reportData.DataTables.Add(table.Clone()); // if (data.Count == 0) // { // reportData.Groups.Add("Header"); // countOnPage = RecordOnPage - 1; // } // else if (i + RecordOnPage == table.Rows.Count) // countOnPage = RecordOnPage - 1; // else if (i + RecordOnPage > table.Rows.Count) // reportData.Groups.Add("Footer"); // else // countOnPage = RecordOnPage; // data.Add(reportData); // } // reportData.DataTables[0].Rows.Add(table.Rows[i].ItemArray); // if (reportData.DataTables[0].Rows.Count == countOnPage) // reportData = null; //} ReportData data = new ReportData(); data.Groups.Add("Header"); data.Groups.Add("Footer"); SetDocumentValues(data); data.DataTables.Add(table); DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); Title += " - xps " + (DateTime.Now - dateTimeStart).TotalMilliseconds + "ms"; documentViewer.Document = xps.GetFixedDocumentSequence(); // show the elapsed time in window title Title += " - generated in " + (DateTime.Now - dateTimeStart).TotalMilliseconds + "ms"; } catch (Exception ex) { // show exception MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
private void Window_Activated(object sender, EventArgs e) { try { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader(new FileStream(@"Templates\SpareSalesByCodePeriodReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = System.IO.Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData data = new ReportData(); DataAccess da = new DataAccess(); string BCC = da.getBasicCurrencyCode(); // Таблица ТОВАРЫ В НАКЛАДНОЙ DataTable dt = new DataTable("mtable"); // описываем столбцы таблицы dt.Columns.Add("Num", typeof(int)); dt.Columns.Add("WarehouseName", typeof(string)); dt.Columns.Add("OutgoNum", typeof(string)); dt.Columns.Add("AccountName", typeof(string)); dt.Columns.Add("OutgoDate", typeof(string)); dt.Columns.Add("Q", typeof(int)); dt.Columns.Add("P", typeof(double)); dt.Columns.Add("VAT", typeof(string)); dt.Columns.Add("T", typeof(double)); // забиваем таблицу данными List<SpareInSpareOutgoView> LIST2 = da.GetSpareInSpareOutgoByCodePeriod(Spare.id, dateFrom, dateTo, WarehouseID); decimal asum = 0; try { for (int i = 0; i < LIST2.Count; i++) { asum += LIST2[i].total_sum; string AN = LIST2[i].AccountName; string od = LIST2[i].OutgoDate.Value.ToShortDateString(); string on = "нет"; int OutgoID = LIST2[i].spare_outgo_id; spare_outgo so = da.SpareOutgoGet(OutgoID); if (so != null) on = so.IDN.ToString(); dt.Rows.Add(new object[] { i+1, LIST2[i].WarehouseName, on, AN, od, LIST2[i].quantity, LIST2[i].purchase_price, LIST2[i].VatRateName, LIST2[i].total_sum }); } } catch (Exception exc) { throw exc; } string str_ts = RSDN.RusCurrency.Str(asum, "BYR"); string strDate = dateFrom.Day.ToString(); string mnth = ""; switch (dateFrom.Month) { case 1: mnth = "января"; break; case 2: mnth = "февраля"; break; case 3: mnth = "марта"; break; case 4: mnth = "апреля"; break; case 5: mnth = "мая"; break; case 6: mnth = "июня"; break; case 7: mnth = "июля"; break; case 8: mnth = "августа"; break; case 9: mnth = "сентября"; break; case 10: mnth = "октября"; break; case 11: mnth = "ноября"; break; case 12: mnth = "декабря"; break; } strDate += " " + mnth + " " + dateFrom.Year + " г."; data.ReportDocumentValues.Add("ReportDate1", strDate); // print date is now // ======================= strDate = dateTo.Day.ToString(); mnth = ""; switch (dateTo.Month) { case 1: mnth = "января"; break; case 2: mnth = "февраля"; break; case 3: mnth = "марта"; break; case 4: mnth = "апреля"; break; case 5: mnth = "мая"; break; case 6: mnth = "июня"; break; case 7: mnth = "июля"; break; case 8: mnth = "августа"; break; case 9: mnth = "сентября"; break; case 10: mnth = "октября"; break; case 11: mnth = "ноября"; break; case 12: mnth = "декабря"; break; } strDate += " " + mnth + " " + dateTo.Year + " г."; data.ReportDocumentValues.Add("ReportDate2", strDate); // print date is now data.ReportDocumentValues.Add("SpareName", Spare.name); data.ReportDocumentValues.Add("SpareCodeShatem", Spare.codeShatem); data.ReportDocumentValues.Add("SpareCode", Spare.code); data.ReportDocumentValues.Add("asum", asum); data.DataTables.Add(dt); DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); } catch (Exception ex) { // show exception MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
private void Window_Activated(object sender, EventArgs e) { if (Outgo == null) return; try { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader(new FileStream(@"Templates\InvoiceReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = System.IO.Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData data = new ReportData(); decimal asum = 0; DataAccess da = new DataAccess(); string BCC = da.getBasicCurrencyCode(); //Income.currencyReference.Load(); //string CCC = Income.currency.code; // Таблица ТОВАРЫ В НАКЛАДНОЙ DataTable dt = new DataTable("mtable"); // описываем столбцы таблицы dt.Columns.Add("Num", typeof(int)); dt.Columns.Add("SpareName", typeof(string)); dt.Columns.Add("UnitName", typeof(string)); dt.Columns.Add("Q", typeof(int)); dt.Columns.Add("P", typeof(double)); dt.Columns.Add("VR", typeof(string)); dt.Columns.Add("TS", typeof(double)); // забиваем таблицу данными List<SpareInInvoiceView> LIST2 = da.GetSparesByInvoiceID(InvoiceId); try { string CompanyName = da.getProfileCurrent().CompanyName; for (int i = 0; i < LIST2.Count; i++) { asum += LIST2[i].TotalWithVat.Value; dt.Rows.Add(new object[] { i+1, (LIST2[i].SpareName +" (" + LIST2[i].SpareCodeShatem+ ")"), "шт.", LIST2[i].quantity, LIST2[i].price.Value, LIST2[i].VatRateName, LIST2[i].TotalWithVat }); } } catch (Exception exc) { Marvin.Instance.Log(exc.Message); throw exc; } string str_ts = RSDN.RusCurrency.Str(asum, "BYR"); //string str_vs = RSDN.RusCurrency.Str(vs, "BYR"); // set constant document values //string strDate = Outgo.created_on.Value.GetDateTimeFormats('d')[3]; string strDate = Outgo.InvoiceDate.Value.Day.ToString(); string mnth = ""; switch (Outgo.InvoiceDate.Value.Month) { case 1: mnth = "января"; break; case 2: mnth = "февраля"; break; case 3: mnth = "марта"; break; case 4: mnth = "апреля"; break; case 5: mnth = "мая"; break; case 6: mnth = "июня"; break; case 7: mnth = "июля"; break; case 8: mnth = "августа"; break; case 9: mnth = "сентября"; break; case 10: mnth = "октября"; break; case 11: mnth = "ноября"; break; case 12: mnth = "декабря"; break; } strDate += " " + mnth + " " + Outgo.InvoiceDate.Value.Year + " г."; data.ReportDocumentValues.Add("ReportDate", strDate); // print date is now data.ReportDocumentValues.Add("TTS", asum); settings_profile profile = da.getProfileCurrent(); ProfileBankAccountView ProfileBankAccount = da.getProfileBankAccountCurrent(); string w1 = "не указано"; string w2 = "не указано"; string w3 = "не указано"; if (ProfileBankAccount != null) { w1 = ProfileBankAccount.BankAccount; ; w2 = ProfileBankAccount.BankName; w3 = ProfileBankAccount.BankMFO; } //string p1 = profile.CompanyName + ", " + profile.AddressJur + ", УНП " + Regex.Replace(profile.UNN, " +", " "); //p1 = Regex.Replace(p1, " +", " "); // ПРАВИЛЬНЫЕ ПАРАМЕТРЫ invoice inv = Outgo; string q1 = profile.CompanyName + ", " + profile.AddressJur + ", УНН:" + profile.UNN; data.ReportDocumentValues.Add("p1", q1); string q2 = w1; data.ReportDocumentValues.Add("p2", q2); string q3 = w2 + ", МФО:" + w3; data.ReportDocumentValues.Add("p3", q3); string q4 = profile.CompanyName; data.ReportDocumentValues.Add("p4", q4); string q5 = profile.LoadPoint; data.ReportDocumentValues.Add("p5", q5); string q6 = inv.AccountName + ", " + inv.AccountAddress + ", УНН:" + inv.AccountUNN; data.ReportDocumentValues.Add("p6", q6); string BankAccount = "р/с не указан"; if (inv.BankAccountID != null) { BankAccountView ba = da.BankAccountView(inv.BankAccountID.Value); BankAccount = ba.BankAccount; } string q7 = BankAccount + ", " + inv.AccountBankName + ", " + inv.AccountBankMFO; data.ReportDocumentValues.Add("p7", q7); string q8 = inv.AccountName + ", " + inv.AccountAddress; data.ReportDocumentValues.Add("p8", q8); string q9 = inv.AccountAddress; data.ReportDocumentValues.Add("p9", q9); string q0 = str_ts; data.ReportDocumentValues.Add("p0", q0); string q10 = inv.InvoiceNumber.ToString(); data.ReportDocumentValues.Add("p10", q10); string q11 = strDate; data.ReportDocumentValues.Add("p11", q11); // СТАРЫЕ ПАРАМЕТРЫ // Поставщик и его адрес: /* data.ReportDocumentValues.Add("param1", p1); // Номер инвойса string param2 = Outgo.id.ToString(); data.ReportDocumentValues.Add("param2", param2); // Номер счета: string param3 = Outgo.AccountBankNum; data.ReportDocumentValues.Add("param3", param3); // дата string param4 = strDate; data.ReportDocumentValues.Add("param4", param4); // Банк: string param5 = "########"; data.ReportDocumentValues.Add("param5", param5); // Грузоотправитель: string param6 = profile.CompanyName; data.ReportDocumentValues.Add("param6", param6); // Ст. отправления: string param7 = profile.AddressFact; data.ReportDocumentValues.Add("param7", param7); // Плательщик и его адрес: string param8 = Outgo.AccountName; data.ReportDocumentValues.Add("param8", param8); // Номер счета и банк: string param9 = Outgo.AccountBankNum + ", " + Outgo.AccountBankName; data.ReportDocumentValues.Add("param9", param9); // Грузополучатель: string param10 = Outgo.AccountName; data.ReportDocumentValues.Add("param10", param10); // Ст. назначения, число мест, вес: string param11 = "############"; data.ReportDocumentValues.Add("param11", param11); */ data.DataTables.Add(dt); DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); } catch (Exception ex) { Marvin.Instance.Log(ex.Message); // show exception MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
private void Window_Activated(object sender, EventArgs e) { try { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader(new FileStream(@"Templates\RevisionReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = System.IO.Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData data = new ReportData(); DataAccess da = new DataAccess(); // Таблица ТОВАРЫ В НАКЛАДНОЙ DataTable dt = new DataTable("mtable"); // описываем столбцы таблицы dt.Columns.Add("t1", typeof(string)); dt.Columns.Add("t2", typeof(string)); dt.Columns.Add("t4", typeof(string)); dt.Columns.Add("t5", typeof(string)); dt.Columns.Add("t6", typeof(string)); dt.Columns.Add("t7", typeof(string)); // забиваем таблицу данными if (items == null) { items = da.GetSpares(); } try { for (int i = 0; i < items.Count; i++) { dt.Rows.Add(new object[] { (i+1).ToString(), items[i].name, items[i].code, items[i].codeShatem, items[i].QRest, items[i].q_rest }); } } catch (Exception exc) { Marvin.Instance.Log(exc.Message); throw exc; } string strDate = d.Day.ToString(); string mnth = ""; switch (d.Month) { case 1: mnth = "января"; break; case 2: mnth = "февраля"; break; case 3: mnth = "марта"; break; case 4: mnth = "апреля"; break; case 5: mnth = "мая"; break; case 6: mnth = "июня"; break; case 7: mnth = "июля"; break; case 8: mnth = "августа"; break; case 9: mnth = "сентября"; break; case 10: mnth = "октября"; break; case 11: mnth = "ноября"; break; case 12: mnth = "декабря"; break; } strDate += " " + mnth + " " + d.Year + " г."; data.ReportDocumentValues.Add("p1", strDate); // print date is now data.DataTables.Add(dt); DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); } catch (Exception ex) { Marvin.Instance.Log(ex.Message); // show exception MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
private void WindowActivated(object sender, EventArgs e) { if (!_firstActivated) return; _firstActivated = false; try { var reportDocument = new ReportDocument(); var reader = new StreamReader(new FileStream(@"Templates\ReportTemplate.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); var data = new ReportData(); data.ReportDocumentValues.Add("PrintDate", DateTime.Now); data.ReportDocumentValues.Add("ReportSummary", _reportList.GetReportSummery); var table = new DataTable("Table1"); table.Columns.Add("c1", typeof (string)); table.Columns.Add("c2", typeof (string)); table.Columns.Add("c3", typeof (string)); table.Rows.Add(new object[] { _reportList.GetInformation, _reportList.GetLength.ToString(CultureInfo.InvariantCulture), _reportList.InnerData.ConvertToString() }); data.DataTables.Add(table); // CHI TEST List<Tuple<int, float, int, float>> testTable = UniformityTests.ChiSquare(10, _reportList); table = new DataTable("Table2"); table.Columns.Add("c1", typeof (string)); table.Columns.Add("c2", typeof (string)); table.Columns.Add("c3", typeof (string)); table.Columns.Add("c4", typeof (string)); float sum = 0f; foreach (var tuple in testTable) { table.Rows.Add(new object[] { tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4 }); sum += tuple.Item4; } table.Rows.Add(new object[] {"Total", "--", "--", sum.ToString(CultureInfo.InvariantCulture)}); data.DataTables.Add(table); string result = UniformityTests.IsUniformWithChiSquare(testTable) ? "There isn't enough evidence to reject the hypothesis!" : "The hypothesis is rejected!"; data.ReportDocumentValues.Add("ChiSquareResult", String.Format("Chi-Square Test Result : {0}", result)); //END CHI TEST // KS TEST List<Tuple<int, float, float, float, float, float>> kStestTable = UniformityTests.KSTest(_reportList); table = new DataTable("Table3"); table.Columns.Add("c1", typeof (string)); table.Columns.Add("c2", typeof (string)); table.Columns.Add("c3", typeof (string)); table.Columns.Add("c4", typeof (string)); table.Columns.Add("c5", typeof (string)); table.Columns.Add("c6", typeof (string)); float maxDPlus = 0f; float maxDNegetive = 0f; foreach (var tuple in kStestTable) { if (tuple.Item5 > maxDPlus) maxDPlus = tuple.Item5; if (tuple.Item6 > maxDNegetive) maxDNegetive = tuple.Item6; table.Rows.Add(new object[] { tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4, tuple.Item5, tuple.Item6 }); } table.Rows.Add(new object[] {"Max", "--", "--", "--", maxDPlus, maxDNegetive}); data.DataTables.Add(table); result = UniformityTests.IsUniformWithKS(kStestTable) ? "There isn't enough evidence to reject the hypothesis!" : "The hypothesis is rejected!"; data.ReportDocumentValues.Add("KSResult", String.Format("KS Test Result : Max[D+,D-] = {0}\n{1}", Math.Max(maxDPlus, maxDNegetive), result)); //END TEST // POKER List<Tuple<int, int, int, float>> pokertestTable = IndependentTest.PokerTest(_reportList); table = new DataTable("Table4"); table.Columns.Add("c1", typeof (string)); table.Columns.Add("c2", typeof (string)); table.Columns.Add("c3", typeof (string)); table.Columns.Add("c4", typeof (string)); int sumA = 0; int sumB = 0; float sumC = 0; foreach (var tuple in pokertestTable) { sumA += tuple.Item2; sumB += tuple.Item3; sumC += tuple.Item4; table.Rows.Add(new object[] { tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4 }); } table.Rows.Add(new object[] {"Total", sumA, sumB, sumC}); data.DataTables.Add(table); //END POKER var mtable = new DataTable("Chart1"); mtable.Columns.Add("Multiplier", typeof (string)); mtable.Columns.Add("Length of Sequence", typeof (int)); foreach (var item in _analysisOverMultiplier) { mtable.Rows.Add(new object[] {item.Item1, item.Item2}); } data.DataTables.Add(mtable); mtable = new DataTable("Chart2"); mtable.Columns.Add("Increment", typeof (string)); mtable.Columns.Add("Length of Sequence", typeof (int)); foreach (var item in _analysisOverIncrement) { mtable.Rows.Add(new object[] {item.Item1, item.Item2}); } data.DataTables.Add(mtable); mtable = new DataTable("Chart3"); mtable.Columns.Add("Seed", typeof (string)); mtable.Columns.Add("Length of Sequence", typeof (int)); foreach (var item in _analysisOverSeed) { mtable.Rows.Add(new object[] {item.Item1, item.Item2}); } data.DataTables.Add(mtable); DateTime dateTimeStart = DateTime.Now; XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); Title += string.Format(" - Generated in {0}ms", (DateTime.Now - dateTimeStart).TotalMilliseconds); } catch (Exception ex) { MessageBox.Show(string.Format("{0}\r\n\r\n{1}\r\n{2}", ex.Message, ex.GetType(), ex.StackTrace), ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
private void Window_Activated(object sender, EventArgs e) { try { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader(new FileStream(@"Templates\DailySalesReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = System.IO.Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData data = new ReportData(); DataAccess da = new DataAccess(); string BCC = da.getBasicCurrencyCode(); // Таблица ТОВАРЫ В НАКЛАДНОЙ DataTable dt = new DataTable("mtable"); // описываем столбцы таблицы dt.Columns.Add("Num", typeof(int)); dt.Columns.Add("SpareName", typeof(string)); dt.Columns.Add("WarehouseName", typeof(string)); dt.Columns.Add("SpareCodeShatem", typeof(string)); dt.Columns.Add("SpareCode", typeof(string)); dt.Columns.Add("Q", typeof(int)); dt.Columns.Add("P", typeof(double)); dt.Columns.Add("VAT", typeof(string)); dt.Columns.Add("T", typeof(double)); dt.Columns.Add("SaleDate", typeof(string)); // забиваем таблицу данными List<SpareInSpareOutgoView> LIST2 = warehouseID > 0 ? da.GetSpareInSpareOutgoByPeriod(date, dateTo, warehouseID) : da.GetSpareInSpareOutgoByPeriod(date, dateTo); decimal asum = 0; try { for (int i = 0; i < LIST2.Count; i++) { asum += LIST2[i].total_sum; dt.Rows.Add(new object[] { i+1, LIST2[i].SpareName, LIST2[i].WarehouseName, LIST2[i].codeShatem, LIST2[i].code, LIST2[i].quantity, LIST2[i].purchase_price, LIST2[i].VatRateName, LIST2[i].total_sum, LIST2[i].OutgoDate.Value.ToString("dd.MM.yyyy") }); } } catch (Exception exc) { Marvin.Instance.Log(exc.Message); throw exc; } string str_ts = RSDN.RusCurrency.Str(asum, "BYR"); string strDate = ""; if (date == dateTo) { strDate = date.ToString("dd.MM.yyyy"); } else { string strDateFrom = date.ToString("dd.MM.yyyy"); string strDateTo = dateTo.ToString("dd.MM.yyyy"); strDate = strDateFrom + " - " + strDateTo; } data.ReportDocumentValues.Add("ReportDate", strDate); // print date is now data.ReportDocumentValues.Add("asum", asum); data.DataTables.Add(dt); DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); } catch (Exception ex) { // show exception Marvin.Instance.Log(ex.Message); MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
/// <summary> /// Window has been activated /// </summary> /// <param name="sender">sender</param> /// <param name="e">event details</param> private void Window_Activated(object sender, EventArgs e) { if (!_firstActivated) return; _firstActivated = false; try { ReportDocument reportDocument = new ReportDocument(); StreamReader reader = new StreamReader(new FileStream(@"Templates\ChartReport.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); ReportData data = new ReportData(); // set constant document values data.ReportDocumentValues.Add("PrintDate", DateTime.Now); // print date is now // sample table "Example1" DataTable table = new DataTable("Example1"); table.Columns.Add("Year", typeof(string)); table.Columns.Add("Value", typeof(decimal)); Random rnd = new Random(1234); for (int i = 1990; i <= 2009; i++) { // randomly create some values table.Rows.Add(new object[] { i, rnd.Next(100000) + 10000 }); } data.DataTables.Add(table); // sample table "Example2" table = new DataTable("Example2"); table.Columns.Add("Year", typeof(string)); table.Columns.Add("Value", typeof(decimal)); int citizens = rnd.Next(100000); for (int i = 1990; i <= 2009; i++) { // randomly create some values table.Rows.Add(new object[] { i, citizens }); citizens += rnd.Next(10000); } data.DataTables.Add(table); // sample table "Example3" table = new DataTable("Example3"); table.Columns.Add("Opinion", typeof(string)); table.Columns.Add("Percent", typeof(decimal)); table.Rows.Add(new object[] { "Yes", 36.2 }); table.Rows.Add(new object[] { "No", 21.5 }); table.Rows.Add(new object[] { "Unsure", 100 - 36.2 - 21.5 }); data.DataTables.Add(table); DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); // concat XPS files documentViewer.Document = xps.GetFixedDocumentSequence(); // show the elapsed time in window title Title += " - generated in " + (DateTime.Now - dateTimeStart).TotalMilliseconds + "ms"; } catch (Exception ex) { // show exception MessageBox.Show(ex.Message + "\r\n\r\n" + ex.GetType() + "\r\n" + ex.StackTrace, ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }
/// <summary> /// Constructor /// </summary> /// <param name="report">associated report document</param> public DataRowBoundEventArgs(ReportDocument report) : this(report, null) { }
private void WindowActivated(object sender, EventArgs e) { if (!_firstActivated) return; _firstActivated = false; try { var reportDocument = new ReportDocument(); var reader = new StreamReader(new FileStream(@"Templates\ReportTemplate-Method1.xaml", FileMode.Open, FileAccess.Read)); reportDocument.XamlData = reader.ReadToEnd(); reportDocument.XamlImagePath = Path.Combine(Environment.CurrentDirectory, @"Templates\"); reader.Close(); var data = new ReportData(); data.ReportDocumentValues.Add("PrintDate", DateTime.Now); // print date is now int bearing1Life = 0; int bearing2Life = 0; int bearing3Life = 0; int bearing1Waste = 0; int bearing2Waste = 0; int bearing3Waste = 0; var table = new DataTable("Bearing1Table"); FillDataTable(ref table, 0, out bearing1Life, out bearing1Waste); data.DataTables.Add(table); table = new DataTable("Bearing2Table"); FillDataTable(ref table, 1, out bearing2Life, out bearing2Waste); data.DataTables.Add(table); table = new DataTable("Bearing3Table"); FillDataTable(ref table, 2, out bearing3Life, out bearing3Waste); data.DataTables.Add(table); //fCumulativeLifetime var mtable = new DataTable("BearingsLife3DChart"); mtable.Columns.Add("Bearing", typeof(string)); mtable.Columns.Add("Total LifeSpan", typeof(int)); mtable.Rows.Add(new object[] { "Bearing 1", bearing1Life }); mtable.Rows.Add(new object[] { "Bearing 2", bearing2Life }); mtable.Rows.Add(new object[] { "Bearing 3", bearing3Life }); data.DataTables.Add(mtable); data.DataTables.Add(table); table = new DataTable("fCumulativeLifetime"); table.Columns.Add("no", typeof(string)); table.Columns.Add("CumulativeLifetime", typeof (string)); table.Columns.Add("WastedTime", typeof (string)); table.Rows.Add(new object[] { "Bearing 1", bearing1Life, bearing1Waste }); table.Rows.Add(new object[] { "Bearing 2", bearing2Life, bearing2Waste }); table.Rows.Add(new object[] { "Bearing 3", bearing3Life, bearing3Waste }); data.DataTables.Add(table); mtable = new DataTable("BearingsWastes3DChart"); mtable.Columns.Add("Bearing", typeof(string)); mtable.Columns.Add("Waste Time", typeof(int)); mtable.Rows.Add(new object[] { "Bearing 1", bearing1Waste }); mtable.Rows.Add(new object[] { "Bearing 2", bearing2Waste }); mtable.Rows.Add(new object[] { "Bearing 3", bearing3Waste }); data.DataTables.Add(mtable); DateTime dateTimeStart = DateTime.Now; // start time measure here XpsDocument xps = reportDocument.CreateXpsDocument(data); documentViewer.Document = xps.GetFixedDocumentSequence(); // show the elapsed time in window title Title += string.Format(" - Generated in {0}ms", (_time + (DateTime.Now - dateTimeStart)).TotalMilliseconds); } catch (Exception ex) { // show exception MessageBox.Show(string.Format("{0}\r\n\r\n{1}\r\n{2}", ex.Message, ex.GetType(), ex.StackTrace), ex.GetType().ToString(), MessageBoxButton.OK, MessageBoxImage.Stop); } }