现在几乎所有数据库表格控件(除了VB自身的DBGrid)都带有打印和预览功能,象True DBGrid Pro(http://www.componentone.com/)、Farpoint Spread(http://www.fpoint.com/)、Janus Grid和国产的Cell(http://www.trustsoft.com)。其中除了Janus Grid,其它几种控件在国内都可以买到。如果你平时使用DBGrid比较多,可以考虑True DBGrid Pro。Cell在中文方面当然更出色。在单机上,几个产品效果、价钱都差不多。但如果你想在多台机器上安装软件就有问题了。因为Cell是每台运行的机器都要购买一套,而其它的产品一般只需要在开发的机器上购买一套,运行的机器无需购买。
另外,可以参考QA000050 "能否利用Crystal Reports打印Data控件的Recordset对象的虚拟表"。
http://www.china-askpro.com/msg13/qa10.shtml
打印问题
Crystaleport 用法很简单:在要显示ActiveReports窗体前,加入:
Creport ActiveReport1 'ActiveReport1是AR的窗体。
Public Sub Creport(AReport As ActiveReport)
'汉化ActiveReport
'以下适用2.0
With AReport
.ToolBar.Tools.Item(0).Tooltip = "各页目录"
.ToolBar.Tools.Item(2).Caption = "打印..."
.ToolBar.Tools.Item(2).Tooltip = "打印报表"
.ToolBar.Tools.Item(4).Tooltip = "拷贝"
.ToolBar.Tools.Item(6).Tooltip = "查找"
.ToolBar.Tools.Item(8).Tooltip = "单页显示"
.ToolBar.Tools.Item(9).Tooltip = "多页显示"
.ToolBar.Tools.Item(11).Tooltip = "缩小"
.ToolBar.Tools.Item(12).Tooltip = "放大"
.ToolBar.Tools.Item(15).Tooltip = "上一页"
.ToolBar.Tools.Item(16).Tooltip = "下一页"
.ToolBar.Tools.Item(19).Tooltip = "后退"
.ToolBar.Tools.Item(19).Caption = "后退"
.ToolBar.Tools.Item(20).Tooltip = "前进"
.ToolBar.Tools.Item(20).Caption = "前进"
End With
End Sub
s/n: 70001 5367907:
http://www.chinaaspx.com/club/topic_3_12999.htm
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not IsPostBack Then
Fill_DrpWc()
Fill_DrpGrp()
Fill_DbGrid()
End If
'reportDocument1.Load("C:\\Inetpub\\wwwroot\\Websfc\\CrystalReport1.rpt")
'CrystalReportViewer1.ReportSource = reportDocument1
CrystalReportViewer1.DataBind()
End Sub
单击打印!
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
reportDocument1.PrintOptions.PaperSize = CrystalDecisions.[Shared].PaperSize.PaperA3
reportDocument1.PrintOptions.PrinterName = "HP LaserJet 6L"
reportDocument1.PrintToPrinter(1, False, 0, 0)
End Sub
但有个问题哦,无论你在那台机器上打印输出的都是server机器上的打印机!
// This function enables and disables the Crystal Reports Win Form Viewer
private void EnableViewer(bool show)
{
SeagateSoftware.WinForms.ToolbarStateChangeEvent evt = new SeagateSoftware.WinForms.ToolbarStateChangeEvent(show);
crystalReportViewer1.Toolbar.OnStateChange(this, evt);
}