WPF中如何实现wpf 分页控件打印! 主要是打印DataGrid控件中的数据,若实现打印数据库中查询出的数据也可以。

免费DataGridView打印及.NET轻松打印控件5.4版(VB打印,C#打印) - 下载频道
- CSDN.NET
&&&&免费DataGridView打印及.NET轻松打印控件5.4版(VB打印,C#打印)
本DataGridView打印控件和.NET打印控件5.4版(含报表模板设计组件)日修改完成,完全免费,在.NET2.0及以上环境下都可以使用(VB打印、C#打印都是可以的),有帮助文档与使用实例。
与上一版本的5.3版相比,新控件5.4版的主要更改如下:
1、对多表头组件MulHeaderDataGridView的功能进行了完善:多表头可以按TreeView节点的字体和颜色进行绘制,提供了2种单元格内容合并的方法(调用函数和设置合并标识),单元格合并更方便,而且在导出Excel时合并的单元格也会按合并显示效果导出;
2、DataGridView导出Excel时单元格的字体、背景颜色、前景颜色都可以按显示效果导出;
3、VB2008Print组件新增了DrawDGVHeaderEx,方便以自定义的方式打印多表头的表格;
4、在VB2008Print组件中新增添加了一个在新的窗口中显示打印预览结果的EndDoc重载函数,以便在WPF中也可以用VB2008Print组件进行打印预览(请参见示例程序);
5、在VB2008Print组件中添加了DrawBiasCell函数,便于绘制具有斜线表头的单元格;
6、添加在DGVPrint组件中,如果指定的方案文件不存在,则自动创建此方案文件的功能;
7、其它一些完善,比如解决了EasyReport组件使用DataTable作为数据源取不到数据的问题,MulHeaderDataGridView组件在未设置TreeView时不能刷新问题和不能合并最后一行和最后一列等问题。
8、新增了部分使用实例(有C#的,也有VB的)。
本控件特色:
1、强大的DataGridView打印功能,不仅可以以多种形式(普通打印、分栏打印、跨页打印、工资条打印)打印DGV表格,基本上能完全按DGV控件本身设置的格式如字体、字号、背景颜色、前景颜色、单元格对齐方式等打印出来,文字图像都可以打印,而且是完全根据表格当前的显示顺序进行打印的,基本上做到了所见即所得的打印。
2、报表设计功能。报表模板设计组件EasyReport与WebEasyReport组件可以设计普通报表、分组报表、套打模板等,分别以DataGridView和GridView为数据源。控件的位置以毫米为计量单位,定位准确,很适合套打单据设计。
3、强大的图表打印功能。5.2版控件新增了一个Chartlet的组件,使用非常方便,可以生成柱形图、饼图、折线图等多种图形,而且可以设置2D或3D效果,既可以在打印控件中打印出来,也可以在Graphics对象中显示。
4、分组汇总打印DataGridVeiw功能,每组还可以自动换新页打印,还可以自动增加行号。
5、强大的文本打印输出功能,控件提供多个文本打印重载函数,打印文本时,如果需要,控件会自动换行和换页打印输出。还增加了以指定行间距及字符间距打印文本的功能,可以用固定行距,也可以用单倍或多倍行距打印文本。
6、强大的绘图功能,基本上.NET的GDI+的绘图函数(如直线、矩形、路径、多边形、曲线等)都有,只有个别函数的名称有点区别。
7、支持同一文档多种版面格式打印(类似于Word中的节的功能):对同一份文档,不同的页面可以设置不同的格式(纸张大小、纸张方向、页边距),只需要在新增一页时在NewPage方法中指定要使用的页面格式即可,使用非常简单。
8、报表文件保存功能。本控件允许将当前打印预览的内容保存为报表文件,以后使用本控件重新打开该报表文件即可重现原来保存报表时的打印内容。
9、Excel导出功能,可以将DataGridView和GridView导出为Excel文件,5.2版控件还增加了不依赖Office的导出Excel功能,而且速度非常快,5.4版还增加了合并单元格的导出功能。
10、打印DataGridView时的打印方案保存与读取功能。可以将当前打印参数保存为打印方案文件,或者从保存的打印方案文件中读取打印参数。
11、水印打印功能。根据需要,可以在页面中打印或不打印以半透明空心文字打印水印。
12、强大的容器控件打印功能(DrawPanel函数)。借助该函数,您只需要在您的容器控件中设计好要打印的内容及打印内容的相对位置,控件轻松帮你打印出来(如果超过一页,控件会自动换页续打)。
13、特殊文字效果打印功能。控件具有打印浮雕文字、阴影文字、空心文字、块文字的功能。
14、页眉页脚中既可打印文字,也可打印图像,或者即打印图像又打印输出文字。
15、图像与图标打印输出功能。
16、网页表格与文本打印功能,WebGVPrintServer与WebPrintServer两个网页控件使得打印网页中的GridView及文本、图片就像窗口中打印一样方便。这两个组件现在可以支持ImageField与CheckBox列。
17、多表头(跨行跨列的复杂表头)打印功能,多表头组件支持多表头显示与打印、单元格内容的合并显示、打印与导出。
18、自定义纸张支持功能。
19、纸张背景图片设置打印功能。
20、.NET4.0支持功能(是单独的一个文件)
21、直接打印窗口与网页中的TreeView控件功能
22、打印窗口中的ListView功能。
23、RichTextBox控件的RTF文本打印功能。
24、斜线表头打印功能(5.4版新增)。
我将持续改进该控件,并将不断推出控件的新版本,要查看或下载控件的升级版本,请登陆网站:http://myyouping.download.csdn.net/ 。具体使用方法请参见帮助文件与实例文件,如有疑问或好的建议,请与我联系:
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行如何让wpf+水晶报表 打印之后让datagrid的数据变色
[问题点数:40分,无满意结帖,结帖人yjjone]
如何让wpf+水晶报表 打印之后让datagrid的数据变色
[问题点数:40分,无满意结帖,结帖人yjjone]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。C#实现Winform控件dataGridView的打印与分页 - 下载频道
- CSDN.NET
&&&&C#实现Winform控件dataGridView的打印与分页
C#实现Winform控件dataGridView的打印与分页
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行WPF 中DataGrid控件绑定数据的一个例子
XAML 代码如下: Grid Grid.ColumnDefinitions ColumnDefinition /ColumnDefinition ColumnDefinitionWidth= 30 /ColumnDefinition /Grid.ColumnDefinitions DataGridGrid.Column= 0 Name= datagrid_personal AutoGenerateColumns= False CanUserAddRows= False CanUserDeleteRows
    XAML 代码如下:
&&&&&&&&&&&&&&&&&&&&&Grid.ColumnDefinitions&
&&&&&&&&&&&&&&&&&&&&&&&&&ColumnDefinition&&/ColumnDefinition&
&&&&&&&&&&&&&&&&&&&&&&&&&ColumnDefinition&Width=&30&&&/ColumnDefinition&
&&&&&&&&&&&&&&&&&&&&&/Grid.ColumnDefinitions&
&&&&&&&&&&&&&&&&&&&&&DataGrid&Grid.Column=&0&&Name=&datagrid_personal&&AutoGenerateColumns=&False&&CanUserAddRows=&False&&CanUserDeleteRows=&False&&CanUserSortColumns=&False&&SelectionMode=&Single&&SelectionUnit=&CellOrRowHeader&&ItemsSource=&{Binding}&&RowHeaderWidth=&10&&CanUserResizeRows=&False&&
&&&&&&&&&&&&&&&&&&&&&&&&&DataGrid.Columns&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DataGridTextColumn&Width=&100&&Header=&列名&&Binding=&{Binding&Path=Name}&&IsReadOnly=&True&&&/DataGridTextColumn&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DataGridTextColumn&Width=&100&&Header=&显示名&&Binding=&{Binding&Path=ShowName}&&&/DataGridTextColumn&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DataGridTextColumn&Width=&100&&Header=&宽度&&Binding=&{Binding&Path=Width,&ValidatesOnExceptions=True}&&&/DataGridTextColumn&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DataGridCheckBoxColumn&Width=&50&&Header=&隐藏&&Binding=&{Binding&Path=Hide}&&&/DataGridCheckBoxColumn&
&&&&&&&&&&&&&&&&&&&&&&&&&/DataGrid.Columns&
&&&&&&&&&&&&&&&&&&&&&/DataGrid&
&&&&&&&&&&&&&&&&&&&&&Border&Grid.Column=&1&&
&&&&&&&&&&&&&&&&&&&&&&&&&Grid&HorizontalAlignment=&Center&&Width=&100&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Grid.RowDefinitions&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&RowDefinition&Height=&80&&&/RowDefinition&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&RowDefinition&&/RowDefinition&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Grid.RowDefinitions&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Button&Grid.Row=&0&&Name=&btn_up&&HorizontalAlignment=&Center&&VerticalAlignment=&Center&&Background=&Transparent&&Width=&20&&Height=&30&&Click=&btn_up_Click&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Canvas&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Line&X1=&0&&Y1=&-5&&X2=&-5&&Y2=&5&&Stroke=&DodgerBlue&&StrokeThickness=&3&&&/Line&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Line&X1=&0&&Y1=&-5&&X2=&5&&Y2=&5&&Stroke=&DodgerBlue&&StrokeThickness=&3&&&/Line&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Canvas&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Button&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Button&Grid.Row=&1&&Name=&btn_down&&HorizontalAlignment=&Center&&VerticalAlignment=&Center&&Background=&Transparent&&Width=&20&&Height=&30&&Click=&btn_down_Click&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Canvas&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Line&X1=&-5&&Y1=&-5&&X2=&0&&Y2=&5&&Stroke=&DodgerBlue&&StrokeThickness=&3&&&/Line&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Line&X1=&0&&Y1=&5&&X2=&5&&Y2=&-5&&Stroke=&DodgerBlue&&StrokeThickness=&3&&&/Line&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Canvas&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Button&
&&&&&&&&&&&&&&&&&&&&&&&&&/Grid&
&&&&&&&&&&&&&&&&&&&&&/Border&
&&&&&&&&&&&&&&&&&/Grid&
  后台逻辑:
  后台首先创建数据源,注意数据源是ObservableCollection类型的集合对象,该类型实现了INortifyCollectionChanged事件,会通知DataGrid刷新。
&ObservableCollection&ColumnSetting&&column_settings&=&new&ObservableCollection&ColumnSetting&();
&&&&&&&&&&&&string&ls_infoFile&=&Environment.CurrentDirectory&+&&\\&&+&App.GS_ConfigFileN
&&&&&&&&&&&&XmlDocument&l_xmlDocument&=&new&XmlDocument();
&&&&&&&&&&&&l_xmlDocument.Load(ls_infoFile);
&&&&&&&&&&&&XmlNode&node&=&l_xmlDocument.SelectSingleNode(&Configs/RecordConfig&);
&&&&&&&&&&&&XmlNodeList&members&=&node.ChildN
&&&&&&&&&&&&foreach&(XmlNode&member&in&members)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&ColumnSetting&column_setting&=&new&ColumnSetting();
&&&&&&&&&&&&&&&&column_setting.Name&=&member.ChildNodes[0].InnerT
&&&&&&&&&&&&&&&&column_setting.ShowName&=&member.ChildNodes[1].InnerT
&&&&&&&&&&&&&&&&if&(member.ChildNodes[2].InnerText&==&&0&)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&column_setting.Hide&=&false;
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&column_setting.Hide&=&true;
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&column_setting.Width&=&Convert.ToInt32(member.ChildNodes[3].InnerText);
&&&&&&&&&&&&&&&&column_settings.Add(column_setting);
&&&&&&&&&&&&}
  之后将column_settings赋给DataGrid的ItemsSource即可。
datagrid_personal.ItemsSource&=column_
  调整行顺序:
private&void&btn_up_Click(object&sender,&RoutedEventArgs&e)
&&&&&&&&&&&&Codes.ColumnSetting&column_setting&=&datagrid_personal.SelectedItem&as&Codes.ColumnS
&&&&&&&&&&&&if&(column_setting&!=&null)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&int&index&=&L_ColumnSettings.IndexOf(column_setting);
&&&&&&&&&&&&&&&&if&(index&&&0)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&Codes.ColumnSetting&temp&=&L_ColumnSettings[index&-&1];
&&&&&&&&&&&&&&&&&&&&L_ColumnSettings[index&-&1]&=&L_ColumnSettings[index];
&&&&&&&&&&&&&&&&&&&&L_ColumnSettings[index]&=&
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&datagrid_personal.Items.Refresh();
&&&&&&&&&&&&&&&&datagrid_personal.SelectedItem&=&column_
&&&&&&&&&&&&}
&&&&&&&&private&void&btn_down_Click(object&sender,&RoutedEventArgs&e)
&&&&&&&&&&&&Codes.ColumnSetting&column_setting&=&datagrid_personal.SelectedItem&as&Codes.ColumnS
&&&&&&&&&&&&if&(column_setting&!=&null)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&int&index&=&L_ColumnSettings.IndexOf(column_setting);
&&&&&&&&&&&&&&&&if&(index&&&L_ColumnSettings.Count&-&1)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&Codes.ColumnSetting&temp&=&L_ColumnSettings[index];
&&&&&&&&&&&&&&&&&&&&L_ColumnSettings[index]&=&L_ColumnSettings[index&+&1];
&&&&&&&&&&&&&&&&&&&&L_ColumnSettings[index&+&1]&=&
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&datagrid_personal.Items.Refresh();
&&&&&&&&&&&&&&&&datagrid_personal.SelectedItem&=&column_
&&&&&&&&&&&&}
  最后保存到XML文件:
&&string&ls_infoFile&=&Environment.CurrentDirectory&+&&\\&&+&App.GS_ConfigFileN
&&&&&&&&&&&&XmlDocument&l_xmlDocument&=&new&XmlDocument();
&&&&&&&&&&&&l_xmlDocument.Load(ls_infoFile);
&&&&&&&&&&&&XmlNode&node&=&l_xmlDocument.SelectSingleNode(&Configs/RecordConfig&);
&&&&&&&&&&&&node.RemoveAll();
&&&&&&&&&&&&foreach&(ColumnSetting&column_setting&in&column_settings)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&XmlElement&member&=&l_xmlDocument.CreateElement(&Member&);
&&&&&&&&&&&&&&&&XmlElement&
&&&&&&&&&&&&&&&&item&=&l_xmlDocument.CreateElement(&Name&);
&&&&&&&&&&&&&&&&item.InnerText&=&column_setting.N
&&&&&&&&&&&&&&&&member.AppendChild(item);
&&&&&&&&&&&&&&&&item&=&l_xmlDocument.CreateElement(&ShowName&);
&&&&&&&&&&&&&&&&item.InnerText&=&column_setting.ShowN
&&&&&&&&&&&&&&&&member.AppendChild(item);
&&&&&&&&&&&&&&&&item&=&l_xmlDocument.CreateElement(&Hide&);
&&&&&&&&&&&&&&&&if&(column_setting.Hide)
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&item.InnerText&=&&1&;
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&item.InnerText&=&&0&;
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&member.AppendChild(item);
&&&&&&&&&&&&&&&&item&=&l_xmlDocument.CreateElement(&Width&);
&&&&&&&&&&&&&&&&item.InnerText&=&column_setting.Width.ToString();
&&&&&&&&&&&&&&&&member.AppendChild(item);
&&&&&&&&&&&&&&&&node.AppendChild(member);
&&&&&&&&&&&&}
&&&&&&&&&&&&l_xmlDocument.Save(ls_infoFile);
  本文来自jian200801的博客,原文地址:http://blog.csdn.net/jian200801/article/details/7503521
