场景

FastReport安装包下载、安装、去除使用限制以及工具箱中添加控件:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100893794

Winform中使用FastReport实现简单的自定义PDF导出:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100920681

参照上面实现使用FastReport导出PDF的实现后。

如果要在点击导出按钮后同时进行PDF预览并弹出另存为对话框。

效果如下:

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

新建窗体并拖拽一个button和FastReport的PreviewControl

在button的点击事件中

首先加载frm模板文件

Report report = new Report();
//获取项目目录
string baseDir = System.Windows.Forms.Application.StartupPath;
//拼接模板文件目录
var reportFile = Path.Combine(baseDir + @"\data\Report", "ExportPDF.frx");
//先清理一下
report.Clear();
//然后加载模板文件
report.Load(reportFile);

对模板中的TextObject进行赋值

foreach (Control ctl in this.panelControl1.Controls)
{
string[] strs = ctl.Name.Split('_');
if (strs.Length > )
{
string changeText = null;
if (strs[].Equals("Date"))
{
//日期处理
DateEdit dateEdit = ctl as DateEdit;
DateTime date = (DateTime)dateEdit.EditValue;
changeText = date.ToLongDateString().ToString();
}else if (strs[].Equals("Time"))
{
//时间处理
TimeEdit dateEdit = ctl as TimeEdit;
DateTime time = (DateTime)dateEdit.EditValue;
changeText = time.ToLongTimeString().ToString();
}
else
{
changeText = ctl.Text;
}
//找到 Name属性为T的控件
var t = report.FindObject("Text_" + strs[]) as TextObject;
if (t != null)
{
//修改控件值
t.Text = changeText;
}
}
}

对模板中的图片控件PictureObject进行设置照片源

var graph = report.FindObject("Picture2") as PictureObject;
//获取图像
System.Drawing.Image image = MainViewContent.mainViewContent.zedGraphControl1.GetImage();
//照片旋转90度
image.RotateFlip(RotateFlipType.Rotate90FlipNone);
graph.Image = image; 绑定并显示预览窗口 //绑定预览控件 不然会弹出新的窗口
report.Preview = this.previewControl1;
//显示预览窗口
report.Prepare();
report.ShowPrepared();

显示另存为窗口

