[返回]
中国计算机报1999年第93期

PB数据窗口实现报表输出

褚健耘

  PowerBuilder是目前非常流行的一种开发工具,其独到之处是数据窗口(DataWindow)技术。可以说,数据窗口是PowerBuilder的核心,在对数据库的开发过程中,无论是数据的录入、查询、统计还是报表的输出,都离不开数据窗口。笔者在实际工作中用打印数据窗口的方法实现报表的输出(见图1),方法如下:
pb136_1.jpg (17533 bytes)
  图1 报表的数据窗口


  一、建立含有如下控件的窗体:

控件 name text
checkbox cbx_1 预览
dropdownlistbox ddlb_1 100
dropdownlistbox ddlb_orientation 横向
dropdownlistbox ddlb_papersize 宽行纸
commandbutton cb_1 打印



  二、“打印预览”检查框的clicked事件:


  string Is—count

  if this.checked then

   dw—1.Modify(″datawindow.print.preview=Yes″)

   ddlb—zoom.enabled=TRUE

  else

  dw—1.Modify(″datawindow.print.preview=No″)

   ddlb—zoom.enabled=FALSE

  end if


  三、“缩放”下拉窗口的selectionchanged事件:


   dw—1.Modify

  (″datawindow.print.preview.zoom=″+this.text)


  四、“纸张方向”下拉窗口的selectionchanged事件:


  string Is—orient

  choose case Lower(Trim(this.text))

   case ″横向″

   Is—orient=″1″

   case ″纵向″

   Is—orient=″2″

   case ″默认″

   Is—orient=″0″

  end choose

  dw—1.Modify(″datawindow.print.orientation=″+Is—orient)


  五、“纸张大小”下拉窗口的selectionchanged事件:


  string Is—paper=″0″

  choose case Lower(Trim(this.text))

   case ″宽行纸″

   Is—paper=″5″

   case ″A3纸″

   Is—paper=″1″

   case ″A4纸″

   Is—paper=″9″

   case ″默认″

   Is—paper=″0″

  end choose

   dw—1.Modify(″Datawindow.print.paper.size=″+Is—paper)


  六、“打印”按钮的clicked事件:


  dw—1.print()

  运行环境:Windows NT4.0、Windows 98、PowerBuilder 6.0。