PB开发(1)
PB编程技巧1

cb_continue command button 继续执行
cb_print command button 打印错误信息
this.SetItem (ll_row,"message" ,error.text) //错误信息
this.SetItem (ll_row,"where" ,error.windowmenu) //窗口/菜单
this.SetItem (ll_row,"object" ,error.object) //出错控件
在PB中记录系统出错日志
一个应用系统在用户测试和最初使用过程中,可能会发生一些程序员未意识到或未测出的系统错误,而业务人员往往很难清楚地向技术人员描述这些错误,导致错误信息稍纵即逝。这时,我们可用PowerBuilder应用对象的SystemError事件来处理,将出错信息写入日志文件,程序员根据这些错误信息对程序进行相应的修改。这在系统测试期间非常有效。
3、编写脚本
①在dw_error的Constructor事件中加入如下脚本:
// 显示系统错误信息并写入出错日志文件
long ll_row intli_file_no ll_row = this.insertrow (0)
this.SetItem (ll_row,"errornum",string(error.number)) //错误代码
"~r~n 出错时间 : " + string(today(),'yyyy/mm/dd') + " " + string(now())+ &
pb常用函数(一)(转)

pb常⽤函数(⼀)(转)Abs()功能计算绝对值。
语法Abs ( n )参数n:要得到绝对值的数值型变量或表达式返回值返回值的数据类型与n的数据类型相同,函数执⾏成功时返回n的绝对值。
如果参数n的值为NULL,Abs()函数返回NULL。
Ceiling()功能返回⼤于n的最⼩整数。
语法Ceiling ( n )参数n:数值型变量或表达式返回值返回值的数据类型与n的数据类型相同。
函数执⾏成功时返回⼤于n的最⼩整数。
如果参数n的值为NULL,Ceiling()函数返回NULL。
Cos()功能计算余弦,其中参数以弧度为单位。
语法Cos ( n )参数n:数值型变量或表达式返回值Double。
函数执⾏成功时返回n的余弦。
如果参数n的值为NULL,Cos()函数返回NULL。
Exp()功能计算e的n次⽅。
语法Exp ( n )参数n:指定幂值返回值Double。
函数执⾏成功时返回e(约等于2.71828)的n次⽅。
如果参数n的值为NULL,Exp()函数返回NULL。
Fact()功能计算n的阶乘。
语法Fact ( n )参数n:数值型变量或表达式返回值Double。
函数执⾏成功时返回n的阶乘。
如果参数n的值为NULL,Fact()函数返回NULL。
Int()功能得到⼩于等于n的最⼤整数。
语法Int ( n )参数n:数值型变量或表达式返回值Integer。
函数执⾏成功时返回⼩于等于n的最⼤整数。
如果n的值太⼩或太⼤,超过了整数的表⽰范围,则函数返回0。
如果参数n的值为NULL,Int()函数返回NULL。
Log()功能计算n的⾃然对数。
语法Log ( n )参数n:数值型变量或表达式,其值必须⼤于0返回值Double。
函数执⾏成功时返回n的⾃然对数。
如果n⼩于等于0,将导致运⾏错误。
如果参数n的值为NULL,Log()函数返回NULL。
LogTen()功能计算n的常⽤对数(以10为底)。
语法LogTen ( n )参数n:数值型变量或表达式,其值必须⼤于0返回值Double。
油层物理试卷1答案

《油层物理》综合复习资料一、名词解释1.流体饱和度:储层岩石孔隙中某一流体的体积与孔隙体积的比值。
2.岩石的粒度组成:指构成砂岩的各种大小不同的颗粒的相对含量。
3.微分分离:使油藏烃类体系从油藏状态逐渐变到某一特定压力、温度状态,引起油气分离,并随着气体的分离,不断地将气体放掉(使气体与液体脱离接触)的过程。
4.露点:指温度(或压力)一定时,开始从气相中凝结出第一批液滴时的压力(或温度)。
5.相对渗透率:同一岩石中,当多相流体共存时,岩石对每一相流体的有效渗透率与岩石绝对渗透率的比值。
6.有效渗透率:同一岩石中,当多相流体共存时,岩石让其中一种流体通过的能力。
7.接触分离:使油藏烃类体系从油藏状态瞬时变到某一特定压力、温度状态,引起油气分离并迅速达到相平衡的过程。
8.润湿滞后:由于三相周界沿固体表面移动的迟缓而产生润湿角改变的现象。
9.迂曲度:流体质点实际流经的岩石孔隙长度与岩石外观长度之比。
10.孔隙结构:岩石中孔隙和喉道的几何形状、大小、分布及其相互连通关系。
11.贾敏效应:液珠或气泡通过孔隙喉道时,产生的附加阻力。
12.束缚水饱和度:分布和残存在岩石颗粒接触处角隅和微细孔隙中或吸附在岩石骨架颗粒表面不可流动的水的总体积占孔隙体积的比例。
13.残余油饱和度:被工作剂驱洗过的地层中被滞留或闭锁在岩石孔隙中的油的总体积占孔隙体积的比例。
14.泡点:指温度(或压力)一定时,开始从液相中分离出第一批气泡时的压力(或温度)。
15.波及系数:工作剂驱扫过的油藏体积与油藏总体积之比。
16.有效孔隙度:岩石在一定的压差作用下,被油、气、水饱和且连通的孔隙体积与岩石外表体积的比值。
17.流度比:驱替流体流度与被驱替流体流度之比。
二、作图、简答题1.请将描述地层油高压物性的参数随影响因素变化规律的表1补充完整(注:“↗”表示增大,“↘”表示减小;“Pb”为饱和压力)。
答:表1 地层油高压物性随影响因素的变化规律2.简要分析影响天然气在石油中溶解的因素。
pb生成dll