//显示另存为窗口
SaveFileDialog saveDialog = new SaveFileDialog();
//设置默认文件扩展名。
saveDialog.DefaultExt = "pdf";
//设置当前文件名筛选器字符串,该字符串决定对话框的“另存为文件类型”或“文件类型”框中出现的选择内容。
saveDialog.Filter = "pdf文件|*.pdf";
//设置文件名
saveDialog.FileName = fileName;
//用默认的所有者运行通用对话框。
saveDialog.ShowDialog();
//如果修改了文件名,用对话框中的文件名名重新赋值
fileName = saveDialog.FileName;
//被点了取消
if (fileName.IndexOf(":") < ) return;
FastReport.Export.Pdf.PDFExport export = new FastReport.Export.Pdf.PDFExport();
report.Export(export, fileName);
//即保存后打开Excel
System.Diagnostics.Process.Start(fileName);

Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框的更多相关文章

  1. 实现在easyui中的datagrid,点击某一列的列头弹出combobox下拉框

    easyUI  datagrid在列头加下拉框,实现对列内容的筛选. 代码: onLoadSuccess: function (data) {//Fires when data is loaded s ...

  2. JavaScript三在弹出的对话框中

    据悉js小伙伴会发现,我们在某些情况下使用的alert()办法.prompt()办法.prompt()办法.它们在屏幕上的对话框.容,使用这样的方法使得页面的交互性更精彩.实际上我们常常会在进行网页浏 ...

  3. ASP.NET点击按钮弹出确认对话框方法

    开发asp.net网页应用程序的时候,有些页面的按钮需要增加一个确认对话框,比如: 实现这个功能比较简单,代码这样写: Button.Attributes["onclick"] = ...

  4. boostrap 弹出模态对话框,点击黑色区域不会关闭

    $('#ID_ReformDetail').modal({ backdrop: 'static', keyboard: false }); 弹出模态对话框且点击黑色部分不会关闭. <div cl ...

  5. 将w3cplus网站中的文章页面提取并导出为pdf文档

    最近在看一些关于CSS3方面的知识,主要是平时看到网页中有很多用CSS3实现的很炫的效果,所以就打算系统的学习一下.在网上找到很多的文章,但都没有一个好的整理性,比较凌乱.昨天看到w3cplus网站中 ...

  6. JS-DOM2级封装练习题--点击登录弹出登录对话框

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  7. 宣布发布 Windows Azure 导入/导出服务的预览版以及 Web 和移动解决方案场景的若干增强功能

    客户评估基于云的存储解决方案时,面临的挑战之一是以经济高效.安全快速的方式从 Blob 存储区移进和移出大量数据.今天,我们很高兴地宣布发布 Windows Azure 导入/导出的预览版,这款新服务 ...

  8. 点击查看大图滑动预览(h5,pc通用)

    点击预览大图并滑动观看,支持手机端和pc端,具体功能如下图: 一. touchTouch 的js和css 以及jquery依赖库 <link rel="stylesheet" ...

  9. 点击手机返回键弹出Dialog对话框功能

    在程序中,我们为了防止出现客户在使用程序填信息或者浏览页面时因误点返回键造成关闭界面的现象,需要添加弹出框功能,以确认客户是否要退出本界面,下面是功能实现的代码: 1.点击手机返回键的判断 publi ...

随机推荐

  1. 接口测试基础--Fiddler、Postman、Python实现对接口的测试

    写在前面:本文主要的章节规划: 1.什么是接口测试    另外,有的时候会直接调用别的公司的接口,比如银行的.淘宝的.支付宝的,此时也需要做接口测试以及验证数据: 做接口测试的好处:      其中, ...

  2. springmvc学习笔记二:重定向,拦截器,参数绑定

    Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. 返回void 在Contro ...

  3. JS基础语法---数组

    数组: 一组有序的数据 数组的作用: 可以一次性存储多个数据 数组的定义: 1. 通过构造函数创建数组   语法: var 数组名=new Array(); var array=new Array() ...

  4. 「SAP 技术」SAP BP显示供应商账户组时候的怪现象

    SAP BP显示供应商账户组时候的怪现象 BP事务代码显示某个vendor的时候,笔者发现对于账户组字段选项列表里,不显示当前vendor的account group. 如下图,该供应商的accoun ...

  5. andriod8.1.0源码编译中的一个坑-package com.sun.javadoc does not exist

    这里记录编译过程中的一个坑!!! 编译过程中出现了下面的报错 external/doclava/src/com/google/doclava/ClassInfo.java:20: error: pac ...

  6. [20190524]浅谈模糊查询.txt

    [20190524]浅谈模糊查询.txt --//一台生产系统遇到监听进程莫名down的情况,3月份曾经遇到的情况,链接:http://blog.itpub.net/267265/viewspace- ...

  7. Python—函数的参数传递

    形参和实参 形参即形式参数,函数完成其工作时所需的信息.形参不占用内存空间,只有在被调用时才会占用内存空间,调用完了即被释放. 实参即实际参数,调用函数时传给函数的信息. # -*- coding: ...

  8. [Go] 使用go mod安装beego

    需要go升级到1.12或以上 mkdir gomodtest cd gomodtest go mod init gomodtest 创建一个server.go package main import ...

  9. fiddler---Fiddler抓取https协议

    上一篇简单的介绍了Fiddler的使用方法和页面布局介绍,Fiddler默认抓取的是HTTP协议,现在的协议基本上都是基于HTTPS协议的,今天写一篇如何通过Fiddler抓取HTTPS协议 什么是H ...

  10. C++学习一 结构与结构体

    结构体属于C++与C区别之一. 代码例子如下(来自<C++程序设计>): #include <iostream> #include <string> using n ...