POWER新春总动员【power新春总动员2012】

admin
发布时间:
2023-02-17 21:53:39

导语:书信

好文网为大家准备了关于POWER新春总动员的文章,好文网里面收集了五十多篇关于好POWER新春总动员好文,希望可以帮助大家。更多关于POWER新春总动员内容请关注好文网。ctrl+D请收藏!三年七班家长会MICROSOFTPOWERPOINT演示文稿图文

赵国旭表演

宋新樾在使用多媒体讲解自己的资料

展 示 小 制 作

快乐六一布置教室

张一丹书

家长会程序:

一、收听法律讲座

二、班级情况介绍

三、关于语文、英语、数学学习

四、家长金点子通交流 五、个别沟通

我们都知道三年级是小学阶段很重要的转折期,对孩 子的一生有很大的影响,那究竟“转”在哪里呢? 、“转”在生理和心理特点变化明显,是培养学习 能力、情绪能力、意志能力和学习习惯的最佳时期。 、“转”在孩子从一名儿童成长为一名少年,逐渐 有主 见。 、“转”在孩子的情感发展由易变性向稳定性过渡。 从情感外露、浅显、不自觉向内控、深刻、自觉发展。 、“转”在从被动的学习主体向主动的学习主体转 变。 这些转变有的我们已经重视,有的刚刚感觉到,有的 还没有关注到,请我们的家长做个有心人,在了解孩 子们所处的这个特殊时期之后能结合自己孩子的特点 给予帮助和教育,多和孩子谈谈,聊聊知心话,了解

三年级是个过渡时期,是学生学习的“分水岭”, 由于三年级从字词向段落过渡,而且开始学作文, 很多同学都觉得很难。特别是字词基础不好的同学, 马上就会出现“只会说,不会写”的情况,家长要 帮助孩子度过这个“难关”。 要求家长做到,不能丢到字词的情况下,除了加强 在家的听写外,要鼓励学生多读书,并且要求学生 积累,不光是看,还要动笔摘抄下来。俗话说“读 书破万卷,下笔如有神。”培养良好的学习习惯。

孩子在成长的不同阶段会出现不同的问题,从我平时的观察来看,学生目前在 以下方面存在着不足,这里我谈的是共性,共同存在的问题一定要引起我们特 别的重视。首先谈的是学习中存在的问题: 、学习的自控力和主动性不够。 进入三年级后,我们会明显发现孩子的运动量变大了,加上学习压力的增大, 难度的增加,孩子娱乐的时间变少了,在长时间的学习中,学生会产生疲倦感, 这时孩子就会想方设法宣泄自己的情感,学生容易变得浮躁,学习不踏实,成 绩时好时坏,起伏大,不容易静下心学习,作业时不应该犯的错误多,这些都 表明孩子的自控力欠缺。与此同时,学生的主动性不够也引起了我们的注意。 比如说:老师布置的作业完成后,不愿意做额外的提高作业或家长布置的作业; 采蜜本上好词好句的摘抄,老师不硬性规定,自己就懒得去做,存在着“惰 性”。 对策: 给孩子确立明确具体的目标。这里的目标有两个,一是远期目标,即理 想。让学生明确学习的意义,把学习和自己的理想、社会事业联系起来,这个 理想不一定就是孩子以后从事的事业,但是孩子有了一个奋斗的目标,会产生 持久而主动的学习动力。二是近期目标,最好是一两周内通过孩子努力就可达 到的。在这过程中,我们要注意经常关心和询问他们的学习情况,对他们所取 得的每一个进步表示祝贺,当他们表现不佳时,也要给予适当的批评。一个目 标达成后,再制定一个新的目标。给孩子适度的压力。孩子年龄小,许多事情 的利害尚不知晓,不太懂得学习的意义,不愿意在课本知识上多下功夫。所以, 需要我们对学生施加适当的压力,而不能听凭学生完全自由行事。我们要通过 各种方式,讲清楚学习的意义,尽量从正面激发他们学习的主动性。

、探索难题的精神欠缺。 三年级后,我们发现考试不是仅仅考课内的知识了,这就要求我们的孩子在课外 要大量地汲取知识,补充课内所学。目前学生在语文学习中,最头疼的算是阅读 理解。和低年段的阅读理解不同,除了对字、词、句的把握,中年段的阅读理解 更多的是对段落的理解,要学生归纳段落的主要意思以及中心思想。这对学生来 讲是很困难的。在平时的练习中,如果遇到让学生谈谈自己感受的题目,懒一点 的学生就不想做了,等着老师和好同学讲答案,长时间下来,自己的阅读理解能 力越来越差,心理压力也会越来越严重。同样的情况也出现在数学中,稍难的题 目学生就自动放弃了,导致自己越来越懒。 相应对策:掌握科学的学习方法。 面对难题不自信,害怕,根本原因是没有掌握解决此类问题的根本方法,所以对 课堂上老师传授的方法要认真听,同时要学会举一反三,灵活地运用知识,题目 “百变不离其中”,掌握了方法,就能将难题转变为做过的、熟悉的题目。让孩 子体验成功,逐步养成探索精神。在家辅导孩子的时候,不要将答案完全告诉孩 子,要有意识地将题目分成几个步骤进行,这样可以降低难度,让孩子一步步完 成,及时肯定他的成功,让他产生满足感,这样伴随着孩子愉快的情绪体验,他 会进而产生进一步学习的愿望,慢慢会对难题消除恐惧感。

、读书的质量不高。 二年级时我们就已经着手培养孩子的阅读习惯,应该说我 们班孩子阅读起步是比较早的,但是我最近发现两个情况: 第一,很多学生读书是装样子的。一方面是装给老师和家 长看,希望受到表扬,另一方面是装给自己看的,纯粹完 成任务。第二,读书的质量不高,读完就忘,一点印象都 没有,一点积累都没有。所以孩子在写作文时,感到没话 说,内容空洞,语言苍白。读书质量不高就是原因了,你 要分析,究竟是孩子在装样子,还是确实不会做积累,一 个是态度问题,一个是能力问题,要区别对待。 相应对策:家长与孩子一起阅读。 大家可以为孩子购买、订阅合适的图书报刊,创设一个阅 读环境,全家一起养成看书读报的习惯。要注意的是,书 最好不要订得过多,书要少而精。为防止“走马观花”, 家长可以与孩子共读一本书,共同讨论书中的问题,并指 导孩子做读书笔记和好词好句摘抄。

学生成绩优异的原因: .学习态度端正,勤奋; .时间观念强 .学习方法比较好; .自制力强,善于思考; .家长的支持与鼓励

有个别同学存在的问题

、 有个别同学学习习惯较差

、平常听课容易分心

、课堂学习效率较低

、个别作业写不完

、有的甚至忘记做 、还有部分学生写字太潦草,没有 恒心、耐心

?每天记录作业复习和预习的习惯。

?良好的坐姿习惯,站有站样,坐有坐样。 ?回家先完成作业的习惯,在写作业期间不要做 与写作业无关的事情。 ?认真写字的习惯,尽量不要写错,不要用魔笔。

?整理自己物品的习惯。

?养成爱读书,主动学习的习惯。

?留心观察事物的习惯。

?待人接物有礼貌的习惯

好习惯受用终生,坏习惯一生为其所累!

语文学习

课前预习:读熟课文,自学字、词及 标注课文的主要内容;收集资料; 上课:认真听讲;积极思考,踊跃发 言;做好笔记;认真书写 课后:默写生字词;读背课文;看书 写作。

写好作文 阅读优秀的作品:这是显而易见的,但立竿 见影的方法。尽可能的多读名著,在看内容 的时候,更要留意文章的问题和写作的技巧。 尽可能多的写:每天都写,如果可能话,每 天日记。你写得多了,也就写得好了。学习 如何写作和其他的学问道理是一样的,熟能 生巧 。 集中精神:写作是一件一心一意的事情,在 嘈杂的环境或是同时干着别的事情,是不可 能写好的。 修改草稿:更清晰,更直接,更鲜活。 好开头和结尾: 开头和结尾是文章的重点。

