PowerBuilder经验

合集下载

PowerBuilder技巧

PowerBuilder技巧

PowerBuilder技巧1.RGB函数计算公式: 颜色值= (65536 * Blue) + (256 * Green) + (Red)2.控件可拖动:send(handle(this),274,61458,0)3.如何用程序控制下拉子数据窗口的下拉和收起用modify或者直接用dw_1.object.col1.dddw.showlist = true4.检索参数有些不需要传入则传%.5.如何屏蔽鼠标滚轮触发在控件的other事件写if message.number = 522 then return 16.得到数据窗口的语法:string ls_dwsyntaxls_dwsyntax=dw_1.describe("datawindow.syntax")7.得到数据窗口中各列及标题:long ll_count,istring ls_value,ls_colnamell_colnum = Long(dw_1.object.datawindow.column.count)for i = 1 to ll_colnum//得到标题头的名字ls_colname = dw_1.describe('#' + string(i) + ".name") + "_t"ls_value = dw_1.describe(ls_colname + ".text")next8.在程序中动态设置初始值:ex:dw_contro.object.columnName.initial = 'xxxx'9.如何在DataWindow的SQL语法中不使用SELECT DISTINCT 实现删除重复的行---- 起先对你要显示唯一值的列进行排序:"city A",然后增加如下过滤字符串:" city < > city [-1] or GetRow () = 1"10.如何改变列的字体颜色,提醒用户此列已做修改---- 在列的Color属性中,输入如下表达式IF (column_name < >column_name.Original, RGB(255, 0, 0), RGB(0, 0, 0))。

PowerBuilder数据窗口技巧

PowerBuilder数据窗口技巧

PB数据窗口技巧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中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。

PowerBuilder中数据窗口使用技巧

PowerBuilder中数据窗口使用技巧

PowerBuilder中数据窗口使用技巧PowerBuilder中数据窗口使用技巧PowerBuilder(以下简称PB)是一个非常优秀的数据库前端开发工具,其数据窗口(DataWindow)控件充分体现了PB与数据库系统的紧密结合,堪称前端工具的典范。

本文介绍了使用PB设计数据窗口的一些小窍门,希望能对使用PB的开发者有所帮助。

一、校验表达式(Validation Expression)的设置校验表达式是PB 提供的一个优良特性。

但您是否觉得表达式的输入过于烦琐呢?一般而言,校验表达式的输入和修改要经历下面4步:1. 选取要编辑的列(Column);2. 按鼠标右键,选择"Properties",将弹出"Column Object"窗口;3. 在窗口中选择"V alidation"标签,输入所需的校验表达式;4. 输入完毕后,按"OK"按钮。

这种输入方式有两个缺点:1. 过于烦琐,每输入一个表达式都要经过4步。

这一点在每列的校验表达式都基本相同时尤其明显。

2. 无法统一查看和对比各列的校验表达式,不利于查错。

其实PB提供了一个更加灵活的,专门用于输入校验表达式的工具。

在编辑数据窗口时,选择"rows"菜单的"Column Specifications"项,将会弹出"Column Specifications"窗口。

在窗口中,可以直接设置每一列的校验表达式二、"选择工具"的使用在数据窗口中,有时需要修改所有列的颜色或字体,一般的操作都是一个一个选取。

其实PB提供了一个非常好的选择工具,用来选择数据窗口中的对象。

这个工具位于"Edit"菜单下的"Select"项中.选择工具一共有7个功能,其中前5个适合用热键直接操作选项功能三、多用户安全访问数据库的实现大多数情况下,您的应用程序将在网络环境下运行。

PowerBuilder调试方法与技巧

PowerBuilder调试方法与技巧

PowerBuilder调试方法与技巧1.引言PowerBuilder是数据库前端应用开发的主流编程工具,随着从Client/Server的两层开发模式到三层甚至多层开发模式的过渡,PowerBuilder不断增加新的功能以适应和推进这种转变。

PowerBuilder 7的版本已经可以通过开发Jaguar 中间层组件创建典型的分布式应用。

这就给PowerBuilder的调试技术提出新的要求。

调试技术在任何软件开发中都站有及其重要的位置。

利用PowerBuilder开发也不例外。

PowerBuilder工具集成了强大的调试画板,使得调试变得容易,但其中的一些高级的调试技巧和技术并不是很容易掌握,而掌握和使用这些调试的高级技巧和技术是开发高质量软件产品的重要保证,也是优秀的PowerBuilder开发者必须具备的能力。

PowerBuilder提供的高级调试技术主要包括:设置临时和条件断点、设置变量值改变断点、Just-in-time调试、Jaguar组件远程调试术(Remote Debug)。

前三种调试技巧适合于本地调试;最后一种是分布式应用中的调试技巧,可以在客户端对部署在应用服务端Jaguar CTS(Component Transaction Server组件事务服务器简称)的组件进行调试,包括调试陷入到事件或者方法的脚本,观察和更改组件变量等。

远程调试技术以本地调试为基础,是PowerBuilder做分布式开发的关键性技术,尽管与本地调试类同,但却又有其独特和复杂的一面,是做好PowerBuilder中间层组件开发的重要技术。

当然,熟悉本地调试的各种技术细节,才能更好得进行远程调试。

对于基本的调试技术(比如设置断点、单步执行、屏蔽和清楚断点、监视变量等)不再累述。

2.PowerBuilder7的调试画板简介调试画板集成了PowerBuilder强大的调试功能,包括以下主要的部分:1)Breakpoints View:展示所有要调试的对象、事件、代码行信息、通过它很容易定位到需要调试的代码或者进行断点使能和屏蔽等操作。

