CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  基础类

报表打印问题*********紧急!在线等待!****如果分数不够,只要帮我解决了,可以加分!

楼主LittleDot88(小不点)2002-09-19 08:56:22 在 PowerBuilder / 基础类 提问

我的工资报表共有28个字段,其中6个字段暂时不显示(即宽度为0),我想将这些字段都打印在一张纸上,我选的是A4横打,打印预览显示正确,但打印出来的报表却往往是残缺不全(只显示一部分字段,却字段内容也只有几条),而当我选的是A4竖打时,打印出来的报表是正确的。  
  是不是PB打印报表对列字段个数有限制?如果有,具体如何?如果不是那又是什么原因? 问题点数:50、回复次数:13Top

1 楼zyqherozyqhero(永远的中华英雄男儿)回复于 2002-09-19 09:10:05 得分 10

可能是打印设置不对。如如打印方向设置、纸张边距等等问题。请看下面的例子:w_sheet.dw_1.Modify("datawindow.print.orientation=1")  
  w_sheet.dw_1.Modify("datawindow.print.paper.size=12")  
  w_sheet.dw_1.Modify("datawindow.print.margin.bottom=100")  
  w_sheet.dw_1.Modify("datawindow.print.margin.left=500")  
  w_sheet.dw_1.Modify("datawindow.print.margin.top=100")  
  w_sheet.dw_1.print()  
  如果还有问题请回信给我:zyqhero@elong.comTop

2 楼wantwater(非常年代)回复于 2002-09-19 09:16:14 得分 5

将你要打的字段的宽度设为你表中的宽度,然后再试试吧!Top

3 楼LittleDot88(小不点)回复于 2002-09-19 09:38:55 得分 0

To:   zyqherozyqhero  
  纸张边距:我是在DW中设置好的,打印方向设置则是调用pb的打印函数:printsetup()Top

4 楼LittleDot88(小不点)回复于 2002-09-19 09:44:28 得分 0

To:   zyqherozyqhero  
  而且其他报表打印都没问题,惟独工资报表Top

5 楼fjzjr(阿如)回复于 2002-09-19 09:47:56 得分 3

打印机设置可能有问题。Top

6 楼winnerjoanna(白雪)回复于 2002-09-19 10:54:11 得分 2

数据窗口是grid风格的吗Top

7 楼LittleDot88(小不点)回复于 2002-09-19 10:57:59 得分 0

是的Top

8 楼vvyjp(喻继鹏)回复于 2002-09-19 14:53:49 得分 5

打印机设置可能有问题,改程序是改不了的,可以装上随机的驱动程序,设置走纸方式,及页边距。。。。。。Top

9 楼zqllyh(学习Stupid As Pig中...)回复于 2002-09-19 15:28:22 得分 10

如果数据窗口设置好了属性用  
  dw_1.print()  
  不要用下面这种方式  
  long   job  
  job   =   PrintOpen(   )    
  PrintDataWindow(job,   dw_1)    
  PrintClose(job)  
  要不在打印之前让操作员设置好打印机。  
  Top

10 楼LittleDot88(小不点)回复于 2002-09-20 08:09:07 得分 0

我用的就是:dw_1.print()Top

11 楼bravebarbarian(野蛮人)回复于 2002-09-20 08:37:03 得分 13

print_parms   print_parm  
  string   parm_value,parm_type,parm_filter  
  int   parm_num,i,n  
  parm   parm_arr[]  
  any   realparm_arr[]  
   
  print_parm   =   message.powerobjectparm  
  dw_print.dataobject   =   print_parm.parm_dw  
  dw_print.settransobject(sqlca)  
  parm_arr[1]   =     print_parm.parm1  
  parm_arr[2]   =     print_parm.parm2  
  parm_arr[3]   =     print_parm.parm3  
  parm_arr[4]   =     print_parm.parm4  
  parm_arr[5]   =     print_parm.parm5  
  parm_num   =   message.number  
  parm_filter   =   print_parm.parm_filter  
   
  for   i   =   1   to   parm_num    
        parm_type   =     parm_arr[i].parm_type    
  parm_value   =   parm_arr[i].parm_value  
  realparm_arr[i]   =   typeconvert(parm_type,parm_value)  
  next  
   
  CHOOSE   CASE   parm_num    
  CASE   -   2  
              n   =   dw_print.retrieve(parm_arr[2].parm_value)  
  dw_print.object.st_title.text=parm_arr[1].parm_value    
  dw_print.object.st_unit.text=dw_print.object.st_unit.text+parm_arr[3].parm_value  
  dw_print.object.st_date.text=parm_arr[4].parm_value  
         
        CASE   -   1  
              n   =   dw_print.retrieve(parm_arr[2].parm_value)  
  dw_print.object.st_title.text=parm_arr[1].parm_value    
  // dw_print.object.st_unit.text=dw_print.object.st_unit.text+parm_arr[3].parm_value  
  // dw_print.object.st_date.text=parm_arr[4].parm_value  
  CASE   0  
  n   =   dw_print.retrieve()  
   
  CASE   1  
  n   =   dw_print.retrieve(realparm_arr[1])  
  CASE   2  
   
  n   =   dw_print.retrieve(realparm_arr[1],realparm_arr[2])  
  //dw_print.retrieve()  
  CASE   3  
  n   =   dw_print.retrieve(   realparm_arr[1],realparm_arr[2],realparm_arr[3])  
  CASE   4  
  n   =   dw_print.retrieve(   realparm_arr[1],realparm_arr[2],realparm_arr[3],realparm_arr[4])  
  END   CHOOSE  
   
  //dw_print.settransobject(sqlca)  
  dw_print.setfilter(parm_filter)  
  dw_print.filter()  
  dw_print.modify("datawindow.print.preview=Yes")  
  dw_print.modify("datawindow.print.preview.rulers=Yes")  
  if   print_parm.parm_dir='1'   then  
  cbx_orientation.checked=true  
  cbx_orientation.triggerevent(Clicked!)  
  else  
  cbx_orientation.checked=false  
  cbx_orientation.triggerevent(Clicked!)  
  end   if  
  dw_print.object.datawindow.print.documentName=message.stringparm  
  dw_print.setfocus()  
  //this.cbx_printpreview.checked=true  
  //this.cbx_ruler.checked=true  
  bFirstTime=true  
   
  这是个通用打印程序中open事件中的内容。自己看吧。Top

12 楼LittleDot88(小不点)回复于 2002-09-25 09:47:44 得分 0

好象字段一多横向打印就不行了Top

13 楼booksfount(books)回复于 2002-09-25 10:08:59 得分 2

不管横向纵向,纸张都是竖着放,你是不是横向打印时,纸张也横向放了?Top

相关问题

  • 紧急求救,关于报表打印
  • 报表打印的问题,紧急求救!
  • 报表打印
  • 打印报表
  • 报表打印
  • 报表打印?
  • 报表打印
  • D7+QReport做报表,如何让文字都躺倒打印?紧急
  • 报表打印Bug
  • 紧急求援:如何或调用打印ACCESS数据库里的报表(VB下)

关键词

  • 打印
  • 字段
  • 报表
  • parm
  • dw
  • arr
  • print
  • datawindow
  • 纸张
  • sheet

得分解答快速导航

  • 帖主:LittleDot88
  • zyqherozyqhero
  • wantwater
  • fjzjr
  • winnerjoanna
  • vvyjp
  • zqllyh
  • bravebarbarian
  • booksfount

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo