PowerBuilder实用教程第9章 用户自定义事件
PowerBuilder快速入门讲义
Powerbuilder编程简介
---- Powerbuilder开发步骤
6. 创建数据窗口对象(以便在窗口对象中可以引用) 数据窗口是用于查询、显示和维护来自关系数据库或其他数据源(如Excel 文件或其他文件)数据的对象。在数据窗口中可以定义数据的显示格式、 显示风格和其他数据属性,使数据对用户更加直观和更有意义。 PowerBuilder通过数据窗口对象将若干数据操作进行了封装,从而使程 序界面设计更为方便和灵活。 数据窗口最初使用在PB的C/S结构中,为这种模式提供了强有力的数据 查询和数据维护功能。随着PB及其相关技术和产品的发展,PB已经不是 单一的C/S应用开发工具,已经可以适应Web开发等各种需要。
Powerbuilder编程简介
---- Powerbuilder开发步骤
举例叙述开发步骤 示例:编制一个学生信息综合查询的应用程序
Powerbuilder编程简介
---- Powerbuilder开发步骤
1. 建立好数据库(可以用MS SQL Server或MS Access或Oracle等建立) -------数据库:TeachDB.mdb; 表:student(Sname, Sage,Ssex,Sclass…)
Powerbuilder编程简介
---- Powerbuilder开发步骤
4. 编写Application的事件处理程序(脚本):open(), close() 应用程序对象还有其他一些事件 Connectionbegin 当连接开始时触发此事件,由connect 函数直接触发此事件 Connectionend 当连接结束后触发此事件,由disconnect函数触发 Idle idle(xxx second)函数触发,即当系统处于等待状态指定秒数xxx后触发 该事件,一般处理如关闭系统,提醒用户等。 Systemerror 当程序运行发生任何系统错误时触发该事件,一般处理记录错误,提醒 用户等操作。
PowerBuilder参考手册
PowerBu ilder是一个可视化图形界面的数据库应用系统开发工具,它支持面向对象技术、客户/服务器机制、分布式组件开发和因特网应用。
加服务器负载)。
2.文件服务器网络结构:应用程序在客户工作客户站上运行,文件服务器只提供资源的集中管理和访问途径。
(增加网络负载)3.客户服务器网络结构:向服务器发送处理请求而不是文件请求;服务器返回返回的是处理结果而不是文件。
访问文件服务器的数据库访问客服/服务器的数据库4.分布式客户/服务器网络结构客户端应用程序(客户层)电脑、实施商业规则的组件(中间层)电脑、数据库服务器(服务器层)电脑(1)组件具有不同的应用程序可以重复使用的组件共享特性。
(2)组件具有配置和设计的灵活性,使计算机性能得以改善(3)组件开发使得复杂的应用变为易于管理的模块5.Web网络结构Web服务器(电脑)->中间件(电脑)->数据库服务器(电脑)中间件负责管理W eb服务器和数据库服务器之间的通信,并提供应用程序服务,它能够直接访问数据库、调用外部程序。
或利用程序代码访问数据库。
因此可以提供与数据库相关的动态H TML页面或执行用户查询,并将结果格式化成H TML页面,然后通过Web服务器返回给用户浏览器。
通常软件系统根据需求分为两类。
一类需求是需要比较稳定的而且并能够预先指定的系统,称之为预先指定的系统。
如计算机控制系统,卫星图像处理系统、火箭发射控制、数据库管理系统。
开发这类系统需要预先进行严格需求分析,指定精确的规格说明,并在严格管理下进行传统的生命周期开发。
另一类是需求模糊,随时可变化的系统。
一般是商业和行政数据处理系统、决策支持系面向对象建模得到的模型对象的三个要素(三个子模型),即静态结构(对象模型)、交互次序(动态模型)和数据变化(功能模型)。
PowerBuilder9.0教程分析
软件开发工具_pb_自学指导孙勇第一章 PowerBuilder简介一、目的要求1.本课程在软件课程中的作用;2.信息系统的开发模式;3.掌握PowerBuilder的主要特性;4.初步掌握PowerBuilder开发环境;5.了解应用程序开发步骤;6.熟悉PowerBuilder的安装方法。
二、重点难点重点是PowerBuilder开发环境。
第一章PowerBuilder简介本章主要内容:本章中,首先扼要地介绍本课程在软件课程中的作用和信息系统的开发模式 PowerBuilder的主要特性,然后阐述集成开发环境的组成、各画板的功能、作用、定制开发环境的方法、对象的基本概念等,并在章尾介绍本课程的教学内容以及开发PowerBuilder应用程序的基本步骤。
自学内容:1.1本课程在软件课程中的作用在计算机专业中,软件教学占有非常重要的位置。
为了满足计算机职业岗位群的需要,近年来,我们对计算机网络专业和计算机程序员专业中的软件课程进行了相应的改革。
通过学习Word、Excel、FrontPage等常用软件使学生学会计算机的使用方法;通过学习C语言程序设计、数据结构等课程使学生掌握基本的程序设计方法;通过学习SQL Server使学生掌握网络数据库的设计方法和使用方法;通过学习网页制作和Java语言使学生能够编写网站应用程序;通过学习PB使学生能够编写客户端应用程序;通过学习软件工程使学生能够懂得软件开发的全过程,掌握编写软件的规范,为学生在“软件工厂”从事软件工作打下基础。
从以上分析可知,PB课程属于与职业岗位群直接有关的课程,在整个软件课程体系中占有比较重要的位置。
不同的软件课程应该采用不同的教学方法,根据软件的特点,我们把软件课程分成三种不同类型:1.程序设计类型。
这类课程需要讲的内容较多,讲的内容相对也比较完整,使用传统的“课堂教学+课后习题+上机实验”教学方式即能满足教学要求。
2.交互类型。
[网络编程实用教程]PowerBuilder 实用教程
[网络编程实用教程]PowerBuilder 实用教程[网络编程实用教程]PowerBuilder 实用教程篇一 : PowerBuilder 实用教程程继辉第一章 PowerBuilder 概论PowerBuilder 7.0 简介新特性开发环境1.1 PB 7.0 简介1(1(1 PB 特性 1、支持多种操作系统 Windows、UNIX等操作平台 2、与多种数据库的连接性 Oracle、MS SQL Server Sybase SQLServer 3、丰富的开发工具 4、对Internet的强力支持1.1 PB 7.0 简介客户/服务器结构客户: 从其它计算机读取数据,处理后将数据存储到提供数据的计算机中。
服务器: 向其它计算机提供数据的计算机1.1 PB 7.0 简介面向对象设计概念对象属性方法事件关联1.1 PB 7.0 简介事件驱动过程的程序设计原理事件驱动:程序启动时,只做了一些初始化的工作,然后等待用户或外界的环境的触发。
所有的代码都是编写在不同的事件中。
1.2 PowerBuilder 7.0的新特性全新的用户接口和开发界面1.2 PowerBuilder 7.0的新特性非模态的开发视窗 PB7.0的画板一般是拥有多个视窗的窗口,每个视窗提供查看和修改对象的特定方式或者显示与对象相关的某种信息,见图示1.2 PowerBuilder 7.0的新特性数据库连接新特性1.3工具栏PB7.0 的开发环境菜单画板数据窗口画板第二章应用程序创建应用程序对象设置应用程序的属性应用程序对象的事件对象库搜索表运行应用程序应用程序对象的事件触发时机启动应用程序Open 事件初始化,打开初始化窗口与用户交互系统错误打开其它窗口系统错误启动应用程序应用程序终止关闭并清除所有对象应用程序对象应用程序属性应用程序事件对象库搜索表创建应用程序创建应用程序第三章窗口设计窗口创建窗口控件的基本操作窗口控件属性、事件和函数常用对话框创建窗口创建窗口设计窗口布局的地方窗口或控件属性编写事件代码的地方窗口事件窗口控件属性、事件和函数PB控件: 从行为上区分: 1 能响应用户的操作 2 不能响应用户的操作从用途上区分 1 激活动作类 2 选择项类 3 显示数据类 4 修饰类在窗口中添加控件在窗口中添加控件第四章数据库基础及管理数据库应用技术的发展过程如何开发数据库应用系统数据库结构的设计与实现数据库管理数据库的操作表的定义和数据操作表数据的处理 PB的专用接口与数据库建立连接4.1数据库应用技术的发展过程1、主机应用模式2、文件服务器应用模式3、客户服务器应用模式4、分布式计算应用模式5、WEB网络应用模式主机应用模式大型机应用程序数据库按键信息终端字符终端1 终端2 终端n文件服务器应用模式网络文件服务器数据库文件请求文件工作站1工作站2 应用程序工作站n 应用程序应用程序客户服务器应用模式应用程序网络服务器数据库处理请求处理结果工作站n 应用程序工作站1工作站2 应用程序应用程序文件服务器和C/S的数据库操作比较程序发出查询学号为99090221的信息的SQL请求查询操作在客户端完成查询文件请求文件服务器45000名学生数据的文件45000条记录的文件响应文件请求并返回整个文件程序发出查询学号为99090221的信息的SQL请求接收结果查询请求数据服务器查询在服务器端进行45000名学生数据的文件返回99090221的记录分布式计算应用模式数据库数据库服务器商业服务器实现商业规则的组件客户端应用程序工作站1工作站2工作站nWEB网络应用模式Internet/Intranet 客户端浏览器WEB服务器服务器中间件数据库服务器客户端应用 Java Applet ActiveXInternet/Intranet 客户端浏览器服务器数据库4.2 如何开发数据库应用系统用PowerBuilder开发应用系统时,一般都要经过系统分析、系统设计、系统开发、代码调试、系统测试、生成EXE、交付应用等各个阶段。
《PowerBuilder程序设计基础》-第九章 应用程序的
9.2 编译的基础知识
1. 可执行文件 对开发任何软件来说,所编制的程序最终都要被生成为可执行文件。 对开发任何软件来说,所编制的程序最终都要被生成为可执行文件。只有这样才能脱 离开发环境而独立运行。 有两种方法可生成可执行文件。 离开发环境而独立运行。在 PowerBuilder 中,有两种方法可生成可执行文件。一种是采 用机器码( 用机器码( Machine Code)来生成可执行文件,将所有对象都包括在一个 EXE 文件和动 )来生成可执行文件, 态链接库( 文件)当中;另一种是用伪码来生成可执行文件。 态链接库( DLL 文件)当中;另一种是用伪码来生成可执行文件。将生成 EXE 文件和动 态链接库( 文件) ,在程序执行的时候和 动态库连接。 态链接库( PBD 文件) 在程序执行的时候和 PBD 动态库连接。 , 采用第一种方法生成的可执行文件,但是有很大的局限性。一方面, 采用第一种方法生成的可执行文件,但是有很大的局限性。一方面 ,用这种方法创建 的 EXE 文件必须包括 PBL 中的全部对象,以至于文件通常较大,生成可执行文件花费的 中的全部对象,以至于文件通常较大, 时间长。另一方面, 自身的局限性, 时间长。另一方面 ,由于 PowerBuilder 自身的局限性, 它不能确认那些通过字符串变量 而动态链接的对象。另外,第一种方法生成的可执行文件的移植性差。 而动态链接的对象 。另外,第一种方法生成的可执行文件的移植性差。 2. 动态库文件 PowerBuilder 创建动态库的方式取决于所采用的编译格式: 创建动态库的方式取决于所采用的编译格式: 采用机器代码格式生成的 动态库是 DLL(动态链接库 文件; 采用伪代码格式生成的动态库是 PBD(PowerBuilder 动态链接库)文件; 动态链接库 文件 Dynamic Library)文件 ,它与 DLL 内部格式不同。 文件, 内部格式不同。 文件 另外还需注意的是, 不管用机器码还是用伪码进行编译, 另外还需注意的是 ,在 PowerBuilder 中,不管用机器码还是用伪码进行编译,在执 文件才能运行, 行文件的时候都必须需要几个 DLL 文件才能运行,这些 DLL 文件在 PowerBuilder 的 Shared 目录下。 当发布软件时,应把这些 DLL 文件一并拷贝到软件中,并且应该把它们 目录下。 当发布软件时, 文件一并拷贝到软件中,并且应该把它们 库文件放在同一目录下。 和可执行文件以及 PBD 或 DLL 库文件放在同一目录下。
PowerBuilder函数详解
PowerBuilder函数详解LowerBound()功能:得到指定数组第n维的下界语法:LowerBound ( array {, n } )参数array:数组名n:数值类型,可选项,指定要得到数组哪一维的下界。
缺省值为1返回值Long。
函数执行成功时返回array数组第n维的下界。
如果n的值超过了指定数组的最大维数,那么该函数返回-1。
如果任何参数的值为NULL,LowerBound()函数返回NULL。
UpperBound()功能:得到指定数组第n维的上界。
语法:UpperBound( array {, n } )参数array:数组名n:数值类型,可选项,指定要得到数组哪一维的上界。
缺省值为1返回值Long。
函数执行成功时返回array数组第n维的上界。
如果n的值超过了指定数组的最大维数,那么该函数返回-1。
如果任何参数的值为NULL,UpperBound()函数返回NULL。
Blob()功能:将字符串转换成Blob类型数据。
语法:Blob ( text )参数text:string类型,指定要转换的数据返回值Blob。
函数执行成功时返回转换后的Blob类型数据;如果text参数的值为NULL,则Blob()函数返回NULL。
BlobEdit()功能:将任意类型的数据插入到Blob类型变量的指定位置。
语法:BlobEdit ( blobvariable, n, data )参数blobvariable:Blob类型的已初始化变量,将向该变量中插入数据n:指定插入位置,有效值在1到4,294,967,295之间data:要插入到Blob类型变量中的数据,其数据类型可以是任何有效的PowerBuilder数据类型返回值Unsigned long。
函数执行成功时返回下次可以插入数据的位置;如果blobvariable变量中空间不够或任何参数的值为NULL,则BlobEdit()函数返回NULL。
PowerBuilder控件使用手册
PB控件使用介绍一、PB中使用Microsoft Web Browser控件步骤:在pb的某窗口中加入OLE对象,选择Insert control(插入控件),然后选中"Microsoft WEB 浏览器",(随系统而定的版本),就可以在这个窗口直接使用IE浏览器控件了。
常用函数:(对这个ole控件取名叫ole_web)ole_web.object.navigate(string ls_url) file://浏览某url,譬如:ole_web.object.navigate('') 就是浏览 页面,当然支持本地文件,也支持本地图片文件的浏览,如jpeg,jpg,gif,png等等,如果是不支持的文件,则直接弹出选择打开文件对话框,和ie一模一样。
ole_web.object.goback() file://回退(如果没有内容可退,则会弹出错误,可以屏蔽该错误)ole_web.object.goforward() file://前进,同上常用事件:documentcomplete : url请求的页面完成;downloadcomplete:url中请求的下载完成;常用属性:ole_web.object.width :pixel高度,需要转换为pbunit高度才可以调整ole_web.object.height:同上ole_web.object.offline:离线方式,true,false两者之一你甚至可以用pb写出一个和ie类似的界面用来进行浏览网页或图片。
二、在程序中打印在程序中如何提供打印功能呢?这里有三种调用打印函数的格式可供选择。
1. 对数据窗口控制或者数据窗口可以使用这种打印格式。
DATAWINDOWNAME.Print(cancel_window)这里cancel_window 是一个布尔值,它指出是否要显示一个用户可以用来中止打印动作的窗口。
PowerBuilder实例化指导教程
PowerBuilder实例化指导教程(第二版)余建国主编郑州航空工业管理学院第一版前言我国高校经过连续几年的大规模扩招,在校生人数急剧增加,毕业生就业压力随之增大。
对于各高校来说,如何真正落实素质教育进而提高学生的就业竞争力已成为当前面临的重大课题。
具体到计算机领域,随着IT产业的高速发展,计算机在社会各领域的广泛应用,社会越来越需要大量的高级应用型软件人才,如何培养学生的动手能力、实践能力、创新能力就成为当前素质教育的一个重要体现。
面向对象的软件开发技术以其高质量、高速度、可重用、适于编写大规模程序等特点,已成为当代程序设计的主流。
各高校计算机专业纷纷开设了相应课程(如面向对象技术、C++、Delphi、PowerBuilder等)。
然而,受传统教学思想、教学模式的影响,无论是教材的编撰,还是教学方式的组织仍习惯于过去重理论、轻实践,重讲解、轻启发与创新的思维上。
在教学过程中只讲不练或多讲少练,导致学生很难将面向对象的软件开发技术应用于软件系统开发当中。
动手能力和创新意识差,已经无法适应新世纪对应用型软件人才的要求。
经过数年的教学、课题研究与软件开发实践,我们领悟到,如果以一个现实世界的应用系统实例开发过程为主线,并在其中贯穿基于面向对象开发技术的概念、思想、方法与技巧,引导学生将面向对象技术融入应用系统开发的全过程中,能够实现讲与练、理论与实践的协调统一,将素质教育落到实处。
基于此思路,结合我们具体教授面向对象开发技术课程和相关研究课题的一些感受,我们编著了这本《PowerBuilder实例化指导教程》,旨在为我院计算机科学与技术专业相似课程的教学改革提供一种新的思路,为学生学习本类课程提供一种新的方法。
教程从整体上可分为三大部分:第一部分包括第一、第二两章内容,分别从宿舍管理信息系统的系统分析与设计,以及掌握PowerBuilder的集成开发环境诸方面为整个系统的实现做准备。
第二部分内容涉及面向对象技术在应用系统实现中的应用,涵盖第三章至第十三章,其内容按照系统开发的步骤并结合PowerBuilder的主要知识点逐章展开,引导学生系统地掌握面向对象技术。
PowerBuilder参考手册
PowerBuilder参考⼿册PowerBuilder 是⼀个可视化图形界⾯的数据库应⽤系统开发⼯具,它⽀持⾯向对象技术、客户/服务器机制、分布式组件开发和因特⽹应⽤。
加服务器负载)。
2.⽂件服务器⽹络结构:应⽤程序在客户⼯作客户站上运⾏,⽂件服务器只提供资源的集中管理和访问途径。
(增加⽹络负载)3.客户服务器⽹络结构:向服务器发送处理请求⽽不是⽂件请求;服务器返回返回的是处理结果⽽不是⽂件。
访问⽂件服务器的数据库访问客服/服务器的数据库4.分布式客户/服务器⽹络结构客户端应⽤程序(客户层)电脑、实施商业规则的组件(中间层)电脑、数据库服务器(服务器层)电脑(1)组件具有不同的应⽤程序可以重复使⽤的组件共享特性。
(2)组件具有配置和设计的灵活性,使计算机性能得以改善(3)组件开发使得复杂的应⽤变为易于管理的模块5.Web⽹络结构Web服务器(电脑)->中间件(电脑)->数据库服务器(电脑)中间件负责管理Web服务器和数据库服务器之间的通信,并提供应⽤程序服务,它能够直接访问数据库、调⽤外部程序。
或利⽤程序代码访问数据库。
因此可以提供与数据库相关的动态HTML页⾯或执⾏⽤户查询,并将结果格式化成HTML页⾯,然后通过Web服务器返回给⽤户浏览器。
信息系统开发主要分为:结构⽣命周期发、快速原型法和⾯向对象法。
通常软件系统根据需求分为两类。
⼀类需求是需要⽐较稳定的⽽且并能够预先指定的系统,称之为预先指定的系统。
如计算机控制系统,卫星图像处理系统、⽕箭发射控制、数据库管理系统。
开发这类系统需要预先进⾏严格需求分析,指定精确的规格说明,并在严格管理下进⾏传统的⽣命周期开发。
另⼀类是需求模糊,随时可变化的系统。
⼀般是商业和⾏政数据处理系统、决策⽀持系互次序(动态模型)和数据变化(功能模型)。
当涉及交互作⽤与时序的时动态模型最为重要。
当解决问题运算规模很⼤的时功能模型很重要。
需求分析主要解决的问题:1.信息要求,⽤户需要从数据库中获取什么数据,并由此决定在数据库中存储哪些数据。
PowerBuilder实用教程
图1-15 计算圆面积 应用程序
1.5 简单应用程序实例
在硬盘上创建用于存放计算圆面积应用目录D:\myPBEx 。 步骤: 1.创建应用 (1) 创建新的工作空间。单击New图标按钮 选择“Workspace” 页 , 单 击 “ OK” , 弹 出 保 存 文 件 对 话 框 , 选 择 到 新 建 的 目 录 D:\myPBEx,输入文件名为“Ex1”。 (2) 创 建 新 的 应 用。 单 击 New 图 标 按 钮 “ Target” 页 应 用 “Application”,单击“OK”保存文件对话框,选择到新建的目 录D:\myPBEx,输入文件名为“CalArea”,见图1-16,单击完成 键“Finish”,系统自动用上面输入的应用名称加上扩展名“.pbl” 和“.pbt”组成库名CalArea.pbl以及目标文件名CalArea.pbt。
1.1 PowerBuilder的特点
5. 功能强大、使用方便的数据窗口对象 PB一个很大的特点就是提出了数据窗口对象的概念。数据窗口对象是专 门为了访问后台的数据库服务的,数据窗口对象中定义了数据的来源和 数据的显示风格,对自由风格和列表风格的数据窗口,在保持原有风格 的同时将所需的内容自动转换成HTML页面。 6. 丰富的数据表现风格 数据窗口为展现数据的本质提供了丰富的手段,利用它可以直观地查询、 修改、插入、删除、打印、浏览数据,数据窗口还提供了组框对象和按 钮对象,开发人员可以使用它们将数据窗口中的对象进行分组,并且将 用户对数据窗口的操作界面集成在数据窗口内部。 7. 灵活快捷的数据转移方法 利用数据管道,开发人员和应用程序能够简单、方便、快捷地把数据库 表中的数据从一个表复制到另一个表、从一个数据库复制到另一个数据 库、从一个DBMS复制到另一个DBMS。 8. 操作方便的可视化集成开发环境 PowerBuilder为开发人员提供了一个高度集成的可视化编程环境,并且 相互之间有机的结合,相互关联,给应用程序开发人员提供了极大的方 便,提高了应用程序开发的效率。
深入了解PowerBuilder事件
深入了解PowerBuilder事件摘要:事件是指作用在对象上的动作,在powerbuilder中,系统的运行是通过事件(event)的触发来实现的,powerbuilder中的大多数对象拥有自己的事件,用户也可以根据需要构造各种自定义事件,自定义事件可以像函数那样带有参数。
事件在powerbuilder应用开发中极其重要,加深对事件的认识有助于提高系统开发的整体水平。
本文系统阐述了powerbuilder事件的分类、事件id号、触发机制、事件的返回值以及执行流程等内容。
关键词:powerbuilder 对象事件系统消息中图分类号:tp3 文献标识码:a 文章编号:1007-9416(2011)12-0174-01通常,powerbuilder事件分为系统事件和用户自定义事件。
其中,系统事件是指被用户的动作或系统消息触发的事件,部分系统事件带有返回值,如果定义了参数,在触发时可以进行参数值传递;而用户自定义事件是为增强对象的功能而增加的事件,与系统事件一样,用户自定义事件可以指定事件的参数和返回值,并指定是否让事件使用系统消息等内容。
1、事件id与系统消息的关系在powerbuilder中,被用户的动作或操作系统所触发的事件必须具有id(如,系统事件),事件id的作用是把事件与系统消息连接起来。
至于用户自定义事件,可以使用列在event declaration对话框中的事件id,用来响应某个对应的系统消息。
其中,event列表框中的“pbm_”代码为映射到powerbuilder中的系统消息代码。
在构造用户自定义事件时,不能修改“与系统消息有关”事件的参数及返回值,这是由于与事件id相对应的系统消息一旦发生,powerbuilder即刻触发该事件并为事件参数赋值。
另外,若用户自定义事件“与系统消息无关”(如,open事件),则不为事件选择id,这样做的好处是:事件只能在应用程序运行中由程序来触发,而不会被用户的动作或系统活动所触发。
PB事件和自定义事件讲解
create by amu on 2012-08-16----------------------------------------------------------------------------------------1.window中的事件事件名触发的时机01.Activate 在窗口激活之前触发02.Clicked 当用户用鼠标单击窗口的空白区域(没有控件的区域)时触发03.Close 当关闭窗口时触发04.CloseQuery 当清除或关闭窗口时触发。
然后检查Message.ReturnValue的值,若为1,则窗口不能关闭05.Deactivate 当窗口变为非活动状态时触发06.DoubleClicked 当用户双击窗口的空白区域时触发07.DragDrop 当一个可拖动的控件被拖动到窗口上时触发08.DragEnter 当一个可拖动的控件进入窗口时触发09.DragLeave 当一个可拖动的控件离开窗口时触发10.DragWithin 当一个可拖动的控件在窗口内部拖动时触发11.Hide 在窗口被隐藏时触发12.HotLinkAlarm 在DDE中服务器应用已经发送了新的数据,客户DDE应用已经接收到这些数据时触发13.Key 当用户击了一个键且插入点不在RichTextEdit编辑控件或数据窗口控件时触发14.MouseDown 当用户在窗口的空白区域按下鼠标左键时触发15.MouseMove 当鼠标在窗口内移动时触发16.MouseUp 当用户在窗口的空白区域释放鼠标左键时触发17.Open 当程序调用以此窗口为参数的Open函数时,此事件在该窗口打开之后,显示之前触发18.Help .........19.Other 当一个非PowerBuilder事件的Windows信息发生时触发20.RButtonDown 在窗口的空白区域单击鼠标右键时触发21.RemoteExec 当一个DDE客户应用发送了一个命令时触发22.RemoteHotLinkStart 当一个DDE客户应用开始一个热连接时触发23.RemoteHotLinkStop 当一个DDE客户应用结束一个热连接时触发24.RemoteRequest 当一个DDE客户应用请求数据时触发25.RemoteSend 当一个DDE客户应用已经发送了数据时触发26.Resize 当用户或程序打开或重设窗口大小时触发27.Show 当程序运行此窗口的show函数时,此事件在窗口显示之前触发28.SystemKey 当插入点不在某个行编辑中且用户按了ALT或ALT加其它键时触发29.Timer 在调用Timer函数后,经过了Timer函数指定的时间后触发30.ToolBarMoved 当MDI窗口的工具条移动时触发以上是我新建一个window是window的事件原来的顺序,下面是我自己常用的排序:01.window打开时发生的事件事件名触发的时机Activate 在窗口激活之前触发Resize 当用户或程序打开或重设窗口大小时触发Open 当程序调用以此窗口为参数的Open函数时,此事件在该窗口打开之后,显示之前触发Show 当程序运行此窗口的show函数时,此事件在窗口显示之前触发02.window关闭时发生的事件Deactivate 当窗口变为非活动状态时触发CloseQuery 当清除或关闭窗口时触发。
数据窗口事件处理
10.6 数据窗口事件处理技术在PowerBuilder中,事件有两种,一种是PowerBuilder在语句描绘器中为每一个标准控件设定的一些常用事件,一般的编程人员基于这些事件就可以完成常见的操作。
但是有些情况下,这些事件并不能完全满足应用程序的要求,这时,就需要使用另一种事件——自定义的用户事件。
一般的用户定义事件是与Windows消息对应的事件,这种事件是在应用程序接收到Windows消息后触发的,另外一种用户定义事件则是没有对应的事件,这类事件要由用户在程序代码中触发。
但是,数据窗口控件的自定义消息又有所不同。
因为数据窗口不是标准窗口对象,因此它们所提供的消息不是标准的Windows API消息,这些消息有自己的事件。
前面10.2.2节已经对数据窗口控件的常用事件做了总结,对于用户自定义事件,如果是在代码中触发事件,使用起来也比较容易。
只要在代码中适当的位置使用triggerevent函数就可以了。
因此本节主要讲述如何使用由PowerBuilder数据窗口所提供的消息触发用户自定义事件。
10.6.1 数据窗口消息的含义PowerBuilder为数据窗口提供了23种消息,为便于读者参考,下面列出了各消息的名称和功能:● PBm_dwclosedropdown:关闭下拉式数据窗口。
● PBm_dwscrollend:在数据窗口中卷滚到最后一行。
● PBm_dwscrdlhome:在数据窗口中卷滚到第一行。
● PBm_dwscrolllineend:卷滚到当前行的行尾(水平方向)。
● PBm_dwscrolllinehome:卷滚到当前行的行首(水平方向)。
● PBm_dwnbacktabout:即将通过Shift+Tab组合键离开该控件。
● PBm_dwnchanging:控件即将被改变。
● PBm_dwndropdown:下拉列表框的下拉部分即将可见。
● PBm_dwngraphcreate:即将创建图形。
PowerBuilder函数使用手册
PowerBuilder函数全集PrintDefineFont()功能定义打印作业使用的字体,对每个打印作业PowerBuilder支持八种字体。
语法PrintDefineFont(printjobnumber,fontnumber,facename,height,weight,fontpitch,fontfamily, italic,underline)参数printjobnumber:用PrintOpen()函数打开的打印作业号fontnumber:指定赋给当前定义字体的编号,有效值在1到8之间 facename:string类型,指定字体名称,该字体应该是你的打印机支持的字体,比如“宋体”height:Integer类型,使用正值指定字体的高度,以千分之一英寸为单位;使用负值指定字体点数,比如,-18代表18点。
一般来说,使用点数更精确些weight:指定字体的磅数,正常字体为400磅,粗体为700磅fontpitch:FontPitch枚举类型,指定字体标准。
有效取值为:Default! - 缺省值;Fixed! - 固定形式;Variable! - 可变形式fontfamily:FontFamily枚举类型,指定字体系列。
有效取值为:AnyFont!、Decorative!、Modern!、Roman!、Script!、Swiss!italic:boolean类型,指定是否使用斜体样式。
有效取值为:TRUE - 使用斜体样式;FALSE - 不使用斜体样式。
缺省值为FALSEunderline:boolean类型,指定是否加下划线。
有效取值为:TRUE - 加下划线;FALSE - 不加下划线。
缺省值为FALSE返回值Integer。
函数执行成功时返回1,发生错误时返回-1。
如果任何参数的值为NULL,PrintDefineFont()函数返回NULL。
用法在一个打印作业中,应用程序能够最多同时定义8种字体。
PowerBuilder9教程
集成性ห้องสมุดไป่ตู้
PowerBuilder9可以与其他 开发工具和企业级框架集成, 方便开发人员构建复杂的应 用程序。
PowerBuilder9的应用领域
企业级应用程序开发
PowerBuilder9适用于构建企业级应用程 序,如财务管理、人力资源管理和客户关
系管理等。
Web应用程序开发
PowerBuilder9支持Web应用程序开发, 可以通过多种技术实现Web应用程序的开
PowerBuilder9的特点与优势
易用性
PowerBuilder9提供了直观 的图形化开发环境,使得开 发人员能够快速构建应用程 序。
高效性
PowerBuilder9支持高效的 数据库访问和操作,提供了 多种数据窗口控件,方便开 发人员处理数据。
跨平台性
PowerBuilder9可以在多种 操作系统上运行,如 Windows、Linux等,方便 开发人员在不同平台上部署 应用程序。
数据库配置
在PowerBuilder中,用户需要配置数据库连接参数,如服务器地址、用户名、密码等,以确保能够成 功连接数据库。
数据窗口对象的使用
数据窗口设计
数据窗口是PowerBuilder中用于展示和 操作数据库数据的重要对象。用户可以 在数据窗口中定义数据列、数据类型、 数据编辑方式等。
VS
数据窗口操作
06 PowerBuilder9高级特性
CHAPTER
分布式应用程序开发
分布式应用程序 PowerBuilder9支持分布式应用 程序的开发,允许应用程序在多 个计算机上运行,实现资源共享 和负载均衡。
分布式数据库访问 PowerBuilder9支持对分布式数 据库的访问,使得应用程序可以 同时访问多个数据库,提高数据 处理能力。
PowerBuilder第9讲 数据窗口应用
数据窗口dw_1
数据窗口dw_2
dw_1数据缓冲区
dw_2数据缓冲区
如何解决这一问题?引出下面内容。 三、共享数据窗口 1、什么是共享数据窗口 如果两个或多个数据窗口共享相同的数据 缓冲区,则称这些数据窗口为共享数据窗 口。 图示如下dw_2
共享数据缓冲区
说明:1、主从数据窗口可以针对一个数 据库表数据,也可以针对多个数据库表; 举例:售货单查询。 售货记录是由一对多的二个表组成,售货 记录主表中的一行数据记录一次销售活动, 而售货记录从表则记录一次销售活动中所 销售的每一种商品。如果我们要查询每次 销售活动的情况,则可以利用主从关系数 据窗口实现相应功能。
数据存储通常使用在下述四个方面:
.进行后台数据库数据处理。 .为多个窗口上共享数据的数据窗口控件服 务。 .避免使用嵌入式SQL语句操纵数据库中数 据。 .在分布式应用的服务器中为客户端准备数 据。
一、数据存储对象的属性
数据存储对象的属性很简单,只有三个(它们也 正是数据窗口控件存储数据所需的属性): 1.DataObject----类型为String,保存与数据存 储对象相关联的数据窗口对象的名称(例如数据 窗口对象d_dept)。 2.Object----类型为dwObject,保存数据窗口 对象、数据窗口对象内对象以及这些对象的所有 属性。数据存储的Object属性用于在代码中直接 访问上述对象的各种属性以及保存在数据存储中 的数据。 3.ClassDefinition----类型为PowerObject, 保存数据存储的类定义信息。
在窗口中用表格风格的数据窗口实现数据库表中 数据的检索、修改等操作; 在窗口中用自由风格的数据窗口实现数据库表中 数据的检索、修改等操作。
《PB程序设计》第9章用户自定义事件
返回本节 录
9.4 触发用户事件
Static和Dynamic选项只能选择一个,缺省时为 Static。Static表示编译时指定事件必须存在,系统 要进行返回值类型检查;Dynamic表示编译时指定事 件可以不存在,系统把返回值类型检查推迟到应用 程序运行时进行。 Event是关键字,表示后面的Event Name是个事 件名而不是函数。Para list是事件的参数,有多个 参数时参数之间用逗号分隔。 如果用户事件定义了参数,只能使用上述格式触 发事件,而不能使用函数TriggerEvent()或 PostEvent()。
返回章目录
9.1用户自定义事件在应用中的作用
在下列情况下经常使用用户事件: (1)解决对象与窗口之间的通信问题。用 户事件可以通过参数进行信息传递。 (2)响应特殊操作。这些操作没有相应的 PowerBuilder预定义事件 (3)支持用户通过多种多样的方式完成同 一个功能
返回本节 录
返回本节 录
9.5 用户自定义事件应用实例
为了测试,我们在表中添加几条记录如图9ˉ12 所示
返回本节 录
9.5 用户自定义事件应用实例
运行程序:单击“显示记录”按钮,结果如图 9ˉ13所示
9.1用户自定义事件在应用中的作用
用户事件在许多地方与用户定义函数十分相似,用 户事件运用的灵活程度很大程度上反映出应用程序 的灵活性和适用性。PowerBuilder开始将事件和函 数同化,统称为方法。事件也可以带输入参数,并 有返回值。有时形式上难以区分事件和函数。不过, 函数一般是由用户调用,在编程时就已决定,而事 件除了可以由用户触发外,还可以由系统触发。大 多数的事件,都是由系统触发的。因此,事件比函 数更为灵活,应用范围更广
PowerBuilder(类、事件、数据类型、API)
基本目录整理:事件含义触发事件对照API函数5种类:custom class :不可见用户自定义类,如实现函数的多态standard class :标准不可见控件扩展类custom visual :用户自定义可见类External Visual: 外部可视类,如ocx引入Standard Visual: PB标准可视控件扩展“Control”和“Object”的区别:在PB里,“Control”和“Object”都是类,只不过前者是可视类,后者是不可视类,叫法不同罢了。
无论使用哪种方式创建的,对于PB库画板来说,都是UserObject,通过Insert-Object-UserObject或Insert-Control-UserObject 都可以把它插入到Window里,当然,这个对象应该是可视的。
另外的插入办法是通过PB的IDE左侧的对象树,直接用鼠标Drag就可以了,这种方法不仅可以插入可视的UserObject,还可以插入不可视的类(可以通过View-Non Visual object llist看到它)对于拷贝来的代码,可以用一下方式判读是从哪里继承来的:双击该对象,观察样式1:如果仅仅是一个DataWindow或其它控件,说明该对象是从Standsrt Visual 继承的;2:如果是多个控件的复合体,说明它是从Custom Visual继承的3:如果是一个PB中不存在的控件,说明它可能是从External Visual 继承的4:如果它没有Layout视图,说明它是从Custom Class 中继承的5:如果它LayOut视图,但没有什么控件,说明它是从Standard Class中继承的还有一个办法是右击该对象,选择Edit source,看看它的声明,Global type XXX from YYY,YYY就是祖先的类型总的来说,从横向和纵向来看:横向--standard,custom纵向--visual,nonvisual既然是标准,就有pb基本控件的事件,属性等,反之custom则得自定义很多事件和属性投机的检查代码:选择Edit source,看看它的声明,Global type XXX from YYY,YYY就是祖先的类型如果是external visual就可以看到以下代码:global type b from userobjectinteger width = 288integer height = 168userobjects objecttype = externalvisual!事件的含义单选或多选按钮消息(前缀:pbm_bm)pbm_bmgetcheck 单选按钮或多选按钮是否被选。
PowerBuilder事件
触发的时机 当单击窗口或控件时触发 在窗口中的 open 事件发生之前触发 在窗口中的 close 事件发生之后触发 在此控件得到焦点上时触发 在此控件失去焦点时触发 当一个可拖动的控件被拖动到窗口或控件上时触发 当一个可拖动的控件进入窗口或控件上时触发 当一个可拖动的控件离开窗口或控件时触发 当一个可拖动的控件在窗口或控件内部时触发 在控件区域内单击鼠标右键时触发 当一个非 PowerBuilder 事件的 Windows 信息发生时触发
PowerBuilder10.5
事件
▪ 在PowerBuilder中,系统的运行是由事件驱动的。也就是说,系统的运行是通过 事件(Event)的触发来实现的。事件是指作用在对象上的动作,事件处理程序是 指该动作发生时执行的一段程序。
▪ PowerBuilder中的大多数对象──应用对象、窗口对象及窗口上的控件对象、菜单 对象都拥有自己的事件。此外,还可以有用户自定义事件。不同的对象可以拥有 相同的事件(如菜单和窗口上的控件都有Clicked事件),也可以拥有不同的事件。 每个对象的事件处理程序写在此对象相应的事件中,这些事件处理程序通过发生 在相应对象上的动作而被触发执行,从而完成系统要求的工作。
§1.3.3数据窗口控件的事件
事件名称 ButtonClicking ButtonClicked DbError DoubleClicked
EditChanged Error ItemChanged
ItemError ItemFocusChanged PrintStart PrintEnd PrintPage Resize RetrieveStart RetrieveEnd RetrieveRow RowFocusChanging RowFocusChanged ScrollHorizontal ScrollVertical SqlPreview
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PowerBuilder实用教程(第5版)
第9章 用户自定义事件
——用户事件编程实例
用户事件编程实例
【例】命令按钮的用户事件编程。 利用第5章中所创建的“XSCJ”数据库,设计如图9.5所示的窗口。希望当焦点落在命令按钮 上时,按【Enter】键能够代替鼠标。在数据窗口中,按【Enter】键可以跳到下一个输入项,而不 是下一行。
PowerBuilder实用教程(第5版)
第9章 用户自定义事件
——用户事件号
用户事件号
PowerBuilder没有提供事件标记的说明手册,但大部分可以从标记名推断其含义。表9.1列出 了部分常用事件标记的前缀及其含义,表9.2列出了部分常用事件标记及其含义。
前 缀 pbm_cb pbm_dw pbm_dde pbm_e 含 义 通用对话框消息 数据窗口 前 缀 pbm_lb pbm_lv 列表框 列表视图(Listview) 树形视图(Treeview) 窗口 含 义
可以为用户事件定义参数及返回值。在“Return Type”中 选择返回值类型,在“Argument Type”中选择参数类型,在 “Argument Name”中输入参数名。在图9.2中,单击鼠标右 键,将弹出一个选单,如图9.3所示,可以增加参数(Add Parameter)、插入参数(Insert Parameter)和删除参数 (Delete Parameter)。
触发用户事件
如果用户事件定义了参数,则只能使用上述格式触发事件,而不能使用函数TriggerEvent()或 PostEvent ()。 例如: cb_1.EVENT Clicked() //触发控件“cb_1”的鼠标单击事件,等价于cb_1.TriggerEvent(Clicked!) w_1.Event u_display(4,"math") //触发窗口“w_1”的用户自定义事件u_dispaly,它带两个参数。只能用这种方法触发。
为实现如图9.5所示的功能,可用自定义事件。 (1)创建一个“student.pbl”,其中 “ApplicationObject”为“stu”,再建一个窗 口“w_uevent”,窗口中的控件分别为 “dw_1”“cb_append”“cb_insert”“cb_d elete”“cb_retrieve”“cb_update”和 “cb_return”。 建立数据窗口对象“d_xs”,将“dw_1”的 “DataObject”属性设为“d_xs”。
在定义用户事件时,可以定义事件参数。但TriggerEvent和PostEvent不能带事件参数(但可以 为Message传送用户消息),因此需用下面的格式触发: object_name. [Trigger | Post] [Static | Dynamic] EVENT event_name( [para_list] )
定义用户事件
事件是从属于某个对象的,因此定义用户事件,首先要选定所在的对象,然后打开“Script” 窗口,再选择“(New Event)”,如图9.1所示,将出现事,用户事件名和用户事件号是必须要输的,其他则由用户决定。为区别于系统预定义 事件,用户事件名一般以“u_”或“ue_”为前缀。
用户事件编程实例
(2)编写代码。 ①为应用对象“stu”的“Open”事件编写如下代码: Open(w_uevent) ②为窗口“w_ uevent”的“Open”事件编写如下代码:
SQLCA.AutoCommit =TRUE sqlca.DBMS= "odbc" sqlca.database= "XSCJ" sqlca.dbpass="dba" erid="sql" sqlca.servername = "" sqlca.dbparm = "Connectstring='DSN=XSCJ;UID=dba;PWD=sql;'" sqlca.logid="" sqlca.logpass="" CONNECT; IF sqlca.sqlcode<>0 THEN MessageBox("=====错误信息提示=====","不能连接数据库! ~r~n~r~n请询问系统管理 员",stopsign!) RETURN END IF dw_1.SetTransObject(SQLCA)
动态数据交换(DDE) pbm_tv 编辑控件 pbm_
PowerBuilder实用教程(第5版)
第9章 用户自定义事件
——删除用户事件
删除用户事件
定义的用户事件号及名称不 能更改,只能删除。在该事 件的代码编辑窗口单击鼠标 右键,将弹出一个选单(如 图9.4所示),选择 “Delete Event”,将删除 该事件。要注意的是, PowerBuilder对该删除操作 不做提醒,一经选择 “Delete Event”,就立刻 删除。
PowerBuilder实用教程(第5版)
第9章 用户自定义事件
——触发用户事件
触发用户事件
触发用户事件有三种格式,前两种是介绍控件时已介绍的两个函数:
object_name.TriggerEvent(event_name) object_name.PostEvent(event_name) 其中,object_name为对象名;event_name为事件名,对系统事件而言,是枚举类型,如Clicked! 等,对用户自定义事件而言,是一个字符串。 例如: w_1.TriggerEvent(Clicked!) w_1.TriggerEvent("u_key") //触发窗口“w_1”的鼠标单击事件 //触发窗口“w_1”的用户自定义事件u_key
PowerBuilder实用教程(第5版)
第9章 用户自定义事件
——定义用户事件
在下列情况下经常使用用户事件。 (1)解决对象与窗口之间的通信问题。用户事件可以通过参数进行信息传递。 (2)响应特殊操作,这些操作没有相应的PowerBuilder预定义事件。例如,大多数的人都习 惯于在每项数据录入后按【Enter】键,转到下一个输入项。但在Windows环境下,系统都是默认 使用【Tab】键或【Shift+Tab】键转换到下一个数据项或上一个数据项,而用户按【Enter】键, 系统会将焦点转到下一条记录的第一个输入项上。 (3)支持用户通过多种方式完成同一个功能。例如,既允许用户通过单击窗口中的按钮完成, 也允许用户通过选择选单项完成。使用用户事件后,就只需要在一个地方编写代码,在需要使用该 功能的地方触发相应的用户事件就可以了。