PBDOM操作XML文档轻松入门_PowerBuilder
第3章 PowerBuilder编程入门

图3-34 在其他画板打开时不能产生可执行文件
图3-35 Project画板提示保存当前的工程
(4)关闭Project画板,系统会提示对当前的工程进行保存,如图3-35 所示。
(5)单击“是”按钮,出现“Save Project”对话框,如图3-36所示。 在Projects输入框中输入工程名称score后,按“OK”按钮保存刚才所创建 的工程。
选择“Application”图 标,然后单击“OK”按钮,弹 出如图3-25所示的对话框。在 Application Name编辑框中输 入内容score并按Tab键后,将 光标转移到其他的编辑框后, 其他两个编辑框中会自动填入 相应的内容。
图3-24 “New”对话框
应用名
库名 目标文件名
图3-25 “Specify New Application and Library”对话框
下 午 10:15:33
PowerBuilder
15/21
3.4 PowerBuilder开发环境总览
1.PowerBuilder开发环境
标题栏
菜单栏
工具条
系统树 窗口
用户工作区
夹子窗口
状态栏
图3-37 PowerBuilder主窗口界面
下 午 10:15:33
PowerBuilder
2.PowerBuilder的菜单栏
– 第三部分中的Customize(定制)
和New(新建)用于定制和新建工 具条。
– 第四部分中的“Show Text”选项
用以打开/禁止按钮的描述文本。
图3-66
设置工具条属性菜单
下 午 10:15:33
PowerBuilder
XML DOM 入门指南

XML DOM 入门指南摘要:本文讨论当XML 文档被Microsoft(R) XML Parser 显露之后,如何通过执行XML DOM 来访问和操作XML 文档。
目录asp#Intro">前言asp#What">DOM 的确切定义是什么?asp#How">如何使用XML Dom?asp#HowDo">如何加载文档?asp#Dealing">处理故障asp#Retrieving">在XML 文档中检索信息asp#HowDoI">如何在文档中来回移动?asp#Now">现在做什么?前言假如您是Visual Basic(R) 开发人员,您收到一些“可扩展的标记语言(XML)”文档格式的数据。
此时您一定希望得到XML 文档中的信息,并将这些数据结合到Visual Basic 的解决方案中。
您必然会自己编写代码来分析XML 文件的内容,该文件不过是个文本文件而已。
但这决不是多快好省的办法,而且抹煞了XML 的优点:表现数据的结构化方法。
检索XML 文件中的信息的较好方法是使用XML 分析程序。
十分简单,XML 分析程序是个软件,它读XML 文件并使其中的数据成为可用的。
作为Visual Basic 的开发人员,希望使用支持XML“文档对象模型(DOM)”的分析程序。
DOM 定义了分析程序应当显露的标准命令集,使您能够在程序中访问HTML 和XML 文档内容。
支持DOM 的XML 分析程序取出XML 文档中的数据,并通过一组可以对它编程的对象来显露它。
在这篇文章中,您将学会当XML 文档被Microsoft(R) XML Parser 显露之后,如何通过执行XML DOM 来访问和操作它(Msxml.dll)。
在往下阅读之前,应当看一下原始的XML 文件,以便对分析程序如何使您的生活更加轻松有个概念。
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.交互类型。
2024版pb教程入门到精通x

03PowerBuilder (PB )是一种高效能的应用程序开发工具,用于构建企业级的数据库应用。
PB 概述从官方网站下载安装包,按照安装向导逐步完成安装过程,包括同意许可协议、选择安装路径、配置组件等。
安装步骤支持Windows 操作系统,需要安装相应的数据库客户端或服务器。
环境要求pb 概述与安装界面布局PB的集成开发环境(IDE)包括菜单栏、工具栏、代码编辑器、对象浏览器等部分,方便开发者进行各种操作。
编码风格PB支持多种编程风格,如事件驱动、面向对象等,可根据项目需求选择合适的风格。
调试工具PB提供了强大的调试工具,包括断点设置、单步执行、变量监视等功能,帮助开发者快速定位并解决问题。
编程环境介绍01基本语法PB的语法基于Pascal语言,包括赋值语句、条件语句、循环语句等,易于学习和掌握。
02数据类型PB支持多种数据类型,如整型、浮点型、字符型、日期型等,满足不同类型数据的处理需求。
03数据类型转换PB提供了丰富的数据类型转换函数,方便开发者在不同数据类型之间进行转换。
基本语法与数据类型变量、常量与运算符变量PB中的变量用于存储程序运行过程中的临时数据,可根据作用域和生命周期进行分类。
常量常量是在程序运行过程中保持不变的量,可用于定义程序中的固定值。
运算符PB支持多种运算符,包括算术运算符、比较运算符、逻辑运算符等,用于实现各种复杂的计算和控制逻辑。
掌握`If...Then...Else`语句,实现基于条件的程序流程控制。
条件语句熟悉`For`、`While`等循环语句,实现重复执行某段代码的功能。
循环语句了解`Select Case`语句,根据不同情况执行不同代码块。
选择性语句学会使用`Exit`语句退出循环或程序,以及`End`语句结束程序。
退出与结束控制结构掌握如何定义函数,包括函数名、参数列表和返回值类型等。
函数定义明确过程与函数的区别,过程不返回值,而函数可以返回值。
过程与函数区别了解如何在程序中调用函数,传递参数并接收返回值。
PB教程入门

