/// <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(); }
public ReportData GetData() { var data = new ReportData(); var table = new DataTable("Devices"); table.Columns.Add("Type"); table.Columns.Add("Address"); table.Columns.Add("Zone"); if (GKManager.Devices.IsNotNullOrEmpty()) { foreach (var device in GKManager.Devices) { if (device.DriverType == GKDriverType.System) continue; if (device.Driver.IsGroupDevice) continue; var type = device.ShortName; var address = device.DottedPresentationAddress; var zonePresentationName = GKManager.GetPresentationZoneOrLogic(device); table.Rows.Add(type, address, zonePresentationName); } } data.DataTables.Add(table); PdfProvider.ReportData = data; return data; }
public ReportData GetData() { var data = new ReportData(); DataTable table = new DataTable("Devices"); table.Columns.Add("Type"); table.Columns.Add("Address"); table.Columns.Add("Zone"); if (FiresecManager.Devices.IsNotNullOrEmpty()) { string type = ""; string address = ""; string zonePresentationName = ""; foreach (var device in FiresecManager.Devices) { zonePresentationName = ""; type = device.Driver.ShortName; address = device.DottedAddress; zonePresentationName = FiresecManager.FiresecConfiguration.GetPresentationZone(device); table.Rows.Add(type, address, zonePresentationName); } } data.DataTables.Add(table); return data; }
public ReportData GetData() { var data = new ReportData(); DataTable table = new DataTable("Devices"); table.Columns.Add("Type"); table.Columns.Add("Address"); table.Columns.Add("Zone"); table.Columns.Add("Dustiness"); table.Columns.Add("FailureType"); if (FiresecManager.Devices.IsNotNullOrEmpty()) { string type = ""; string address = ""; string zonePresentationName = ""; string dustiness = ""; string failureType = ""; foreach (var device in FiresecManager.Devices) { if (device.Driver.Category == DeviceCategoryType.Other || device.Driver.Category == DeviceCategoryType.Communication) continue; type = device.Driver.ShortName; address = device.DottedAddress; zonePresentationName = ""; dustiness = ""; failureType = ""; if (device.Driver.IsZoneDevice) { if (FiresecManager.Zones.IsNotNullOrEmpty()) { var zone = FiresecManager.Zones.FirstOrDefault(x => x.UID == device.ZoneUID); if (zone != null) zonePresentationName = zone.PresentationName; } } var deviceState = device.DeviceState; var parameter = deviceState.ThreadSafeParameters.FirstOrDefault(x => (x.Name == "Dustiness")); if (parameter != null) { if (!parameter.IsIgnore) dustiness = parameter.Value; } parameter = deviceState.ThreadSafeParameters.FirstOrDefault(x => (x.Name == "FailureType")); if (parameter != null) { if (!parameter.IsIgnore) failureType = parameter.Value; } table.Rows.Add(type, address, zonePresentationName, dustiness, failureType); } } data.DataTables.Add(table); return data; }
/// <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; } })); }
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) { } }
/// <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); } }
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); } }
// 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(); }));*/ }
public IEnumerable<ReportData> GetData() { var fullData = new List<ReportData>(); var IndicationBlockList = new List<IndicationBlocksList>(); if (FiresecManager.Devices.IsNotNullOrEmpty()) { var devices = FiresecManager.Devices.FindAll(x => (x.Driver.DriverType == DriverType.IndicationBlock)); foreach (var device in devices) IndicationBlockList.Add(new IndicationBlocksList(device)); } foreach (var block in IndicationBlockList) foreach (var page in block.Pages) { var data = new ReportData(); data.ReportDocumentValues.Add("IndicationBlockNumber", block.IndicationBlockNumber); data.ReportDocumentValues.Add("PageNumber", page.PageNumber.ToString()); DataTable table = new DataTable("Records"); table.Columns.Add("NumberFirstColumn"); table.Columns.Add("PresentationNameFirstColumn"); table.Columns.Add("NumberSecondColumn"); table.Columns.Add("PresentationNameSecondColumn"); table.Columns.Add("NumberThirdColumn"); table.Columns.Add("PresentationNameThirdColumn"); table.Columns.Add("NumberFourthColumn"); table.Columns.Add("PresentationNameFourthColumn"); table.Columns.Add("NumberFifthColumn"); table.Columns.Add("PresentationNameFifthColumn"); for (int i = 0; i < 10; i++) { table.Rows.Add( page.ElementsPage[i].No.ToString(), page.ElementsPage[i].PresentationName.ToString(), page.ElementsPage[i + 10].No.ToString(), page.ElementsPage[i + 10].PresentationName.ToString(), page.ElementsPage[i + 20].No.ToString(), page.ElementsPage[i + 20].PresentationName.ToString(), page.ElementsPage[i + 30].No.ToString(), page.ElementsPage[i + 30].PresentationName.ToString(), page.ElementsPage[i + 40].No.ToString(), page.ElementsPage[i + 40].PresentationName.ToString()); } data.DataTables.Add(table); fullData.Add(data); } return fullData; }
public ReportData GetData() { var data = new ReportData(); DataTable table = new DataTable("Devices"); table.Columns.Add("Driver"); table.Columns.Add("Count"); foreach (var driver in from Driver d in FiresecManager.Drivers orderby d.ShortName select d) { if (driver.IsAutoCreate || driver.DriverType == DriverType.Computer) continue; AddDrivers(driver, table); } data.DataTables.Add(table); return data; }
public ReportData GetData() { var data = new ReportData(); var table = new DataTable("Devices"); table.Columns.Add("Driver", typeof(string)); table.Columns.Add("Count", typeof(int)); foreach (var driver in DriversRepository.Drivers) { if (driver.IsAutoCreate || driver.DriverType == GKDriverType.System) continue; AddDrivers(driver, table); } data.DataTables.Add(table); PdfProvider.ReportData = data; return data; }
public ReportData GetData() { ReportArchiveFilter.LoadArchive(); var data = new ReportData(); data.ReportDocumentValues.Add("StartDate", ReportArchiveFilter.StartDate); data.ReportDocumentValues.Add("EndDate", ReportArchiveFilter.EndDate); DataTable table = new DataTable("Journal"); table.Columns.Add("DeviceTime"); table.Columns.Add("SystemTime"); table.Columns.Add("ZoneName"); table.Columns.Add("Description"); table.Columns.Add("DeviceName"); table.Columns.Add("PanelName"); table.Columns.Add("User"); foreach (var journalRecord in ReportArchiveFilter.JournalRecords) table.Rows.Add(journalRecord.DeviceTime, journalRecord.SystemTime, journalRecord.ZoneName, journalRecord.Description, journalRecord.DeviceName, journalRecord.PanelName, journalRecord.User); data.DataTables.Add(table); return data; }
public ReportData GetData() { var data = new ReportData(); var table = new DataTable("Devices"); table.Columns.Add("Type"); table.Columns.Add("Address"); table.Columns.Add("Zone"); table.Columns.Add("Dustiness"); if (GKManager.Devices.IsNotNullOrEmpty()) { string type = ""; string address = ""; string zonePresentationName = ""; string dustiness = ""; foreach (var device in GKManager.Devices) { type = device.Driver.ShortName; address = device.DottedAddress; zonePresentationName = ""; dustiness = ""; if (device.Driver.HasZone) { zonePresentationName = GKManager.GetPresentationZoneOrLogic(device); } var deviceState = device.State; var parameter = deviceState.XMeasureParameterValues.FirstOrDefault(x => x.Name == "Dustiness"); if (parameter != null) { dustiness = parameter.StringValue; } table.Rows.Add(type, address, zonePresentationName, dustiness); } } data.DataTables.Add(table); PdfProvider.ReportData = data; return data; }
public ReportData GetData() { var data = new ReportData(); DataTable table = new DataTable("Devices"); table.Columns.Add("Driver"); table.Columns.Add("Count"); //DataList = new List<ReportDriverCounterModel>(); foreach (var driver in FiresecManager.Drivers) if (driver.IsPlaceable && driver.DriverType != DriverType.Computer) AddDrivers(driver, table); else switch (driver.DriverType) { case DriverType.IndicationBlock: AddDrivers(driver, table); break; case DriverType.MS_1: AddDrivers(driver, table); break; case DriverType.MS_2: AddDrivers(driver, table); break; case DriverType.MS_3: AddDrivers(driver, table); break; case DriverType.MS_4: AddDrivers(driver, table); break; default: break; } //DataList.Add(new ReportDriverCounterModel() //{ // DriverName = "Всего устройств", // Count = CountDrivers() //}); data.DataTables.Add(table); return data; }
public ReportData GetData() { ReportArchiveFilter.LoadArchive(); var data = new ReportData(); data.ReportDocumentValues.Add("StartDate", ReportArchiveFilter.StartDate); data.ReportDocumentValues.Add("EndDate", ReportArchiveFilter.EndDate); var table = new DataTable("Journal"); table.Columns.Add("DeviceDateTime"); table.Columns.Add("SystemDateTime"); table.Columns.Add("Name"); table.Columns.Add("Description"); table.Columns.Add("ObjectName"); foreach (var journalItem in ReportArchiveFilter.JournalItems) { var journalItemViewModel = new JournalItemViewModel(journalItem); var objectName = ""; if (journalItemViewModel.Device != null) { objectName = journalItemViewModel.Device.PresentationName; } if (journalItemViewModel.Zone != null) { objectName = journalItemViewModel.Zone.PresentationName; } if (journalItemViewModel.Direction != null) { objectName = journalItemViewModel.Direction.PresentationName; } table.Rows.Add( journalItem.DeviceDateTime, journalItem.SystemDateTime, journalItem.Name, journalItem.Description, objectName); } data.DataTables.Add(table); PdfProvider.ReportData = data; return data; }
public ReportData GetData() { var data = new ReportData(); if (ArchiveViewModel.Filter != null) { data.ReportDocumentValues.Add("StartDate", ArchiveViewModel.Filter.StartDate); data.ReportDocumentValues.Add("EndDate", ArchiveViewModel.Filter.EndDate); } else { data.ReportDocumentValues.Add("StartDate", DateTime.Now); data.ReportDocumentValues.Add("EndDate", DateTime.Now); } var table = new DataTable("Journal"); table.Columns.Add("DeviceDateTime"); table.Columns.Add("SystemDateTime"); table.Columns.Add("Name"); table.Columns.Add("Description"); table.Columns.Add("ObjectName"); //if (ArchiveViewModel.Pages != null) //{ // foreach (var page in ArchiveViewModel.Pages) // { // page.Create(); // foreach (var journalItem in page.JournalItems) // { // table.Rows.Add( // journalItem.JournalItem.DeviceDateTime, // journalItem.JournalItem.SystemDateTime, // journalItem.Name, // journalItem.Description, // journalItem.ObjectName); // } // } //} data.DataTables.Add(table); PdfProvider.ReportData = data; return data; }
public ReportData GetData() { var data = new ReportData(); var table = new DataTable("Devices"); table.Columns.Add("Name"); table.Columns.Add("Address"); table.Columns.Add("DoorType"); foreach (var device in GKManager.Devices) { if (device.Driver.IsCardReaderOrCodeReader) { var name = device.Name; var address = device.Address; var doorType = ""; table.Rows.Add(name, address, doorType); } } data.DataTables.Add(table); PdfProvider.ReportData = data; return data; }
/// <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 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); } }
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); } }
/// <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); } }
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); } }
private void SetDocumentValues(ReportData data) { // set constant document values data.ReportDocumentValues.Add("PrintDate", new DateTime(2015, 9, 29)); data.ReportDocumentValues.Add("StartDate", new DateTime(2015, 9, 30)); data.ReportDocumentValues.Add("EndDate", new DateTime(2015, 9, 1)); data.ReportDocumentValues.Add("FillName", "Иванов И.С."); data.ReportDocumentValues.Add("HRName", "Петров П.Г."); data.ReportDocumentValues.Add("LeadName", "Сидоров Ф.П."); data.ReportDocumentValues.Add("FillPosition", "Заведующий канцелярией"); data.ReportDocumentValues.Add("HRPosition", "Заведующий канцелярией"); data.ReportDocumentValues.Add("LeadPosition", "Начальник кадровой службы"); data.ReportDocumentValues.Add("Organization", "ООО \"Сатурн-Экспорт\""); data.ReportDocumentValues.Add("Department", "концелярия"); }
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); } }
/// <summary> /// Helper method to create page header or footer from flow document template /// </summary> /// <param name="data">report data</param> /// <returns></returns> public ReportPaginator CreatePaginator(ReportData data, Action <int, int> PageGeneratedCallBack = null) { ReportPaginator rp = new ReportPaginator(this, data, PageGeneratedCallBack); return(rp); }
/// <summary> /// Helper method to create page header or footer from flow document template /// </summary> /// <param name="data">report data</param> /// <returns></returns> public XpsDocument CreateXpsDocument(ReportData data) { MemoryStream ms = new MemoryStream(); Package pkg = Package.Open(ms, FileMode.Create, FileAccess.ReadWrite); string pack = "pack://report.xps"; PackageStore.RemovePackage(new Uri(pack)); PackageStore.AddPackage(new Uri(pack), pkg); XpsDocument doc = new XpsDocument(pkg, CompressionOption.NotCompressed, pack); XpsSerializationManager rsm = new XpsSerializationManager(new XpsPackagingPolicy(doc), false); //DocumentPaginator paginator = ((IDocumentPaginatorSource)CreateFlowDocument()).DocumentPaginator; ReportPaginator rp = new ReportPaginator(this, data); rsm.SaveAsXaml(rp); return doc; }
/// <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> /// Helper method to create page header or footer from flow document template /// </summary> /// <param name="data">report data</param> /// <param name="fileName">file to save XPS to</param> /// <returns></returns> public XpsDocument CreateXpsDocument(ReportData data, string fileName) { Package pkg = Package.Open(fileName, FileMode.Create, FileAccess.ReadWrite); string pack = "pack://report.xps"; PackageStore.RemovePackage(new Uri(pack)); PackageStore.AddPackage(new Uri(pack), pkg); XpsDocument doc = new XpsDocument(pkg, _xpsCompressionOption, pack); XpsSerializationManager rsm = new XpsSerializationManager(new XpsPackagingPolicy(doc), false); //DocumentPaginator paginator = ((IDocumentPaginatorSource)CreateFlowDocument()).DocumentPaginator; ReportPaginator rp = new ReportPaginator(this, data); rsm.SaveAsXaml(rp); rsm.Commit(); pkg.Close(); return new XpsDocument(fileName, FileAccess.Read); }
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); } }