编写dll的方法这里就不说了,反正就是写一堆的函数,这里主要解释一下使用PB编译,需要增加的文件。
第一个文件是sources文件,这里给出了一个sources文件的例子:
TARGETNAME=led
使用TARGETNAME来指示生成目标的文件名(不包含扩展名,扩展名PB会自动加上)
这个fuction。
一、首先用pb生成dll,步骤如下:
1.新建一个COM/MTS Component,一路next即可
2.完成后会生成一个project和一个不可视对象。
3.写一个函数name:f_change,返回值为long,参数al_a(long),代码如下: if al_a = 1 then return 1 else return 0 end if
RELEASETYPE=PLATFORM
RELEASETYPE指示该文件将要生成的类型,一共有五个取值:
SDK:使用该类型将使得生成的目标文件被存储到%_PUBLICROOT%\Oak目录,而lib文件被放置到%_PUBLICROOT%\Sdk目录
DDK:使用该类型将使得生成的目标文件被存储到%_PUBLICROOT%\Oak目录,而lib文件被放置到%_PUBLICROOT%\Ddk
第三个文件是def文件,下面是一个该文件的实例
LIBRARY led
生成的库(.lib)文件名(PB自动生成扩展名)
EXPORTS
mm_init
EXPORTS指定了需要导出的函数名称
建立好这些文件之后,选择PB的build菜单的open build releasee directory,到达所在的目录,执行build -c,如果没有错误,就按照我们的要求生成文件了
第1章PB概述

1.3 PB的基本概念
1. 画板
画板实际上就是完成一定功能的工具,PB的 开发环境就是由一系列集成的画板组成。比如 窗口画板用于定义窗口对象,用户对象画板用 于定义用户对象等。
数信学院 ● 曹靖
2、 库、工作区和目标
PB的所有对象都存储在扩展名为.PBL的pb库文件 中,对于大的应用,可以将对象分类存储在不同 的库文件中,一个pb应用可以有一个库文件,也 可以有多个库文件。 建立一个工作区将产生一个扩展名为.PBW的工作 区文件,该文件记录了工作区的信息。 在一个工作区可以建立多个目标,每个目标即为 扩展名为.PBT的目标文件,每个目标实际上就是 一个应用程序。
3、 对象、属性和事件
PB中的对象就是用来构造应用程序的各种部件。 同时,pb为这些对象规定了相关的属性和事件。 属性决定了对象的特征。 事件是外部作用在对象上的一个动作,这个动作 会触发一段程序的执行,从而完成相应的功能。
例如:汽车是一个对象,汽车的颜色就是其属性,踩刹车就 是一个事件,它触发了汽车的刹车装置,导致停车。 我们给一个按钮命名为“取消”,用鼠标单击按钮即可关闭 程序,那么此时,按钮就是一个对象,取消两个字就是按钮 的文本属性,鼠标单击就是一个事件。
数信学院 ● 曹靖
表: 控件属性
数信学院 ● 曹靖
(2). 窗口的部分代码
1)应用对象的open事件代码
Open(w_ex1)
2)按钮“计算”的事件代码如下图所示。
3)按钮“关闭”的事件代码
close(parent)
数信学院 ● 曹靖
(3). 运行
单击工具栏Run按钮, 就可以运行该程序,
数信学院 ● 曹靖
pb数据窗口绝对技巧 (1)

PB数据窗口绝对技巧1、如何让存储文件目录的列,显示图片?选择对应的column的display as picture属性为true。
2、如何复制grid类型的所选择的行的数据到系统剪切板?string ls_selectedls_selected=dw_1.Object.DataWindow.Selected.Dataclipbord(ls_selected)3:如何改变GRID数据窗口列位置(新手常见)先preview,然后在预览窗口拖动位置即可。
4、如何设置DW的底色?在DW的editsource中改变color的值。
5、如何将Grid风格改成自由格式?在DW的editsource中将processing=1的1改为0。
6、要新建一个表A但风格和现有表B风格一样,怎么将A表快速设置成表B风格?复制B表C,在C表的DW中的editsource中将表名和字段名改成A表的,即可。
7、如何实现gird风格的datawindow的多栏表头?添加text到header带区,并设置band属性为foreground保存,edit source修改tex t的x和width属性表达式如下:x="100~t integer(describe('firstcol.x')" width="100~tinteger(describe('lastcol.x')) - int eger(describe('firstcol.x')) +integer(describe('lastcol.width'))8、如何过滤dddw编辑风格的显示值为指定值的记录?dw_1.setfilter("lookupdisplay('column_name')='"+ls_display_value_your+"'")dw_1.filter()9、如何设置datawindow的某一列为空?string ls_temp[]setnull(ls_temp)dw_1.object.columnname.primary.current=ls_temp10、如何设置datawindow的单双行不同颜色间隔?在detail带区的color属性表达式中写上if(mod (getrow(),2)=1 ,rgb(255,0,0),rgb(0,25 5,0)),如果是当前行以第三种颜色表示,表达式如下:if(getrow()=current(), rgb(255,0,0),if(m od(getrow(),2)=1 ,rgb(0,0,255),rgb(0,255,0)))11、如何获取指定名称的datawindowobject?DWObject ldwo_use,ldwo_abc ldwo_use = dw_1.Object ldwo_abc = ldwo_use._ _get_attribute("t_1",FALSE)//t_1为datawindow中text对象的名称12、如何缩放datawindow的打印大小?dw_1.object.datawindow.zoom=150 or dw_1.object.datawindow.zoom=7513、如何在已过滤后的数据基础上对datawindow进行过滤?dw_1.setfilter(dw_1.describe("datawindow.table.filter")+your_join+your_new_filter) dw_1.filter()14、如何在datawindow中显示动态时间?建立一个计算域,表达式为string(datetime(today(),now()),'yyyy年mm月dd日hh点mm分ss秒'),同时设置datawindow的属性dw_1.Object.DataWindow.Timer_Interval=50 015、如何让带用title bar的datawindow控件的标题栏呈活动窗口的颜色?外部函数定义:funcation logn SetActiveWindow(long hwnd ) Library "user32.dll"datawindow控件的clicked事件代码:setactivewindow(handle(this))16、如何设置datawindow的当前行指示图标?在datawindow中建立一个计算列,expression为'',并将该计算列移动为datawindow 的第一个列,在datawindow控件的rowfocuschanged事件中写入代码:SetRowFocusIndicator(hand!)或setrowfucsindicator(p_1)//p_1为窗口上的picture控件名17、如何通过代码打开dddw?定义外部函数引用声明:SUBROUTINE keybd_event( int bVk, int bScan, int dwFlags, int dwExtraInf o) LIBRARY "user32.dll"代码如下:constant integer VK_F4 = 115dw_1.SetFocus()dw_1.SetColumn( "dept_head_id" ) // 设置当前dddwkeybd_event( VK_F4,0,0,0 ) // 按下F4键keybd_event( VK_F4,0,2,0 ) // 释放F4键18、如何打印datawindow的内容到文件中?dw_1.object.datawindow.print.fileName ="c:\temp.prn"dw_1.print()19、如何设置dddw的初始值?dw_1.object.columnname.Initial="your_initial_value"20、如何只显示不同的数据?dw_1.filter("isnull(columnname[-1]) and columnname<>columnname[-1]")dw_1.filter()21、如何让带有title bar的datawindow不可以移动?在datawindow的自定义事件ue_nchittest(pbm_nchittest)中写入如下代码:return 122、如何在N-UP显示风格中建立基于第N栏中的列的计算列?如column有两列,number和price ,并显示为两栏,则第一栏的cost计算列的expr ession为number*price,第二栏的cost_1计算列的expression为number[1]*price[1] 23、如何清空ddlb或edit.codetable中项目?dw_1.Object.columnname.Values=""24、如何实现指定的column的字体旋转90度?dw_1.object.columnname.font.Escapement ="900"25、如何获取datawindow的sql代码?可以通过以下四种方法获取sql代码:string szselectszselect=dw_1.describe("datawindow.table.select")szselect=dw_1.describe("datawindow.table.sqlselect")szselect=dw_1.describe("datawindow.table.select.attribute")szselect=dw_1.getsqlselect()26、如何获取datawindow对象占有的虚拟存储的容量?使用datawindow.storage属性举例:在datawindow控件的retrieverow事件中,写入如下代码:long lstoragelstorage=long(dw_1.object.datawindow.storage)if lstorage>50000 then dbcancel()27、如何连续在同一张纸打印两个数据窗口?dw_1.object.datawindow.print.filename="temp.prn"dw_2.object.datawindow.print.filename="temp.prn"dw_1.print()dw_2.print()28、如何设置datawindow分组后每个分组中的记录号?建立一个计算列,expression为getrow() - first(getrow() for group 1)+129、如何实现在datawindow中只有新增的行,才可以编辑?在所有的column的protect属性表达式中写入以下表达式:if(isrownew(),'0','1')30、除了循环以外,有没有更好的方法统计数据窗口中处于选中状态的行数?一般习惯于使用循环来统计数据窗口中处于选中状态的行数,有没有更好的方法?其实此问题在应用上用处不大,讨论一下,活跃一下思维还是有好处的。
PBII第2章(1-2)