评比内容 ? 作业书写 ? 课堂发言 ? 考试与小测 ? 作文 ? 读英语 ? 读课外书 ? 主动学习 ? 为班级做贡献 ? 纪律与卫生

? 英语学科现状: ? 新版改编教材,内容增加,提前进入字母 的书写。但课时每周比以往三年级少一节 课,每周节,总计每学期比以往少节课。 为了完成教学任务,我每节课要安排一节 半课的内容。对于刚刚接触,学习英语的 三年级的孩子来说,光听,说,读都有困 难,还要学习个字母的书写,背写,难 度可想而知。

? 为了使孩子们有一个好的学习效果,请家长在家 里做好协助工作: ? 每节英语课都有读的作业,要求跟磁带熟读并 签字,本上的作业要求按照正确的格式书写,有 错误的请按老师改的再书写一行并记住。 ? 每天跟磁带熟读,复习之前的内容,读熟就能 背诵下来。(做到眼看,手指,嘴读) ? 书上页是每个单元的单词表,页是每个 单元的重点句型,要求听,说,认读。 ? 个英文字母要求听,说,读,写。 ? 英语学习需要持之以恒!谢谢! ? 英语老师:

家庭教育:

、督促孩子及时完成作业,关心孩 子各种考试情况。 、督促孩子完成口头作业。 、发现问题及时联系老师。 、督促孩子认真阅读课外书,最好 与孩子一起读。 、引导孩子形成积极健康的观念, 安全时刻在心间。

学生参加各项比赛 小歌手 乐器比赛 绘画比赛 作文大赛 书法比赛 书信比赛 舞蹈比赛 运动会的筹备

孩子是我们永远的希 望,教育孩子是我们共 同的责任,就让我们携 起手来,一起为孩子的 健康成长而努力吧!

POWERBUILDER教程图文

PowerBuilder 程序设计与系统开发

?

PowerBuilder 程序设计与系统 开发 ? 内容介绍

? 大纲进度 ? 考试方法 第一章、PowerBuilder基本原理 第二章、基本知识(C/S,数据库) 第三章、对象及控件的基本属性及方法; 第四章、数据窗控件(Datawindow)的特性及方法; 第五章、基本应用(Application)的建立; 第六章、PFC(Powerbuilder Founder Class)技术原理及实现。 第七章、与数据库系统集成进行开发基本技术及方法; 第八章、高级编程技术

内容简介

? ? ? ? ? 关于 PB(About PowerBuilder). 使用场合(Where)? 谁需要 (Who)? 工与数据库交互原理(How)? 学习内容(课程内容)(What)?

关于 PowerBuilder

PowerBuilder 最早是由PowerSoft公司开发并发布销售的, 并出品了到PowerBuilder.为止的各个版本,初期在广大开发人员 中反映并不强烈, 到年左右,由Sybase收购PowerSoft公司开始并成功推出了 PowerBuilder .版本,由此开始,由于它的易用性、数据窗专利 技术、对各种流行RDBMS的广泛支持、独特的开发方法及理念、 独特的对象编程技术等等,成为现在为止可能是世界上用于数据库 前端开发的最快捷、最方便、最强大的工具,一般而言,对一个小 型的系统,在充分分析好的前提下,熟悉的程序员可以在一周以内 完成一个独立的系统。这对于其他数据库系统前端开发工具,如 VB,Delphi,VFP,ORACLE Develop等等,如果你用过这些工具, 简直无法想象。 虽然现在流行的开发工具并不是PB,因为现在到处都是BB,BC, PB在这方面能够实现,但比较其它专门工具而言,并不具有非常大 的优势,而且实现的技术比较而言相对复杂。但对于S/C结构的数 据库应用及Intrnet而言,PowerBuilder仍然是非常好的选择。

PowerBuilder的发展史

年发布 PowerBuilder.

年发布 PowerBuilder. 年月Sybase与 Powersoft公司合并 年月发布 PowerBuilder. 年改名为 PowerSoft 年Kertzman创建 Computer Solutions公司 年Mark Hoffman 和 Bob Epstein共同创立 Sybase

PowerBuilder应用场合

、大型数据库系统C/S模式前端开发工具或B/S模式应用服务器开发工具, 一般应用于需要大型或中型数据库系统支持(如ORACLE,Sybase,MS SQL Server,DB,Informix)作为后台数据支撑平台的管理类系统,一 般可以承受千万级纪录量的系统,如: · MRPII系统 – 物料资源计划 · ERP系统 – 企业资源计划 · CRM – Customer Relation Management(客户关系管理) · Call Center – 呼叫中心(Haier) 、中、小型数据库系统开发,一般数据量为万左右,支持并发或仅单机 用户,如中、小型企业的内部信息管理、各种小型软件、共享软件等; 、与Sybase的PowerDynamo,Jaguar CTS,PowerSite等集成,建立电子商 务应用服务支撑平台; 、与PHP,Java,ASP集成,作为Intranet或Internet的后台数据库系统维护 工具,如异种平台(Unix,Linux,Solaris,NT)上的ORACLE,MySQL,DB 等的Client方式维护。

谁需要 PowerBuilder

PB可以做的事情很多,因此也就成为现在各软件公司进行系统开发的一 种常用工具,如果你将从事下列工作或有这些需求,则最好了解或通晓PB 、数据库系统前端开发中的程序设计; 、开发咨询或技术支撑; 、数据库系统分析及设计; 、需要掌握VB,Delphi,Developer 以外的其他工具; 、了解Internet网站建设中可以保护现有PB资源的开发方式; …… 注意: PB与数据库系统是不可分离的,因此,你只有对DBMS有基本的理解才 可能用好PB,精通当然最好。 如果你不知道DBMS是什么东西,请先学习相关内容,南京大学<数据库 系统概论>是非常好的入门教材,各流行数据库系统的基本概念都涵盖了。

PB 与数据库交互原理简介

PowerBuilder的吸引人的地方也就是它的数据窗技术,描述为: 、前端(Client)建立独立的Transaction(缓冲区,事务对象),用 于响应用户请求及返回执行结果; 、任何事务都必须在某Transaction中执行,默认为 SQLCA(SQL Connection Area),如 select * from table_xxx using sqlca; Dw_xxx.settransobject(sqlca); 、数据窗通过Transaction提取数据、编辑数据、再根据需要回 写数据,并保证在同一事务内,这样就完成了日常的数据的维护、 更新等操作。 、数据窗现在已经作为标准的ActivX可编程对象,可以嵌入到 其他程序中使用,但总是在PB中最方便,具有专利技术的数据窗集 成了数据编辑的几乎所有的常用算法、操作方式等等,非常方便。 、实际应用中,通过众多的数据窗和其它标准 Windows控件协 调运行,就完成了最基本的功能。 实际上远远不止这些……

大纲进度(课程内容)

学分:+(多媒体教室授课,上机) 内容: ? PowerBuilder基本原理; ? PB基本知识(对象、函数、事件、变量、脚本、继 承); ? 对象及控件的基本属性及方法; ? 数据窗控件(Datawindow)的特性及方法; ? 基本应用(Application)的建立; ? 与数据库系统集成进行开发基本技术及方法; ? PFC(Powerbuilder Founder Class)技术基本原理; ? 自己动手做东西。

PowerBuilder基本原理

? ? ? ? ? 编程原理 开发界面 库(Library)管理 基本对象及控件 运行方式

PowerBuilder运行原理

开发支持库 Pblib.dll Pbcmp.dll Pbudo.dll Pbrtc.dll …

运行支持库 PBvm.dll PBdwe.dll Libjcc.dll Pbo.dll Pbrtc.dll …… YouOcx.OCX YouLIb.DLL …… 开发(PBLs) BugFixing