------分隔线----------------------------
Tab Control in WPF The Tab control is a common UI element that has been around f...Access俱乐部
Access入门经典视频《运用Access实现降本增效》(免费)[] | 免费《Access五节必修课》[]
?&&&&?&&&&?&&&&?&&&&
您的位置:  > >
【WPF小品】Silverlight中与数据库交互入门教程 -- 第三课
来源:原创&&点击数:1132&&评论数:0 &|&&|&
时 间: 10:12:42
作 者:&&&QQ:&&
摘 要:【WPF小品】Silverlight中与数据库交互入门教程&--&第三课
第三课 设计数据库交互处理逻辑
  本课描述如此编写增删改代码,实现与数据库的交互。
示例文件:
21、转到MainPage.xaml中,在DataGrid控件的右侧设计数据编辑区域的若干控件;
22、将右侧的TextBox控件的Text属性和DatePicker控件的SelectedDate属性逐一绑定到DataGrid控件的SelectedItem的相关路径上。其中班级ID文本框控件的Text属性绑定到cob班级ID的SelectedValue路径上;
23、保存并生成解决方案,然后按F5测试,测试效果为选中DataGrid的记录后,右侧编辑区域将数据呈现出来。
24、转到MainPage.xaml.vb中,编写增删改的处理逻辑,代码如下:
&&& Private Sub OnSubmitCompleted(ByVal so As SubmitOperation)
&&&&&&& '增删改时,通过SubmitChanges方法绑定该事件,以完成提交返回后的操作。
&&&&&&& SetDataGrid()
&&& End Sub
&&& Private Sub btn新增_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btn新增.Click
&&&&&&& If String.IsNullOrEmpty(txt班级ID.Text) Then Exit Sub
&&&&&&& Dim student As New 学生表
&&&&&&& student.姓名 = txt姓名.Text
&&&&&&& student.性别 = txt性别.Text
&&&&&&& If date生日.SelectedDate Is Nothing = False Then
&&&&&&&&&&& student.生日 = date生日.SelectedDate
&&&&&&& End If
&&&&&&& student.班级ID = CInt(txt班级ID.Text)
&&&&&&& myD.学生表s.Add(student)
&&&&&&& myD.SubmitChanges(AddressOf OnSubmitCompleted, Nothing) '提交数据并绑定OnSubmitCompleted事件
&&& End Sub
&&& Private Sub btn修改_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btn修改.Click
&&&&&&& If String.IsNullOrEmpty(txt学生ID.Text) Then Exit Sub
&&&&&&& Dim student As New 学生表
&&&&&&& student = myD.学生表s.Single(Function(x) x.学生ID = CInt(txt学生ID.Text))
&&&&&&& student.姓名 = txt姓名.Text
&&&&&&& student.性别 = txt性别.Text
&&&&&&& If date生日.SelectedDate Is Nothing = False Then
&&&&&&&&&&& student.生日 = date生日.SelectedDate
&&&&&&& End If
&&&&&&& myD.SubmitChanges(AddressOf OnSubmitCompleted, Nothing) '提交数据并绑定OnSubmitCompleted事件
&&& End Sub
&&& Private Sub btn删除_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btn删除.Click
&&&&&&& If String.IsNullOrEmpty(txt学生ID.Text) Then Exit Sub
&&&&&&& Dim student As New 学生表
&&&&&&& student = myD.学生表s.Single(Function(x) x.学生ID = CInt(txt学生ID.Text))
&&&&&&& myD.学生表s.Remove(student)
&&&&&&& myD.SubmitChanges(AddressOf OnSubmitCompleted, Nothing) '提交数据并绑定OnSubmitCompleted事件
&&& End Sub
&&& Private Sub DataGrid1_GotFocus(sender As Object, e As System.Windows.RoutedEventArgs) Handles DataGrid1.GotFocus
&&&&&&& ResetDatePickerBinding()
&&& End Sub
&&& Private Sub ResetDatePickerBinding()
&&&&&&& 'DatePicker控件在选择日期后,原在xaml中设置的绑定失效,需重新设置
&&&&&&& Dim b As Binding = New Binding("SelectedItem.生日")
&&&&&&& b.ElementName = "DataGrid1"
&&&&&&& b.Mode = BindingMode.OneWay
&&&&&&& date生日.SetBinding(DatePicker.SelectedDateProperty, b)
&&& End Sub
25、保存、生成、测试运行。
Access软件网官方交流QQ群 (群号:)
      
&&&&【&&】&&&&【&&】
Access网店
价格:¥50 元
价格:¥50 元
价格:¥50 元
(12-11&21:48)
(12-11&20:52)
(12-11&15:00)
(12-11&14:31)
(12-11&02:10)
(12-10&16:20)
(12-10&15:33)
(12-10&14:00)
(12-10&13:59)
(12-10&10:28)
Access软件网 版权所有 CopyRight
提供支持 本站特聘法律顾问: 李慧 律师

我要回帖

更多关于 wpf 分页控件 的文章

 

随机推荐