Beispiel #1
0
        private static void Export()
        {
            var saveFileDialog = new SaveFileDialog {
                Filter = "CSV files (*.csv)|*.csv"
            };

            if (saveFileDialog.ShowDialog() == true)
            {
                try
                {
                    using (Stream stream = new FileStream(saveFileDialog.FileName, FileMode.Create))
                    {
                        _grid.Export(stream, new GridViewCsvExportOptions
                        {
                            ColumnDelimiter   = CultureInfo.CurrentCulture.TextInfo.ListSeparator,
                            ShowColumnHeaders = true,
                            ShowColumnFooters = false,
                            ShowGroupFooters  = false,
                            Culture           = CultureInfo.CurrentCulture,
                            Encoding          = Encoding.UTF8,
                            Items             = (IEnumerable)_grid.ItemsSource
                        });
                    }
                }

                catch (IOException)
                {
                    MessageBox.Show(String.Format(
                                        "Export to file {0} was failed. File used by another process. End process and try again.",
                                        saveFileDialog.FileName), "Error");
                }
            }
        }
Beispiel #2
0
        private static RadDocument CreateDocument(GridViewDataControl grid)
        {
            RadDocument document;

            using (var stream = new MemoryStream())
            {
                EventHandler <GridViewElementExportingEventArgs> elementExporting = (s, e) =>
                {
                    if (e.Element == ExportElement.Table)
                    {
                        e.Attributes["border"] = "0";
                    }
                };

                grid.ElementExporting += elementExporting;

                grid.Export(stream, new GridViewExportOptions
                {
                    Format            = ExportFormat.Html,
                    ShowColumnFooters = grid.ShowColumnFooters,
                    ShowColumnHeaders = grid.ShowColumnHeaders,
                    ShowGroupFooters  = grid.ShowGroupFooters
                });

                grid.ElementExporting -= elementExporting;

                stream.Position = 0;

                document = new HtmlFormatProvider().Import(stream);

                foreach (Span span in document.EnumerateChildrenOfType <Span>())
                {
                    span.FontSize   = 12;
                    span.FontFamily = new FontFamily("Arial");
                }
            }

            return(document);
        }
        private static Workbook CreateWorkBook(GridViewDataControl grid)
        {
            Workbook book;

            using (var stream = new MemoryStream())
            {
                grid.Export(stream, new GridViewExportOptions
                    {
                        Format = Telerik.Windows.Controls.ExportFormat.Csv,
                        ShowColumnFooters = grid.ShowColumnFooters,
                        ShowColumnHeaders = grid.ShowColumnHeaders,
                        ShowGroupFooters = grid.ShowGroupFooters,
                    });

                stream.Position = 0;

                book = new CsvFormatProvider().Import(stream);
            }

            return book;
        }
        private static RadDocument CreateDocument(GridViewDataControl grid, PrintSettings settings)
        {
            RadDocument document;

            using (var stream = new MemoryStream())
            {
                EventHandler<GridViewElementExportingEventArgs> elementExporting = (s, e) =>
                {
                    switch (e.Element)
                    {
                        case ExportElement.Table:
                            e.Attributes["border"] = "0";
                            break;
                        case ExportElement.HeaderRow:
                            e.Styles.Add("background-color", settings.HeaderBackground.ToString().Remove(1, 2));
                            break;
                        case ExportElement.GroupHeaderRow:
                            e.Styles.Add("background-color", settings.GroupHeaderBackground.ToString().Remove(1, 2));
                            break;
                        case ExportElement.Row:
                            e.Styles.Add("background-color", settings.RowBackground.ToString().Remove(1, 2));
                            break;
                    }
                };

                grid.ElementExporting += elementExporting;

                grid.Export(stream, new GridViewExportOptions
                    {
                        Format = Telerik.Windows.Controls.ExportFormat.Html,
                        ShowColumnFooters = grid.ShowColumnFooters,
                        ShowColumnHeaders = grid.ShowColumnHeaders,
                        ShowGroupFooters = grid.ShowGroupFooters
                    });

                grid.ElementExporting -= elementExporting;

                stream.Position = 0;

                document = new HtmlFormatProvider().Import(stream);
            }

            return document;
        }