powerbuilder编程简单入门(个人总结)

powerbuilder编程简单入门(个人总结)

一种简单的powerbuilder10数据库编程介绍1、需求分析与数据库建立进行需求分析(需求分析文档),确定数据关系,建立各种数据表,建立数据库(Access),设置ODBC数据源(控制面板->管理工具->数据源ODBC->“用户DSN”菜单下点“添加” 选相应的数据源驱动程序,如果用Access2003建立的,则选第三项“Driver do Microsoft Access(*.mdb),然后点击“完成”->输入数据源名,如mydata,然后点击“选择”按钮选择建好的数据库,最后点“确定”,如下图所示)2、界面设计(功能界面、重要数据表维护界面)界面设计主要分为几个部分(1)按照管理系统所需的功能设计界面。

首先画出所有可能的业务流程(数据的各种可能输入、修改、删除业务,数据的输出、显示业务)(2)按照需要维护的表设计界面(往往给最高权限管理员直接修改数据用)3、开始程序编写(1) 新建一个workspace(new->workspace->workspace)(2) 在workspace下建立一个目标(new->Target->application),可取名frame(3) 在目标下建一个主窗口可取名w_main,窗体名一般以w_开头(new->PB Object->Window),将其Window Type 设为“mdihelp!”(4) 为主窗口建一个主菜单可取名m_frame,菜单名一般以m_开头(new->PB Object->Menu)(5) 程序中设置ODB ODBC点击按钮,选中“ODB ODBC”项,然后单击右边“New”按钮,弹出如下对话框,设置Profile Name和Data Source,如图所示。

(6) 建立配置文件配置文件取名“config.ini”,内容如下:[MyDB]DBMS=ODBCAutoCommit=FalseDBParm=ConnectString='DSN=mydata;UID=;PWD='(7) 自动连接数据库与退出程序关闭数据库的编写首先建立Global Variables如下:string gs_userid,gs_username //登录用户标识、用户姓名string gs_root_path,gs_ini_path //应用路径和主配置文件路径其次申明Global External Functions如下:FUNCTION int GetComputerNameA(ref string computername,ref long size) LIBRARY "KERNEL32.DLL" alias for "GetComputerNameA;Ansi"FUNCTION long GetCurrentDirectoryA( long nBufferLength, REF string szBuffer ) LIBRARY "KERNEL32.DLL" alias for "GetCurrentDirectoryA;Ansi"FUNCTION long SetCurrentDirectoryA( string szPathName ) LIBRARY "KERNEL32.DLL" alias for "SetCurrentDirectoryA;Ansi"//end prototypes在程序的总入口(进入“”)Open事件中写入以下代码:// Profile moneyandfriendsstring ls_1//设置应用根目录gs_root_path = space(255)GetCurrentDirectoryA( 255, gs_root_path )if right(gs_root_path,1) = '\' thengs_root_path = left(gs_root_path,len(gs_root_path) - 1)end if//设置配置文件路径gs_ini_path = gs_root_path + "\config.ini"IF not FileExists ( gs_ini_path ) THENMessageBox( "找不到配置文件"+gs_ini_path,"系统配置错误",stopsign!,ok! ) RETURNEND IF//SetProfileString(gs_ini_path,'DBMS','ls_1=ProfileString(gs_ini_path,'MyDB','DBMS','ODBC')SQLCA.DBMS =ls_1SQLCA.AutoCommit = Falsels_1=ProfileString(gs_ini_path,'MyDB','DBParm','error')SQLCA.DBParm = ls_1connect using sqlca;open(w_main) //打开主界面在Close事件中加入如下代码:disCONNECT USING sqlca;(8) 建立新的具体功能窗体(如w_zichuangti)8.1 设置窗体BackColor为“Cream”,输入窗体Title;要在1024*768分辨率下基本满屏,窗体大小可设置为“4645*2748”8.2在新窗体上一般用GroupBox来划分功能区域,设置该控件的字体为“宋体”,大小为“10”,背景颜色为“Cream”8.3用静态文本做功能说明或指示,一般加黑,宋体9号字示例程序界面如下:(9) 响应菜单click事件弹出子窗口(相同子窗口只弹出一次待研究)在菜单下编写代码打开窗体(双击菜单即可在Click事件下编写),简单代码如下://选择菜单时调出子窗体window lwopensheet(lw,'w_ zichuangti',parentwindow,0,Cascaded! )lw.WindowState = Maximized!(10) 相同的子窗口只让弹出一次(代研究)(10) 建立数据窗口(11) 添加新的pbl文件一般要用不同的pbl文件分类存储不同窗体、数据窗口和菜单等资源;建立新的pbl文件的方法如下:点击工具栏上“Library”按钮,然后在弹出子窗口中进入程序所在文件夹,在工具栏左下有“”创建pbl的按钮。

PowerBuilder 7.0实用技巧八则

PowerBuilder 7.0实用技巧八则

PowerBuilder 7.0实用技巧八则一、实现运行窗口居中众所周知,PowerBuilder 7.0在以前的版本中提供了图形化的预览工具,可以很方便的在设计阶段实现窗口居中。

但是,到了7.0似乎该项工具被取消了,也没有什么属性来设置,至少我没有找到。

每当我们需要将窗口居中的时候只有一点一点地调整它的X,Y值,这一点十分让人头痛。

出于无奈,只好通过编程实现。

