数据库报表
在VB6.0中,DataReport怎么设置页面? 问题点数:10、回复次数:21Top
1 楼playyuer(退休干部 卧鼠藏虫)回复于 2000-12-14 13:25:00 得分 0
http://microinfo.top263.netTop
2 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-14 14:21:00 得分 0
有人知吗Top
3 楼wwwfff()回复于 2000-12-14 15:20:00 得分 0
什么怎么设置,详细点Top
4 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-14 19:39:00 得分 0
做一个A4横向报表试一试?Top
5 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-14 20:08:00 得分 0
没人知道?Top
6 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-15 13:36:00 得分 0
7 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-15 14:18:00 得分 0
8 楼misterzhao(大鹏展翅)回复于 2000-12-15 18:05:00 得分 7
VB的报表不能设置页面
你只能设置页边距
要在系统里设好纸型,如在系统里设好A3,就可以做A3大的报表了
如想不用手工,就要在
datareport.show 时调用系统的API函数
改变纸型,在打印后在改回来!
可以加分了吧!!!!!
Top
9 楼pppk()回复于 2000-12-15 19:55:00 得分 0
请安装vb6 sp4,然后datareport有一个属性可以设横向。Top
10 楼amstar(阿门)回复于 2000-12-16 11:58:00 得分 0
"请安装vb6 sp4,然后datareport有一个属性可以设横向 "
我试过没有用
Top
11 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-16 13:41:00 得分 0
12 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-17 15:12:00 得分 0
13 楼playyuer(退休干部 卧鼠藏虫)回复于 2000-12-17 15:33:00 得分 3
欢迎访问 http://simideal.top263.net
or http://microinfo.top263.net
提供: Data Report 使用技巧
只 需 在 Windows9x的 开 始 目 录 中 选 择 设 置 打 印 机 , 然 后 选 中 你 使 用 的 打 印 机 , 修 改 其 属 性 中 纸 张 大 小 及 打 印 方 向 即 可 解 决 问 题 。
程序解决横向打印:
方 法 1: 装VB6SP4,DataReport新添了Orientation属性
参 考 :微 软 的 Knowledge Base的 文 章:“Q197915 PRB Report Width is Larger than the Paper Width”
Q253555 - FIX Error Message Report Width Is Larger Than the Paper Width on Exporting Data Report.htm
方 法 2:
用 一 个 CommonDialog:
Private Sub Command1_Click()
CommonDialog1.Flags = cdlPDPrintSetup
CommonDialog1.CancelError = True
On Error GoTo ErrorHandle:
CommonDialog1.ShowPrinter '必 须 Show出 来 且 "确 定 "才 能 修 改 纸 方 向
'Me.Refresh
'Command1.Refresh
On Error GoTo 0
DataReport1.Show vbModal
ErrorHandle:
End Sub
下 载 例 程 rptdemo.zip。
方 法 3: 引 用 PageSet.Dll(参 考 :微 软 的 Knowledge Base的 文 章:“Q198901 Sample PageSet_exe Programmatically Changes Default Printer Orientation” 并 下 载 PageSet.exe,或 orientation.zip。
但 有 时 报 出 "报 表 宽 度 大 于 纸 的 宽 度 "的 错 误 。 (参 考 :微 软 的 Knowledge Base的 文 章:“Q197915 PRB Report Width is Larger than the Paper Width” (我 认 为 没 什 么 用 ,不 知 所 云 ))
该 方 法 并 未 真 正 将 Printer改 方 向 (即 :Printer.Width与 Printer.Height并 未 交 换 ),因 此 我 建 议 :
Private Sub DataReport_Initialize()
Const ErrX = 0 '误 差 经 验 值
Dim adoRecordset As New ADODB.Recordset
adoRecordset.Fields.Append "Fld1", adVariant, , adFldIsNullable + adFldMayBeNull
adoRecordset.Open
Set Me.DataSource = adoRecordset
'下 一 句 非 常 关 键 重 要 ,可 以 极 大 地 减 少 "报 表 宽 度 大 于 纸 的 宽 度 "的 错 误 !
'当 Form1.Option1.Value为 真 时 "横 打 ",否 则 "纵 打 "
Me.ReportWidth = IIf(Form1.Option1.Value, MyMax(Printer.Width, Printer.Height),
MyMin(Printer.Width, Printer.Height)) - Me.LeftMargin - Me.RightMargin-ErrX
End Sub
Private Function MyMax(a As Long, b As Long) As Long
MyMax = IIf(a > b, a, b)
End Function
Private Function MyMin(a As Long, b As Long) As Long
MyMin = IIf(a < b, a, b)
End Function
这 样 就 可 以 极 大 地 减 少 "报 表 宽 度 大 于 纸 的 宽 度 "的 错 误 !
注 :"横 打 "即 :打 印 以 纸 的 宽 边 作 顶 部 。 "纵 打 "即 :打 印 以 纸 的 窄 边 作 顶 部 Top
14 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-17 20:52:00 得分 0
15 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-18 12:59:00 得分 0
16 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-18 21:34:00 得分 0
17 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-19 10:07:00 得分 0
18 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-19 14:31:00 得分 0
没有更好的回复了吗?Top
19 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-19 16:39:00 得分 0
在打印机设置中,把打印首选项设置为横向,可以实现A4横向报表.
但在程序中,如何设置呢?
printer对象似乎不能完成此功能呢!
可能要用到API吧!但又是哪个API呢?Top
20 楼y1g1y1(袁飞☆VB诚可贵VB.Net价更高C#心中有二者皆可抛☆)回复于 2000-12-19 16:41:00 得分 0
CommonDialog1.ShowPrinter 好像也不行呢!Top
21 楼everyask(everyask)回复于 2001-06-13 16:42:00 得分 0
CommonDialog1.ShowPrinter可以的。Top