1.2 相关语句或函数
用法:在应用程序创建了OLEObject对象实例并连接到OLE对 象和OLE服务器应用程序之后,应用程序就可以设置服务器支持 的属性和调用服务器支持的函数了。PowerBuilder编译程序并 不检查OLEObject变量属性访问和函数调用的语法,但是,如果 这些属性或函数在程序运行时不存在,将引发运行错误。 在创建了OLEObject对象实例后,在该变量失效之前必须及时 删除该对象。当应用程序删除OLEObject对象实例时,它断开与 服务器的连接并关闭服务器。如果OLEObject变量失效后该对象 没有被删除,那么就没有正常办法来终止服务器应用程序了。
6
1.1 相关系统函数
示例:下面的代码显示打开文件对话框,之后打开用户选择 的文件,对话框中显示TXT 和DOC 类型的文件。如图2-1所示。 String docname, named Integer value value = GetFileOpenName("打开文件",docname, & named, "DOC", & "文本文件(*.TXT),*.TXT , Doc 文件(*.DOC),*.DOC" ) If value = 1 Then FileOpen(docname) ……
19
1.2 相关语句或函数
返回值:Integer型。函数执行成功时返回0,发生错误时返 回下述值之一:
-1 无效调用,oleobject对象变量名是某个OLE控件的Object属性 -2 未找到指定的类名 -3 不能创建对象 -4 不能连接到对象 -5 不能连接到当前活动对象 -6 无效的文件名 -7 未找到指定文件或指定文件不能被打开 -8 服务器不支持指定文件 -9 其他错误 -15 本计算机上未加载MTS -16 无效调用该函数不使用于OLETxnObject 对象 如果任何参数的值为NULL,则ConnectToObject()函数返回NULL。
PB-1的应用研究

聚丁烯-1结晶行为的研究于东明,赵国书,秦岚摘要聚丁烯-1(PB-1)属于多晶型聚合物,晶型转化速度缓慢,本文通过对PB-1结晶过程的显微观察、DSC分析、对试样性能测试、对样品尺寸测量等,揭示了PB-1结晶行为及其影响,对指导生产实践具有重要意义。
关键词聚丁烯-1 结晶形态晶型转化1、前言PB-1是1954年开始研究,上世纪七十年代初工业化,四十余年来,全世界制造商目前仅有荷兰、日本和韩国三家,其总产能仅数万吨/年。
如果说早期Bt-1比较少,价格高,PB-1的聚合也比较困难,PB-1的价格高一些是可以理解的。
而今,事情已发生根本性的变化,我国在寿光建成的万吨级示范生产线不同于国外溶液法合成,聚合工艺复杂,成本高,而是采用本体沉淀法,聚合工艺简单,成本低,今年也将加入PB-1制造行列。
业内人士透露,国产PB-1成本与PP相近,如果真是这样的话,我国发展PB-1的步子应加大,8~10万吨/年不嫌其少,30~50万吨/年不嫌其多,众人拾柴火焰高,人们期待会有所突破。
此前,PB-1发展速度缓慢,其价格高昂是主要原因,国产PB-1的出现,价格的彰碍将不复存在。
其性能存在缺陷,虽不是影响其发展速度的主要原因,但其影响也是不可忽略地。
PB-1的性能包括加工性能和使用性能等,如对缺口敏感,直接影响到其使用性能,再如其结晶速度缓慢,即影响到其加工性能,又严重影响到其使用性能。
青岛科技大学等对PB-1的加工做了大量的探索性研究,对PB-1的推广应用具有一定参考价值,但总体看,PB-1的加工与应用研究有待加强。
筆者有兴涉足PB-1的应用研究,简介如下:注:研究用PB-1分别取自三个不同牌号,为方便计,文内在可能的条件下,隐去了具体牌号。
2、聚丁烯-1结晶形态及变化聚丁烯-1树脂为多晶型聚合物,管道级聚丁烯-1树脂结晶度为48%~55%,已知其有五种结晶形态变异,分别为晶形I、晶形II、晶形III、晶形I´和晶形II″五种。
第一章PowerBuilder入门