我们只在每个需要居中的窗口的Open事件中写上这些代码就会实现窗口的自动居中。

要实现窗口的自动居中,我们可以用函数Move()来实现。

但是,由于我们开发出来的应用程序往往会在不同的设置环境中运行,虽然一般情况下是由我们为用户配置好的,但我们总不能保证用户显示器的设置模式不会改变。

所幸的是,PB为我们提供了环境对象Environment,该对象其实是一个系统结构,其中保存了PB应用程序的运行平台信息,例如,代码集,CPU类型等。

其中当然会有我们需要的屏幕宽和高。

为了得到该结构我们可以用函数GetEnvironment()。

该函数的作用是得到关于操作系统,处理器和屏幕的系统信息。

具体用法如下:Environment my_systemInteger li_ScreenWidth, li_ScreenHeightGetEnvironment(my_system)// 得到屏幕的总宽度和长度li_ScreenWidth = PixelsToUnits(my_system.ScreenWidth, XPixelsToUnits!)li_ScreenHeight = PixelsToUnits(my_system.ScreenHeight, XPixelsToUnits!)// 函数PixelsToUnits()的作用是将屏幕的像数转换成PowerBuilder使用的单位,因为像数通常不用于方形中,具体用法请参见函数手册。

然后就可以用Move()来实现窗口居中。

powerbuilder编程简单入门(个人总结)

powerbuilder编程简单入门(个人总结)

