水晶报表(CrystalReport)自定义纸张格式(custom Papersize)的实现
2006-01-19 15:09
756 查看
发布日期: 19/1/2006
作者:水如烟 http://lzmtw.cnblogs.com
摘要:本文提供一种方法实现水晶报表自定义纸张格式进行预览和打印。
关键词:水晶报表 自定义纸张格式 打印
注意:本文及其中的代码示例均基于 Microsoft Visual Studio 2005版本。
发现真要动手写成文时,需要做的事还真不少。关键的是手头活紧,不能系统的写。看来还是先贴出关键代码吧,然后看时间来重组。
我现在做出来的对话框如图:
Option Strict Off
Public Shared Function DrawingPapersizeToCryPapersize()Function DrawingPapersizeToCryPapersize(ByVal PrinterName As String, ByVal Papersize As Drawing.Printing.PaperSize) As Integer
Public Shared Function Papersizes()Function Papersizes(ByVal PrinterName As String) As Drawing.Printing.PaperSize()
Public Shared Sub DocumentPrintOptionsToCryPrintOptions()Sub DocumentPrintOptionsToCryPrintOptions(ByVal printOptions As PrintOptions, ByVal cryPrintOptions As CrystalDecisions.CrystalReports.Engine.PrintOptions)
Try
With cryPrintOptions
.PrinterName = printOptions.PrinterName
If printOptions.Papersize.IsLandscape Then
.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape
Else
.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait
End If
.PaperSize = DocumentPapersizeToCryPapersize(printOptions.Papersize) '注意这里,它是Drawing.Printing.Papersize的RawKind值.必须Option Strict Off
.ApplyPageMargins(DocumentMarginsToCryMargins(printOptions.Margins))
End With
Catch ex As Exception
End Try
End Sub
时间关系,暂贴代码至此,以后再补充,包括对话框里的所有功能。
效果图一
效果图二
呵,上头的横纵向颠倒了。
写文章的时间没有了,过两天我将这部分的项目打包供各位下载试用改进.
写得还是比较粗陋,一个人写赶进度的味道很是不好受,BUG肯定多多.希望有心人改进后将结果返馈出来,供我参考,也供各位参考.
其中的一些细节问题没办法深研.比如纸张的增加修改.我略看了Drawing.Printing.PrinterSettings
按道理应该通过它可以实现纸张增删功能的,可是我现在不会.所以,只能是参考别的仁兄的办法,用API.
谢谢各位.
注:对话框中的Margins是临时设定的边距参数,并非是打印服务器中相应纸张格式的Margins.
CSDN相应贴子:
http://community.csdn.net/Expert/topic/4530/4530505.xml?temp=.9733698
http://community.csdn.net/Expert/topic/4520/4520403.xml?temp=.9242823
因为这个问题目前为止我没看到类似的解决方案,虽惭愧,我也发到首页来了.
代码下载(粗粗的)
频频更新界面,很是不好.时间哪,没法了.
纸张格式增删方面的代码,请参考
博客园 - 虫子的一天
http://wormday.cnblogs.com/archive/2005/12/22/302635.html
1月23日代码更新
1月24日10时更新
1月24日13时
作者:水如烟 http://lzmtw.cnblogs.com
摘要:本文提供一种方法实现水晶报表自定义纸张格式进行预览和打印。
关键词:水晶报表 自定义纸张格式 打印
注意:本文及其中的代码示例均基于 Microsoft Visual Studio 2005版本。
发现真要动手写成文时,需要做的事还真不少。关键的是手头活紧,不能系统的写。看来还是先贴出关键代码吧,然后看时间来重组。
我现在做出来的对话框如图:
Option Strict Off
Public Shared Function DrawingPapersizeToCryPapersize()Function DrawingPapersizeToCryPapersize(ByVal PrinterName As String, ByVal Papersize As Drawing.Printing.PaperSize) As Integer
Public Shared Function Papersizes()Function Papersizes(ByVal PrinterName As String) As Drawing.Printing.PaperSize()
Public Shared Sub DocumentPrintOptionsToCryPrintOptions()Sub DocumentPrintOptionsToCryPrintOptions(ByVal printOptions As PrintOptions, ByVal cryPrintOptions As CrystalDecisions.CrystalReports.Engine.PrintOptions)
Try
With cryPrintOptions
.PrinterName = printOptions.PrinterName
If printOptions.Papersize.IsLandscape Then
.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape
Else
.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait
End If
.PaperSize = DocumentPapersizeToCryPapersize(printOptions.Papersize) '注意这里,它是Drawing.Printing.Papersize的RawKind值.必须Option Strict Off
.ApplyPageMargins(DocumentMarginsToCryMargins(printOptions.Margins))
End With
Catch ex As Exception
End Try
End Sub
时间关系,暂贴代码至此,以后再补充,包括对话框里的所有功能。
效果图一
效果图二
呵,上头的横纵向颠倒了。
写文章的时间没有了,过两天我将这部分的项目打包供各位下载试用改进.
写得还是比较粗陋,一个人写赶进度的味道很是不好受,BUG肯定多多.希望有心人改进后将结果返馈出来,供我参考,也供各位参考.
其中的一些细节问题没办法深研.比如纸张的增加修改.我略看了Drawing.Printing.PrinterSettings
按道理应该通过它可以实现纸张增删功能的,可是我现在不会.所以,只能是参考别的仁兄的办法,用API.
谢谢各位.
注:对话框中的Margins是临时设定的边距参数,并非是打印服务器中相应纸张格式的Margins.
CSDN相应贴子:
http://community.csdn.net/Expert/topic/4530/4530505.xml?temp=.9733698
http://community.csdn.net/Expert/topic/4520/4520403.xml?temp=.9242823
因为这个问题目前为止我没看到类似的解决方案,虽惭愧,我也发到首页来了.
代码下载(粗粗的)
频频更新界面,很是不好.时间哪,没法了.
纸张格式增删方面的代码,请参考
博客园 - 虫子的一天
http://wormday.cnblogs.com/archive/2005/12/22/302635.html
1月23日代码更新
1月24日10时更新
1月24日13时
相关文章推荐
- 水晶报表(CrystalReport)自定义纸张格式(custom Papersize)的实现
- 水晶报表自定义纸张大小打印 (Crystal Report Print with custom paper size)
- 水晶报表自定义纸张大小打印 (Crystal Report Print with custom paper size)
- 水晶报表自定义纸张大小打印 (Crystal Report Print with custom paper size)
- 水晶报表(CrystalReport)自定义纸张格式(custom Papersize)的实现
- 水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
- VS2008 + ReportViewer + CrystalReports + PrintControl.cab 实现水晶报表本地打印
- 折腾 VS2008 + ReportViewer + CrystalReports + PrintControl.cab 实现水晶报表本地打印【转】
- 折腾 VS2008 + ReportViewer + CrystalReports + PrintControl.cab 实现水晶报表本地打印
- 水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
- Crystal Report 水晶报表如何实现类似表格单元格合并的功能
- 折腾 VS2008 + ReportViewer + CrystalReports + PrintControl.cab 实现水晶报表本地打印
- 水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
- 折腾 VS2008 + ReportViewer + CrystalReports + PrintControl.cab 实现水晶报表本地打印
- 折腾 VS2008 + ReportViewer + CrystalReports + PrintControl.cab 实现水晶报表本地打印
- 水晶报表 关于错误未能加载文件或程序集“CrystalDecisions.ReportAppServer.ClientDoc”或它的某一个依赖项。试图加载格式不正确的程序
- 折腾 VS2008 + ReportViewer + CrystalReports + PrintControl.cab 实现水晶报表本地打印
- 水晶报表中如何创建自定义的纸张大小格式?
- c#下crystalreport自定义纸张报表打印
- 折腾 VS2008 + ReportViewer + CrystalReports + PrintControl.cab 实现水晶报表本地打印