【机房合作】WPF报表

2017-09-13 20:34:22来源:CSDN作者:j15533415886人点击

分享

一、建立数据集:

1.新建项——数据集——修改名称
这里写图片描述

2.添加数据集——TableAdapter
这里写图片描述

3.选择数据连接——新建连接
这里写图片描述

4.服务器名——登录到服务器(使用 SQL Server身份验证)——输入用户名、密码——连接数据库——测试连接
这里写图片描述

5.显示测试连接成功——确定
这里写图片描述

6.下一步
这里写图片描述

7.下一步
这里写图片描述

8.输入SQL语句:Select * from T_Check where Time between @StartTime and @EndTime
这里写图片描述

9.执行查询
这里写图片描述

10.更具自己数据库的现有数据输入2个时间值
这里写图片描述

11.查出来了,证明有记录——确定
这里写图片描述

12.下一步
这里写图片描述

13.下一步
这里写图片描述

14.完成
这里写图片描述

二、添加报表:

15.新建项——报表——输入名称
这里写图片描述

16.右击——插入——表
这里写图片描述

17.新建数据源
这里写图片描述

18.选择数据源类型——对象
这里写图片描述

19.选择数据对象——绑定对象
这里写图片描述

20.选择数据集相应属性——确定
这里写图片描述

21.绑定完之后的界面
这里写图片描述

三、建立报表代码篇:

22.在UI层需要添加2个引用 Microsoft.ReportViewer.WinForms和WindowsFormsIntegration
这里写图片描述

1.新建一个WPF窗体为 MaskLayer
MaskLayer.xaml

<UserControl x:Class="JfCooperate.管理员.Report.MaskLayer"             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"              xmlns:d="http://schemas.microsoft.com/expression/blend/2008"              xmlns:local="clr-namespace:JfCooperate"             mc:Ignorable="d"              d:DesignHeight="300" d:DesignWidth="300" Opacity="0.85" Background="#fbfcfc">    <Grid>        <TextBlock Text="正在生成报表..." VerticalAlignment="Center" HorizontalAlignment="Center"/>    </Grid></UserControl>

MaskLayer.xaml

namespace JfCooperate.管理员.Report{    /// <summary>    /// MaskLayer.xaml 的交互逻辑    /// </summary>    public partial class MaskLayer : UserControl    {        public MaskLayer()        {            InitializeComponent();        }    }}

2.新建一个WPF窗体为ReportCtrl

ReportCtrl.xaml

<UserControl x:Class="JfCooperate.管理员.Report.ReportCtrl"             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"              xmlns:d="http://schemas.microsoft.com/expression/blend/2008"              xmlns:rv="clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms"              xmlns:local="clr-namespace:JfCooperate.管理员.Report"             mc:Ignorable="d"              d:DesignHeight="300" d:DesignWidth="300">    <Grid>        <WindowsFormsHost>            <rv:ReportViewer x:Name="ReportViewer"/>        </WindowsFormsHost>        <local:MaskLayer x:Name="maskLayer" Visibility="Collapsed"/>    </Grid></UserControl>

ReportCtrl.xaml.cs

namespace JfCooperate.管理员.Report{    /// <summary>    /// ReportCtrl.xaml 的交互逻辑    /// </summary>    public partial class ReportCtrl : UserControl    {        public ReportCtrl()        {            InitializeComponent();            this.Loaded += ReportCtrl_Loaded;            this.ReportViewer.RenderingComplete += ReportViewer_RenderingComplete;        }        private void ReportCtrl_Loaded(object sender, RoutedEventArgs e)        {            maskLayer.Visibility = Visibility.Visible;            CheckEntity checkentity = new CheckEntity();            CheckFacade checkfacade = new CheckFacade();            List<CheckEntity> list = checkfacade.queryCheck(checkentity);//接收D层返回值            if (list.Count != 0)            {                ReportDataSource reportDataSource = new ReportDataSource();                //定义数据集名称                reportDataSource.Name = "DataSet1";                reportDataSource.Value = list;                //说明reportViews承载的表名                ReportViewer.LocalReport.ReportPath = Directory.GetCurrentDirectory() + "//Report.rdlc";                //添加报表数据源                ReportViewer.LocalReport.DataSources.Add(reportDataSource);                ReportViewer.RefreshReport();            }        }        private void ReportViewer_RenderingComplete(object sender, Microsoft.Reporting.WinForms.RenderingCompleteEventArgs e)        {            maskLayer.Visibility = Visibility.Collapsed;        }    }}

3.新建一个WPF窗体为:ReportWindow,来承载报表

ReportWindow.xaml

<Window x:Class="JfCooperate.管理员.Report.ReportWindow"        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:local="clr-namespace:JfCooperate.管理员.Report"        mc:Ignorable="d" WindowStartupLocation="CenterScreen"        Title="报表" Height="279" Width="653.541">    <Grid>        <local:ReportCtrl/>    </Grid></Window>

ReportWindow.xaml.cs

namespace JfCooperate.管理员.Report{    /// <summary>    /// ReportWindow.xaml 的交互逻辑  Interaction logic for ReportWindow.xaml    /// </summary>    ///     public partial class ReportWindow : Window    {        public ReportWindow()        {            InitializeComponent();        }    }

四、完美显示:

23.
这里写图片描述

总结:

重复就是力量,带着问题去思考!!!

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台