PowerBuilder安装过程 安装过程
1、运行PB的安装光盘根目录下的 、运行 的安装光盘根目录下的 的安装光盘根目录下的Setup.exe,安装程 , 序提示是否同意软件的许可协议,如下图所示。 序提示是否同意软件的许可协议,如下图所示。不同 意许可协议时将退出安装过程。 意许可协议时将退出安装过程。
8.PB支持交叉平台 . 支持交叉平台
PB是一个跨平台的开发工具,它能够在许多 是一个跨平台的开发工具, 是一个跨平台的开发工具 操作系统环境下进行应用程序的开发, 操作系统环境下进行应用程序的开发,如 Windows 9x、Windows 2000、Windows NT等。 、 、 等
9.灵活快捷的数据转移方法-数据管道技术 .灵活快捷的数据转移方法-
1.1 PowerBuilder的功能特点 的功能特点
PB是美国 是美国PowerSoft公司(后来被 公司( 是美国 公司 后来被Sybase公司并 公司并 于二十世纪九十年代初期( 购)于二十世纪九十年代初期(1992年)推出的产 年 品,它是一种基于客户机 服务器体系结构的应用程 它是一种基于客户机/服务器体系结构的应用程 客户机 服务器 序的前端开发工具,采用面向对象的开发技术, 序的前端开发工具,采用面向对象的开发技术,具 有可视化的图形用户界面, 有可视化的图形用户界面,使用它开发人员能够快 速容易地开发出应用程序。 速容易地开发出应用程序。
11、单击“否”按钮。安装程序会检测计算机中是 、单击“ 按钮。 否安装了DCOM。DCOM是ODBC 3.5所需要的驱 否安装了 。 是 所需要的驱 动程序,可从微软的相关网站上下载。 动程序,可从微软的相关网站上下载。如果还没有 安装DCOM,则系统会提示在完成 安装 ,则系统会提示在完成PowerBuilder的 的 安装后安装DCOM。 安装后安装 。
系统分析师论文12篇

计算机技术与软件资格(水平)考试系统分析师论文12篇系分论文1企业人事信息系统的应用【摘要】本文讨论《企业人事信息系统》项目的需求分析方法与工具的选用。
该系统的建设目标是帮助该企业管理好企业内部的人员和人员的活动,人事信息管理指的是企业员工从招聘面试到离职退休的全过程,涉及的主要活动包括面试、报到、培训、升职、离职或其他的人事变动,也包括电子化考勤、工资性收入的计算与分发、使用其他公司资源的有关记录(如宿舍、保险、证件办理等等)。
此外,本系统也涉及到企业在全国各地的人事信息管理,企业的组织架构的设置,级别与职务管理,人力申请直至人力需求报表,从而形成一个对企业真正有用的人事信息管理应用系统。
在本文中首先讨论了选用面向对象方法与工具的主要理由与策略,进一步通过一个简例说明该方法与工具使用的效果,也讨论了使用多种工具与方法在需求分析中的必要性,最后简要小结了选用正确工具与方法的意义和作用。
在项目开展期间,我担任了系统分析、系统设计与数据库管理等大量工作。
【正文】人事信息管理系统是一个有着广泛应用面的实用性系统,但是,我国各个企业有着自身的体制、机制、特点与不同的要求;在开发这类系统时,系统需求分析是极为重要的一环。
在整个分析过程中,我们都采用了面向对象的分析方法,这是因为我们在近几年的实践中已坚信这种方法能够更加有效地表达和描述现实世界。
软件要具有适用性和扩展性,就必须更接近于现实世界本身的发展规律。
以一个简单的例子来看,假设要求设计关于引进人才评估的一个系统,按我们过去的做法,先会要求提供给我们一份相关的引进人才评估表,然后依葫芦画瓢地设计相应的表单与界面。
在短期来说,这样做是简便而实用的,但并不能够符合现实世界的长远目标,这套设计方法不具有扩展性,因为任何一份评估表的结构都会有可能发生许多改变的。
采用面向对象的方法,可以从中提取出表类型、表结构、评分方法以及能考虑继承等各方面的要素,这样就可以保证软件的通用性,可配置性与可维护性。
1_WinCE定制流程、目录结构及系统构建

Dirs文件和Sources文件
DIRS文件是位于需要编译的文件夹中的一个特 殊的文本文件,它指出了要编译的源程序所在的 文件夹名 SOURCES文件是位于源程序文件夹中的一个特 殊的文本文件,它包含了一些宏定义,编译程序 就是利用这些宏定义作为选项来决定如何编译和 链接这些源程序的
WinCE 详细的目录结构
1.2得到并安装BSP (1)
得到BSP的途径:
Platform Builder自带(CEPC、Emulator、AMD geo提供(ut2410classic) 自主研发(后续课程详细阐述)
安装BSP方法
(1)源码形式->手工安装
平台配置、编译方法)
平台向导:学会定制模拟器、配置模拟器、下载运
行、远程文件同步、IP地址配置方法。
SDK向导:定义、配置、编译、安装。 平台改造:删除、添加组件,重新build SDK,远
程文件同步
一、定制WinCE操作系统的一般流程
1.1概述
定制WinCE一般需要经过: 创建 构建 运行调试 发布
该命令也会编译包含于系统设计工作区 (Workspace)的工程(Project)
没有任何文件拷贝到目标(Release)文 件夹。
3.6 Build阶段
Build阶段将编译和链接图形、窗口和事 件子系统(GWES)、内核、OEM适配 层(OAL)、设备驱动及应用程序等。
该阶段使用了一组特殊的文件DIRS和 SOURCES文件,这些文件确定了Build过 程需要编译和链接什么文件。
耗内存
下载到目标板上调试运行 得到并安装Bootloader ,eboot 配置串口,建立超级终端 配置eboot网络相关参数 配置PB中的target->conectivity options… Target->attach device…
压电功能材料 (1)

或
通过逆压电效应转换所 得的机械能 K 转换时输入的总电能
2
通过正压电效应转换所 得的电能 K 转换时输入的总机械能
2
压电陶瓷振子(具有一定形状、大小和被覆工作电极的压电陶 瓷体)的机械能与其形状和振动模式有关,不同的振动模式将有 相应的机电耦合系数。 如对薄圆片径向伸缩模式的耦合系数为Kp(平面耦合系数); 薄形长片长度伸缩模式的耦合系数为K31(横向耦合系数);
第六章 压电陶瓷
Qm=1/4ΠR1CΔ f×1012
ε
33=4C
tl
t/Π
Φ
Ct是薄圆片的低频电容(法拉),可在1KC频率下由电容电桥测出,lt为 薄圆片的厚度(米), Φ 为薄圆片的直径(米), ε 33为自由介电常数(法 拉/米)。 tgδ用电容电桥或万用电桥等测出。
d33用准静态测试仪测定。
圆柱体轴向伸缩模式的耦合系数为K33(纵向耦合系数)等。
第六章 压电陶瓷材料及应用
它是压电材料进行机-电能量转换的能力反映。
它与材料的压电常数、介电常数和弹性常数 等参数有关,是一个比较综合性的参数。其 值总是小于1。
Kt
Kp
K33 K15 K31
3、机械品质因数Qm
压电陶瓷在振动时,为了克服内摩擦需要消耗能量。机械品质 因数Qm是反映能量消耗大小的一个参数。Qm越大,能量消耗越小。机 械品质因数Qm的定义式是:
压电陶瓷是指经直流高压极化后,具有压电效应 的铁电陶瓷材料。 晶体受到机械力的作用时,表面产生束缚电荷, 其电荷密度大小与施加外力大小成线性关系,这种由 机械效应转换成电效应的过程称为正压电效应。 晶体在受到外电场激励下产生形变,且二者之间 呈线性关系,这种由电效应转换成机械效应的过程称 为逆压电效应。 力→形变→电压 正压电效应
PB(第1章)

3
参考教材பைடு நூலகம்网站
参考教材 卢守东.PowerBuilder数据库应用开发技术, .PowerBuilder数据库应用开发技术 卢守东.PowerBuilder数据库应用开发技术,清华大学出版 社。 PowerBuilder6.0开发人员指南 PowerBuilder6.0开发人员指南
PowerBuilder9.0用户参考手册 PowerBuilder9.0用户参考手册 PowerBuilder9.0与系统开发 PowerBuilder9.0与系统开发 学习网站
8
数据库基本知识
一、C/S模式图示 C/S模式图示
WinNT,Linux,Unix Microsoft SQL Server ORACLE Sybase,DB2,Informix
Servers
返回SQL语句 返回 语句 查询结果到客户机 发送SQL语句 语句 发送 到数据库服务器 TCP/IP
DB Servers
13
PowerBuilder的特点
在客户/服务器结构的应用中,PowerBuilder应用程序由 在客户/服务器结构的应用中,PowerBuilder应用程序由 窗口组成 这些窗口包含用户与之交互的控件 组成, 控件。 窗口组成,这些窗口包含用户与之交互的控件。 开发人员可以使用所有标准控件(如按钮、复选框、 开发人员可以使用所有标准控件(如按钮、复选框、下拉 式列表框或编辑框)以及PowerBuilder PowerBuilder提供的特殊的使应用程 式列表框或编辑框)以及PowerBuilder提供的特殊的使应用程 序更易于开发和使用的控件,从而大大加快了项目的开发速度。 序更易于开发和使用的控件,从而大大加快了项目的开发速度。 也使开发者更容易掌握数据库的开发。 也使开发者更容易掌握数据库的开发。
pb低于1的会计处理

PB低于1是指市净率(Price to Book Ratio)低于1,即股票的市价低于账面价值。
这种情况在某些行业中较为常见,如在一些制造业公司中,由于资产折旧和生产效率等原因,公司的账面价值可能会比市值要低。
对于这种市净率低于1的情况,会计处理通常需要遵循一定的原则和规定。
首先,对于此类公司,其账面价值可能已经较低,因此在财务报表中可能不会记录任何股东权益或资产增值。
其次,对于此类公司的利润表,通常需要记录的是收入和费用,而净收益则可能较低或为零。
在这种情况下,会计处理还需要考虑如何反映公司的资产和负债。
由于市净率低于1,公司的市值可能低于其账面价值,因此一些资产和负债可能已经减值。
在这种情况下,会计处理需要反映这些减值情况,并对其进行合理的评估和记录。
在会计记录中,需要将公司的资产和负债按照一定的标准进行分类和计量。
对于减值情况,需要按照会计准则的规定进行适当的减值记录,以反映公司真实的资产状况。
此外,对于一些流动资产和非流动资产的转换,也需要进行相应的会计处理。
最后,对于此类公司的现金流量表,需要反映公司经营活动产生的现金流入和流出情况。
由于市净率低于1,公司的市值可能较低,因此经营活动产生的现金流量也可能较低或为负值。
在这种情况下,需要进行合理的分析和评估,以反映公司真实的现金流量状况。
总之,对于PB低于1的情况,会计处理需要遵循一定的原则和规定,对公司的资产、负债、股东权益和现金流量进行合理的评估和记录。
同时,还需要根据实际情况进行相应的会计处理,以反映公司真实的财务状况和市场表现。
pb开发(1)

pb开发(1)
1,感觉和java没什么太⼤的差别,同样有着类似的数据类型和循环⽅法
2,主要是⾯对数据⽅向的窗⼝开发,可以快速创建页⾯和功能,感觉和JavaScript有点像,感觉像是前后端⼀起写的,耦合度很强,但没什么⼤碍
3,在数据库匹配上⼜多了不少经验,每天有的没的链接各种数据库,但是感觉还需要学习数据库的才⾏
4,意外的有继承的操作,和java⼀样可以继承类,总之object类型的都可以继承
5,函数⽅⾯好不容易才搞懂(我认为⼀半以上的原因是花在找这个函数⽅⾯了)
6,pb技术在医院⽤的较多,所以我接⼿的也是医院系统的项⽬,虽然最开始学习功能有点难,不过我感觉组长是想让我在美观上下下功夫(是我的错觉吗?)
7,pb开发虽然⽤的⼈不多,在论坛上的答案也少之⼜少,不过在B站上也有不错的教学视频,在上⾯学习也是个不错的选择
8,要多问,因为在⽹上对pb的讨论很少,要多去问问⽼前辈,学pb的⼈很少所以哪些⽼前辈会很有耐性的给你传授知识,不要⽼想着查度娘
9,要有耐⼼,不要怕掉头发,pb学好还是很有⽤处的,毕竟有充⾜的时间可以了解数据库的运⾏
最后要加油哦QAQ。
第三十二讲 深入PB的高级应用 PowerBuild嵌入OLE(一)

在下面的这两讲中,我们将谈谈PB的高级应用,也就是在PowerBuilder中如何使用OLE 控件,OLE控件可以令PB的应用程序访问Windwos环境中其它应用程序。
我们前面所用的控件都是内制在PowerBuilder中的,它们出现在编辑器的工具框中,可以通过指向和单击操作将其放在窗体上。
但Windows环境中的有些对象不是PB所独有的,未放在PB语言中,比如说Word文档,如何达到将WORD文档嵌入PB中呢我们现在先介绍使用OLE的概念,再介绍将从PB编程环境中访问多个应用程序的方法。
下面,我们要通过一个实例,一起学习如何使用OLE技术在PowerBuider的窗口中嵌入Windows其它应用程序(比如Word编辑器)。
新建一个名为app_ole的应用程序对象。
新建一个名为“w_ole”窗体。
选择应用程序对象app_ole的Open事件,进行编程:open(w_ole)在窗口w_ole中添加控件添加三个CommandButton控件,分别命名为cb_import,cb_export,cb_exit,添加1个组合框控件添加5个单选按钮控件,实现这五个按钮相互排斥添加一个复选按钮控件选择工具栏中的OLE(OLE控件),选择通用的OLE控件将新的OLE控件放入窗体并更改其属性开始编程选择“退出” 按钮的的Clicked事件,编写程序:close(parent)选择“Word” 单选按钮的Clicked事件,编写程序:定义一个Instance变量string iv_ole_type="word"iv_ole_type="word"选择“Excel” 单选按钮的Clicked事件,编写程序:iv_ole_type="excel"选择“Pic” 单选按钮的Clicked事件,编写程序:iv_ole_type="pic"选择“Txt” 单选按钮的Clicked事件,编写程序:iv_ole_type="txt"选择“All” 单选按钮的Clicked事件,编写程序:iv_ole_type="all"编写激活OLE控件内嵌入的应用程序。
pb中的数据类型(1)

PB 基本数据类型Pb中的常用的数据类型1. Boolean布尔型,取值 True/False ,在赋值的时候可以直接使用:Boolean lb_HaveRowslb_HaveRows = Truelb_HaveRows = Falselb_HaveRows = 1 = 1Integer(也可以缩写成 Int)整型,主要用来存放整数类型的,这里注意它的范围很小(-32768 到 +32767),不要越界Integer li_Countli_Count = 10li_Count = -100li_Count = Long大整数类型,范围比较大(-2,147,483,648 to +2,147,483,647) ,也就是 20亿级别了,一般够用4. Date,Time,DateTime日期时间类型,在系统中表示和时间有关的信息Date 形如 2011-01-03 String字符串类型,pb中字符串可以使用""(2个双引号),也可以使用''(2个单引号)来引用,效果是一样的String ls_Namels_Name = "A"ls_Name = "Jock"ls_Name = 'Jone'6. Char字符类型,这个用的比较少,他可以存放一个字符Char ls_Letterls_Letter = "A"ls_Letter = "ABC" Decimal(也可以缩写成Dec)可以表示小数,也可以表示整数,用的较多注意:在使用的时候最好指定精度,否则会出现这样,那样的问题,形如Dec{2} ldec_Money Double可以表示小数,用的较少,可以用 Decimal代替Pb函数库之数据类型检查与转换函数2007-8-10 作者:编辑:问天点击进入论坛Asc()功能得到字符串第一个字符的ASCII码整数值。
powerbuilder不同版本的区别 (1)

PowerBuilder不同版本的区别作者:未知来源:本站整理发布时间:2010年11月22日发布人:jsrong PowerBuilder不同版本的区别---------------------------------------------------------------PB8\9\10都重点是增强WEB开发---------------------------------------------------------------PB4.0可安装于dos环境中的windows3.0(3.2)也可安装于windows 95或windows 98。
只能编译成16位。
PB5.0可安装于dos环境的windows3.0(3.2)中,也可安装于windows 95或windows 98。
编译的时候可以选择编译成16位还是32位。
从6.0开始只能安装于windows 95或以上的操作系统中。
从6.5开始支持WEB开发。
7.0 支持类似java中的try...catch捕获错误。
从8.0开始增加WorkSpace(包含/记录一个或多个target)和Target(包含/记录一个或多个PBL),有了WorkSpace和Target方便多了,以前拿到别人的源代码有时会搞不清需要包含哪些PBL,现在只要打开Target就知道了。
8.0废弃了transport对象,以前网上一些开源的PB代码如拱猪、军棋、聊天室都是用的这个t ransport对象。
从8.0开始就全部废掉了,所以我再也没见过有人用8.0或以上版本写此类程序。
8.0增加了lenw,leftw,rightw等函数用于“支持”中文,在8.0以前len,left,right都是把中文当两个字符处理,8.0将中文当一个字符处理,lenw,leftw,right等同于以前版本的len,l eft,right,这样改其实不好用。
8.0加强了file相关函数的操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三部分用PowerBuilder开发数据库应用系统第一章 P owerBuilder简介●介绍PB的特点;●应用程序的组成,开发步骤;●PB开发环境●一个应用程序实例一、 PB的特点1.什么是PB?●PB是一个图形界面的,面向对象的数据库应用系统开发工具;●能够开发功能强大的,运行在多个平台的,能够操作多个数据库的应用系统;●可以开发客户/服务器、分布式、Internet应用系统。
(1) 客户/服务器结构:(双层)●这种结构的核心是当前端用户(客户工作站)需要后台服务器的服务时,仅发出请求;而服务器接收请求后,执行相应的功能,并把满足条件的那部分数据反馈给前台客户端;●数据库服务器上的DBMS集中负责管理数据库服务器上的数据和资源,它向客户端提供一个开放的使用环境,客户端的用户通过数据库接口和SQL语言访问数据库;也就是说,它只要能通过网络协议和数据库接口程序连接到服务器,就可以对数据库进行访问;●在此结构中,应用程序和应用逻辑可以根据需要划分在服务器或客户工作站;(2) 多层客户/服务器结构:(分布式结构)●有三个逻辑层,客户层是面向用户服务的,把数据和应用呈现给用户的逻辑,在客户端实现,中间层是面向商业规则的,在应用服务器上实现,服务器层是面向数据服务的,在数据库服务器上实现;●强调组件开发,相对独立的组建模块安排在服务器上,供所有的客户端应用程序访问;(3) Internet应用系统●处理分三层,类似于多层客户/服务器结构;●商务和表现服务驻留在Web服务器上,而客户使用简单的浏览器,这种结构可支持任何配有浏览器的客户机。
2.提供强有力的开发环境●用它来建立用户容易使用的各种应用程序;●开发人员还可以通过PB修改他们的数据库;●PB为应用的开发提供了全面的综合性的支持,概括如下:(1) 事件驱动的应用程序●PB的应用程序是事件驱动的,即用户通过各种动作控制应用程序的流程;●用户可以通过编写脚本来说明当事件触发时,要完成的处理过程;●用户通过PB创建的窗口、控件和其它对象都是一个预定义的事件集合;●通常情况下,预定义的事件即是用户所需的,然而,有些情况下可能需要定义自己的事件;(2) 功能强大的PowerScript语言●在PB中,所有应用处理逻辑都是用PowerScript语言编写的,它是PB的专用程序设计语言,用它编写的程序通常被称为脚本;●脚本是由PB的命令、函数和语句等组成,脚本的执行是由事件触发的;●PB提供了丰富的内置函数,利用它们可以对应用程序的各种对象和控件进行处理,用户还可以自定义函数;(3) 面向对象的编程●在PB中创建的每一个菜单或窗口都是一个称作“对象”的独立模块;●PB的应用程序是由这样的对象“搭建”起来的,每个对象都有特定的特征和行为(属性,事件和函数);●PB是面向对象的开发工具,在对象中对继承,封装和多态性等面向对象的程序设计技术提供了全面的支持;●开发人员可以利用这些技术有效地利用创建的每一个对象,使应用程序具有可重用性,可扩展性;(4) 支持交叉平台开发●在Windows下利用PB开发的应用程序,可以将该应用程序分发到UNIX平台上运行,反之亦可;(5) 与数据库的连接性●PB提供了与底层数据库系统紧密的连接;●PB支持不同的RDBMS,可以访问多个数据库的信息显示在一个窗口内;●开发人员可以利用内置的高性能数据库引擎Sybase SQL Anywhere 生成脱离服务器运行的应用,在此之上开发的数据库应用程序只需简单地改变数据库接口就可以方便地运行于指定的数据库上●PB存取数据库的方式有两种:ODBC接口,专用的直接与数据库相连的接口,JDBC二、 理解PowerBuilder对象●PB包含大量对象:窗口,菜单,数据窗口,事务对象,消息对象,错误对象等;●对象的三个特性:(1) 属性:用来描述对象的特性●查看,修改对象的属性:定义对象时:Properties窗口在程序代码中:对象名.属性=属性值(2) 对象函数(方法):用来在程序中操纵对象●对象函数封装在对象内部,实现步骤,细节用户既看不见,也不能●大多数对象函数都有返回值,用来指示函数的执行情况;对象函数的引用方法:对象名.函数名(参数,…..) (3) 事件:指可能发生在对象上的事情●在Windows系统中,用户的所有操作都由系统自动转化为某个事件;●为了简化应用程序的开发,大多数的PB对象都预先定义了一组事件;●如果想对某个事件作出反应,那么需要编写该事件的事件处理程序;●除了用户操作能产生事件外,程序本身也能够主动地触发事件;三、 PB的开发方法●PB应用程序和其它Windows应用程序一样,由两大部分组成:用户界面:用户通过窗口,菜单,窗口上的各种控件等界面元素操作应用程序;应用处理逻辑:通过事件和函数中的程序代码来实现的;●传统开发工具考虑的是程序流,开发思路是控制流;●PB考虑的是对象,开发思路是“事件驱动”●PB开发的实质:定义对象和控件及其属性;定义对象和控件上某个事件发生时要执行的程序;●PB开发流程:其中,建立应用对象需要在应用开发的一开始就要完成;其它步骤可按任意次序进行;四、 PB应用程序●PB应用程序是相互关联的对象集合体,介绍主要对象类型:(1) 应用对象●是整个应用程序的入口点,它包含特定应用程序中的所有其它对象;●应用程序对象定义应用程序级的行为,例如指定用于存储应用程序中各种对象的PB库;●当用户启动应用程序时,会触发应用对象中的一个OPEN事件,当用户终止一个应用程序时,会触发应用对象中的一个CLOSE事件;(2) 窗口对象●窗口是用户和PB应用程序之间的主要接口;●窗口可以显示信息,接收用户信息,以便响应用户鼠标或键盘的操作;●窗口对象代表PB应用程序的主要成分,其它对象(菜单,数据窗口及用户对象)只有加到窗口上,才能加到一个应用程序中;●一个窗口通常有以下几部分组成:属性:定义窗口的外观和行为事件:由用户动作触发控件:位于窗口中(3) 数据窗口●数据窗口是一个用来检索和操纵来自一个关系型数据库或其它数据源中数据的对象;●数据窗口对象是独立生成的对象;●为了把数据窗口对象与一个窗口对象相关联,必须在窗口上放置一个数据窗口控件,然后将一个数据窗口对象加到该数据窗口控件上;(4) 菜单●菜单是用户可在当前活动的窗口中选择的命令或选项的列表;●菜单中的菜单项通常是与命令相关的;●PB中定义的菜单,其工作完全与标准操作环境中的菜单是一样的;(5) 用户对象●如果发现在重复地使用程序的某一特性时,就应定义一个用户对象;●用户对象可以定义一次,而后多次使用;●可视用户对象:具有某一致行为的可重复使用的控件或控件集合;●类用户对象:不具有可视成分的,可重复使用的处理模块,通常使用类对象定义商业规则和其它完成某些功能的处理过程;(6) 全局函数●对象级函数:为某一个特定类型的窗口,菜单而定义的;●全局函数:作为一个独立的对象存储,用来完成一些通用的处理;(7) 查询●是以一个名字存储的SQL语句,它可以作为数据窗口对象中的数据●被编码后可以重复使用;(8) 结构●一个或多个相同的或不同的数据类型的相关变量构成的汇集,以单一名称出现;对象级结构;全局结构;(9) 库●存储利用PB建立的对象的地方;●与应用程序有关的对象和成分存放在PB库中,对应.PBL文件;●当建立一个应用程序时,PB要求建立一个库;●当运行应用程序时,PB会从库中检索对象;●一个应用程序可以使用多个库;(10)工程●创建工程对象,可以把应用程序中的所有对象都包含到独立的可执行文件中,编译成一个可执行文件;五、 连接数据库●PB是专为数据库系统设计的前台应用开发工具,可支持绝大多数目前广泛使用的RDBMS;●PB通过各种不同的数据库接口软件连接到不同的数据库上;●PB到数据库的接口软件:通用的ODBC接口软件;专用的数据库接口软件;(1) ODBC:Open Database Connectivity 开放式数据库连接●微软公司提出的允许应用程序使用SQL语言查询数据库的标准;●该接口许可最高的互操作性,即单一的应用程序可以访问不同的DBMS;●允许开发人员开发,编译和发布应用程序,而不必针对特定的DBMS,随后用户可通过加载连接到不同数据库的驱动程序,建立应用程序与所选择的数据库系统的连接;●ODBC体系结构由四个部分组成:应用程序,驱动程序管理器,驱动程序和数据源;(2) 通过专用接口连接PB到各种数据库●是为某种数据库设计的接口软件;●通过ODBC连接到数据库的方式运行速度较慢;(3) 与数据库的连接:PB在设计或运行应用程序时,都要连接到数据库●通过ODBC可以和本地小型数据库或后台的各种大型数据库进行连接;第一步:创建数据源第二步:配置数据库连接参数(建立数据库配置文件)配置文件:命名了一组连接到特定数据源或数据库的参数,该参数存放在PB.INI中;设置好的数据库配置文件的名称将出现在相应的数据库驱动程序的名称下;在Preview选项卡下查看连接的数据库的参数设置语句,并且可以将这些语句方便地拷贝和粘贴到相应的应用程序中;六、 PB的集成开发环境●PB给开发人员提供一个集成环境,应用的各种成分,包括窗口,菜单,应用逻辑,数据库存取,数据库声称,图形,报表等全能在PB内开发;●PB包括强大的编译能力,集成调试,测试功能;(1) 画笔(PAINTER)在PB中,所有对象的创建和修改都是由Painter完成的;●打开画笔:新建对象继承或打开已有对象时;在库画笔中双击需编辑的对象也可打开编辑此对象的画笔;(2) 调整画笔中的各个视图●打开视图:通过画笔中的View菜单●视图的组成:窗格句柄,标题栏,图钉按钮●调整视图:移动窗格的位置,将几个视图合并到一个窗格中,每个视图对应窗格的一个页;●保存调整的视图;●恢复系统的缺省状态;●关闭视图:●常用视图:布局,属性,脚本,事件列表,函数列表,控件列表,结构列表;(3) PB工具条PowerBar:第一级工具条,用于打开画笔和工具;PainterBar:用于在当前画笔中完成特定的任务,不同的画笔拥有不同的PainterBarStyleBar:用于改变窗口,数据窗口,可视用户对象中当前对象的文本属性;(4) 新增辅助开发功能:●TO-DO LIST用法:显示当前应用中的一系列开发任务,可直接切换到某项任务的开发现场;●自定义菜单快捷键:可以根据自己的习惯为系统菜单项定义键盘快捷键;七、 第一个PB应用程序●通过一个实例介绍PB应用程序的开发步骤;●理解PB建立一个应用程序的过程和方法;1.应用程序开发实例(1) 建立应用对象;(2) 连接数据库;(3) 创建窗口对象;(4) 数据窗口对象;(5) 窗口上增加数据窗口控件;(6) 增加排序功能:控件,排序函数,事件代码2.如何利用数据窗口显示数据?(1) 建立一个数据窗口对象;(2) 建立一个窗口,放置数据窗口控件;(3) 指定数据窗口对象到窗口上的数据窗口控件;(4) 将用连接的数据库的信息指定给事务对象(SQLCA)(5) 用CONNECT命令连接数据库和事务对象;(6) 利用SetTransObject()连接数据窗口与事务对象;(7) 利用Retrieve()从数据库读取数据;3.事务对象●事务对象是用来联系应用程序和数据库的;●它的作用是为PB的应用程序和数据库提供一个通信区;●用户若要对数据库进行访问首先要创建一个事务对象,并与相应的数据库和数据窗口连接,这样用户才可以根据自己的需要对数据库进行操作;●用户可以根据需要使用默认对象SQLCA或者自定义事务对象;●SQLCA(SQL Comunication Area):PB提供给用户的全局事务对象,也是最常用的事务对象;●PB设置它为默认的事务对象,在用户没有选择其它事务对象时,系统会认为选用的是SQLCA;●事务对象共有15个属性,其中10个属性用于连接数据库;5个属性用于返回信息;●返回信息的属性:SQLCode:指示SQL的操作失败或成功0:无错误-1:有错误100:没有错误但无数据SQLDBCode:返回DBMS错误码,大多数厂商设定0:成功100:没有找到数据负数:错误事务对象和数据库连接的代码示例:// Profile studentSQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=student'" //设置数据库连接参数 CONNECT USING SQLCA;//试图连接数据库If sqlca.sqlcode=0 thenOpen(w_main)ElseMessagebox(“警告”,”数据库连接错误”)Endif。