• 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
    }

  • 相关阅读:
    你认为做好测试计划工作的关键是什么?
    一套完整的测试应该由哪些阶段组成?
    你对测试最大的兴趣在哪里?为什么?
    如何测试一个纸杯?
    黑盒测试和白盒测试各自的优缺点
    在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
    测试人员在软件开发过程中的任务
    软件测试分为几个阶段? 各阶段的测试策略和要求是什么?
    软件测试的策略
    软件产品质量特性
  • 原文地址:https://www.cnblogs.com/jiuyueBlog/p/9122979.html
Copyright © 2020-2023  润新知