c#实现传入文件后缀名为 “.frx“ 的报表文件,以及SQL语句进行打印功能

1、新建一个Fast_Report类(注意Print方法下方的注释

  /// <summary>
    /// 打印模式
    /// </summary>
    public enum Print_Set
    {
        /// <summary>
        /// 隐藏打印框打印
        /// </summary>
        HidePrint = 0,
        /// <summary>
        /// 显示打印框打印
        /// </summary>
        ShowPrint = 1,
        /// <summary>
        /// 设计报表
        /// </summary>
        Design = 2,
        /// <summary>
        /// 预览报表
        /// </summary>
        Show = 3
    }
    class Fast_Report
    {
        /// <summary>
        /// 报表
        /// </summary>
        private Report report = null;
        /// <summary>
        /// 日志
        /// </summary>
        private StringBuilder log = new StringBuilder();

        /// <summary>
        /// 传入文件路径(\结尾),文件名(.frx结尾)
        /// </summary>
        /// <param name="path">路径</param>
        /// <param name="frx">文件名</param>
        public Fast_Report(string path, string frx, bool create = false)
        {
            report = new Report();
            //目录
            if (!Directory.Exists(path) && create)
            {
                //路径不存在并且允许创建
                Directory.CreateDirectory(path);
            }
            else if (!Directory.Exists(path) && !create)
            {
                //路径不存在并且不允许创建
                log.AppendLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":目录不存在;");
            }
            //文件
            if (!File.Exists(path + frx) && create)
            {
                //文件不存在并且允许创建
                report.FileName = path + frx;
            }
            else if (!File.Exists(path + frx) && !create)
            {
                //文件不存在并且不允许创建
                log.AppendLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":文件不存在;");
            }
            else
            {
                report.Load(path + frx);
            }
        }
 //注意这是我的数据库类
 MYSQL my=new MYSQL();
 public int Print(string sql, Print_Set print, string para)
        {
            report.SetParameterValue("prams1", para);//传参
            try
            {//我这里调用的是我的查询方法,这里可以写成你自己的,也可以参考我以前写的数据库的增删改查方法
                report.RegisterData(my.Get(sql));
                switch (print)
                {
                    case Print_Set.HidePrint:
                        //隐藏打印对话框
                        report.PrintSettings.ShowDialog = false;
                        report.Print();
                        break;
                    case Print_Set.ShowPrint:
                        report.PrintSettings.ShowDialog = true;
                        report.Print();
                        break;
                    case Print_Set.Design:
                        report.Design();
                        break;
                    case Print_Set.Show:
                        report.Show();
                        break;
                    default:
                        log.AppendLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + $":Print值\"{(int)print}\"异常;");
                        return -1;
                }
                return (int)print;
            }
            catch (Exception ex)
            {
                log.AppendLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ":" + ex.Message + ";");
                return -1;
            }
        }

2、初始化并调用打印类,我目前用的隐式打印方式

string X = @"print/";//根目录下的文件名
string Y = "wight.frx";//报表的名称
string SQL = "select * from Product";//SQL语句
new Fast_Report(X, Y, true).Print(SQL, Print_Set.HidePrint, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));

4、自定义设计报表内容

 new Fast_Report(X, Y, true).Print(SQL, Print_Set.Design, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));

这样可以调出一个FastReport工具对报表进行修改

5、报表工具展示

6、我上传了一个我自己弄的一个简单的报表可供使用,也可以自己新建一个文本文档把后缀名改成.frx,然后使用以上的报表修改进行自定义设计

相关推荐

  1. C# 通过Path获取后缀文件,目录等

    2024-01-19 16:48:02       8 阅读
  2. C# 打印输出以及文件输入输出

    2024-01-19 16:48:02       18 阅读
  3. python-使用ffmpeg批量修改文件后缀

    2024-01-19 16:48:02       29 阅读
  4. C# 判断文件路径后缀是否是某个后缀

    2024-01-19 16:48:02       46 阅读
  5. TCP实现文件传输以及下载

    2024-01-19 16:48:02       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-19 16:48:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-19 16:48:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-19 16:48:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-19 16:48:02       18 阅读

热门阅读

  1. mac安装miniconda

    2024-01-19 16:48:02       32 阅读
  2. 大白话解析LevelDB: VersionSet

    2024-01-19 16:48:02       29 阅读
  3. C++一般类成员

    2024-01-19 16:48:02       33 阅读
  4. ffmpeg命令整理

    2024-01-19 16:48:02       22 阅读
  5. 数组练习 Leetcode 66.加一

    2024-01-19 16:48:02       41 阅读
  6. C#设计模式教程(2):工厂方法模式

    2024-01-19 16:48:02       29 阅读
  7. Jtti:电影服务器的带宽和存储空间怎么选择?

    2024-01-19 16:48:02       29 阅读
  8. python文件移动的方法

    2024-01-19 16:48:02       29 阅读
  9. 队列和栈相关例题

    2024-01-19 16:48:02       32 阅读