WinFramework轻量级开发框架 - 开发报表打印功能

 

操作步骤:

1. 设置窗体权限值(FormAuthority属性)

在报表界面(采购订单frmPO)添加报表打印权限,常量:FunctionAuthorityCommon.PREVIEW

C# 全选
protected override int FormAuthority
{
    get
    {
        return base.FormAuthority + FunctionAuthorityCommon.PREVIEW;
    }
}

2. 重写功能窗体的 DoPreview方法

C# 全选
 /// <summary>
/// 打印预览
/// </summary>
protected override void DoPreview(object sender)
{
    if (gvMainData.FocusedRowHandle < 0) return;
    string docno = gvMainData.GetFocusedRowCellValue(tb_PO.DocNo) + "";
    DataSet ds = bll.DoGetDocData(docno);

    bool v = ((int)Models.DocType.提交).Equals(ds.Tables[tb_PO._TableName].Rows[0][tb_PO.DocType]);
    if (v == false)
    {
        Msg.Warning("当前单据未提交,不允许打印!");
        return;
    }

    string filename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Reports\\rpt_PO.frx");
    RptCommonMainDetail rptHelper = new RptCommonMainDetail(this, filename, ds.Tables[tb_PO._TableName], ds.Tables[tb_PODetail._TableName]);
    rptHelper.BeforePrepare += RptHelper_BeforePrepare;
    ReportServer.frmRptPreview.ShowForm(rptHelper);
}

3. 其他报表处理,实现BeforePrepare事件

C# 全选
/// <summary>
/// 其他处理,人民币转大写
/// </summary>
/// <param name="rpt"></param>
private void RptHelper_BeforePrepare(global::FastReport.Report rpt)
{
    var dt = rpt.GetDataSource("D").Reference as DataTable;
    decimal total = 0;

    if (dt.Rows.Count > 0)
    {
        total = (decimal)dt.Compute($"SUM({Models.tb_PODetail.Amount})", "1=1");
    }
    var PrintUser = rpt.Parameters.FindByName("TotalAmount");
    string str = WinFramework.Common.RMBConverter.toRMB(total);
    if (PrintUser != null) PrintUser.Value = str;
}

4. 报表模板设计

报表模板文件存放位置:程序目录 \ reports \rpt_PO.frx

开发报表打印功能

5. 打印报表测试

打开【采购订单】,点击【打印预览】按钮。

开发报表打印功能

6. 报表预览窗体

开发报表打印功能

打印预览窗体功能:

  • 打印:打印当前报表
  • 设计:实时设计报表

 

开发报表打印功能

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:WinFramework制作业务模块作为项目模板
下一篇:C/S框架网软件介绍-WinFramework
评论列表

发表评论

评论内容
昵称:
关联文章

WinFramework轻量级开发框架 - 开发报表打印功能
WinFramework轻量级开发框架 - 功能按钮事件详解
C/S架构轻量级快速开发框架WinFramework-功能列表及模板窗体
WinFramework轻量级开发框架 - 软件截图
WinFramework轻量级开发框架 - Winform开发框架-模块功能窗体注册与配置
WinFramework轻量级开发框架 - 窗体自定义功能按钮(InitButton/AddButton方法)
WinFramework轻量级开发框架 - 代码生成器(CodeGenerator)简介
WinFramework轻量级开发框架 - 窗体权限机制
C/S架构轻量级快速开发框架 - WinFramework核心优势
WinFramework轻量级开发框架 - 参数设置
WinFramework轻量级开发框架 - 窗体继承关系图详解
WinFramework轻量级开发框架 - 主从表窗体开发指南-详细二次开发
WinFramework轻量级开发框架 - 新建Winform业务数据窗体
WinFramework轻量级框架与旗舰版V5.1功能差异与区别
C/S架构轻量级快速开发框架WinFramework架构图
WinFramework轻量级开发框架 - 公共字典数据扩展
WinFramework轻量级开发框架 - 界面扩展按钮-自定义按钮
WinFramework轻量级开发框架 - LayoutControl界面自适应控件
WinFramework轻量级开发框架 - 开发者必备技能
有否支持客户自己用execl做模板实现打印报表功能