1.1 PowerBuilder的特点
9. 编程方法简便 PB的编程语言PowerScript提供基本的流程控制语句,还提供了 几百个函数来操纵各种对象和提供诸如DDE,OLE等方面的支持。 此外还可以定义自己的函数,处理特定的事件。 10.对Web的完整支持 Internet特性和组件包括: (1) Web.PB DLL (2) Web.PB类库 (3) Web.PB向导 (4) PowerBuilder Window Plug-in DLL。(5) Window ActiveX (6) PowerBuilder DataWindow Plug-in DLL。 (7) O‘Reilly WebSite Web服务器。 (8) Context对象 (9) HTML增强 (10) JavaBean代理 11.增强的分布式计算能力 组建分布式系统的特性包括: (1)共享对象 (2) 异步处理 (3) 同步客户端与服务器端数据窗 口缓冲区的状态 (4) 服务器推技术(Push)
弹出保存文件对话框,新建工作空间文件名为ex.pbw。
1.3 了解Code Examples
在树型窗口中,在新建 的工作空间ex上右键弹 出的菜单中选择“Add Target…”项
1.3 了解Code Examples
弹 出 “ Add Target To Workspace” 对 话 框 ; 在 安 装 PowerBuilder 目 录 下 找 到 pbexamfe.pbl 文 件。
主要画板及其功能: Application painter应用画板 :指定应用级的属性和编写应用级 的脚本; Database painter数据库画板:管理数据库,设置数据库的访问 控制,维护数据以及创建新表; DataWindow painter数据窗口画板:创建数据窗口对象; Data pipeline painter数据管道画板:创建数据管道对象,从一 个数据源向另一个数据源传输数据; Function painter函数画板:创建全局函数; Library painter库管理画板:创建和管理PowerBuilder的应用库; Menu painter菜单画板:创建菜单对象; Project painter工程画板:创建可执行文件、动态库、组件和代 理对象; Query painter查询画板:图形化方式定义SQL Select语句,并保 存为Query对象,供数据窗口或数据管道使用;
XML基础入门和简易教程.word精品文档45页

什么是XML资料引用:http://knowsky/343580.htmlxml即可扩展标记语言(eXtensible Markup Language)。
标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。
如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。
XML是从SGML中简化修改出来的。
它主要用到的有XML、XSL 和XPath等。
上面这段是对XML的一个基本定义,一个被广泛接受的说明。
简单说,XML就是一种数据的描述语言,虽然它是语言,但是通常情况下,它并不具备常见语言的基本功能——被计算机识别并运行。
只有依靠另一种语言,来解释它,使它达到你想要的效果或被计算机所接受。
假如你是刚接触XML的新手,那么可能并无法从定义上是了解XML是什么。
也许,你可以换个角度来认识XML是什么;从应用面来认识XML,从XML可以做些什么来认识它,这应该能比那更空洞的定义对你更有帮助。
XML应用面主要分为两种类型,文档型和数据型。
下面介绍一下几种常见的XML应用:1、自定义XML+XSLT=>HTML,最常见的文档型应用之一。
XML存放整个文档的XML数据,然后XSLT将XML转换、解析,结合XSLT中的HTML标签,最终成为HTML,显示在浏览器上。
典型的例子就是CSDN上的帖子。
2、XML作为微型数据库,这是最常见的数据型应用之一。
我们利用相关的XML API(MSXML DOM、java DOM等)对XML进行存取和查询。
留言板的实现中,就经常可以看到用XML 作为数据库。
3、作为通信数据。
最典型的就是WEB SERVICE,利用XML来传递数据。
4、作为一些应用程序的配置信息数据。
常见的如J2EE配置WEB服务器时用的web.XML。
5、其他一些文档的XML格式。
如Word、Excel等。
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 是一个布尔值,它指出是否要显示一个用户可以用来中止打印动作的窗口。
pb入门级教程.doc

