• 当前位置:首页>>PowerBuilder>>PowerBuilder脚本>>PB编程技巧二则
  • PB编程技巧二则
  • 在PB编程中,我们经常需要应用一些小的技巧,如:使数据窗口每页打印固定行、在系统中嵌入Excel对象等。下面,笔者将结合实际介绍这些小的技巧应用。

    一、页面的精确打印

    关于数据窗口每页打印固定行的问题:

    1.增加一个计算列,此计算列必须放在Detail段的Expression中输入:

    ceiling(getrow()/20)

    //这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。

    2.定义分组,选择选单“Rows->Create Group...”,并按计算列字段分组。最后一定将“check box-->New Page On Group Break”选中。

    3.将此计算列设为不可视。

    另外,如果需要最后一页不足补空行。也很简单,程序如下:

    long ll_pagerow = 10

    //每页打印行数

    long ll_count, ll_row

    ll_count = dw_report.retrieve(...) //取得现有报表的总行数

    ll_count = ll_pagerow - mod(ll_count, ll_pagerow)

    If ll_count < ll_pagerow then

    for ll_row ="" 1 to ll_count

    dw_print.insertrow(0)

    //补足空行

    next

    end if

    二、如何嵌入Excel对象

    在进行程序开发时,有时会需要将PowerBuilder与Excel应用程序结合使用,如将数据检索出来后,按照格式要求,将数据转入到Excel表格中。实现步骤如下:

    1.创建并连接对象:

    oleobject loo_excel

    oleobject loo_sheet

    loo_excel=create oleobject

    loo_excel.ConnectToNewObject("Excel.Application")

    //设置缺省的字体与大小

    loo_excel.Application.StandardFont = "Arial Narrow"

    loo_excel.Application.StandardFontSize = "8"

    loo_excel.Application.Workbooks.Add()

    loo_sheet=loo_excel.Application.Workbooks(1).worksheets(1)

    loo_excel.Application.Visible=true

    loo_excel.Application.ScreenUpdating = false //屏蔽可见属性

    2.调用Excel本身的属性,函数,通过数据窗口填写数据到Excel:

    loo_excel.Application.ScreenUpdating = true //设置可见属性

    3.断开连接并释放对象:

    loo_excel.DisconnectObject()

    //注:建议引用API函数,捕获Handle。

    destroy loo_excel

    以上程序已在PB6.0、Windows 98平台上运行通过。



  • 上一篇:为PB的TreeView实现同步选择
    下一篇:无