WPF之水晶报表打印

WPF之水晶报表打印

WPF是框架是是窗体应用程序,其中水晶报表也是我们比较常用的技术,一些公司的业务处理离不开打印报表,WPF水晶报表打印需要引用插件,大家都知道WPF的页面搭建是通过XAML来编辑的,所以制作水晶报表跟MVC还是有较大的区别的,下面给大家展示一个WPF打印水晶报表的实例:

1、 首先要把水晶报表的插件放在当前项目的bin/Debug下面然后在项目中引用(网上可以下载)

在这里插入图片描述
在这里插入图片描述
接着就是要安装一个设计报表的 插件CRforVS_13_0_14,安装完成就可以创建水晶报表了;创建好的数据集可以往里面添加表,给数据集表添加数据的方法有很多,这里就是通过添加TableAdapter表再通过字符串形式连接数据库,然后通过sql语句访问数句库,下一步就是输入Sql查询语句,就可以完成数据集的操作了
在这里插入图片描述

创建数据集
在这里插入图片描述
往数据集添加表,并输入SQL语句
在这里插入图片描述
在这里插入图片描述
因为是根据SQL语句查询数据库生成的表,字段的类型和数据库一致,所以不必改字段类型,接下来就是创建水晶报表
创建完水晶报表后就把数据集添加到数据库专家里;然后就根据需要编辑设计报表,把刚创建的数据集添加到水晶报表的数据库专家,再把字段拖放到相应的位置。
在这里插入图片描述
报表布局
在这里插入图片描述
做完准备工作之后,就去搭承载打印的页面,代码如下:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"     
        xmlns:Viewer="clr-namespace:SAPBusinessObjects.WPF.Viewer;assembly=SAPBusinessObjects.WPF.Viewer" 
    x:Class="项目界面搭建.SystemInformation.ReportForms.WD_staff"
        mc:Ignorable="d"
        Title="WD_Staff" Height="680" Width="950" Loaded="Window_Loaded" WindowStartupLocation="CenterScreen">
    <Grid>
        <Viewer:CrystalReportsViewer  Height="680" Width="950" x:Name="CRV_Staff"/>
    </Grid>
</Window>

其中Viewer就是引用的插件,把水晶报表用 Viewer: CrystalReportsViewer 承载,写完页面的代码就写页面后台代码(页面加载是完成执行),后台就是处理数据,代码如下:

   private void Window_Loaded(object sender, RoutedEventArgs e)
        {

            #region 1、提取数据
            #region 1、获取页面传递过来的数据
            int staff_id = Convert.ToInt32(drv.Row["staff_id"]);//获取页面传过来的数据(ID)
            //创建临时数据表格dt1保存基本数据
            DataTable dt1 = myUC_StaffInformationClient.Window_Loaded_SelectstaffGongZuoZheng(staff_id).Tables[0];
            //2、文件夹头像信息
            string strpicture = dt1.Rows[0]["picture"].ToString();//提取图片名字
            #endregion
            #region 2、读取图片
            //获取图片路径
            strload = myUC_StaffInformationClient.UserControl_Loaded_SelectPhoro(strpicture);
            //IO流读取图片
            FileStream filstream = new FileStream(strload, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
            //IO流转换为byte[]
            bytes = new byte[filstream.Length];
            //从流中读取字节块并将该数据写入给定缓冲区中。
            filstream.Read(bytes, 0, bytes.Length);

            //创建临时表临时保存图片
            #region 3、创建临时表格数据
            DataTable dt = new DataTable();//实例化数据表
            DataRow myDataRow = dt.NewRow();//新建行
            dt.Columns.Add("picture", typeof(byte[]));//给数据表创建对象
            //给单元格赋值           
            myDataRow["picture"] = bytes;//把读取的图片添加到数据行里面
            dt.Rows.Add(myDataRow);//给数据表添加行数据(获取图片)
            #endregion
            #endregion
            #endregion
            #region 2、合并数据集
            //实例化数据集
            TTS myTTS = new TTS();
            //把数据集和表格合并(给数据集绑定数据)
            myTTS.Tables["t_staff"].Merge(dt1);
            myTTS.Tables["picture"].Merge(dt);
            #endregion
            #region 3、实例化页面控件添加数据源
            //实例化水晶报表
            CRP_Staff myCRP_Staff = new CRP_Staff();
            //给水晶报表设置数据源
            myCRP_Staff.SetDataSource(myTTS);
            //打开第三方控件(绑定数据)
            CRV_Staff.ViewerCore.ReportSource = myCRP_Staff;
            #endregion
        };

页面结果如图所示:
在这里插入图片描述
以上叙述虽不够详细,但基本思路就是这样了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VS2017中的WPF报表是一种数据可视化工具,可以帮助开发人员在WPF应用程序中创建丰富的报表WPF报表具有许多强大功能,可用于展示和分析数据。 首先,WPF报表提供了丰富的图表和图形选项,开发人员可以根据需要选择合适的图表类型,如柱状图、折线图、饼图等。这些图表可以直观地展示数据的趋势和关系,帮助用户更好地理解数据。 其次,WPF报表支持数据绑定,可以从各种数据源中获取数据并将其展示在报表中。开发人员可以使用LINQ查询语言或直接连接数据库等方式获取数据,然后将其绑定到报表控件上,轻松实现数据的展示和分析。 此外,WPF报表还提供了一系列强大的计算和筛选功能。开发人员可以对数据进行各种计算,例如求和、平均值等,以及对数据进行筛选、排序等操作。这些功能使得数据的分析更加灵活和高效。 最后,WPF报表还支持自定义样式和模板,开发人员可以根据自己的需求进行报表的定制。可以通过改变报表的外观、颜色、字体等来实现自定义样式,并且可以根据具体需要定制数据的呈现方式。 总而言之,VS2017中的WPF报表是一个功能强大且易于使用的工具,可以帮助开发人员在WPF应用程序中创建高度可视化的报表。它提供了丰富的图表和图形选项、数据绑定、计算和筛选功能,以及自定义样式和模板等特性,使得数据的展示和分析更加直观和灵活。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值