第一章什么是PowerBuilder添加时间: 2006-2-21 23:24:04 作者: 未知阅读次数:11680 来源: 在开始学习PowerBuilder之前,首先要弄清楚的问题是什么是PowerBuilder,它是用来干什么的,它的特点又是什么。
只有知道了PowerBuilder的功能和特点所在,我们才能知道什么时候应该选用PowerBuilder作为我们的应用程序开发工具。
1.1 什么是PowerBuilder我们知道,数据库应用是当前计算机应用的一个非常重要的方面,而在目前的数据库应用技术中普遍采用的就是客户机/服务器体系结构,在这种体系结构中,所有的数据和数据库管理系统都在服务器上,客户机通过采用标准的SQL语句等方式来访问服务器上数据库中的数据。
由于这种体系结构把数据和对数据的管理都统一放在了服务器上。
就保证了数据的安全性和完整性,同时也可以充分利用服务器高性能的特点。
正因为客户机/服务器体系结构的这些优点,因而得到了非常广泛的应用。
PowerBuilder是著名的数据库应用开发工具生产厂商PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购),它完全按照客户机/服务器体系结构研制设计,在客户机/服务器结构中,它使用在客户机中,作为数据库应用程序的开发工具而存在。
由于PowerBuilder采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用PowerBuilder,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。
在当前,网络技术迅速发展,随之发展的还有OLE,OCX,跨平台等技术,而在PowerBuilder的最新版PowerBuilder 6.0中提供了对这些技术的全面支持。
总之在数据库开发工具领域,PowerBuilder 是其中非常优秀的一个,利用它我们可以开发出功能强大的数据库应用程序。
1.2 PowerBuilder的特点PowerBuilder提供了对目前流行的大多数关系数据库管理系统的支持,由于在PowerBuilder的应用程序中对数据库访问的部分一般采用国际化标准数据库查询语言SQL,使得用PowerBuilder开发的应用程序可以不做修改或者只做少量的修改就可以在不同的后台数据库管理系统上使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PBDOM操作XML文档轻松入门2008-03-06 15:13本文对PBDOM技术进行相关介绍,但并不涉及XML的基础知识,建议阅读者对下述相关术语有一定了解: Document(文档), DTD(文档类型定义), schema (大纲),Element(元素), attribute(属性), processing instruction (处理命令), entity(实体)。
本文主要包括以下内容:1、为什么要使用PBDOM以及怎样创建PBDOM2、PBDOM主要用于那些地方3、如何使用PBDOM编程4、PBDOM和其他XML解析(parser)技术的比较一、什么是DOM◆文档对象模型(Document Object Model)1、作为一项W3C规范,XML DOM存在目的是为不同类型的应用程序提供一个标准的编程接口,它被设计可以跨平台、跨语言使用。
2、我们可以利用XML DOM创建XML文档并操纵其结构,增加、修改、删除元素。
3、程序中调用XML解析器载入XML文档到内存中。
当文档被载入后,可以通过进入DOM检索和操作相关信息。
4、DOM 保存了XML文档树,文档(document)元素位于整棵树的最顶层。
该元素可以有一到多个子节点来保存树的结构。
可以参阅以下网站: /dom/ 来了解更多的关于XML Document Object Model的内容。
二、什么时候应该使用DOM工具◆当你需要做下列事情的时候,你应该想到XML DOM的1、在一个或者多个XML文档之间移动元素2、创建新的元素并且在XML文档的任意位置插入3、操作元素并重新插入其到XML文档其他位置4、导入内嵌数据结构& . pb9中,数据窗口现在可以通过XML导出内嵌数据结构(nested data structures).三、什么是PBDOM◆PowerBuilder 文档结构模型(PowerBuilder Document Object Model)1、PBDOM是通过PBNI扩展出来的,用于操作XML数据,并针对PowerScript作了优化2、在程序中模型是通过DOM的抽象来表示XML数据。
(A programming model to represent XML data –an abstraction of DOM)3、底层是对Apache Xerces/C++的封装。
四、PBDOM的设计目标1、简单易用(Be straightforward for PowerBuilder programmers)2、可以利用PowerScript的强大语言能力(如对象、方法重载、数据等)3、在可能的情况下,隐藏了XML底层的复杂实现(Hide the complexities of XML wherever possible)4、原有的DOM在pb下使用不够直观(DOM is unintuitive to a PowerBuilder programmer)五、使用PBDOM初步◆PBDOM设置1、添加pbdom90.pbd(%SYBASE%\Shared\PowerBuilder)到工程的pbl列表中2、%SYBASE%\Shared\PowerBuilder应该在系统路径或者应用程序的路径中(也就是pbdom要使用此路径下的pbdom90.dll, pbxerces90.dll、xerces_2_1_0.dll文件,同样,当程序发布时候也需要)六、PBDOM类的使用◆如图所示,反映了PBDOM类的组成和继承关系,可以看到,几乎所有的PBDOM类都继承自PBDOM_Object(除了PBDOM_Builder和PBDOM_Exception)1、PBDOM_Document◆构建PBDOM举例1.1 直接构建(XML documents can be created from scratch)PBDOM_Document docPBDOM_Element rootdoc = CREATE PBDOM_Document root = CREATE PBDOM_Elementroot.SetName( "root" )root.SetText( "this is the root" )doc.AddContent( root )1.2 从文件、字符串、DataStore中载入PBDOM_Builder builderdoc = builder.BuildFromString( "<foo>bar</foo>" ) doc = builder.BuildFromFile( "c:\foo\bar.xml"doc = builder.BuildFromDataStore( l_ds)2、PBDOM_Element2.1 遍历元素PBDOM_Element root, children[], first// Get the root element of the documentroot = doc.GetRootElement()// Get an array of all child elementsroot.GetChildElements( children )// Get only elements with a given nameroot.GetChildElements( "name", children )// Get the first element with a given namefirst = root.GetChildElement( "name" )注意:上例中得到的元素数组是联动的!(The element array is live!)即:◆ 修改数组中的元素,同样会作用到父文档◆ 返回的数组是有界的(Once the array is returned, it is now bounded)◆ 在数组中增加新元素时,需要一个SetContent()方法调用2.2 移动元素// PBDOM_Document docOne,docTwoPBDOM_Element movablemovable = CREATE PBDOM_ElementMovable.SetName( "movable" )docOne.AddContent( movable ) // addmovable.Detach() // removedocTwo.addContent( movable ) // add again注意:1、只要是从PBDOM_Object继承的对象,都可以调用Detach()方法(如Comments、ProcessingInstructions、Elements (and their content)等等)2、PBDOM元素对象不是永久的捆绑在它的父文档上的(PBDOM elements aren't permanently tied to their parent document)2.3 符合规格(Always well-formed)PBDOM_Element构造器以及setter方法会检查元素是否符合规格:elem.SetName( "Spaces are illegal" )AddContent()方法也会从以下几个方面进行检查:◆ 结构---树中没有循环(Structure –no loops in any tree) ◆ 只有一个根节点元素(One and only one root element)◆ 相容的命名空间(Consistent namespaces)3、PBDOM_Attribute3.1 操作元素属性◆ 元素可以有多个属性<table width="100%" border="0"></table>// Get an attributels_width = table.GetAttributeValue( "width" ) // orls_width = table.GetAttribute ( "width" ).GetText()// Attributes can be typedli_border = table.GetAttribute( "width" ).GetIntValue()// Set an attributetable.SetAttribute( "cellspacing", "0" )// Remove an attributetable.RemoveAttribute( "cellspacing" )// Remove all attributesPBDOM_Attribute empty[]table.SetAttributes( empty ) // the PowerScript way4、PBDOM_Text4.1 操作元素文本内容<description>cool demo</description>// the text is directly available –returns// "~r~ncool demo~r~n"ls_desc= elem.GetText()// two convenience methodsls_desc= elem.GetTextTrim()// returns "cool demo"ls_desc = elem.GetTextNormalize()// returns "cool demo"// text can be changed directlyelem.SetText( "a new description" )5、PBDOM_Object5.1 操作有混合内容的元素<description><!–comment --><?convert units="metric" ?>cool demo</description>PBDOM_Object content[]desc.GetContent( content )FOR i = 1 TO UpperBound( content )CHOOSE content[i].GetObjectClassString()CASE "pbdom_comment"// ...CASE "pbdom_processinginstruction"// ...END CHOOSENEXT6、PBDOM_ProcessingInstruction6.1 使用处理命令(Processing instructions)<? xml-stylesheet type="text/xsl"href="foo.xsl"_fcksavedurl=""foo.xsl"" ?>{------target------} {----------------data---------------}// Get target (e.g., "xsl-stylesheet")ls_target = pi.GetTarget()// Get data (e.g., 'type="text/xsl"href="foo.xsl"')ls_data = pi.GetText()// Get individual values as attributesString names[]pi.GetNames( names )FOR i = 1 TO UpperBound( names )MessageBox( names[i], pi.GetValue( names[i] )NEXT7、PBDOM and 命名空间(Namespaces)<xsl:stylesheet version="1.0"xmlns:xsl="/1999/XSL/Transform"><xsl:variable name="ffsection" select="//SITE_SECTION<xsl:template name="TopNav">......</xsl:template></xsl:stylesheet>String ls_elementPBDOM_Element template// get element name and namespace –return "xsl:template"template = root.GetChildElement( "template" )ls_element= template.GetNamespacePrefix() +":"+ template.Getname()// get element by name and namespacetemplate = root.GetChildElement( "template", "xsl","/1999/XSL/Transform")七、PBDOM vs. the Competition◆Apache Xerces/COMXerces 是现在PBDOM底层使用的XML解析器,但对PowerBuiler用户来说使用不直观。