Beispiel #5
0
        public void Export()
        {
            // arrange
            var exportUtility = new ExportUtility();
            var privateAccessor = new PrivateAccessor(exportUtility);

            // act
            var result = (bool)privateAccessor.CallMethod("Export", new object[] { null, null });

            // assert
            Assert.IsFalse(result);

            // arrange
            var dialog = Mock.Create<SaveFileDialog>();
            privateAccessor.SetField("_saveFileDialog", dialog);

            // act
            result = (bool)privateAccessor.CallMethod("Export", new object[] { null, null });

            // assert
            Assert.IsFalse(result);

            // arrange
            var exportViewModel = new ExportOptionsViewModel();
            exportUtility.TheExportOptionsViewModel = new Lazy<ExportOptionsViewModel>(() => exportViewModel);

            var grid = new GridViewDataControl();

            using (var stream = new MemoryStream())
            {
                Mock.Arrange(() => dialog.OpenFile()).Returns(stream);

                // act
                result = (bool)privateAccessor.CallMethod("Export", new object[] { grid, "Id|CurrentState" });

                // assert
                Assert.IsTrue(result);
            }

            // arrange
            Mock.Arrange(() => grid.IsGrouping).Returns(true);
            Mock.Arrange(() => grid.Export(Arg.IsAny<Stream>(), Arg.IsAny<GridViewExportOptions>())).DoNothing();
            using (var stream = new MemoryStream())
            {
                Mock.Arrange(() => dialog.OpenFile()).Returns(stream);

                // act
                result = (bool)privateAccessor.CallMethod("Export", new object[] { grid, "Id|CurrentState" });

                // assert
                Assert.IsTrue(result);
            }

            // arrange
            using (var stream = new MemoryStream())
            {
                Mock.Arrange(() => dialog.OpenFile()).Returns(stream);
                exportViewModel.ExportFileType = ExportFileType.Pdf;

                // act
                result = (bool)privateAccessor.CallMethod("Export", new object[] { grid, null });

                // assert
                Assert.IsTrue(result);

                // arrange
                Mock.NonPublic.Arrange(exportUtility, "CreateDocument", grid).DoNothing();

                // act
                result = (bool)privateAccessor.CallMethod("Export", new object[] { grid, null });

                // assert
                Assert.IsFalse(result);
            }

            // arrange
            Mock.Arrange(() => grid.IsGrouping).Returns(false);
            using (var stream = new MemoryStream())
            {
                // arrange
                Mock.Arrange(() => dialog.OpenFile()).Returns(stream);
                Mock.NonPublic.Arrange(exportUtility, "CreateDocument", grid).CallOriginal();

                // act
                result = (bool)privateAccessor.CallMethod("Export", new object[] { grid, null });

                // assert
                Assert.IsTrue(result);
            }
        }
Beispiel #6
0
        private static RadDocument CreateDocument(GridViewDataControl grid)
        {
            RadDocument document;

            using (var stream = new MemoryStream())
            {
                EventHandler<GridViewElementExportingEventArgs> elementExporting = (s, e) =>
                {
                    if (e.Element == ExportElement.Table)
                    {
                        e.Attributes["border"] = "0";
                    }
                };

                grid.ElementExporting += elementExporting;

                grid.Export(stream, new GridViewExportOptions
                {
                    Format = ExportFormat.Html,
                    ShowColumnFooters = grid.ShowColumnFooters,
                    ShowColumnHeaders = grid.ShowColumnHeaders,
                    ShowGroupFooters = grid.ShowGroupFooters
                });

                grid.ElementExporting -= elementExporting;

                stream.Position = 0;

                document = new HtmlFormatProvider().Import(stream);

                foreach (Span span in document.EnumerateChildrenOfType<Span>())
                {
                    span.FontSize = 12;
                    span.FontFamily = new FontFamily("Arial");
                }
            }

            return document;
        }
Beispiel #7
0
        private RadDocument CreateDocument(GridViewDataControl gridView)
        {
            RadDocument document;

            using (var memoryStream = new MemoryStream())
            {
                gridView.ElementExporting += ElementExporting;

                gridView.Export(memoryStream, new GridViewExportOptions
                        {
                            Format = GetFormat(TheExportOptionsViewModel.Value.ExportFileType),
                            Encoding = new UTF8Encoding(true),
                            ShowColumnFooters = gridView.IsGrouping ? gridView.AggregateResults.Count > 1 : gridView.AggregateResults.Count > 0,
                            ShowGroupFooters = gridView.IsGrouping && gridView.AggregateResults.Count > 1,
                            ShowColumnHeaders = true
                        });

                gridView.ElementExporting -= ElementExporting;

                memoryStream.Position = 0;
                document = new HtmlFormatProvider().Import(memoryStream);
                document.SectionDefaultPageOrientation = TheExportOptionsViewModel.Value.PageOrientation;
            }

            return document;
        }
Beispiel #8
0
        private bool Export(GridViewDataControl gridView, string accessDeniedProperties)
        {
            if (_saveFileDialog == null)
            {
                return false;
            }

            if (gridView == null)
            {
                return false;
            }

            if (!string.IsNullOrEmpty(accessDeniedProperties))
            {
                _accessDeniedProperties = accessDeniedProperties.Split('|').ToList();
            }

            using (var stream = _saveFileDialog.OpenFile())
            {
                if (TheExportOptionsViewModel.Value.ExportFileType == ExportFileType.Pdf)
                {
                    var document = CreateDocument(gridView);
                    if (document == null)
                    {
                        return false;
                    }

                    document.LayoutMode = DocumentLayoutMode.Paged;
                    document.Measure(RadDocument.MAX_DOCUMENT_SIZE);
                    document.Arrange(new RectangleF(PointF.Empty, document.DesiredSize));

                    new PdfFormatProvider().Export(document, stream);
                }
                else
                {
                    gridView.ElementExporting += ElementExporting;

                    gridView.Export(stream, new GridViewExportOptions
                    {
                        Format = GetFormat(TheExportOptionsViewModel.Value.ExportFileType),
                        Encoding = new UTF8Encoding(true),
                        ShowColumnFooters = gridView.IsGrouping ? gridView.AggregateResults.Count > 1 : gridView.AggregateResults.Count > 0,
                        ShowGroupFooters = gridView.IsGrouping && gridView.AggregateResults.Count > 1,
                        ShowColumnHeaders = true
                    });

                    gridView.ElementExporting -= ElementExporting;
                }
            }

            return true;
        }