一种简单的powerbuilderlO 数据库编程介绍1、需求分析与数据库建立进行需求分析(需求分析文档),确定数据关系,建立各种数据表,建立数据库(Access ), 设置ODBC 数据源(控制面板->管理工具->数据源ODBC-〉“用户DSN ”菜单下点“添加” 选相应的数据源驱动程序,如果用Access2003建立的,则选第三项“ Driver do MicrosoftAccess (*.mdb ),然后点击“完成”->输入数据源名,如 mydata ,然后点击“选择”按钮选 择建好的数据库,最后点“确定”,如下图所示)軒F ODBC 議据添管理器用尸DS1I '系毓DSF 文件兀町驱动程序 跟踪 压接池|关于Mi.ptive Server 宜“艸h 世9. Mi cr<'sofl Xcces5 Driver (+. v■ i|| ■段. T E邓 <■I >\\2、界面设计(功能界面、重要数据表维护界面)界面设计主要分为几个部分(1 )按照管理系统所需的功能设计界面。

首先画出所有可能的业务流程(数据的各种可能输入、修改、删除业务,数据的输出、 显示业务)(2)按照需要维护的表设计界面(往往给最高权限管理员直接修改数据用)3、开始程序编写(1) 新建一个 workspace(n ew->workspace->workspace) (2) 在workspace 下建立一个目标(new->Target->application),可取名 frame (3) 在目标下建一个主窗口可取名 w_main ,窗体名一般以 w_开头(new->PB Object->Window ),将其 Window Type 设为"mdihelp! ”名称 駆动程序 ■忝加⑪…用尸数 IB HEQ Drivar C*. d Escel Driver (4. K ^Lcrcioft A CMES Eriver (*. Xcces5 Driver (*. MicroioEt AcatssAdipiiTe S»rv«r • 9. Hi croEoft Mi crosoft Uriv*r dp Mi crQioft Mi crosoft Driver do 启 h 9 0 Saihifl« 並矩EFU«EE KCE JF iles fri endsmonayaiidfri tiids fflSAccess Database配詈|£)...tr uislLtlOVi sic Database Saiiipl es 躅瞬銅鶴將曆辭豔聖討用取消]L | 帮助(4) 为主窗口建一个主菜单可取名m_frame,菜单名一般以m_开头(new->PB Object->Menu )(5) 程序中设置ODB ODBC点击「,按钮,选中“ ODB ODBC ”项,然后单击右边“ New”按钮,弹出如下对话框,设置Pro和Data Source,如图所示。

PowerBuilder编程技巧实例.

PowerBuilder编程技巧实例.

PowerBuilder编程技巧实例随着数据库技术在各行各业的广泛应用,作为企业级数据库前端开发工具的Power Builder日益成为开发人员的得力助手。

PowerBuilder以其开放的体系结构,友好的用户界面和简洁高效的开发环境赢得了众多程序员的喜爱,连续多年被评为美国计算机界的年度风云产品,在数据库开发工具领域占据了高达44%的市场份额。

PowerBuilder进入我国的时间不长,许多编程人员希望了解并掌握这一先进工具。

在这里,笔者将自己平日用PowerBuilder作开发的一些体会整理出来,奉献给大家。

PowerBuilder是由多个功能模块组成的可视化集成开发环境,是面向对象的开发工具,用它可以方便地建立起基于Windows的分布式数据库应用。

其功能模块分别完成应用管理、窗口对象设计、菜单对象设计、数据窗对象设计和数据库查询等工作,这些功能模块由于PowerBuilder提供的色彩丰富的工具条而被称作"Pain ter"(画板。

下文便依据各模块作大的分类介绍相应的编程技巧。

、有关应用的编程技巧仅让应用程序运行一次的技巧有时需要限制一个PowerBuilder应用同时运行的实例(Instanee个数或仅让应用运行一次,我们可以通过调用WindowsSDK函数或使用PowerBuilder的Handle(函数来实现。

先谈调用SDK函数的方法。

为了调用SDK函数,需要在AppIicationPainter的菜单项Declare'GlobalExternalFunctions中定义:Fun ctio nuin tGetModuleHa ndle(stri ngModuleNameLibrary"Kernel.exe"Fun ctio nuin tGetModuleUsage(ui ntModuleHa ndleLibrary"Kernel.exe"F面这段程序写在Application的Open事件中。

浅谈PB使用心得

浅谈PB使用心得

浅谈PB使用心得
在过去的几年里,我一直在使用PowerBuilder(简称PB)来进行软
件开发。

PowerBuilder是一种基于面向对象编程的集成开发环境(IDE),它可以让开发者使用非常简单的方式来创建和管理企业级应用程序。

在使
用PB的这段时间里,我积累了一些使用心得,现在将它们分享给大家。

另外,PB还有一些其他的特性,使得它成为一种非常强大的开发工具。

首先是PB的数据窗口控件。

数据窗口是PB最重要的控件之一,它支
持多种数据源,包括数据库、文件和Web服务等。

数据窗口具有强大的数
据绑定和自动更新功能,可以大大简化数据的显示和修改操作。

此外,PB
还提供了许多内置的功能和类库,可以帮助开发者完成各种常见的任务,
如文件操作、网络通信和图形处理等。

虽然PB在很多方面都非常强大,但也存在一些不足之处。

首先是PB
的学习曲线较陡。

相对于其他的开发工具和编程语言,PB的概念和语法
是非常独特的。

新手可能需要一段时间来适应这种独特的开发方式。

此外,PB的文档和教程相对较少,这也给初学者带来了一些困惑。

熟悉powerbuilder

熟悉powerbuilder

实验一熟悉powerbuilder一实验目的了解数据库系统,熟悉PowerBuilder集成开发环境,学会使PowerBuilder以及数据库的建立、连接和数据库表的操作。

二实验内容1.1PowerBuilde的基础PowerBuilder是一种可视化的、面向对象的快速应用开发工具,它提供了对面向对象编程的全面支持,集成了第四代(4GL)编程语言,内置了多种对象类,可以方便地对数据库进行访问。

PowerBuilder应用系统可以运行在Windows9x/2000/XP/2003、Macintosh、Sun solaris等多种平台上,并支持跨平台的开发和分布。

例如:在Windows上开发的PowerBuilder 应用程序可以分布到UNIX平台上运行。

PowerBuilder与数据库的连接是通过接口进行的(ODBC通用接口和专用接口)。

通过ODBC接口,PowerBuilder可以实现与大部分数据库管理系统(Oracle、Sybase、Informix、MS SQL SERVER、FOXPRO、Access、Excel等)相连接。

为了提高访问效率,PowerBuilder 还提供了与某些数据库管理系统(Oracle,MS SQL SERVER,SYBASE等数据库管理系统)的专用接口。

面向对象的程序设计方法的精髓是将要处理的信息抽象成对象,每个对象都能响应外界的刺激并进行相应的动作。

PowerBuilder应用程序由多种对象组成,并对每个对象提供了方便好用的开发工具。

其中,画板、事件、脚本、函数和库是PowerBuilder中开发应用程序的基本工具。

另外,PowerBuilder还附带有多种实用工具软件。

如Adaptive Server Anywhere 9.0、PowerBuilder Runtime Packager等实用工具软件,对数据库应用的开发与部署提供了强有力的支持。

1 .2 PowerBuilde的工作环境图1 PowerBuilde集成开发环境它是一个典型的带帮助的多文档窗口(MDI Help),包括顶部的菜单栏和工具栏、左边的系统树(System Tree)和Clip窗口、底部的输出窗口。

powerbuilder9.0教程1

powerbuilder9.0教程1

powerbuilder9.0教程1第1章 PowerBu i l der概述教学提⽰:PowerBuilder是美国Powersoft公司推出的⼀种使⽤⽅便、功能强⼤的数据库应⽤系统的前端开发⼯具。

最新的PowerBuilder 9.0版本扩展并改进了许多功能,增加了对.NET、PBDOM、XML DataWindow、RAD JavaServer Pages和PBNI的⽀持。

PowerBuilder 可以实现与多种⼤型数据库管理系统的连接,是⼀个⾼度集成的数据库应⽤系统开发⼯具。

教学要求:本章⾸先介绍PowerBuilder的主要特点,重点使读者掌握PowerBuilder 9.0集成开发环境的组成和基本⽤法,学会使⽤PowerBuilder 9.0开发简单应⽤程序的基本过程。

1.1 PowerBuilder简介PowerBuilder是著名的数据库应⽤开发⼯具⽣产⼚商Sybase Inc.的⼦公司PowerSoft 公司于1991年6⽉推出的产品。

它基于客户机/服务器体系结构研制设计,⽤于数据库应⽤程序的客户端开发。

PowerBuilder采⽤了⾯向对象和可视化技术,提供可视化的应⽤开发环境,利⽤PowerBuilder可以⽅便、快捷地开发出利⽤后台服务器中的数据库管理系统的数据库应⽤系统。

这些应⽤系统既可以运⾏于单机上,也可以运⾏于局域⽹或因特⽹平台上。

PowerBuilder⾃投放市场以来,以其独特的体系结构和强⼤的功能受到⼴⼤开发⼈员的好评和欢迎,在数据库前端开发⼯具市场占据了很⼤的份额。

⾃1991年6⽉PowerBuilder 1.0投放市场以来,PowerBuilder经历了多次升级换代,其性能⼤⼤增强和改善,使⽤效率⼤⼤提⾼。

特别是随着因特⽹的发展,PowerBuilder开始与Internet相结合,分别于1997年12⽉和1998年11⽉推出PowerBuilder 6.0和PowerBuilder 7.0,提供了Internet开发环境所需要的组件、库和⼯具,增强了Internet的应⽤能⼒,并提供了更加⾼效的数据窗⼝对象。

PowerBuilder制作会计软件心得体会

PowerBuilder制作会计软件心得体会

PowerBuilder制作会计软件心得体会我的体会是:软件的好坏不在于价格,而在于它是否符合你的需求。

因为现代化的社会里计算机和网络已经成了生活中必须具备的东西,所以在购买软件之前首先应该考虑到这款软件的功能是否对你真正有用?最后,才考虑价钱问题,有些时候并不是越贵就越好!选择软件要从自己实际出发,俗话说“人无完人”嘛。

只有自己使用过之后才知道它的好处与优点,如果不实践你永远都是纸上谈兵。

只有通过使用,使你熟练地掌握了这种语言,那么再去学习一门新的语言或者技术就会很快,这样便大大提高了工作效率。

此外,在购买软件的同时还应该注意以下几方面。

但一个好的东西也不能说适合所有人。

其次,我们要认识到不同软件之间有相似又有区别。

我们不可能用这个软件去做另一个软件来得事情,就比如说:你用 word 制作文档,当然没问题;但你想拿着制作的文档却用在其他电脑上,那肯定就行不通了。

因此我们应该根据自身条件来挑选一款适合自己的软件,最终做到既省时又省力。

然后,如何来分辨好坏呢?首先,你应该明确它的基本功能,如果在基础的功能上达不到,那么其他的一切优势都毫无意义。

比如用财务软件,你应该把主要精力放在财务处理、往来账目管理等核心业务功能上,而不是考虑各类表格、图标、字段……。

其次,多尝试,可以模仿,可以借鉴。

很多软件的界面风格都是差不多的,甚至是完全一样,不仔细看是绝对发现不了的。

即使是使用了一段时间的老版本,也可以按照老版本的操作步骤重复操作。

在最初使用新软件的时候总会遇到各种各样的问题,只要虚心请教,耐心研究,积极思考,一定会解决的。

最后,最关键的一点就是“使用”!我认为这是一个非常严肃的态度,更应该贯彻到底。

只有你亲手动起来,才会知道什么叫软件的神奇魅力,更深刻地体验到你正在享受一场视觉盛宴。

一款软件是否足够吸引人,取决于你使用这个软件的程度,也许当你认真地钻研透一个软件的时候,它将是一笔巨大的财富。

最重要的一点:经济允许的情况下,尽量选择原创软件,避免盗版软件带给你不必要的麻烦!毕竟你花费了太多的金钱购买了一套完整的系统。

powerbuilder与会计信息系统开发心得

powerbuilder与会计信息系统开发心得

powerbuilder与会计信息系统开发心得一.实训的基本情况说明。

在学了一个学期的基础会计之后,我们虽然掌握了理论知识,但对于把这些理论运用到实践还是有一定难度,不能够把理论和实践很好地结合起来。

众所周知,作为一个会计人员如果不会做账,如果不能够把发生的业务用账的形式体现出来,那么就不能算作会计。

于是在大一地二个学期我们开了这门会计实训课。

实训重在动手去做,把企业发生的业务能够熟练地反映出来,这样才能证明作为一个会计人员的实力。

因此我们学校本着理论结合实际的思想,让我们学习实训课使我们不仅在理论上是强的,在动手能力更是强者。

这样我们在三年毕业后走出校门才能更好地投入到工作中去。

二.实训的基本内容。

基础会计实训这门课程主要以基础会计作为理论依据,进行一些企业发生的业务的实训。

能够在理论的指导下把整个会计账务程序用一种完整的科学方法体现出来实训的具体内容主要有:1,如何填制原始凭证,它是让实训者对发生的业务以一种凭证的形式进行记录,并能够正确地填写业务发生情况。

2,如何对原始凭证进行正确的审核。

这需要实训者学会不仅能填制原始凭证,而且能对原始凭证的正误进行审核。

3,如何填制复式记账凭证。

这要求实训者能够分清账户的借贷方,并正确地填在凭证上。

4,如何填制单式记账凭证。

由于这种记账方法不能全面地反映业务发生的对应关系,也不便于检查账户记录的正确性和完整性。

所以此内容只是老师课堂讲解没有资料做具体实训。

5,如何对记账凭证加以正确的审核。

6,怎样对日记账进行正确的登记。

这要求实训者能够谨慎地对每日的现金账和银行账进行正确的登记。

7,永续盘存制与存货明细账的正确登记。

这是让实训者能正确地运用数量金额式账和各种存货计价方法进行登记账簿。

8,如何进行错账更正。

这要求实训者能用正确更正方法对已经登记错误的账簿和凭证进行更正。

9,记账规则与结账。

要求实训者能在会计准则下正确的登记账簿,在特定的日期进行正确的结账。

38个powerbuilder操作技巧

38个powerbuilder操作技巧

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中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。

powerbuilder常用基础知识

powerbuilder常用基础知识

powerbuilder常用基础知识PowerBuilder为数据窗口控件提供了丰富的函数,这些函数使用户能够在使用数据窗口控件时得心应手。

与数据库有关的函数这类函数完成与数据库有关的功能。

一、连接数据库连接数据库也就是指定事务对象。

PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。

语法格式:dw_control.SetTrans(TransactionObject)dw_control.SetTransObject(TransactionObject)其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。

这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。

用户只需要在这里填充一个事务对象,PB就会自动完成对该事物对象的初始化以及和数据库连接的工作。

而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。

但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。

与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。

因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。

这两个函数都是成功时返回1,发生错误时返回-1。

二、检索数据用于检索数据的函数只有一个,就是Retrieve()函数。

语法格式:dw_control.Retrieve()假如数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。

而且检索参数必须和数据窗口对象中定义顺序一致。

此函数返回一个长整型的数据,代表检索出来的数据行数。

PowerBuilder数据窗口编程技巧

PowerBuilder数据窗口编程技巧

PowerBuilder 数据窗口编程技巧 取得巨大成就的原因就是有功能强大和灵活多变的对象,本人用开发 过一段时间后,总结出一些技巧,以供广大的开发者借鉴使用。

1、如何创建一个具有逐渐递增求和功能的报表,如下形式 5,0005,0002,5007,5003,00010,50012,00022,500 对于列, 我们可使用计算列, 即可达到逐渐递增求和的功能。

2、数据窗口的数据送缓冲区之前确认的四个步骤如果我们不清楚数 据窗口中的数据在送入缓冲区之前所发生的一切,在保存数据时就不明白 错误发生的原因,找不出错误的根源。

首先判断数据类型是否正确。

如不正确则触发事件。

接着判断数据是否符合有效性规则。

如不符合有效性规则,同样触发事件。

然后判断是否有数据被改动。

最后判断数据是否通过事件,如果数据和相斥,将触发事件。

3、如何在中用数据类型为的列为条件进行查寻 1 当要查找的日期条件是一常数时使用如下表达式_="_=111999"2 当要 查找的日期条件是一个变量时使用如下的表达式_="_="+_+""3 当要查找的 日期条件是一个数据类型时使用如下表达式_="_="+_+""4、设置数据窗口型属性的三种方法提供了三种方法设置数据窗口的布尔型属性,分别 是,10,。

例如_1=0_1=_1=在处理时以字符串的形式保存属性,而不考虑属性值 是布尔型、长整型或是字符型。

为了进一步理解,可以导出一个数据窗口并查看它的原码,可以发现 即使是列的颜色属性它也是使用带双引号的数字来表达。

5、如何在数据窗口中快速删除多行在开发过程中可能经常有要进行 多行删除的操作,一般都使用循环语句进行操作_=1_1_1_这里提供一个快 速的删除方法把要删除的行从主缓冲区中移到删除缓冲区中。

例如, 删除缓冲区中所有的行_1_1,1,_1,!,_1,1,!但需注意的是不要忘了 过滤的行在不同的缓冲区中。

PowerBuilder培训(中高级)

PowerBuilder培训(中高级)

事件——用户事件
• 用户事件的使用场合
– 解决用户对象与窗口之间的通讯问题。用户事件可以 通过参数进行信息传递。
– 响应特殊操作,这些操作没有相应的PowerBuilder预定 义事件。例如,我们希望用户按下Enter键后将输入焦 点从一个单行编辑框移动到下一个单行编辑框(正常 情况下需要按Tab键);再如,在数据窗口控件中,当 用户输入焦点定位在最后一行后,再按Enter键时插入 一个空行等。
Long
SqlnRows Long
SqlDbCode Long
数据库厂商的名称 要连接的数据库名称 与数据库连接的用户名或用户标识 对应UserID的密码 用于连接数据库的隔离层 登录数据库服务器所需的用户名 对应LogID的密码 数据库服务器所在的网络名称 定义应用程序是自动提交事务还是手工提交事务
– 持久性——事务完成之后,它对于系统的影响是永久性的。该修改即使 出现系统故障也将一直保持。
事务
• PB中的事务介绍
– PB中事务对象:transaction object:sqlca – 可以自定义事务对象
Transaction gTrans_yzcx gTrans_yzcx = Create Transaction gTrans_yzcx.DBMS = “……” ……
– Gf_Rollback_TrnasAction(sqlca)
Rollback Using ao_Environment; if ao_Environment.SQLCode<>0 then return False ao_Environment.AutoCommit = True if ao_Environment.SQLCode<>0 then return False return True
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库系列 PowerBuilder BY LH 或 FALSE 来对其赋值。当其为真时,PowerBuilder 不通过其他额外的交互就将您的 SQL 语句传输给后台数 据库,而且执行完毕自动提交。 当然,您可以设置 AutoCommit 属性为假(缺省值),使用 COMMIT 或 ROLLBACK 这样的关键词提交或回退事 务。 在大多数应用中,一部分的数据库操作是要成组提交的,而另一些则不用。 因此我们可以利用 AutoCommit 的特性来确定事务的起点 , 当我们把 AutoCommit 的属性设为 False 时, 系统设定此时为事务的起点。当 AutoCommit 设为真时,系统自动消取这一事务。因此你可以先把 AutoCommit 设为真,当您需要开始一个事 务时,将其置为 false,此刻即为事务起始点。 PowerBuilder 内部这种事务管理的最大优点是方便。您不去考虑整个事务,而只需把您所作的修改提交或滚 回即可。但是方便与可控性总是矛盾的,在 Power-Builder 中没有存储点和嵌套事务管理的机制,即使您所使 用的数据库支持这些特性,在 PowerBuilder 中却无法得以体现。 不过在普通的应用中,存储点和嵌套事务管理 并不是必须的,一般的事务管理足以够用。 用数据库的事务管理指令实现完全控制 上述的事务管理方式尽管简单方便,但是在某些应用中,我们也的确需要利用所用的数据库系统的嵌套事务 和存储点的特性,而 PowerBuilder 内部的事务管理没有提供这样的功能,您必须自己设计。 自己进行事务管理的方式是直接使用数据库本身的事务指令。当您使用自己的管理方式时 , 就应使 Power-Builder 停止管理事务,即设置 Auto-Commit 为 TRUE,系统内部就不会自动建构事务处理的命令了。 实 现人工事务管理的方式是采用 EXECUTE IMMEDIATE 这条 PowerBuilder 指令来执行任意的数据库操作。 你所需做的是将数据库指令编辑成一个字符串,您可以执行任何的数据定义语句如建表、建主键、存储过程 等,例如您可以用 EXECUTE IMMEDIATE BEGIN TRANSACTION trans-name 这样的指令开始一个事务。 采用这种方法,只要您所用的数据库支持嵌套事务和存储点等事务管理,我们通过 PowerBuilder 开发出的应用也就同样可以实现。 在 PowerBuilder 中提供的事务管理的方法是多种多样的,只要您灵活运用,就一定能设计出优秀的数据库应 用来。 PowerBuilder 应用开发系列(2) 调用 Windows 的动态链接库 许多熟练使用 C 的程序员在使用 PowerBuilder 时都希望自己以前在 C 上做的工作可以被 PowerBuilder 引用, 这是完全可以的。在 PowerBuilder 中你可以通过外部引用函数的形式来调用动态连接库中的函数。 PowerBuilder 调用 DLL 程序使用规则 PowerBuilder 可以支持任何一种非 PowerScript 编写,并存储在动态链接库中的外部函数或过程的调用。 但外 部函数的参数必须是符合 Pascal 规则的(即参数压栈顺序从前至后)。 在函数调用前,因先作函数声明,PowerBuilder 支持以下两种外部函数类型: ·全局函数:可以在应用的任意位置调用; ·局部外部函数:在 window,menu,user object 或用户自定义函数等对象中定义。 外部函数声明的语法是: {Access}FUNCTION ReturnDataType Function-Name({REF}{DataTypel Arg1,...,DataTypeN ArgN})LIBRARY LibName 外部过程声明的语法是: {Access}SUBROUTION Subroutine({REF}{DataType1 Arg1,...,DataTypeN ArgN}) 如果您使用的是局部外部函数的声明,您还可以指定对象的访问权限:Public,Private,Protected。对局部函数权 限访问的限制同对对象的实例变量的限制相同。您可以指定对象名加函数名的方式调用外部函数: object.function(arguments) 如在 window 的 w_emp 上调用局部外部函数 Recog(),就可这样使用: w_emp.Recog()
LH
第 2 页
208/6er BY LH 如何在 PowerBuilder 与 DLL 之间传递参数 在 PowerBuilder 的 script 中调用 DLL 中的函数,缺省情况下是通过传值法来传递参数(passed by value),也就 是说 PowerBuilder 将对要传递的参数做一份拷贝,然后通过堆栈将这份拷贝传递给函数。如果你希望 DLL 中的函数可以改变调用参数的原值,就可以通过参考传值法(passed by reference)来传递参数,即在参数类型前 面加 REF 关键字来声明该参数将要用参考传值法。 在使用 DLL 时有一些基本规则 在 MS Windows 中,一个 DLL 在被装入内存后,只会有一个实例,不会因为多个程序使用同一个 DLL 而在内存 中产生多个 DLL 拷贝。每个 DLL 只有一个最大为 64K 的数据段。缺省情况下,PowerBuilder 都是使用传值 法来传递参数。当你在函数应用说明时使用了 REF 关键字,PowerBuilder 将传递一个 32 位的地址指针(段地 址+偏移量)给被调用的函数,而不是只传递偏移量,这才能保证 DLL 中的函数能得到 PowerBuilder 中数据的 正确地址。 在 PowerBuilder 中使用的数据类型与 C 语言支持的数据类型不尽相同,C 中不支持的数据类型应 在调用前先行转换。 对于结构,要在 C 和 PowerBuilder 中做相等的说明。 PowerBuilder 不支持函数指针的传递,因此在 PowerBuilder 中不能使用回调函数(callback funcion)。 如果 DLL 的参数需要空指针(NULL),你可以向函数传递一个值为 0 的长整型。 Windows 中使用的有些数据类型 C 中并不支持 , 但一般在 C 的预编译器中用 TYPEDEF 作预定义 , 同 PowerBuilder 接口也应当作适当转换。 使用 DLL 的常见错误和需要注意的地方 1.导致保护性错(general protection fault) 在 Windows 中,如果你企图访问不是属于你的应用程序的内存将导致保护性错。 导致保护性错的原因可能有 以下几点: a.向 DLL 中的函数传递了不正确的参数。 这种错误是比较难调试的,因为 PowerBuilder 的调试器不能跟踪到 C 程序中。你可以通过在 C 中使用 MessageBox 函数显示调用参数的方法来检查参数传递的正确性。更全 面的方法是使用 Windows 的调试版本(带有调试信息的 Windows 环境)和功能更强的调试器(Soft-ice for windows 或 CodeView 等); b.C 中对数组的访问超出了 PowerBuilder 中申请的边界。在 C 中是不作数组边界检查的,这可能是导致保护 性错的最常见的原因; c.使用了已经释放的内存指针。你最好把已经释放的内存指针置为 NULL,以便在使用前进行判断。 2.使用远指针 在 C 中,所有的静态变量和全局变量都是在程序的数据堆中分配的,其他变量都是在栈中分配的。DLL 可以 有自己的数据段,但是它没有堆栈段,使用的是调用程序的堆栈。这就意味着寄存器 DS 指向的是 DLL 数据 段,SS 指向 PowerBuilder 应用程序的堆栈。 而一般的 Windows 应用程序中,DS 和 SS 是相同的,你可以使用近 指针,但在调用 DLL 中引用远堆的变量必须使用 32 位的远指针。如果使用任何与内存寻址有关的 C 函数, 都要使用 C 中的 far 版本。例如字符串拷贝函数,应该用_fstrcpy 而不要用 strcpy。 3.注意静态变量的使用 无论有多少实例调用同一个 DLL,在内存中只有一份 DLL 代码。由于 Windows 是多任务的环境,因此 DLL 中的静态变量可能由于其他实例对此 DLL 的调用而改变。 4.不要试图共享文件句柄 在 Windows 环境下,不可能在应用程序和 DLL 间共享文件句柄。每个应用有各自的文件句柄表,如果两个应 用通过一个 DLL 来访问同一个文件,它们必须分别打开这个文件。 5.及时释放使用过的资源 如果你的 DLL 中使用了 GDI 对象,一定要及时释放它们,否则会使 Windows 因申请 GDI 资源失败而死机;例 如你建立了一个逻辑字体或逻辑笔,在使用完后,要用 DeleteObject 来删除它。 6.为使 PowerBuilder 应用在 Windows 环境下正常运行,DLL 应放在下列目录之中:
数据库系列 PowerBuilder BY LH
PowerBuilder 应用开发经验篇 应用开发经验篇
PowerBuilder 应用开发系列(1) 数据库的事务管理 在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。 为确保数据库中数据的 一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中 的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。 对事务的操作是这样进行的:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修 改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃您所作的所有修改而回到开始事务时 的状态。此外有些数据库支持事务的"存储点(savepoint)这一概念:即在一个事务进程中任意一点您都可以进 行当前状态的存储,回退时只是回到你所设定的存储点,而不必退回全部的事务。 如果您的事务可以分成几组 对数据库的修改,那就可以设置多个存储点,根据需要您可以回退到任意一个存储点,而不使所有事务的修改 数据全部丢失。 正确地管理事务可以保证数据的完整性,当您所做的工作全部完成和得到确认之前,没有任何数据物理地写 进数据库。 让我们来看这样一个实例,我们有这样一个银行应用系统,前台使用者作出将储户甲的一百元存款 划归储户乙帐下的操作;在后台的数据库中,这两个客户的记录分储在两张表中,当使用者在屏幕上作出如上 操作时,在后台需要对两张表进行修改。 如果在数据库中对甲用户存款余款作减去一百元修改后,对乙用户加 一百元的操作修改却失败时,前一张表也必须回到修改前的状态,否则数据库的内容不统一,甲储户白白损失 一百元,信息必然是不正确的。因此进行事务管理是必须的。 传统地,我们认为一个事务包括了对一个或多个表的修改,而随着分布式数据库和数据仓库的发展,事务可能 包括了对一个或多个数据库的修改。在上例中甲乙两用户就可能是异地用户,信息分储在不同地域的不同数 据库中,上述的一个事务就涉及到了对不同数据库的操作。 PowerBuilder 中的事务管理 作为数据库的前台开发工具 Power-Builder 支持事务管理的操作。在 Power-Builder 中有一种称作事务 (transaction)的对象,这个对象是 PowerBuilder 应用与数据库的通讯区域。PowerBuilder 在应用开始时建立一 个全局的事务对象 SQLCA。 由于大多数的应用只用到一个数据库,所以一般开发者主要也只用 SQLCA 作为 与唯一数据库连接的事务对象。 PowerScript 中常用的事务管理的语句有四个:COMMIT,ROLLBACK,CONNECT,DISCONNECT。 当您需要应用与数据库建立连接时使用 CONNECT 这一操作命令,取消连接时执行 DISCONNECT,这两个命 令一般分别用在应用的开始和结束,也就是 Appli-cation 的 Open 和 Close 事件中。 当一个事务的数据库修改都成功地完成后,修改须提交给数据库,COM-MIT 语句是一个旧事务结束和一个新 事务开始的界线。在修改被提交前,数据库的数据并没有被真正地修改,这些修改被保留在某个工作区,只有 作修改的用户才能看到这些被修改后的值,提交之后,则所有的用户就都可以看到新值了。 在事务的进程中发生某些错误,或者在操作中出于种种原因打算中止事务,须用 ROLLBACK 命令回退事务, 如果已作的操作不用 ROLLBACK 命令取消,这些操作必将错误地作为下一个事务的一部分而导致数据库的 混乱。 如果您使用的是多窗口的应用,却只用一个事务对象,就应格外注意 ROLL-BACK 和 COMMIT 会影响事务的 逻辑一致性。在某个窗口执行的这两个指令会使其他窗口应用中所进行到一半的工作提交或回退。 在多用户系统中,修改和提交的时间越接近,提交成功的可能性就越高。因为一个事务中所有的 SQL 语句全 部执行成功而提交却失败是完全可能发生的,例如在您的事务过程中,另一个用户修改了数据并提交,这很可 能使您作出的修改无效,这时 COMMIT 将失败,您必须回退这一事务的全部。 事务对象的 AutoCommit 属性 事务对象有一个 AutoCom-mit 的属性可以使开发者简化对事务管理的操作,这一布尔型的属性可以用 TRUE LH 第 1 页 208/6/2007
相关文档
最新文档