`

PowerBuilder数据窗口编程技巧十则

 
阅读更多
PowerBuilder取得巨大成就的原因就是有Datawindow对象,DataWindow是具有功能强大和灵活多变的特点,本人用PowerBuilder开发过一段时间后,,总结出一些技巧,以供广大的PB开发者借鉴使用。

  一.如何创建一个报表,如下形式
Quantity Running Total
5,000 5,000
2,500 7,500
3,000 10,500
12,000 22,500
  对于Running Total列,我们可使用计算列:CumulativeSum(Quantity for all),即可达到逐渐递增求和的功能。

  二.数据窗口的数据送缓冲区之前确认的四个步骤 判断数据类型是否正确。如不正确则触发ItemError事件。判断数据是否符合有效性规则。如不符合有效性规则,同样触发ItemError事件。 判断是否有数据被改动。判断数据是否通过ItemChanged事件,如果数据和ItemChanged相斥,将触发ItemError事件。

  三.如何在DataWindow中用数据类型为Datetime的列为条件进行查找
  1.当要查找的日期条件是一常数时使用如下表达式:
   ls_Find = "datetime_col
    = DateTime ('1/1/1999')"
  2.当要查找的日期条件是一个变量时使用如下的表达式:
   ls_Find = "datetime_col = DateTime ('" + ls_Date + "')"
  3.当要查找的日期条件是一个DateTime数据类型时使用如下表达式:
   ls_Find = "datetime_col = DateTime ('" + String (ldt_DateTime) + "')"

  四.设置数据窗口Boolean型属性的三种方法
  PowerBuilder提供了三种方法设置数据窗口的布尔型属性,分别是True/False, 1/0, 'Yes'/'No'。例如:
dw_1.Object.address.Visible = 0 dw_1.Object.address.Visible = False dw_1.Object.address.Visible = 'No'
  PowerBuilder在处理上以字符串的形式保存属性,而不考虑属性值是布尔型、长整型或是字符型。
为了进一步理解,可以导出一个数据窗口并查看它的原码,可以发现即使是列的颜色属性它也是使用带双引
号的数字来表达。

  五.如何在DataWindow中快速删除多行
  在开发过程中可能经常有要进行多行删除的操作,一般都使用循环语句进行操作:

FOR ll_RowOn = 1 TO dw_1.RowCount() dw_1.DeleteRow(ll_RowOn) NEXT

  一个快速的删除方法是把要删除的行从主缓冲区中移到删除缓冲区中。例如,删除缓冲区中所有的行:

dw_1.RowsMove(dw_1, 1, dw_1.RowCount, Primary!, dw_1, 1, Delete!)

  不过不要忘了过滤的行在不同的缓冲区中。

  六.如何在DataWindow的SQL语法中不使用SELECT DISTINCT实现删除重复的行
  起先对你要显示唯一值的列进行排序:"city A",然后增加如下过滤字符串:" city < > city [-1] or GetRow () = 1"

  七.如何在分组形式的DataWindow中分别显示各组的行号
  当我们为Datawindow的每一行显示行号时,可以简单的放一个表达式为GetRow()计算列。但是对于分组的Datawindow,要分别显示各组的行号,则应使用表达式为
GetRow() - First(GetRow() for Group 1) + 1的计算列。

  八.如何改变列的字体颜色,提醒用户此列已做修改
  在列的Color属性中,输入如下表达式

IF (column_name < >column_name.Original, RGB(255, 0, 0), RGB(0, 0, 0))。

  在这个条件中,如果此列已改变,则显示红色字体,否则显示黑色字体。这个表达式主要用column_name < > column_name.Original比较当前列的值和原始列的值是否相同来达到判断的目的。

  九.在数据窗口中移走行,但不是去做过滤或删除操作
  RowsDiscard()函数可做到这一点,它在数据窗口中执行移除工作,但被移走的行它不可被删除或做任何修改性的保存。

  十.如何在多行显示的DataWindow 中的Footer Band中显示当前数据的首行和最后行的行号
  我们先看两个计算列的表达式: IF (GetRow() = First(GetRow() FOR Page), 1, 0) // 1 为当前页的第一行

IF (GetRow() < > 1 AND GetRow() = Last(GetRow() FOR Page), 1, 0) // 1 为当前页的最后一行

  由上面可知,在Footer Band中设置如下计算列表达式:

'Rows ' + String(First(GetRow() FOR Page)) + ' to ' + String(Last(GetRow() FOR Page)) + ' are displayed'。

即可达到这项功能。
分享到:
评论

相关推荐

    PowerBuilder数据窗口编程技巧

    本篇将深入探讨"PowerBuilder数据窗口编程技巧",帮助开发者提高工作效率,实现更高效、更灵活的数据展示和操作。 1. 数据窗口的基本概念 数据窗口是PowerBuilder中的一个可视化控件,用于显示、编辑和操作数据库中...

    PowerBuilder 数据窗口技巧

    以下是对PowerBuilder数据窗口技巧的深入探讨。 1. **数据窗口类型** - **Report型**:主要用于报表设计,可以创建复杂的多列布局和分组。 - **Grid型**:类似电子表格,适合交互式数据输入和编辑。 - **Graph型...

    PowerBuilder 10实用编程百例_实例源代码

    这个名为"PowerBuilder 10实用编程百例_实例源代码"的压缩包提供了丰富的学习资源,帮助用户深入理解并掌握PowerBuilder 10的编程技巧。以下是基于这个主题的详细知识点讲解: 1. **PowerBuilder 10基础**: - **...

    PowerBuilder编程技巧CHM_openbtz_PowerBuilder_powerbuilder应用技巧_

    "PowerBuilder编程技巧CHM_openbtz_PowerBuilder_powerbuilder应用技巧_"这个标题表明这是一份关于PowerBuilder编程技巧的CHM(Compiled Help Manual,编译后的帮助手册)文档,可能是由openbtz社区或其他专家编写的...

    PowerBuilder 9.0精彩编程百例源代码

    PowerBuilder 9.0是一款由Sybase公司开发的可视化、面向对象的数据库应用程序开发工具,以其强大的数据窗口功能和易用性在IT业界享有盛誉。"PowerBuilder 9.0精彩编程百例源代码"集合了众多实用的编程实例,为初学者...

    powerbuilder 9.0精彩编程百例

    在PowerBuilder 9.0中,开发者可以利用其强大的数据窗口(DataWindow)组件来设计和操作数据库,以及利用事件驱动的编程模型来构建用户界面。书中的"精彩编程百例"涵盖了各种功能和应用场景,如数据查询、数据编辑、...

    PowerBuilder编程经验谈

    在本篇文章中,我们将深入探讨PowerBuilder编程的一些关键知识点和实践经验。 首先,我们需要了解PowerBuilder的基础架构。PowerBuilder使用面向对象编程(OOP)理念,支持事件驱动的编程模型。它的核心组件包括...

    《PowerBuilder 9.0精彩编程百例》源代码(第7-8章)

    通过阅读和实践这些章节的源代码,开发者可以深入理解PowerBuilder的工作原理,掌握实际项目中的编程技巧,并提升问题解决能力。这些实例代码是宝贵的教育资源,帮助学习者将理论知识转化为实践经验。

    《PowerBuilder 9.0精彩编程百例》源代码

    这本书提供了丰富的编程实例,旨在帮助读者深入理解和掌握PowerBuilder的使用技巧,提升开发能力。源代码的提供使得学习者能够直接运行和研究这些实例,从而加快学习进程。 PowerBuilder 9.0是Sybase公司推出的一款...

    《PowerBuilder 9.0精彩编程百例》源代码(第02-03章)

    本书《PowerBuilder 9.0精彩编程百例》旨在通过丰富的实例来深入讲解其编程技巧和应用方法。源代码分为了两个部分,分别对应第二章和第三章的内容,下面我们将详细探讨这两个章节涉及的知识点。 第二章可能涵盖了...

    powerbuilder8.0编程百例

    "PowerBuilder 8.0编程百例"是针对这款经典开发环境的一套源码集合,旨在帮助学习者通过实践掌握PowerBuilder的各种编程技巧和实用技术。 1. **PowerBuilder 8.0基础**:PowerBuilder 8.0采用PBNI(PowerBuilder ...

    PowerBuilder编程代码

    "中华源码库下载站.url"则可能是一个链接,指向一个包含更多PowerBuilder或其他编程语言源代码的资源库,对于开发者来说,这是一个寻找灵感和学习新技巧的好地方。 通过研究和实践这些PowerBuilder源代码,你可以...

    PowerBuilder10.rar

    - **可视化编程环境**:PowerBuilder 10 提供了一个直观的拖放界面,允许开发者通过图形化方式设计用户界面、数据库连接和业务逻辑,极大地提高了开发效率。 - **DataWindow控件**:这是PowerBuilder的核心组件,...

    PowerBuilder编程技巧

    本篇文章将深入探讨PowerBuilder的一些关键编程技巧,帮助开发者提高效率和代码质量。 1. **DataWindow控件**:PowerBuilder的核心组件是DataWindow,它能够方便地处理数据库查询、显示和编辑数据。掌握DataWindow...

    PB常见问题汇编;PowerBuilder编程俱乐部常见问题;PB常见函数;PowerBuilder常见问题集;PowerBuilder使用技巧集;PB常见问题;PB技巧100例;PB技巧及经验。是个集成包。

    4. **PowerBuilder常见问题集**:这是另一份问题集合,可能包含了更深入的技术问题,如数据窗口操作、事件处理、对象间的通信等。通过学习这些问题,开发者可以提升对PB特性的理解。 5. **PowerBuilder使用技巧集**...

    PB 编程技巧100例(CHM)

    Datawindow (17)PowerBuilder数据窗口编程技巧十则 蔡伟龙 System (16)如何在POWER BUILDER中使用WINSOCK控件 达伟春 OTHER (15)在PB打印中实现人民币大写 侯晓伟 MENU (14)用PB做一个通用右键菜单 田...

    powerbuilder编程经验谈

    6. **PowerBuilder工作流**:理解PowerBuilder的开发流程,包括新建工程、设计窗口、创建对象、编写脚本、调试和发布,是高效编程的保障。同时,熟悉PowerBuilder的调试工具和性能分析工具,能帮助优化程序性能。 7...

    PowerBuilder 12.5手册大全

    PowerBuilder 12.5是一款强大的企业级应用开发工具,尤其在数据窗口设计、数据库应用程序构建方面具有显著优势。这款工具由Sybase公司(后被SAP收购)开发,为开发人员提供了高效的可视化编程环境,使得开发人员可以...

    PowerBuilder使用技巧集

    2. **数据窗口技术**:数据窗口(DataWindow)是PowerBuilder的核心组件,用于处理数据库操作。理解数据窗口的多种显示模式,如Report、Grid、Graph等,以及如何动态加载和更新数据,可以让你更灵活地处理数据库交互...

Global site tag (gtag.js) - Google Analytics