DevExpress:报表在winform窗体上显示(使用documentViewer控件)

一:控件认识

documentViewer(版本DX22.2),老版本中的可能是printControl(工具箱面板中可能找不到),通过官网搜索发现,这个控件现在继承于documentViewer这个控件。因此,使用documentViewer控件即可。
在这里插入图片描述
在这里插入图片描述

二、实现方式

1.创建一个winform项目,包含(两个窗体,一个报表):

Form1.cs;
Form2.cs
XtraReport1.cs

其中,Form1作为主窗体,Form2作为承载documentViewer的窗体,XtraReport1是documentViewer要显示的报表。

在这里插入图片描述

2.documentViewer控件嵌入到Form2中;

官方文档:documentViewer控件使用

首先,直接拖拽该控件到Form2窗体上;
在这里插入图片描述
然后,把需要打印的报表给documentViewer,点击documentViewer右上角小箭头后选择DocumentSource为项目中指定的报表。
在这里插入图片描述

其次,点击小箭头,创建一个标准的导航栏,目的是该导航栏具有打印,导出pdf等现成的、可在界面上直接操作的选项;
在这里插入图片描述
执行完以后,Form2是这样的。

在这里插入图片描述
至此,documentViewer控件配置结束。

3.Form1窗体布局;

首先,添加两个panel面板到Form1上,总体布局是上下。panel1用于添加按钮操作类型的控件,panel2用于显示Form2窗体,也就是报表的显示区域。
在这里插入图片描述
其中,先把panal1的dock属性设置为top;其次再把panel2的dock属性设置为fill;
在这里插入图片描述
在这里插入图片描述然后,添加一个按钮,并为其添加点击事件,点击后panel2区域显示报表;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace csdn01
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = new Form2();//创建form2窗体
            Showform(form);//form2窗体承载的报表在panel2区域显示
        }

        public void Showform(Form form)
        {
            //清除panel里面的其他窗体
            this.panel2.Controls.Clear();
            //将该子窗体设置成非顶级控件
            form.TopLevel = false;
            //将该子窗体的边框去掉
            form.FormBorderStyle = FormBorderStyle.None;
            //设置子窗体随容器大小自动调整
            form.Dock = DockStyle.Fill;
            //设置mdi父容器为当前窗口
            form.Parent = this.panel2;
            //子窗体显示
            form.Show();
        }
    }
}

效果如下(前面忘了在报表里放一个label展示,记得报表里要有内容):
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值