水晶报表-自定义纸张大小

chenzfa 2009-02-12 01:41:32
我在vb.net 做了一个报表,(21.59cmX13.97cm,是一半的letter纸大小),我在打印机-服务器属性-添加了该纸的大小,在报表中预览是21.59cmX13.97cm,打印出来也是21.59cmX13.97cm(一半),但打出来纸的大小是letter大小,就是每打一页都空一页,我在节专家-在后面页新建页打勾,问题还是一样,请问如何解决,谢谢!!!!
...全文
282 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nevsong 2009-02-16
  • 打赏
  • 举报
回复
我都不熟,帮你顶
chenzfa 2009-02-15
  • 打赏
  • 举报
回复
UP
求求各位高手帮帮忙!!!
chenzfa 2009-02-14
  • 打赏
  • 举报
回复
在网上找了一下相同症状的也有:
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20080911131630JX3
但没有网友说出解决方法
chenzfa 2009-02-14
  • 打赏
  • 举报
回复
请各位高手多多帮忙
以下是程序界面:

以下是预览:

以下是实际打印出来的:
chenzfa 2009-02-12
  • 打赏
  • 举报
回复
我用的是针式打印机,纸是Letter一半(21.59cmX13.97cm),预览时是正确,但打到打印机就跳页.(变了Letter页),打印机首选择的纸张设置(21.59cmX13.97cm)是正确的,以下是我打印时的代码:

Dim FormNo_To_TxT As String = ""
If TextBox2.Text.Trim = "" Then
FormNo_To_TxT = "zzzzzzzzzzzzzzzzzzzzzzzzzzzz"
Else
FormNo_To_TxT = TextBox2.Text
End If

Dim NbrNo_To_TxT As String = ""
If TextBox3.Text.Trim = "" Then
NbrNo_To_TxT = "zzzzzzzzzzzzzzzzzzzzzzzzzzzz"
Else
NbrNo_To_TxT = TextBox3.Text
End If

With MDI_Main
.ToolStripProgressBar1.Visible = True
.ToolStripProgressBar1.Maximum = 5
.ToolStripProgressBar1.Value = 1
.ToolStripStatusLabel3.Text = "正在装入数据,请稍候..."
.StatusStrip.Refresh()

Select Case ComboBox2.SelectedIndex
Case 0
PrintRpt = New CReport_ShipMent_SumQty1
Case 1
PrintRpt = New CReport_ShipMent_SumQty2
Case 2
PrintRpt = New CReport_ShipMent_SumQty3
End Select

PrintRpt.PrintOptions.PrinterName = ComboBox3.Text

Dim Doc As New System.Drawing.Printing.PrintDocument
Doc.PrinterSettings.PrinterName = ComboBox3.Text
Dim rawkind As Integer = 1
Dim Inti As Integer
Dim FindPagerSizes As Boolean = False
For Inti = 0 To Doc.PrinterSettings.PaperSizes.Count - 1
If Doc.PrinterSettings.PaperSizes(Inti).PaperName = "发货单" Then
rawkind = Doc.PrinterSettings.PaperSizes(Inti).RawKind
FindPagerSizes = True
Exit For
End If
Next

If FindPagerSizes = True Then
PrintRpt.PrintOptions.PaperSize = rawkind
Else
' MessageBox.Show("打印机没有找到预定的纸张大小,表格名:发货单=宽 21.59CM X 高 13.97CM " & vbCrLf & "请在Windows控制面板-打印机和传真-文件(F)-服务器属性(T)中添加以上表格名内容。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

PrintRpt.SetDataSource(RunProcedure("Rp_ShipMentForm", "@NbrNo_From," & TextBox1.Text & "|@NbrNo_To," & FormNo_To_TxT & "|@FormNo_From," & TextBox4.Text & "|@FormNo_To," & NbrNo_To_TxT & "|@EffDate_From," & DateTimePicker1.Text & "|@EffDate_To," & DateTimePicker2.Text, ""))
.ToolStripProgressBar1.Value = 2

If ComboBox1.SelectedIndex = 1 Then
PrintRpt.ReportDefinition.ReportObjects.Item("trHistUnitPrice1").ObjectFormat.EnableSuppress = True
PrintRpt.ReportDefinition.ReportObjects.Item("ShipCostTotal1").ObjectFormat.EnableSuppress = True
PrintRpt.ReportDefinition.ReportObjects.Item("ShipCostTotal的合计1").ObjectFormat.EnableSuppress = True
PrintRpt.ReportDefinition.ReportObjects.Item("CostTotalShipMent1").ObjectFormat.EnableSuppress = True
End If

If ComboBox4.SelectedIndex = 0 Then
Dim CReportShipMent_SumQty As New Frm_Print
With CReportShipMent_SumQty
.MdiParent = MDI_Main
.CrystalReportViewer1.ReportSource = PrintRpt
.CrystalReportViewer1.DisplayGroupTree = True
.Text = "打印 - 发货单"
.Show()
End With
Else
MDI_Main.ToolStripProgressBar1.Value = 4
MDI_Main.ToolStripStatusLabel3.Text = "正在打印中,请稍候..."
PrintRpt.PrintToPrinter(1, True, 1, 9999)
MDI_Main.ToolStripProgressBar1.Value = 5
MDI_Main.ToolStripStatusLabel3.Text = "就绪:"
MDI_Main.ToolStripProgressBar1.Visible = False
MessageBox.Show(" 打印完成。 ", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

End With

End Sub
阿泰 2009-02-12
  • 打赏
  • 举报
回复
你用的是针式打印机吗?
一般常见的激光或喷墨打印机是控制不住走纸的,它要走就走完一张。
chenzfa 2009-02-12
  • 打赏
  • 举报
回复
请各位大哥大姐多多帮忙,谢谢!

6,108

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