编译(Pcode,Mcode)

DBMS

应用(ApplicationDLL,Exe,PBD)

发布(InstallShield)

PowerBuilder基本原理 - 开发界 面 菜单

工具条 预览

对象属 性面板

脚本

函数及 事件 状态条

PowerBuilder基本原理 - 开发界 说明: 面

、PB开发为标准的MDI方式,即对应不同的开发对象,有它不同的菜单及工具条, 对应不同的功能; 、可以创建的对象包括大类: 对象(窗口、函数、结构、菜单……) 数据窗对象(Grid,Free Form,Tabular,Label,N-Up……) 数据库(Database Profile,Query,Pipeline) 工程(Application,Proxy Library,COM CTS, OLE,Java Proxy……) 、常用工具 Library,Editor,Class view Browser,DB Profile Editor, Debugger,DW Syntax等

数据库基本知识 -

一、C/S模式图示

WinNT,Linux,Unix

Microsoft SQL Server ORACLE Sybase,DB,Informix

Servers

返回SQL语句 查询结果到客户机 发送SQL语句 到数据库服务器

DB Servers

TCP/IP

Clients

Clients

Clients

、客户端运行自己的程序,向服务器发送SQL请求及取回结果。 、服务器侦听网络,响应请求并返回处理结果。

数据库基本知识 -

二、数据库系统基本组成

物理设备

网络,协议

介质,接口

DBMS

Applications (应用)

DB Tools (管理工具)

存储管理 数据库管理 数据库中的对象管理 .表单 .视图 .触发器 .索引 .存储过程 .函数、包

数据库基本知识 -

三、关系数据库系统基本概念

? ? ? ? ? ? ? ? ? ? ? ? 表单(Table):由属性和记录构成的二维关系表; 视图(View):基于单表或多表的查询; 存储过程(Store procedure)存储于数据库服务器上的一系列操作的合集, 由服务器执行,可以增强可管理性和运行效率; 触发器(Triggers)当对表的某种操作发生时,就引发其他的一些逻辑处理; 索引(Index)服务于快速查询,寄生于表的一种服务; 函数,包(function,package):类似于存储过程; 数据库(database)上述各对象的集合; 设备(device,tablespace,datafile)存放数据库的物理定义; 日志(log)记录对数据库的任何操作,用于备份和恢复; 用户(User)可以使用数据库中具体内容的人员定义; 角色(Role)给同一用户赋予不同的角色,享有不同的权限; 权限(Privilege)赋予用户操作数据的权限;

数据库基本知识 -

四、ASA中的数据库管理

Sybase 随PB发行的Adaptive Server Anywhere (ASA) . 是短小精悍的 个人数据库系统,支持了大多数的关系数据库操作。如日志、事务、用户、 触发器,并提供管理中心(Sybase central)来管理数据库的内容, 在PB中,一个小型的数据库应用用ASA作为后台数据库已经完全可以 胜任。本课程的后台数据库将主要放在ASA。 Sybase Central实际上是以插件方式运行的,他可以管理Sybase产品中 的大多数,如Sybase Enterprise (SYE)数据库, Jugar CTS PowerDynamo, 等 等.提供了统一的界面。当然也可以通过SQL语句来管理数据库。包括建表、 索引、存储过程、触发器,数据更新,授权等等都可以通过SQL语句来执行。 下面将通过演示来讲解关于Sybase Central的使用,特别是如何建库, 建表等操作。

应用 - Applicaiton

? ? ? ? 如何建立应用(Application) 事件及脚本(Events and Scripts) 连接(Transaction)初中周记范文 入口(Start Pointer)

应用 - .建立

、Menu->File->New->Application (菜单-文件->新建->开始向导->Application) 、选择应用名称和存放的库文件 一个应用就建立完毕。实际上这个应用没有任何脚本、窗口,也没有处理任何事情。 应用建立完毕后,PB自动建立了一个PBL文件(PowerBuilder Library),并在这个PBL文件 中创建了一个Application entry(应用条目) 一般,一个应用都有一个主窗口,由这个窗口负责和用户的交互过程,而在应用的open事件 的脚本中处理的就是如何打开这个窗口,如何和数据库建立连接,如何初始化一些全局变量, 关闭应用时(Close事件)做如何处理等等。如: Open事件: ……. connect using sqlca; open(w_main_frame) Close事件: disconnect using sqlca; destroy xxxx 就是在 譬如,建立应用名为pb_lesson,存放库名为lesson.pbl,则在lesson.pbl中就存在了一个 pb_lesson的条目,当然,可以在其他pbl中创建一个新的application.

应用 - .事件及用途()

Application的事件 Open 当一个应用执行时,即触发此事件,实际上就是程序的入口,一般处理一些公用变量,公用对象, 连接数据库,打开主窗口等操作; Close 当主窗口关闭后触发此事件,如果没有打开任何窗口,则在Open事件后直接触发此事件,一般在 这个事件中断开连接,清除变量等操作; Connectiongbegin 当连接开始时触发此事件,由connect 函数直接触发此事件 Connectionend 当连接结束后触发此事件,由disconnect函数触发 Idle idle(xxx second)函数触发,既当系统处于等待状态指定秒数xxx后触发该事件,一般处理如关闭系 统,提醒用户等寒假日记200字30篇 Systemerror 当程序运行发生任何系统错误时触发该事件,一般处理记录错误,提醒用户等操作。 常用事件:open,close,systemerror

应用 - .事件及用途()

脚本(scripts)编写基本知识 · 一般依赖于某事件或函数,由事件或函数触发而执行,由换行或;表明一条语句的结束,如 Connect using sqlca; Open(w_main_frame) Disconnect using sqlca; · 任何嵌入式SQL都必须用;来表明该语句的结束,如 Select student_name into ls_name from table_ where col_ = ?hello?; · 大小写不敏感,如ls_name 和LS_Name表明同一个变量或对象 · 可以在一行写多条语句,用;隔开。如 ls_name=?xxx?;ls_name=?yyy?;li_cnt=; · 变量或对象的引用前必须声明,如 stirng ls_name=?abc? //初始值 ls_name=?Liujiangang? Messagebox(?Hello?,?My Name is ?+ls_name) 就是弹出一个消息框,并提示标题为Hello,内容为 My Name is Liujiangang 的内容。并显示确认按 钮用来接受用户响应。

应用 - .连接()

一般地,在数据库前端开发中,都连接到某数据库服务器的某数据库,或者连接到本地的某数据库或ODBC源,而连接一般是 在应用的Open事件中处理的,在Close事件中关闭此连接,连接实际上是Transaction对象,该对象有下列 常用属性:

DBMS指定数据库管理系统的名称,如O ORACLE ..,ODBC ServerName指定数据库服务器名称,如EPCS_LOCAL,MSS_DB等 Database:指定数据库服务器上的数据库,如MaterialDB UserID指定数据库用户的ID号,如dbo UserPass LogID指定用于连接到数据库服务器的用户ID号,如 connector LogPass 2019年《开学第一课》观后感 DBParm附加的连接参数,如‘ApplicaitonName=“asdfadsf”?等,随DBMS而变化 AutoCommit是否自动提交,如True,false

以上这些参数对特定的DBMS不是都必需的,一般DBMS,ServerName,都必须指定。 其他属性(该对象创建后才具备):

SQLCode最近SQL语句执行的PB结果码,,-,-三个数值 SQLDBCode:最近事务中SQL语句返回的数据库操作返回码; SQLErrtext最近操作的错误信息; SQLNRows最近操作返回的结果数据;

一般,一个应用中已有默认的Transaction存在,即SQLCA,因此,在Application的OPEN事件中就可以指定它的具体属性用来 连接数据库,如

// Profile pb_class SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString=&#;DSN=pb_class;UID=;PWD=;“

应用 - .连接()

