热情软件屋

 

使用DataReport 设计很宽的报表,设置Printer的Width 和Height 属性不起作用


编号:QA002328
建立日期: 1999年12月27日 最后修改日期:2003年6月22日
所属类别:

Leo:
    操作系统:NT 4.0
    编程工具:Visual Basic 6.0
    问题:本人使用 DataReport 进行设计时,遇到一个很宽的报表(约有 43厘米宽)。现有以下问题:
    1. 设置 Printer.Width 和 Printer.Height 属性,似乎不起作用?
    2. 设置PRINTER_INFO_2.DEVMODE 结构的dmPaperLength 和 dmPaperWidth 属性,设置dmOrientation为横向,调用 API函数 SetPrinter,仍然报错 "报表宽度大于纸宽"。但是函数的返回值为 1,并且对打印方向的设置确实已经生效,不知为什么?这样一个报表应该如何实现?

回答:

    yogi的意见:
    如果你的VB是SP4以上,增加了一个新的属性Orientation。Datareport默认使用系统打印机的设置,你可以用DataReport.Orientation改变。
    
    党涛的意见:
    应该是因为该打印机不支持这么宽的报表的纸张。换台能打印很宽报表的打印机即可!(与程序设计无关,以前俺也碰到过,呵呵!)
    HM的意见:
    1、设置好打印机
    2、将DataReport的BorderStyle=1,再设置报表的宽度即可。
    
    zxm的意见:
    更换打印机驱动程序即可。无须有实际的宽行打印机。
    
    郭洪涛的意见:
    其原因可能是DataReport使用自己的打印机设备环境句柄,不是VB的打印机的句柄。而你更改的句柄并DataReport使用的打印机设备环境句柄,此句柄好象无法获得。此问题我也无法解决,如果你已经解决拜托你Email给我,谢谢。
    
    pan的意见:
    打印机的纸宽你不必设,出现你说的那种情况是由于你的某个控件(比如 rptline控件)的宽度加上leftMargin的宽度长于纸宽。
    
    rain的意见:
    据我所知,DATAREPORT的纸张是8 1/2*11 in的,大于这个纸的报表都不能打印。
    
    T1289的意见:
    下载SP5(http://msdn.microsoft.com/vstudio/sp/default.asp)就能解决这个问题,但要注意默认打印机的设置。
    
    aa的意见:
    在以下站点中(《关于数据报表的打印设置》)有相应的代码 :
    http://vbboshi.myrice.com/vbtech/database/page_3/file74.htm

此问题由党涛等回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio