PB中下拉数据窗口带参数应用
PB 数据窗口高级( DataWindow)应用37个技巧

PB 数据窗口高级( DataWindow) 37个技巧1. 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用Column 的Protect 属性可以很方便的做到这一点,方法如下:将每一列的Protect 属性设置为:If( IsRowNew(), 0, 1) )在PowerScript 中可以动态修改Protect 属性:dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'")这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。
2 .如何在DataWindow中实现列的自动折行我们在PowerBuilder应用程序的开发过程中, 使用DataWindow时, 经常会遇到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自动折行.具体步骤如下:1) 在DataWindow Painter中打开此DataWindow.2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口.3) 选择Position标签, 选中Autosize Height 多选框.4) 选择Edit标签, 不选中Auto Horz Scroll多选框.5) 单击OK按钮, 保存所做的修改.6) 点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择Properties... 菜单项.7) 选中Autosize Height多选框.8) 单击OK按钮, 保存所做的修改.9) 保存此DataWindow.注意:连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不会自动进行折行.3. 在数据窗口中实现动画要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在Timer Interval中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。
PB]-子数据窗口操作
![PB]-子数据窗口操作](https://img.taocdn.com/s3/m/2ec35203e87101f69e31958e.png)
PB]-子数据窗口操作PB]-子数据窗口**通常的子数据窗口也就是下拉数据窗口。
子数据窗口也是普通的数据窗口对象,没有什么特殊的地方,它的创建方法、可以使用的控件、编程时可以使用的函数等,都和普通的数据窗口相同。
特殊的地方只是因为它放在了父数据窗口中,需要和父窗口进行配合。
**当为数据窗口中某字段指定为下拉数据窗口编辑风格时,必须提供以下三个属性:a)子数据窗口名称。
b)显示字段名称:该字段中的内容显示在父数据窗口的字段上,只是显示。
c)数据字段名称:该字段中的内容要赋给父数据窗口的字段,要保存到数据库中。
分别对应数据窗口画板的Edit属性页中的:Eidt Style、Display Column、Data Column。
*子数据窗口不能再包含子数据窗口;父数据窗口可以对其包含的子数据窗口进行插入、删除、检索和保存等操作。
**获取子数据窗口的引用是进行其他操作的前提,使用函数GetChild来获取指定字段的子数据窗口。
该函数的语法如下:dw_1.GetChild(name,dwchildvariable)其中,dw_1.是数据窗口控件名称;name为字段名称,为string类型;dwchildvariable为datawindowchild 类型变量,该变量在函数正确执行后保存对子数据窗口的引用。
该函数正确执行则返回1,否则返回-1。
在获取了子数据窗口的引用之后,就可以捡索子数据窗口中的数据了。
但是,检索子数据窗口的情况比较多,并且也有多种方法。
**保证子数据窗口中的数据更新用户使用下拉数据窗口录入数据时,其中的数据并不一定有用户需要的。
在某些情况下不允许用户再输入其他值,否则可能造成数据的不一致性,这时就可以不再编写其他的脚本。
但在允许用户录入时,就需要把用户录入的数据保存在子数据窗口对应的数据表中,以便以后数据录入时不再重复输入该数据。
这时就应该编写脚本保存该数据了。
**检索子数据窗口在应用中,对子数据窗口的编程不是检索数据,就是更新其中的数据。
pb12 数据窗口 检索参数

pb12 数据窗口检索参数1.引言1.1 概述数据窗口(DataWindow)是PowerBuilder中最重要的控件之一,它作为一种灵活且功能强大的表格控件,广泛应用于企业级软件开发中。
数据窗口可以呈现数据库中的数据,并且具备快速检索和编辑数据的能力,使开发人员能够方便地操作和管理数据。
数据窗口具有以下特点:1. 数据绑定:数据窗口与数据库之间可以进行直接的绑定,通过设置连接属性、SQL语句或存储过程,可以轻松地将数据窗口与数据库进行关联,实现数据的绑定和展示。
2. 数据编辑:数据窗口提供了丰富的数据编辑功能,开发人员可以根据业务需求设置单元格的可编辑性,轻松实现数据的新增、修改和删除操作。
3. 数据格式化:数据窗口支持对数据进行格式化,包括设置日期时间格式、货币格式、数值格式等,使数据呈现更加直观和易读。
4. 数据校验:数据窗口可以对用户输入的数据进行校验,确保数据的准确性和完整性。
通过设置校验规则,可以防止用户输入非法或不符合约束条件的数据。
5. 数据检索:数据窗口内置了强大的数据检索功能,可以根据设置的检索参数,快速地过滤和检索出符合条件的数据集,提高数据的查询效率。
2.1.1 概述部分简要描述了数据窗口的定义、特点和功能,下面将进一步介绍数据窗口的使用场景。
1.2 文章结构本文将主要介绍pb12 数据窗口的检索参数。
文章的结构如下:2. 正文部分将分为两个主要章节,分别是数据窗口和检索参数。
2.1 数据窗口章节将包含以下内容:2.1.1 定义和特点:介绍数据窗口的概念和特点,以及它在PowerBuilder 12中的应用和功能。
2.1.2 使用场景:讨论数据窗口在实际开发中的常见应用场景,并通过示例说明其使用方法和效果。
2.2 检索参数章节将包含以下内容:2.2.1 定义和作用:解释检索参数的含义和作用,以及它们在数据窗口中的具体应用。
2.2.2 常见的检索参数:列举常见的检索参数,并讨论它们的用途和配置方法。
PB中下拉数据窗口带参数应用.

PB 中下拉数据窗口带参数应用在数据输入时, 当用到下拉列表时, 会发现有些数据是和别的数据相关的, 这时我们会希望过滤掉那些不相关的数据。
例如生成一个入库单, 某种物料有多个供应商, 我们要根据物料来过滤掉和这个物料不相关的供应商,这样会加快检索和输入的速度。
入库单表:billrec1. 以 supply 表, 制作一个带参数的数据窗口, 命名为 d_supply_replace_list, 参数列为 item_id, 字符型,隐藏物料代码列。
2.以 billrec 表,制作一个数据窗口,命名为 billrec_maintain,将 supply_id列的 edit 属性中的 style type选定为 DropDownDW , datawindow 为 d_supply_replace_list。
在窗口中放置数据窗口控件 dw_1,将其与 billrec_maintain数据窗口关联。
在窗口中定义实例变量 datawindowchild idwc_child。
3.在 dw_1的 constructor 事件中编写以下脚本:this.getchild("supply_id",idwc_child //生成子数据窗口, supply_id为下拉列表列idwc_child.insertrow(0idwc_child.settransobject(SQLCAthis.of_settransobject(SQLCAthis.insertrow(04.在 dw_1的 itemchanged 事件中编写以下脚本:long ll_getcolumnll_getcolumn = this.getcolumn( //获得当前列choose case ll_getcolumncase 7 //假设 item_id列是第 7列dw_1.accepttext(is_id = dw_1.getitemstring(row,7 //获得物料代码idwc_child.retrieve(is_id //检索替代供应商end choose这样在输入不同的物料时,会像下图那样,只列出相关的供应商。
在PB 中 巧 用 下 拉 数 据 窗 口

在PB 中巧用下拉数据窗口---- PowerBuilder 作为目前比较流行的一种开发工具,有其独到之处,那就是数据窗口(DataWindow)。
可以说,数据窗口是PowerBuilder 的核心,在对数据库的开发过程中,无论是录入、查询、统计还是报表,都离不开数据窗口。
但是,除了数据窗口,PB 还提供了下拉数据窗口(DropDown DataWindow),下拉数据窗口的使用,使数据窗口更灵活,更方便,下面举例介绍在数据窗口中使用下拉数据窗口的一些技巧。
---- 在用数据窗口作数据录入时,经常用到代码录入,即对经常输入的某些值设置代码,录入时直接录入代码即可。
例如,有两个表,主表main_table 和代码表code_table,结构如下:main_table字段名类型长度描述Id integer 标识号Name char 8 姓名Sex char 4 性别City Varchar 30 城市Unit Varchar 40 单位---- 下面,详细讨论如何使用下拉数据窗口:一、静态设计下拉数据窗口---- 首先对主表和代码表设计两个数据窗口dw_main 和dw_code,其中dw_main 包括字段id,name,sex,city 和unit;dw_code 包括字段code 和data。
假设unit 字段有几个常用值可使用代码录入,则在设计dw_main 时,用鼠标右键点击字段unit,在下拉菜单中选择Properties...(属性),则系统会弹出unit 列的属性对话框,在其中选择Edit (编辑)项,并在Style(风格)下拉列表框中选择DropDownDW 项,然后在下面的Options(选项)框中作具体的选项配置:在DataWindow 下拉框中选择已设计好的代码数据窗口dw_code 作为下拉数据窗口;在DisplayColumn(显示列)下拉框中选择code 字段;在Data Column(数据列)下拉框中选择data 字段,这表示显示的是code 字段的内容,而实际存于表main_table 中的是data 字段的内容。
PB 数据窗口高级( DataWindow)应用37个技巧

PB 数据窗口高级( DataWindow) 37个技巧1. 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用Column 的Protect 属性可以很方便的做到这一点,方法如下:将每一列的Protect 属性设置为:If( IsRowNew(), 0, 1) )在PowerScript 中可以动态修改Protect 属性:dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'")这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。
2 .如何在DataWindow中实现列的自动折行我们在PowerBuilder应用程序的开发过程中, 使用DataWindow时, 经常会遇到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自动折行.具体步骤如下:1) 在DataWindow Painter中打开此DataWindow.2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口.3) 选择Position标签, 选中Autosize Height 多选框.4) 选择Edit标签, 不选中Auto Horz Scroll多选框.5) 单击OK按钮, 保存所做的修改.6) 点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择Properties... 菜单项.7) 选中Autosize Height多选框.8) 单击OK按钮, 保存所做的修改.9) 保存此DataWindow.注意:连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不会自动进行折行.3. 在数据窗口中实现动画要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在Timer Interval中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。
PB中下拉列表使用的若干技巧

PB中下拉列表使用的假设干技巧于红聂尚宇摘要对PB中下拉列表的使用方法进行了研究,并提出了几种使用下拉列表的实现方法,实践说明这些方法具有简单实用的特点。
关键词下拉列表;动态;控件;事件;Some Skills in the Use of DDLB of PBYu Hong Nie ShangyuDepartment of Electronic Engineering, DFUAbstract The use of DDLB in PB is studied and some skills are proposed. The results show that these skills are simple and practical.Key words DDLB; dynamic; control; event随着科学技术的不断发展,电脑已经应用于社会的各个领域,相应的管理软件的编制工作显得尤为重要。
现有的编程工具中,PowerBuilder 是数据库管理软件设计比较理想的工具,但如何合理地选用控件和灵活地使用每一个控件,以充分发挥PB的优势,是人们在编程过程中常遇到的难题。
作者对PB中的控件之一——下拉列表的使用[1]进行了研究,并提出几个灵活使用下拉列表的方法。
1 下拉列表及其相应的事件①下拉列表是在窗口中定义的一个控件,与之相应的事件如下表所示:件,还会触发Modified事件。
2 动态使用下拉列表传统的下拉列表使用是静态的,它在一定程度上满足了编程的需要,但是不能满足所有需要。
例如,有时希望下拉列表中的选项在程序运行过程中可以变化,这用静态下拉列表定义选项是不能实现的,这就促使人们去思考如何使用动态下拉列表。
有两种情况需要使用动态下拉列表。
1〕下拉列表中的选项与数据库中某列的内容相关联②实际应用中,在对数据库表中的数据按名称进行查询时,为了减少输入量,可以将库中某列的内容〔如单位名称〕列在下拉列表中供用户选择,这样既可以保证选中的项目一定是库中的项目,而且不用输入汉字;又使下拉列表的使用具有一定的灵活性,动态下拉列表选项确实定必须在下拉列表被使用之前进行,可以在下拉列表所在窗口的Open事件中确定,也可以在下拉列表的Getfocus事件中确定,相应的script为string id,icint i-op=1declare c1 cursor forselect hotelid from hotelid-dangan using SQLCA;open c1;fetch c1 into: id;do while sqlca.sqlcode=0select p1602 into :ic from p16 where p1601=:id using sqlca;if finditem(ddlb-1,ic,1)=-1 thenddlb-1.insertitem(ic,+i-op)i-op=i-op+1end iffetch c1 into :id;loopclose c1;其中,下拉列表中的项目取自数据库表hotelid-dangan 的hotelid 列所对应的p16表中的p1602(即单位名称)。
PB数据窗口教程

Powerbuilder创建数据窗口规范与注意事项导言:数据窗口是powerbuilder中一个最重要的控件,且是powerbuilder独有的一个控件,他存在于用户与数据库之间,能够方便的帮助用户进行sql语句对数据库进行操作,使开发人员能够节约大量时间与精力,然而相对数据窗口的强大,powerbuilder软件本身就显得略有不足,相对其他开发软件而言会有更多的bug。
下面就数据窗口的创建与标准布局做一些讲解。
1.新建数据窗口时常见的处理流程a)新建数据窗口1)选择表和要编辑、要显示的字段。
2)设置检索参数3)设置where条件b)显示处理(不分先后)1)去掉无需编辑、无需显示的,但要存储、处理数据的字段2)调整Header、Detail区域字体大小3)设置显示格式format掩码1.直接掩码写死2.根据条件设置掩码c)输入控制1)设置字段是否可以编辑1.去掉无需编辑、需要显示的字段的焦点2.根据条件设置字段是否可以编辑2)设置字段的编辑风格1.edit标签页下style typea)editb)editmaskc)radiobuttonsd)checkboxe)dropdowndwf)dropdownlistbox3)设置字段掩码(如果无显示掩码,则以编辑掩码显示)1.数值(“0.00”、“###0.00”)2.日期(“yyyy-mm-dd”、“yyyy-mm-dd hh:mm:ss”)d)设置数据窗口的更新属性一、创建powerbuilder数据窗口时的注意事项1.简化数据窗口输出列在powerbuilder中,数据传输的流量问题是值得注意的一个问题,每一个数据从数据库到数据窗口都是需要流量作为代价的。
因此,在创建数据库的时候,能够尽可能的少引入列是一个应当遵守的原则。
理论上,能够不读取的字段就不要将其加入数据窗口中,以减少网络传输。
2.列visible属性设为false后改回自动移动到最后的处理方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PB中下拉数据窗口带参数应用
在数据输入时,当用到下拉列表时,会发现有些数据是和别的数据相关的,这时我们会希望过滤掉那些不相关的数据。
例如生成一个入库单,某种物料有多个供应商,我们要根据物料来过滤掉和这个物料不相关的供应商,这样会加快检索和输入的速度。
入库单表:billrec
1.以supply表,制作一个带参数的数据窗口,命名为d_supply_replace_list,参数列为item_id,字符型,隐藏物料代码列。
2.以billrec表,制作一个数据窗口,命名为billrec_maintain,将supply_id列的edit属性中的style type选定为DropDownDW,datawindow为d_supply_replace_list。
在窗口中放置数据窗口控件dw_1,将其与billrec_maintain数据窗口关联。
在窗口中定义实例变量datawindowchild idwc_child。
3.在dw_1的constructor事件中编写以下脚本:
this.getchild("supply_id",idwc_child) //生成子数据窗口,supply_id为下拉列表列idwc_child.insertrow(0)
idwc_child.settransobject(SQLCA)
this.of_settransobject(SQLCA)
this.insertrow(0)
4.在dw_1的itemchanged事件中编写以下脚本:
long ll_getcolumn
ll_getcolumn = this.getcolumn() //获得当前列
choose case ll_getcolumn
case 7 //假设item_id列是第7列
dw_1.accepttext()
is_id = dw_1.getitemstring(row,7) //获得物料代码
idwc_child.retrieve(is_id) //检索替代供应商
end choose
这样在输入不同的物料时,会像下图那样,只列出相关的供应商。