社区
多媒体
帖子详情
在VB6的报表设计DataReport中的问题?
linfeng
2000-06-27 02:57:00
用VB6的DataReport设计打印数据报表,比如用A4纸打印输出,由于报表太宽,想用A4纸横向打印输出,并按A4纸的横向宽度来排列数据,如果太宽,在打印或显示时都提示"报表宽度大于纸张宽度"的错误,设置宽度小,打印时选横向时,并没有按横向打印。没有象VFP中的打印机设置一项,可以在设计报表前定义打印方向为纵向或横向。有什么办法?
...全文
436
12
打赏
收藏
在VB6的报表设计DataReport中的问题?
用VB6的DataReport设计打印数据报表,比如用A4纸打印输出,由于报表太宽,想用A4纸横向打印输出,并按A4纸的横向宽度来排列数据,如果太宽,在打印或显示时都提示"报表宽度大于纸张宽度"的错误,设置宽度小,打印时选横向时,并没有按横向打印。没有象VFP中的打印机设置一项,可以在设计报表前定义打印方向为纵向或横向。有什么办法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
linfeng
2000-07-06
打赏
举报
回复
按上面的方法,第一种方法不行(我用win2000与网络打印机).
按第二个方法pageset.dll 或api 可以.
playyuer
2000-07-06
打赏
举报
回复
相关页面:
http://simideal.top263.net/
http://simideal.top263.net/MyAQ_1.htm
http://www4.netease.com/~askpro/msg21/qa85.htm
《报表打印时,程序显示Orientation为只读属性不能修改》
回答:
方 法 一 :用 一 个 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。
方 法 二 :引 用 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
这 样 就 可 以 极 大 地 减 少 "报 表 宽 度 大 于 纸 的 宽 度 "的 错 误 !
注 :"横 打 "即 :打 印 以 纸 的 宽 边 作 顶 部 。 "纵 打 "即 :打 印 以 纸 的 窄 边 作 顶 部 。
此问题由于溪玥回答。
linfeng
2000-07-05
打赏
举报
回复
call writeprofilestring()好象不是设置打印机的
fxRen
2000-07-05
打赏
举报
回复
call writeprofilestring();
linfeng
2000-07-05
打赏
举报
回复
printer.Orientation =2 不行.用api怎么设置?
xtjack
2000-07-05
打赏
举报
回复
好像可以在控制面板里面把打印机设成 横向 打印,然后启动就应该可以实现长报表的打印,原先我试过的,好像可行
mislrb
2000-07-05
打赏
举报
回复
我也遇到同样的问题,请高手们详细说说:用API怎样做?
谢谢!!!
hyperboy
2000-07-04
打赏
举报
回复
用win api 改变打印机的缺省方向设置 就可以
打印完后再恢复原值 .
linfeng
2000-06-28
打赏
举报
回复
请教各位大虾,有什么方法?急!
foxpsz
2000-06-27
打赏
举报
回复
我想vb做不了的,得借住vc 或bc才能解决
linfeng
2000-06-27
打赏
举报
回复
不是的,重新设置也不行
jmx
2000-06-27
打赏
举报
回复
这是由于计算机所连接的打印机的设置造成的。可以重新设置打印机的选项。
VB利用
Data
Report
做
报表
详
VB利用
Data
Report
做
报表
详,我也是找了好久才找到的,讲解的比较详细,可以给初学者一个很好的帮助你。
Data
Report
报表
分页
VB自带
报表
工具
Data
Report
的分页打印示例。
VB+SQL+
Data
report
的查询
用VB 和
data
report
做的
报表
查询实例
VB数据
报表
data
report
[整理].pdf
VB数据
报表
data
report
[整理].pdf
VB在DED
中
使用参数,使用
Data
Report
1.Dsr、
Data
Environment1.Dsr
VB6
.0在DED
中
使用参数,使用了
Data
Report
1.Dsr、
Data
Environment1.Dsr两个文件,打开编译生成的程序后,请输入MS JET OLE DB初始化信息,包括数据源、用户名、密码、应商字符串、选择打开方式等。点确认后移动记录...
多媒体
809
社区成员
8,275
社区内容
发帖
与我相关
我的任务
多媒体
VB 多媒体
复制链接
扫一扫
分享
社区描述
VB 多媒体
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章