fastreport.net设计模板保存到数据库

本文档介绍了如何在C#中利用FastReport.NET控件,实现从dataGridView加载模板,预览报告,并将设计的模板保存回数据库。通过双击单元格进入设计模式,然后在environmentSettings的CustomSaveDialog事件中完成模板的数据库保存操作。这是一个适合初学者的简化教程。
摘要由CSDN通过智能技术生成

fastreport.net设计模板保存到数据库

新学C#,尝试用我写Delphi的架构方式,写一个简单架构出来,写到打印功能时,习惯去下载跟delphi一样的打印控件fastreport,其他打印预览什么的都没问题,唯独那个保存事件找不到用那个控件,网络上查找了很多,都写得太过复杂,看着完全懵逼状态,不太适合新手,后面找了很久才找到方法,首先在打印模块拖入Report和environmentSettings两个控件,打印预览代码

        private void toolStripButton6_Click(object sender, EventArgs e)
        {
            int index = dataGridView.CurrentCell.RowIndex;
            if (dataGridView.Rows[index].Cells["ReportItem"].Value.ToString() == "")
            {
                MessageBox.Show("没有打印模板!", "软件提示");
            }
            else {
                byte[] ReportBytes = (byte[])dataGridView.Rows[index].Cells["ReportItem"].Value;
                MemoryStream Stream = new MemoryStream(ReportBytes);
                rp.Load(Stream);
                rp.RegisterData(ds);
                rp.Show();
                rp.Dispose();
            }
            
        }

打印模板我放在dataGridView里面所有从那里面获取,进入设计模板代码

private void dataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int index = dataGridView.CurrentCell.RowIndex;
            if (dataGridView.Rows[index].Cells["ReportItem"].Value.ToString() == "")
            {
                rp.RegisterData(ds);
                rp.Design();
            }
            else {
                byte[] ReportBytes = (byte[])dataGridView.Rows[index].Cells["ReportItem"].Value;
                MemoryStream Stream = new MemoryStream(ReportBytes);
                rp.Load(Stream);
                rp.RegisterData(ds);
                rp.Design();
                
            }
        
        }

双击模板数据进入设计界面
然后是保存模板到数据库

private void environmentSettings1_CustomSaveDialog(object sender, OpenSaveDialogEventArgs e)
        {
            int index = dataGridView.CurrentCell.RowIndex;
            using (MemoryStream stream = new MemoryStream())
            {
                //保存
                DataBase mydate = new DataBase();
                rp.Save(stream);
                if (mydate.Conn.State == ConnectionState.Closed)
                {
                    mydate.Conn.Open();
                }
                mydate.Cmd.CommandType = CommandType.Text;
                mydate.Cmd.CommandText = "update t_Report set ReportItem=@ReportItem where ReportID=@ReportID";
                mydate.Cmd.Parameters.AddWithValue("@ReportItem", stream.ToArray());
                mydate.Cmd.Parameters.AddWithValue("@ReportID", dataGridView.Rows[index].Cells["ReportID"].Value.ToString());
                mydate.Cmd.ExecuteNonQuery();
            }
        }

放在environmentSettings的CustomSaveDialog事件里面就可以把模板保存到数据库了

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值