dev中 ,usercontrol打印界面内容,打印预览和打印
首先,在对应的文件夹下面添加引用,如下图

如果没有就下载下来包。
预先在本地文件夹下面建立.frx文件,像这样的,

然后在触发事件下面写
//打印预览
private void btn_Preview_Click(object sender, EventArgs e)
{
string path = GetReportPath(); //该方法是获取绝对路径下面的.frx文件
if (string.IsNullOrWhiteSpace(path)) { return; }
FastReport.Report _report = new FastReport.Report();
_report.Load(path);
_report.PrintSettings.ShowDialog = true;
EnvironmentSettings FPEnvironmentSettings = new EnvironmentSettings();
FPEnvironmentSettings.ReportSettings.ShowProgress = true;
_report.RegisterData(GetPrintData()); //GetPrintData()方法是创建打印样式,和填充要打印的数据,绑定数据源,,,,,方法在下面
if (IsDesgin)
{
_report.Design();
}
else
{
_report.Show();
}
}
//打印
private void btn_Print_Click(object sender, EventArgs e)
{
string path = GetReportPath();
if (string.IsNullOrWhiteSpace(path)) { return; }
FastReport.Report _report = new FastReport.Report();
_report.Load(path);
_report.PrintSettings.ShowDialog = true;
EnvironmentSettings FPEnvironmentSettings = new EnvironmentSettings();
FPEnvironmentSettings.ReportSettings.ShowProgress = true;
_report.RegisterData(GetPrintData());
_report.Print();
}
//全局静态变量
public static String g_FolderPath = System.AppDomain.CurrentDomain.BaseDirectory + ReportConst.REPORT_SAVE_DIR + "\\";
private bool IsDesgin = false;
//重写此方法
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Control | Keys.O | Keys.K))
{
if (IsDesgin) { IsDesgin = false; }
else
{
IsDesgin = true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
//获取.frx文件路径
public string GetReportPath()
{
return g_FolderPath + "HD_" + "电子交接班" + ".frx";
}
//绑定要打印的数据源
private DataSet GetPrintData()
{
DataSet dataSetPrint = new DataSet(); //先创建一个DataSet数据集
DataTable _EleCtronicHandover = new DataTable("电子交接班信息"); //创建要打印的表
#region 交班信息
_EleCtronicHandover.Columns.Add("交班人", typeof(string));
_EleCtronicHandover.Columns.Add("交班时间", typeof(string));
_EleCtronicHandover.Columns.Add("接班人", typeof(string));
_EleCtronicHandover.Columns.Add("接班时间", typeof(string));
_EleCtronicHandover.Columns.Add("原有病人数", typeof(string));
_EleCtronicHandover.Columns.Add("新入院人数", typeof(string));
_EleCtronicHandover.Columns.Add("现有病人数", typeof(string));
_EleCtronicHandover.Columns.Add("出院人数", typeof(string));
_EleCtronicHandover.Columns.Add("病危人数", typeof(string));
_EleCtronicHandover.Columns.Add("病重人数", typeof(string));
_EleCtronicHandover.Columns.Add("手术人数", typeof(string));
_EleCtronicHandover.Columns.Add("ICU人数", typeof(string));
_EleCtronicHandover.Columns.Add("转入人数", typeof(string));
_EleCtronicHandover.Columns.Add("转出人数", typeof(string));
_EleCtronicHandover.Columns.Add("日期", typeof(string));
_EleCtronicHandover.Columns.Add("交接班记录id", typeof(string));
DataRow dr = _EleCtronicHandover.NewRow();
using (var proxy = new ElectronicHandoverProxy())
{
HD_ELECTRONIC_HANDOVER electronichandover = proxy.GetElectronicHandoverByDate(date_DATE.DateTime.ToShortDateString());
if (electronichandover != null)
{ //向表中填充数据
dr["交班人"] = electronichandover.HANDOVER;
dr["交班时间"] = electronichandover.SHIFT_TIME;
dr["接班人"] = electronichandover.SUCCESSOR;
dr["接班时间"] = electronichandover.SUCCESSION_TIME;
dr["原有病人数"] = electronichandover.ORIGINAL_PATIENTS_NUM;
dr["新入院人数"] = electronichandover.NEW_ADMISSION_NUM;
dr["现有病人数"] = electronichandover.EXISTING_PATIENTS_NUM;
dr["出院人数"] = electronichandover.DISCHARGE_NUM;
dr["病危人数"] = electronichandover.CRITICALLY_ILL_NUM;
dr["病重人数"] = electronichandover.BE_CRITICALLY_ILL_NUM;
dr["手术人数"] = electronichandover.OPERATION_NUM;
dr["ICU人数"] = electronichandover.ICU_NUM;
dr["转入人数"] = electronichandover.CHANGE_INTO_NUM;
dr["转出人数"] = electronichandover.TURN_OUT_NUM;
dr["日期"] = electronichandover.ELECTRONIC_HANDOVER_DATE;
dr["交接班记录id"] = electronichandover.ELECTRONIC_HANDOVER_ID;
}
}
_EleCtronicHandover.Rows.Add(dr); //表字段添加进表中
dataSetPrint.Tables.Add(_EleCtronicHandover); 把表加进创建好的DataSet中
#endregion
#region 病人信息
DataTable _DtPatient = new DataTable("病人信息"); 创建另一张要打印的不同表
_DtPatient.Columns.Add("住院号", typeof(string));
_DtPatient.Columns.Add("床号", typeof(string));
_DtPatient.Columns.Add("姓名", typeof(string));
_DtPatient.Columns.Add("性别", typeof(string));
_DtPatient.Columns.Add("年龄", typeof(string));
_DtPatient.Columns.Add("入院日期", typeof(string));
_DtPatient.Columns.Add("入院诊断", typeof(string));
_DtPatient.Columns.Add("交班内容", typeof(string));
_DtPatient.Columns.Add("接班内容", typeof(string));
_DtPatient.Columns.Add("病人类型id", typeof(string));
_DtPatient.Columns.Add("病情类型名称", typeof(string));
_DtPatient.Columns.Add("创建时间", typeof(string));
_DtPatient.Columns.Add("创建人", typeof(string));
_DtPatient.Columns.Add("交班记录id", typeof(string));
_DtPatient.Columns.Add("科室id", typeof(string));
_DtPatient.Columns.Add("病历id", typeof(string));
_DtPatient.Columns.Add("查询日期", typeof(string));
_DtPatient.Columns.Add("病人信息id", typeof(string));
#endregion
var PatientList = gdvPatientList.DataSource as List<HD_PATIENT_INFORMATION>; //获取当前gridview的数据
if (PatientList == null && PatientList.Count <= 0) { return null; }
foreach (HD_PATIENT_INFORMATION item in PatientList)
{
DataRow _dr = _DtPatient.NewRow();
_dr["住院号"] = item.INPATIENT_NUM;
_dr["床号"] = item.BED_NUM;
_dr["姓名"] = item.NAME;
_dr["性别"] = item.SEX;
_dr["年龄"] = item.AGE;
_dr["入院日期"] = item.ADMISSION_DATE;
_dr["入院诊断"] = item.ADMISSION_DIAGNOSIS;
_dr["交班内容"] = item.SHIFT_CONTENT;
_dr["接班内容"] = item.SUCCESSION_CONTENT;
_dr["病人类型id"] = item.DISEASE_TYPE_ID;
_dr["病情类型名称"] = item.DISEASE_TYPE;
_dr["创建时间"] = item.CREATION_TIME;
_dr["创建人"] = item.CREATER;
_dr["交班记录id"] = item.ELECTRONIC_HANDOVER_ID;
_dr["科室id"] = item.DEPT_ID;
_dr["病历id"] = item.MR_ID;
_dr["查询日期"] = item.SELECT_DATE;
_dr["病人信息id"] = item.HD_PATIENT_INFORMATION_ID;
_DtPatient.Rows.Add(_dr);
}
dataSetPrint.Tables.Add(_DtPatient); //套路同上。。。
return dataSetPrint; //返回添加完成的数据集DataSet
}
dev中 ,usercontrol打印界面内容,打印预览和打印的更多相关文章
- Lodop打印设计矩形重合预览线条变粗
LODOP中的打印设计是辅助进行开发的,实际打印效果应以预览为准,很多效果都是在设计界面显示不出来,或设计和预览界面有差异.例如add_print_text文本的字间距.行间距,旋转,还有允许标点溢出 ...
- JAVA打印类(带预览)
package tool; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; ...
- 网站开发进阶(十二)JS实现打印功能(包括打印预览、打印设置等)
JS实现打印功能(包括打印预览.打印设置等) 绪 最近在进行项目开发时,需要实现后台管理端打印功能,遂在网上一阵搜索,搜到了很多相关的文章.其中绝大部分文章都是使用的Lodop5.0(Web打印和套打 ...
- 网页中动态嵌入PDF文件/在线预览PDF内容https://www.cnblogs.com/xgyy/p/6119459.html
#网页中动态嵌入PDF文件/在线预览PDF内容# 摘要:在web开发时我们有时会需要在线预览PDF内容,在线嵌入pdf文件: 问题1:如何网页中嵌入PDF: 在网页中: 常用的几种PDF预览代码片段如 ...
- 利用Gulp实现JSDoc 3的文档编写过程中的实时解析和效果预览
### 利用Gulp实现JSDoc 3的文档编写过程中的实时解析和效果预览 http://segmentfault.com/a/1190000002583569
- winform使用Barcodex控件预览和打印一维码
1.控件下载. http://files.cnblogs.com/files/masonblog/barcodex.zip . 包含barcodex.ocx控件.barcodex帮助文档.两个winf ...
- JS 打印功能代码可实现打印预览、打印设置等
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...
- 借助flexpaper实现word在线预览和打印
为了实现word能够在web上尽量以原始的排版样式展现出来,选择基于activex控件的方式太过于依赖某种浏览器,并且存在可能需要花费金钱购买相应的控件产品:于是借助flexpaper这种flash展 ...
- #网页中动态嵌入PDF文件/在线预览PDF内容#
摘要:在web开发时我们有时会需要在线预览PDF内容,在线嵌入pdf文件: 问题1:如何网页中嵌入PDF: 在网页中: 常用的几种PDF预览代码片段如下: 代码片段1: 1 <object ty ...
随机推荐
- MySQL锁机制浅析
MySQL使用了3种锁机制 行级锁,开销大,加锁慢,会出现死锁,发生锁冲突的概率最高,并发度也最高 表级锁,开销小,加锁快,不会出现死锁,发生锁冲突的概率最低,并发度最低 页级锁,开销和加锁时间界于表 ...
- 【datatable】正在加载中的信息提示
datatable插件 DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, ...
- 【hihoCoder】每周一题(从week 220开始)
2018/9/17-2018/9/23 week 220 push button I 题目链接:https://hihocoder.com/contest/hiho220/problem/1 有N个 ...
- PHP创建多级目录文件夹
PHP创建多级目录的代码实例如下: <?php function create_dir($dirName) { // 去除输入目录名中的空格部分 $dirName = trim($dirName ...
- delphi和C# 保存exe文件到数据库
Delphi: procedure TForm1.Button1Click(Sender: TObject); var strSQL, sfilename: string; MStream: TMem ...
- Windows cmd 打开面板
{ 打开控制面板的命令是:“control” 打开控制面板 命令: rundll32.exe shell32.dll,Control_RunDLL 结果: 显示控制面板窗口. 例子: Cal ...
- 深入理解Magento – 第四章 – 模型和ORM基础
深入理解Magento 作者:Alan Storm 翻译:Hailong Zhang 第四章 – 模型和ORM基础 对于任何一个MVC架构,模型(Model)层的实现都是占据了很大一部分.对于Mage ...
- Android中的onWindowFocusChanged()方法详解
Android中获取手机屏幕的高度和宽度,我们知道在onCreate方法中获取到的值都是为0的,有人说可以在onClick方法中获取值,这个也是个方法 ,但在onWindowFocusChanged方 ...
- 吉首大学校赛 I 滑稽树上滑稽果 (Lucas + 莫队)
链接:https://ac.nowcoder.com/acm/contest/925/I来源:牛客网 题目描述 n个不同的滑稽果中,每个滑稽果可取可不取,从所有方案数中选取一种,求选取的方案中滑稽果个 ...
- HDU - 1712 (分组背包模板)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1712 题意:给你n个课程,每个课程有很多种学习方法,用的时间和取得的效果都不一样,现在你只有m天时间用来学 ...