就指定了Transaction SQLCA的属性,然后就可以用数据库的四个方法中的 Connect来处理如一个Application的常用的Open事件脚本为:

SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString=&#;DSN=pb_class;UID=;PWD=;“ Connect using sqlca; If sqlca.sqlcode = - then Messagebox(?Error?,?cann?t Connect to Server?+sqlca.serverName,stopsign!) halt close // 终止并处理Application的Close事件 End if Open(w_frame)

应用 - .入口

一个系统的入口就是Application的Open 事件,但是一般在这个事件中打开某窗口, 如 Open(w_frame) 主要的事务就由w_frame来处理了。此时 Application仍继续运行着并监控着 W_frame的状态,一旦W_frame结束,就 触发Close事件

窗口 - Window

窗口概述

、 窗口(Window)是程序和用户进行交互的主要界面,类 似于VB或Delphi的Form(窗体),在窗口上可以布置各种 不同类型的控件以满足程序的要求,各控件间相互协作, 完成预定功能 、一个窗口可以只被打开一次或者作为一个实例变量而被 创建(实例化)然后打开多次。 、任何窗口的最底层基类都是windows,可以逐级继承,对 于节省代码开支,界面一致性等非常有好处。 、数据窗作为标准控件可以直接嵌入到窗口中使用。

窗口 - .创建

有种方式创建一个窗口: .新建: 从菜单中选择“文件->新建”,弹出新建向导,选择“对象Windows”,系统就自动创建一个标题为 Untitled 的空窗口,没 有任何脚本,但可以被打开。 .继承: 菜单中选择“继承”,弹出可被继承的祖先清单,选择一个,系 统自动从该祖先窗口继承,新窗口拥有祖先窗口的所有特性及脚 本,并可以重载及覆盖这些属性或脚本。 创建并修改完成,按Ctrl+S或文件->保存,输入窗口名称并制定放 在那个PBL中,该窗口就可以被调用了。 注意点: 基于继承的窗口,一旦祖先的属性修改,则该窗口中没有被重载 或覆盖的部分即自动修改,实际上该窗口分为部分:祖先和自 己。

窗口 - 窗口的基本属性

窗口的属性非常多(个),仔细理解属性的具体用途及含义对用好窗口对象非常重要。 常用属性:

属性名称 标题(Title) 类型(Window Type) 定义该窗口的标题栏; 定义该窗口的类型: Main! - 主窗口,常用方式 Popup - 弹出式窗口,用来为其它窗口提供支持信息 Child! – 由父窗口打开,并且只能在父窗口范围内存在 Response! -用于输入信息,模式窗口 MDI!,MDIhelp! - 多文档窗口 对Main,MDI,mdihelp类型的窗口有效,设置该窗口的菜单名称 外观:enabled,visible,titlebar,maxbox,minbox,resizeable, border,backcolor,mdiclientcolor,HscrollBar,VScrollBar等等 位置:x,y,width,height,pointer 菜单 toolbarvisible,toolbaralignment,toolbarx,toolbarY, toolbarWidth,ToolbarHeight Control[],menuid 含义

菜单(MenuName) 外观属性

运行态属性(只读,描述性质)

运行态属性

bringtotop

窗口共支持以下种标准控件

CommandButton PictureButton

窗口 - .窗口支持的控件.

命令按钮(cb_ok,cb_cancel) 图形按钮(pb_ok,pb_cancel) HScrollBar VScrollBar 水平滚动条 垂直滚动条

CheckBox

RadioButton StaticText StaticHyperLink Picture PictureHyperLink GroupBox Line Oval Rectangle RoundRectangle SingleLineEdit EditMask MultiLineEdit RichTextEdit

检查框(cbx_choice_)

收音机按钮(单选按钮)(rb_tes) 静态文本(st_notice) 文本超级连接(shl_) 图形(p_) 图形超级连接(phl_) 分组框 线条 椭圆 矩形 圆角矩形 单行编辑(sle_test) 掩码编辑(em_year) 多行编辑 富文本编辑

HTrackBar

VTrackBar HProgressBar VProgressBar DropDownListBox DropDownPictureListBox ListBox PictureListBox ListView TreeView Tab DataWindow Graph OLE UserObject

水平导轨

