Exemplo n.º 1
0
        public async Task LoadReport(string categoryName, string reportFileName, string reportName)
        {
            // load report
            try
            {
                using (Stream fs = File.OpenRead("Assets/Reports/" + categoryName.Trim() + "/" + reportFileName.Trim()))
                {
                    _report.Load(fs, reportName);
                }
            }
            catch (Exception ex)
            {
                MessageDialog md = new MessageDialog(string.Format(Strings.ErrorFormat, reportName, ex.Message), Strings.ErrorTitle);
                await md.ShowAsync();

                return;
            }

            //
            flexViewer.DocumentSource = null;

            // render report
            progressRing.IsActive = true;
            try
            {
                await _report.RenderAsync();
            }
            catch (Exception ex)
            {
                MessageDialog md = new MessageDialog(string.Format(Strings.ErrorFormat, reportName, ex.Message), Strings.ErrorTitle);
                await md.ShowAsync();

                return;
            }
            finally
            {
                progressRing.IsActive = false;
            }

            // assign rendered report to the viewer
            flexViewer.DocumentSource = _report;
        }
Exemplo n.º 2
0
        private async void PdfButton_Click(object sender, RoutedEventArgs e)
        {
            // 現在、FlexGrid に表示されている順のデータ
            var currentData = this.flexgrid1.Rows.Select(r => r.DataItem).Cast <Book>();

            // FlexReportの定義を読み込む
            var rpt = new C1FlexReport();

            using (var stream = File.OpenRead("Assets/BooksReport.flxr"))
                rpt.Load(stream, "BooksReport");
            // データを連結
            rpt.DataSource.Recordset = currentData.ToList(); // IEnumerable<T>は不可
            // レポートを生成
            await rpt.RenderAsync();

            // 印刷する場合
            //await rpt.ShowPrintUIAsync();

            // PDF ファイルに直接保存する場合
            var picker = new FileSavePicker()
            {
                SuggestedStartLocation = PickerLocationId.DocumentsLibrary
            };

            picker.FileTypeChoices.Add("PDF ファイル", new string[] { ".pdf", });
            picker.SuggestedFileName = "BarCodeControlSample";
            var file = await picker.PickSaveFileAsync();

            if (file != null)
            {
                // 出力先となる PdfFilter オブジェクトを作成
                var filter = new PdfFilter();
                filter.StorageFile = file;
                // Windows Forms 等では、filter.FileName = file.Path; とする

                // ファイルへ出力
                await rpt.RenderToFilterAsync(filter);
            }
        }