1.report builder 怎样设置打印机纸的大小
2.Q report 怎样设置打印机纸的大小因为我在报表中设置为一个大小的纸,可打印机不是,打出来的还是以打印机的为准
各位帮我呀

解决方案 »

  1.   

    这样吧,用Delphi举个例子吧,以下程序将打印机纸张设为:114mm*190mm:procedure PreparePrinter;varaDevice: array[0..CCHDEVICENAME-1] of Char;aDriver: array[0..MAX_PATH-1] of Char;aPort: array[0..31] of Char;hDevMode: THandle;pDevMode: PDeviceMode;begin// 获取打印机DeviceMode的句柄Printer.GetPrinter(aDevice, aDriver, aPort, hDevMode);if hDevMode <> 0 thenbegin// 获取指向DeviceMode的指针pDevMode := GlobalLock(hDevMode);if pDevMode <> nil thenbeginpDevMode^.dmPaperSize := DMPAPER_USER;pDevMode^.dmPaperLength := 1140;pDevMode^.dmPaperWidth := 1900;pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERSIZE;pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERLENGTH;pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERWIDTH;ResetDC(Printer.Handle, pDevMode^);GlobalUnlock(hDevMode);end;end;end;用修改DeviceMode的方法的话,只是改变你程序中的打印机设置,不会影响其他程序打印的。
     
      

  2.   

    这个可以满足你的要求!下载地址:http://www.sailprint.com
    简介:  SailPrint打印组件是一套VCL打印控件。目前最新版本是3.0,可以打印DBGrid,StringGrid,ListView以及直接打印数据源。SailPrint有以下几大特点:    一、SailPrint的特点是快速生成报表,灵活易用,只需几分钟即可完成漂亮的报表。    二、最终用户可以修改报表,开发人员只需调用setoption 这个过程即可让最终用户设置报表。   SailPrint并且保留了设置窗口的源代码,开发人员也可以自己订制设置窗口,这样可以可以跟系统   风格更为一致。包括打印预览窗口也保留了源代码,窗口样式可以随意修改。    三、自动折行功能,估计大家都理解不用多说了,好不好用一试便知。    四、主细表功能,这是新加入的功能,并且支持公式统计。支持的函数有:sum,count,avg以及函数之间   的加减乘除。        例如:sum([字段1])/count([字段2])    五、支持流存储,可以将报表的设置或者将整个报表保存为流,这样可以简单的将报表设置保存到数据   库中,当然也可以保存成文件。这样最终用户修改了报表设置可以方便的保存。    六、多表头功能,设置方法可能与其他控件不一样。大家可以下载试一下。    以上是一些主要特点,还有一些细小功能就不一一列举了,大家下载体验一下吧。