垂直导轨 水平进度条 垂直进度条 下拉列表框(ddlb_ 下拉图形列表框(ddplb_ 列表框(lb_) 图形列表框 列表视图 树 标签 数据窗 图表 OLE对象 用户自定义控件(对象)

窗口 - .窗口支持的控件.

这些控件各自有自己的属性,事件及函数 (Properties,Events,Functions),以后我们将穿插在 各章节中提及。 UserObject是一种特殊的对象(控件),它以 Custom Class,Stand Class,Custom Visible,External Visual,Stand Visual五种基本类为 基类,拥有该基类的基本属性,同时在他们的基 础上扩展属性,函数及事件,并直接作为一个可 视化控件可以被window或实例化后使用。

窗口 - .窗口常用事件 事件是描述一个窗口或窗口中控件的行为的语法,只有在满足特定的条

件时才会触发该事件,一般一个事件反映了某种条件下的某一动作。也 可以手工方式使系统满足这些条件从而触发这些事件。

事件名称 Open Close Resize CloseQuery Timer Activate Deactivate 鼠标事件 拖放事件 键盘 其他 事件含义及用途 当该窗口被用open()函数打开时触发该事件,一般作为该窗口进行初始化处理的入口 当该窗口被关闭后消失前触发,可能被close()函数关闭,也可能是系统级关闭操作, 一般用于收尾处理 当该窗口的大小调整时触发,一般用于调整界面控件的相对位置 后于Close事件触发,当该窗口准备关闭前触发,可以替代close事件,并可以决定是 否可以关闭 由窗口函数Timer()触发,到达指定秒数后触发该事件,一般用于控制。 当窗口被激活前触发,触发后焦点自动移到该窗口的第一个制表站或上次的制表站, 如果没有任何可编辑对象,则该窗口获得焦点。 当该窗口变为非激活状态前触发 Clicked,doubleclicked,mousedown,mousemove,mouseup,rbuttondown Dragdrop,dragwithin,dragenter,dragleave Key,systemkey DDE控制,Other,show,hide, ToolbarMoved,Help

窗口函数一般用来控制窗口的行为,取得窗口信息,控制窗口的行为,触发特定 事件等等

函数名称 Open(),openSheet() 函数含义及用途 系统级函数,用于打开某特定窗口,变参调用 系统级函数,用户关闭某窗口,变参调用 在当前脚本执行完毕后触发某事件(后续某动作),变参 立刻触发某事件(嵌入某动作),变参 系统级函数,取该窗口或某对象的父窗口 指定窗口或对象的类名(名称) 返回当前对象的类型(powerobjet) 开始计时,如Timer(,this)表示本窗口在秒后触发Timer事件,变参 如果是MDI框架窗口,则按指定方式排列所有文档窗口 隐藏,显示,setredraw(false) Move(x,y),resize(w,h),workspacewidth(),workspaceheight(),workspacex( ),workspacey(),setposition Settoolbarpos(),settoolbar(),changemenu() Pointerx(),pointery() DDE控制系列函数

窗口 - .窗口常用函数

Close()

PostEvent TriggerEvent Parentwindow() Classname() Typeof() Timer(seconds) ArrangeSheets() Hide(),show() 大小及位置 菜单 鼠标

其他

窗口 - .窗口控件操作(一)

左对齐

在界面设计中,往往用到非常多的控件放在同一窗口中,一般会有下列要求: 右对齐 :对齐操作 水平中间对齐 包括左、上、下、右,竖向、横向对齐等操作。 竖向中间对齐 以第一个选择的对象为基准 等高 :大小操作 向下对齐 等宽 向上对齐 包括宽度,高度: 等高等宽 :相对位置操作 竖向等间距 水平间距,竖向间距(三个以上对象选中时才有效) 横向等间距 :制表站(tab order)定义 当运行时,用户按tab在各个控件上的移动顺序,一般以进位 如 ,,………… :公用属性及特有属性指定 字体、文本对齐方式、前景色、背景色、边框等:

文本色(前景色) 背景色

边框

窗口 - .窗口控件操作(二)

其他按钮功能:

复制对象或文本 撤销或重做上次 的任意操作 保存 剪切对象或文本 粘贴对象或文本 置于最后端 置于最前端

打开当前选中对象的脚本

属性面板切换到当前选中对象

选中行及光标所在行标记为非注释

脚本工具按钮

查找和替换

编译当前脚本

粘贴各种语法或 原型定义

全选

选中行及光标所在行标记为注释

窗口 - .窗口控件的公用属性

每个控件都有的属性共个,这实际上是可视控件(Control)的最基本属性 Name 在窗口中唯一标记该控件的有效字符串 Enabled 使某控件失效或使能,失效后用户无法操作,但是可以手工触发它的事件 Visible:可视与否 Foreground Color:前景色(按钮无效) BackgroundColor:背景色 Tag:与系统无任何关系的一个公用属性,可以做任何事情 Border:边框类型,枚举值,有些控件指定了也无效是无效的。 位置:在父对象中的定位(如x,y,width,height,x,y,x,y等,但属性名称不一致) 关于颜色的算法: 长整型(long) ,rgb颜色系统 颜色值 = rgb(red,blue,green) = green * + blue * + red 如 红色( ) = rgb(,,) = * + * + 可以从下拉工具条中直接选取常用颜色及系统颜色

窗口 - .窗口控件简介 – 命令按 钮

类型:Commandbuttom,PictureCommandButton 最常用 属性: default True时,当在窗口中的任意控件上按下回车键,就会触发它的clicked事件,同时边框 加深; cancel True时,当在窗口中的任意控件上按下Escape,就会触发它的clicked事件; text 现实的文本,如 “确定(&O)” 就是这样的: PictureCommandButton中 PictureName,DisabledPictureName指定有效,失效时的图片,但因为不支持透明, 故用的比较少。 Htextalign,VtextAlign:制定水平,垂直方向的文本对齐方式 事件: clicked最主要事件,在用户按下并抬起鼠标后触发。 其他事件: rbuttondown,dragdrop,dragenter,dragwithin,dragleave,getfocus,lostfocus等等 极少用,一般都在clicked事件中写脚本。 函数: setfocus() :取得焦点,一般在别的控件中调用,如 cb_xxx.post setfocus() classname()取得名称,如 cb_test.classname() 就返回 “cb_test” hide(),show(),resize(),move()等较少用到。 用途:到处都用,但一个界面上按钮不易太多,而且布置要合理,用图片按钮给用户比较直接的 感觉,但是颜色就固定了。

窗口 - .窗口控件简介 – 静态文本

类型:StaticText ,经常用,一般用做显示信息 属性: text显示的文本 backcolor,textcolor,bordercolor:颜色属性(底色,前景色,边框色) 事件: clicked,doubleclicked,极少对它写脚本 函数:同 commandbutton,很少用

窗口 - .窗口控件简介 – 可编辑类

主要有:SingleLineEdit,MultiLineEdit,EditMask,RichTextEdit 属性: SingleLineEdit text可以修改,其他和statictext一致; MultiLineEdit 全部SingleLineEdit属性和事件,可以折行 EditMask 和SingleLineEdit一致,可以制定输入的格式(mask属性),如日期型,则 mask输入 ‘yyyy-mmdd? RichTextEdit:类word文档处理控件,一般较少用到 事件: modified最常用事件,指明做了修改后执行什么操作。 getfocus取得焦点后执行的操作,一般用来选择文本,如: this.selecttext(,len(this.text)) 其他事件很少用到 函数: copy(),paste(),selecttext(),cut(),undo()等等,都是用于文本操作的。其他文本编辑控件都有这些函数,如 sle_test.copy()表明将sle_test中选中的文本复制到剪贴板。 用途: 除了数据窗以外的所有用户输入的口子都在这儿,因此用途非常广,结合数据窗,就可以完成用户输入部分的操作 了。

窗口 - .窗口控件简介 – 显示及 控制类

类型:HScrollBar,Vscrollbar:滚动条 HTrackBar,VTrackBar导轨 HProgressBar,VProgressBar进度条 属性:minposition,maxposition,position指定最小,最大值,当前值 如 hpb_.position= //表明将进度条的位置移动到处(不一定代表是 %, 因为和maxposition有关) 事件:TrackBar,ScrollBar moved当移动按钮或导轨时触发 函数:TrackBar,ScrollBar setposition(),setrange(), OffsetPos()设置位置,范围,相对移动 用途: 这几个控件,一般Hprogressbar较常用,经常使用在需要进行常时间运行的程序中, 显示当前运行的总体进度,以免用户以为死机而reset.(PB是单线程内核,即使可以通 过yield()函数来进行后台处理,但一旦执行某运算,一般是很难终止的,而且此时cpu的 占用会非常高,以至用户以为机器死了)

窗口 - .窗口控件简介 – 下拉列 表框

类型:DropDownListBox(ddlb),DropDownPictureListBox(ddplb) 属性:两者基本相似,ddplb多了一个图形显示及图形属性,图形处理函数而已,在实际使用中,基本上没有多少区别。 Item指定下拉列表中的项目,一般不能太多,否则就毫无意义。 PictureName按顺序指定图片名称,然后和item中的pictureindex对应 Sorted是否按item中的文本排序 ShowList =true,则永远显示下拉列表。一般很少用,本来就是想省地方,现在 再占用一块地方,还不 如用PictureListBox来的好。 事件:selectionchanged 当选中的对象改变时触发,一般都在这儿写脚本。可以通过事件的参数index来得到当前选中的是哪一项。 函数: DirList()可以直接将某目录下的文件名全部显示出来,配合Treeview,可以自己做一个目录及文件树 DirSelect()取出由dirlist()生成的列表中当前选中的文件名或目录名; Additem(),Insertitem(),DeleteItem()增加,插入,删除 item SelectItem()手工指定选中的item TotalItems()一共有多少个item Reset()清除所有item FindItem()查找符合条件的item 用途: 用在唯一需要确定某类型的时候,选项不要超过个,否则很容易找不到,而且,个图片堆在一起,很难确定那 个是你真正需要选择的。

窗口 - .窗口控件简介 – 列表类

类型:ListBox,PictureListBox 属性、事件、函数: 与下拉列表类基本类似,甚至函数、事件、都差不多,不过列表类支持多选 因此也就多了有关于多选的其他函数,常用的有个: state(),判断某个item是否为选中, setstate():设置某项的选中状态 TotalSelected()一共选中了多少个 用途: 一般作为需要用户可以有多个选择余地的地方,但是item不能太多,个里面挑一个好 找,个里面的话,只有眼花 @_@

窗口 - .窗口控件简介 – 视图类

类型:ListView,TreeView 这是两个仅次于datawindow的复杂程度和好用程度的两个控件,由于有比较丰富的属性和函数可调用,因此可以做出很多 效果。 属性:ListView : LargetPicture属性 主要是用来显示为 LargeIcon!类型而设的。 其他属性同PictureListBox 但是可以指定多个列,而不是单个item。 TreeView 一个item可以有个图片: PictureIndex,selectedPictureIndex,StatePictureIndex 每个Item不是单一的文本,而是特别的TreeViewItem,有自己的子属性 如 data,label,pictureindex,selectedpictureindex,level等等 事件: SelectionChanged:选中项改变 RbuttonDown鼠标右键,一般用来做弹出菜单menu_xxx.popup(xpos,ypos) 函数:图片类:addpicture(),deletepicture():主要用于动态形成视图 ListViewadd,insert,delete等等,如 TreeView AddStatePicture(),DeleteStatePicture()处理状态图片 AddItem(),DeleteImte(),SetItem增加,删除,修改某节点(Item) InsertItem():指定位置插入某Item InsertItemLast():在某节点下级最后增加下层Item InsertItemFirst():在某节点下级最前插入下层Item InsertItemSort()在某节点下级中按排序插入下层 Item FindItem()相对查找,如同层、上层、下层 Expanditem(),CollapseItem()展开、折叠指定节点 SelectItem(),SetFirstVisible()选中某节点,使某节点第一个可见 应用:非常广泛

窗口 - .窗口控件简介 – 其他

其它控件图形控件,图表控件: Line,Oval,Rectangle,RoundRectangle,他们总是处于最底层而不可能覆盖在 其他控件的上方,没有事件,一般仅做装饰用。运行时修改它们的属性就可 以实现各种效果。 图表控件:Graph 用来表示系列数据。一个图表控件可以有一个或多个数据系列。 函数: AddCategory,将一个Category添加到控件中。 AddSeries,在 一个已经存在的Category中添加一个数据系列并返回一个值。 AddData和InsertData,利用AddSeries的返回值在一个已经存在的数据 系列中添加一个数据项。另外用户还可以直接在数据窗口中利用Graph风格 来显示图形化的数据。

菜单 - Menu

菜单:Menu 应用程序中一般都有菜单,原因很简单。因为如果每项命令都有按钮完成,就会因为按钮过多而使得 用户在使用起来找不到头绪。而下拉式菜单不但具有占用空间小的优点,而且层次分明,每项功能都 有相应的文字提示。所以对于一个复杂的应用程序来说,菜单绝对是必不可少的。Pow-erBuilder提供 了一个菜单画板。用户可在菜单画板中定义自己需要的菜单项和每个菜单项相应的脚本 创建:文件-新建-对象-菜单即可进入菜单画板,或文件-继承,选择祖先菜单,然后也进入菜单画板。 属性:每个菜单有若干级联的菜单项构成,每项成为一个 menu item,每个item都具有菜单的所有属性,包 括: 普通属性:

name名称,如果从祖先继承,则不能修改 text菜单文字,如“文件(&F)” Microhelp:显示在MDI Help 框架窗口的状态栏中的文字 Visible,Enable可见,使能 shortcut快捷键,如 CTRL + S,有下级菜单的菜单没有快捷键

工具条属性: ToolbarItemText工具条上的文字; ToolbarItemName工具条图片; ToolbarItemDownName工具条下压图片; ToolbarItemSpace工具条前面的空格; ToolbarItemOrder工具条顺序; ToolbarItemIndex工具条所在的Dock顺序

菜单 - 如何使用

菜单的事件: selected选中后,即鼠标通过该菜单项; clicked单击后,一般在这儿写脚本; 脚本编写: 一般在脚本中打开某窗口,如: openSheet(w_mdi_sheet,parentwindow,,original!)就是在框架窗口parentwindow(菜单的属性,表明该菜单依附的主 窗口,一般为MDI Frame)中打开w_mdi_sheet,并将打开的窗口的标题自动显示在定义为windows类型的菜单下,并 保持原始w_mdi_sheet的位置。详细参数请查看opensheet函数。 一般菜单用在个地方: MDI Frame :框架窗口中,作为主程序的主要界面的一种执行方式, 一般一个MDI Frame都必须指定一个菜单; Popup弹出式菜单,用在特定的窗口或对象中,由menu_xxx.popup(x,y)来调用 如何引用菜单: 种方式,显示和隐式引用: 如有框架中定义菜单:m_frame,其中有 m_file (文件&F) m_file_open (打开&O) m_file_empbar(-) m_file_exit(关闭(&x)) 则在主窗口中对该菜单中m_file_exit菜单项的引用可以是: m_frame.m_file.m_file_exit或 m_frame.item[].item[]

框架 - 框架应用程序

在如今的Window应用软件中,多文档(MDI)应用程序占了很大的比重。这是因为相对于单文档界面,多文档界面可以同时 打开多个窗口,无需关闭窗口就可以打开另外一个,可以自由的在各文档之间切换。因此,为了使我们的软件更具实用性, 能够更好的方便用户,创建一个MDI的应用程序就显得尤为必要。 MDI应用程序由两部分组成,即MDI框架和框架内的工作表(Sheet)。MDI框架就是执行程序时首先打开的主窗口。在框架中打 开的其它窗口被称为工作表。 在同一屏幕中,主窗口即MDI框架只能有一个,而工作表可以有很多个,且只能在框架范围内活动。也就是说,当工作表被最 小化时,它不会缩小在Win的工具栏上,而会出现在框架底部的一个横栏上。当工作表被最大化时,它也只能被放大到 充满整个框架,而不是整个屏幕。创建框架的方法很简单,只需首先在窗口属性中指定一个菜单,然后将窗口的类型改为 MDI Frame或MDI FrameWith Micorhelp即可。 MDI框架中的工作表实际上就是一个普通的窗口,但是不能是MDI Frame、MDI FrameWith Micro-Help或Response等类型的 窗口。要想在一个MDI框架中建立一个工作表,只需调用函数OpenSheet即可。工作表在MDI框架中有三种排列方式,即 Cascaded!、Layered!和Original!三种方式。用户可以在建立工作表时为工作表指定一种排列方式,也可以通过函数 ArrangeSheets来重新排列工作 关于工作表的函数还有 GetActiveSheet,被用来返回当前MDI框架中被激活的工作表,它的返回值是一个窗口类型。当没有工作表被激活时,返回值 为Null,用户可以通过IsVa-lid函数来判断其返回值是否有效。 GetFirstSheet,用来返回MDI框架中顶层的工作表; GetNextSheet用来返回指定工作表的下一个表。 ParentWindow ( )函数,返回当前工作表的父窗口,也就是其所在的MDI框架。 OpenSheetWithParm带参数的打开工作表。 在MDI框架中的工作表如果带有菜单,那么当该工作表被打开后它的菜单将覆盖原来框架的菜单。当多个工作表具有不同的菜 单时,在菜单栏上显示的将是当前被激活工作表的菜单。只有当关闭了所有的工作表,或者工作表根本没有菜单的时候, 在菜单栏上显示的才是MDI框架的菜单。对于菜单项的每一项,无论它是MDI框架还是工作表的菜单,都可以为该选项设 置状态栏上的提示信息,只需在菜单项的属性Micro-Help中设置即可。 一般,工作表的菜单都是从框架菜单继承或相同的,以免打开一个工作表后无法打开其他工作表。

窗口 – 小结

窗口是程序的核心界面,应用通过各个窗口,利用窗口中 的各种控件和用户交互,完成数据的处理工作; 一般应用都以MDI Frame作为框架程序, Sheet菜单从Frame菜单继承或没有菜单,保证框架界面的 统一和完整; 界面设计应遵循一定的原则,不是想怎么做就怎么做,必 须考虑协同开发问题,用以保证整体性和一致性。 脚本的编写、函数、事件的命名都必须考虑规范性的问题, 从一开始养成良好的命名规范及编写习惯,对己对人都极 有好处。

Datawindow - Intro

Datawindow

Datawindow - .基础.

数据窗口是用于查询、显示和维护来自关系数 据库或其他数据源(如Excel文件或其他文件)数 据的对象。在数据窗口中可以定义数据的显示格 式、显示风格和其他数据属性,使数据对用户更 加直观和更有意义。 数据窗口最初使用在PB的C/S结构中,为这种模 式提供了强有力的数据查询和数据维护功能。随 着PB及其相关技术和产品的发展,PB已经不是单 一的C/S应用开发工具,已经可以适应Web开发等 各种需要,主要应用包括

Datawindow - .基础.

? PowerBuilder数据窗口,作为在应用程序中的一个控 件; ? HTML数据窗口,用于web应用的瘦客户端数据窗口, 提供了大部分的PB数据窗的数据维护和编程等功能; ? 数据窗口的ActiveX Web控件,在Powersite内部建立 Web页面时使用的ActiveX控件; ? Java版本的数据窗口:在PowerJ中建立Java应用使用 的JavaBeans组件; ? Design-time控件,Powersite使用; ? 数据窗口插件:在浏览器中显示PowerSoft PSR报表。

Datawindow - .显示风格和数据源

显示风格(Style) 用于定义数据窗口的显示风格和外部特征。 Tabular(列表):记录横置于页面,标题在所有列的顶端,可以多行数据; Freeform(自由格式):每列左侧有一个标签,一屏只显示一条记录; Grid(网格):如Excel的sheet格式; Label(标签):每页有几个标签,每个标签一行; N-UP(分栏):并列显示; Group(分组):在表头下按列分组的格式; Composite(组合):嵌套格式 Graph(图表):数据的图形显示; Crosstab(交叉):行列格式的数据表示,列可动态计算; RichText:多信息文本,文本段落中可以嵌入列; Ole连接或嵌入到数据窗口的OLE对象于获取的数据关联。 数据源(Data Source) 定义数据窗口中数据的来源: Quick Select来源于sql数据库的多表; SQL Select定义完整的sql语法; Query通过查询面板定义的查询对象作为数据源; Stored procedure以存储过程作为数据源; External通过文件输入或程序代码生成的数据。

Datawindow - .如何使用数据窗.

使用数据窗主要包括以下两个步骤: 一、在datawindow painter或datawindow Builder中创建或编辑一个数据 窗口对象; 二、在开发环境中,将一个数据窗口控件或组件放在窗口或web页面中, 并把数据窗口控件和数据窗口对象关联起来(指定数据窗的 dataobject属性) 通过数据窗口控件,应用程序与在数据窗口画板中定义的数据窗口对象 进行通讯,通过编写程序控制数据窗口控件和控件所包含的数据窗口 对象。程序代码可以修改、查询数据,改变数据的表现形式、处理错 误、共享数据窗口控件之间的数据等等。

Datawindow - .如何使用数据窗.

关联: 数据窗控件是一个对象容器。 在窗口或其他对象中,指定某数据窗控件 的dataobject到某存在的数据窗对象,就可 以在窗口中使用该数据窗对象了。 命名:dw前缀,如dw_employee 对象:d_employee 引用:w_xxx.dw_employee

数据访问 如果某数据窗需要和数据库建立联系,则该数据窗必须指定到某事务对象,因此一般通过以下步骤来访问: 、创建并连接事务对象; 、为数据窗设置事务对象; 、获取、修改数据,保存到数据库; 、断开数据库连接 其中,,一般在Application中的open和close事件中处理。 ,示例: dw_control.settransobject(sqlca);//连接事务 dw_control.retrieve() //检索数据 ….处理数据 //更新数据 if dw_control.update(true,false) = then commit using sqlca; //提交数据 dw_control.resetupdate() else rollback using sqlca; //回滚最近的提交 end if 加载外部数据: importClipboard,importfile,importstring函数提供了获取外部数据的方式

Datawindow - .数据访问

数据维护 一个数据窗有三个缓冲区用来存放用户的数据: 主缓冲区(Primary!):保存未被修改或删除或过滤出的数据; 过滤缓冲区(Filted!):被过滤出的数据; 删除缓冲区(Deleted!):被用户删除的数据 PB通过这三个缓冲区保留用户所有对检索出来的数据的操作,然后统一处理为与数据库打交道的sql语法,如 insert,delete,update,实际上就是完成最终的这三种操作。 数据存取 提取: GetItemDate,GetitemDateTime,GetItemDecimal,GetItemNumber, GetItemString,GetItemTime,GetText 写入: SetItem dw_control.getitemString(,?emp_name?)即得到Primary!缓冲区中第行的emp_name列的值。 setitem(,?emp_name?,?刘建刚‘)即设置Primary!缓冲区中第行的emp_name为指定值。 也可以用数据窗控件的对象属性来存取数据,如上述语法可以对应为: dw_control.object.emp_name[] dw_control.object.emp_name[] = ?刘建刚’ 其他函数常用: Accepttext,DeleteRow,Filter,Getrow,InsertRow,Reset,Retrieve RowsCopy,RowsMove,RowsDiscard,RowCount,ModifiedCount,DeletedCount,FiltedCount ScrollToRow,ScrollPriorPage,ScrollNextPage,ScrollFirstPage,ScrollLastPage SelectRow,GetItemStatus,SetItemStatus ,SetFilter,SetSort,Find ShareData,ShareDataOff,SaveAs,SaveAsAscii Update,ResetUpdate

Datawindow - .数据维护

Datawindow - .对象属性

数据窗口对象属性主要用来存储控制数据窗口行为的有关信息,这些信息不是数据窗口控件的属性,而是 在数据窗口控件(容器)中存在的数据窗口对象的属性。 利用Describe和Modify函数可以用来提取和修改数据窗口对象属性。 如:dw_control.describe(?emp_name.border?)即取得emp_name的边框属性 或 dw_control.object.emp_name.border 取出,返回:any类型 dw_control.modify(?emp_name.border=“”?)即将该边框设为类型(无边框) PowerBuilder的数据窗对象(个)提供了非常多,相当全面的属性描述,这些对象的有些属性可以修改,有 些是只读的,如某数据列的编辑格式,一般制作完成后,在数据窗口控件中就不能再修改而只能取出 他的具体编辑方式。 理解这些属性并充分运用好这些属性,可以极大地扩展编程的灵活性和可扩展性,这也是数据窗对象学习 的难点,一般难以在短时间内掌握,需要不断的磨练。

Datawindow - .数据窗中的错误

二种类型(控件中存在) 、DBError事件,在数据窗控件 retrieve,update时出错时触发,描述该数据 窗对象连接的事务返回的具体信息,如 update时报告一致性错误,列错误等等, 连接错误,共享错误等等。

、ItemError事件:当某列编辑不符合检验 规则(validation)时触发该事件

Datawindow - . 数据窗应用示例

设计步骤: .先通过Datawindow Winzard设计好数据窗对象,如 d_my_first_grid .新建或继承一个窗口,在窗口中加入一个数据窗控件dw_ .查看该控件的属性,调整dataobject属性,连接到刚才的数据窗对象, 或在程序中指定他的属性,如: dw_.dataobject = ?d_my_first_grid? 按 “…” 弹出如下对话框,选择 刚才设计的数据窗对象就可以了

Datawindow - . 数据窗应用示例

使用步骤: .创建事务对象,默认为SQLCA,可以自己定义一个全局事务变量; .指定该事务对象的属性,连接到数据库;(一般在Application 的Open事件中 处理), 如: // RollCall 的连接定义

SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString=&#;DSN=RollCall;UID=;PWD=&#;,PBCatalogOwner=&#;dba&#;" Connect using sqlca; if sqlca.sqlcode <> then // 显示错误,处理错误 end if

.编辑某窗口,一般在这个窗口的Open事件中对数据窗控件设置事务信息,如 Windows的Open事件中写入: dw_.settransobject(sqlca) 即表示将dw_的数据操作和sqlca这个事务对象联系起来。

Datawindow - . 数据窗应用示例

.检索数据:dw_.retrieve(参数,参数,…….); .对检索出来的数据(放在缓冲区中)进行编辑,通过直接编辑,Setitem,dw_.object对象引用等操作,编 辑数据; .编辑完成,将该数据窗中的修改过的数据保存,是否修改由PB自己判断,可以通过dw_.GetItemStatus 函数得到每行、每列的修改状态用来作特殊的判断。 一般的保存脚本如下: if dw_.update(true,false) = then commit ; //提交事务 //完整的语法应当是 Commit using sqlca; //对于默认事务sqlca,可以省略using sqlca子句。 dw_.resetupdate() // 复位修改状态为从未修改过 else RollBack; // 回滚事务,并提示错误信息 Messagebox(?错误’,?保存数据时发生错误:~r~r?+& sqlca.sqlerrtext,Stopsign!) end if .当不需要再使用该事务时,记得断开(一般在Application的Close事件中处理): Disconnect Using Sqlca;

Datawindow - . 数据窗应用示例

对数据窗操作的常用脚本 .插入行 dw_.insertrow() //在第二行前插入一条新行 .追加行 dw_.insertrow() //在尾部追加一行 .删除行 dw_.Deleterow() //删除第二行 .过滤 dw_.setfilter(? emp_name like “刘%”?) //凡是雇员姓刘的 dw_.filter() .排需 dw_.setsort(?emp_name a,emp_address d?) //按姓名正序,地址倒序排需 dw_.sort() .查找 ll_found_Row = dw_.find(?emp_name like “刘%” ?, ,dw_.rowcount()) // 在 – dw_.rowcount() 范围内查找第一个满足条件的记录 .赋值 dw_.setitem(,?emp_name?,?测试‘) //设置第二行中emp_name的值为 ’测试‘ .取值 ls_emp_name = dw_.GetItemSTring(,?emp_name?) //取出第二行的emp_name值到ls_emp_name变量 .走动记录 滚动到指定行:dw_.scrolltorow() //滚动到第行,一般和find一起操作 相对滚动行:dw_.scrollpriorrow(),scrollnextrow(),scrollNexPage(),scrollPriorPage() .更新。Dw_.update(true,false)

PowerScript 编程

任何程序的编制归根结底都需要由代码完成,虽 然可视化编程为我们提供了极大的方便。但是如果没有 完善的代码,程序就不可能有完善的功能。 PowerScript是PowerBuilder的编程语言。我 们在学习时可能已经发现,PowerScript语言与传统 的Basic语言有很多相似之处。PowerScript是一种 自由格式的语言,在编写程序代码时,编译器忽略它的 空格、缩进、空行等,在这方面它又与C语言有几分相 近。在本章中,我们将介绍PowerScrpit的数据类型, 变量及作用范围,程序结构,以及一些常用函数和语句, 尤其是一些和数据库有关的操作,将是本章内容的重点。

PowerScript

PowerScript -变量的类型和作用域

变量是指在程序运行过程中可以改变的量,变量在程序运行的过程中被赋值,在执行各种操作的 时候,变量的值被不断传递,以实现程序员设定的各种操作。可以说,没有变量就没有程序可言,而灵活使用 各种不同的变量将使程序设计更为简洁、高效、安全,条理性也会更强。在变量声明时只需注意四点,一是必 须以字母开头;二是标识符不能使用保留字;三是标识符长度必须小于;各字符之间不允许有空格。另外还 要注意连字符,因为连字符容易和减号混淆。 在Power-Builder中,所有变量都必须事先声明才能使用,而且类型固定,一旦声明之后就不能变化。 变量的作用域是指某一变量的使用范围。早期的BASIC语言中,所有的变量都是全局变量,这样做有很大的危 害,主要是因为过多的全局变量会引起程序的崩溃,同时也会限制为函数取名的个数。在PowerBuilder中,程 序的变量分为四个层次,局部变量、实例变量、共享变量和全局变量,用户可以充分利用局部变量和实例变量 以使程序变的简洁和高效 类型 局部变量 实例变量 Local Instance 前缀 l i 说明 仅在某脚本范围内有效 依赖于某对象而存在,在一个对象范围内,并 可以定义此变量对外部对象而言的存取权限, 如:限定前缀Private和Protected,默认为 Public, 可以再细化为 PrivateWrite、PrivateRead ProtectedWrite ,ProtectedRead 共享变量与实例变量相似,但有一点区别,那 就是共享变量的值不因对象的关闭而改变。声 明的方法是Declare|Shared Variables。 用户可以在任何地方访问它 示例 li_index PUBLIC is_user_name PRIVATE is_my_name

共享变量

Shared

s

ss_window_type

全局变量

Global

g

gu_ext_function

PowerScript – 数组及使用

数组是任何一种程序化语言都必须有的一种数据结构,与集合和枚举类型的数据结构不同,它是一 系列有序数据的集合。数组中的每一个元素都属于相同的数据类型,并且每一个元素都有相同数组名和不同的 数组下标。数组的类型有两种:一种是一维数组,另一种是多维数组。多维数组必须有一个固定的大小,而一 维数组的下标可以是固定的,也可以是可变的。用户在声明一个数组时首先必须声明的是一个数组的类型,然 后是数组名,数组下标。 一维数组定义: string ls_my_array_ [] //不定长数组 string ls_my_array_ [] // 从 ls_my_array[] 到 ls_my_array[] 共个单元 string ls_my_array_ [ to ] // 从 ls_my_array[] 到 ls_my_array [] 共个单元 多维数组: string ls_my_d_array[,] //定义一个 * 的数组,共个单元 string ls_my_d_array[- , - to ] // 定义一个 * 的数组。 数组及数组间的操作: 上界及下界: UpperBound(ls_my_array_) ,LowerBound(ls_my_array_)) 数组是否一致 =,<> 数组变量类型可以是任意类型,包括窗口,菜单,自定义对象,控件等等。。。

PowerScript – 结构使用

一个结构是一个或几个相关变量的集合,它们有着相同或不同的数据类型,但都在同一个名字下。在有 些语言中,例如Pascal和COBOL语言,集合又被叫做记录。集合允许将一些相关的数据项整合为一个整体而不 是彼此独立。比如说,如果将用户的ID,地址,等级,照片组合为一个叫做user_struct的结构,就可以将这 个变量的集合作为一个统一的user_struct结构来使用 结构按存取范围分为类: 全局结构: 作为一个独立对象存放在 PBL 中,可以直接申明并引用。如通过winzard创建一个Structure对象, 然后在脚本中就可以使用了。譬如已经做好了一个结构叫做 st_user_structure,则程序中应当如下使用: 一、申明一个变量(上述四种变量中的一种) 二、指定这个变量的类型为 st_user_structure 三、引用这个变量。 譬如某事件中: st_user_structure lst_user_structure ls_user_structure.user_id = ?asdfasdf? ls_user_structure.user_no = …… 对象结构: 依赖某对象而存在,只能在这个对象内存取,如某窗口内定义一个结构。在View ->structure List 中可以看到所有在这个对象中的结构,双击该结构可以进行详细定义。 使用方式和全局结构一致 对象内部的结构如果申明为Instance变量,则必需加入Private前缀。

PowerScript - 常用程序结构

IF 判断: if … then …… else ….. end if if … then elseif … then elseif … then else end if if … then ……… Choose Case CHOOSE CASE testexpression CASE expressionlist statementblock { CASE expressionlist statementblock ... CASE expressionlist statementblock } CASE ELSE statementblock } END CHOOSE GOTO GOTO label ………. label

Do 循环

// 方式 DO UNTIL condition statementblock LOOP //方式 DO WHILE condition statementblock LOOP // 方式 DO statementblock LOOP UNTIL condition // 方式 DO statementblock LOOP WHILE condition For 循环: For 起点 to 终点 Step 步长 …. Next // 或 End For 如: For li_row = to dw_.rowcount() ………… End for For li_row = dw_.rowcount() to step – dw_.deleterow(li_Row) End for

PowerScript – 代名词

? This 指代当前Script所在的窗口、 用户对象、菜单、应用程序或控件 ? Parent 指代包含当前对象的对象 ? Super 指代当前类的直系父辈。

PowerScript – 常用函数和语句 MessageBox (一) - Messagebox

显示消息提示框,并得到用户的响


成语大全

Copyright www.jiayuanhq.com 全民百科 版权所有

声明: 本站文章均来自互联网,不代表本站观点.如有异议,请与本站联系,本站为非赢利性网站,不接受任何赞助和广告.