如何用PB写程序并生成exe

如何用PB写程序并生成exe,第1张

安装过程就不讲述了,基本上按照推荐下一步就可以完成,大家可以按照需求选择不同的开发版本来使用。

首先打开powerbuilder(以下简称PB)选择上方菜单file—new,也就是新建,或者点击菜单栏下方左侧第一个按钮也是new,当然还有快捷键ctrl+N,这三中方法都是一样的 *** 作。打开如图窗口,我们先给要写的程序一个空间,选择workspace,然后给它一个命名,保存到你想要保存的位置。(提醒,如果看不到左侧的树状结构可以点击new右侧第五个按钮system tree)

如何用PB(powerbuilder)写程序并生成exe

第二步:选择建立程序的类型,同第一步新建,选择第二个标签target,然后选第一个application,接下来命名,这里就以sa来演示。

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

第三步:新建一个程序窗口命名为w_kaishi,并保存。

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

第四步:在w_kaishi窗口上布置文本框控件。

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

第五步:在w_kaishi窗口上添加按钮控件。

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

第六步:给按钮写一个事件,效果为:点击按钮d出一个消息提示框。(关于控件,事件的知识这里就不多说了,大家可以自行查阅资料,简单说明clicked为单击事件)在clicked事件中写入代码:messagebox("消息","我是消息框",Information!)然后保存。

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

第七步:简单的窗口样式就好了,我们先测试下,打开之前建好的命名为sa的application,在其open事件中写入open(w_kaishi),然后点run按钮,程序就跑起来了。

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

第八步:如何把写好的程序编译成exe文件;同第一步的新建,选择project标签,点击application,然后为要生成的exe指定存放路径,接下来点击deploy project编译对象,exe就会出现在你指定的位置。

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

如何用PB(powerbuilder)写程序并生成exe

10

最后一步:测试程序是否可以运行,以及其他功能是否正常。

如何用PB(powerbuilder)写程序并生成exe

使用方法:

1、 建立一个应用,并设好与数据库的接口,这是 *** 作数据库的前提。

2、 在应用中建一应用窗口W_1,在其上加入二个名为dw_3和dw_4的datawindow控制对象和一个名为TV_1的TreeView对象。

3、 修改DW_3属性

General:把Datawindow object name填写一个已存在的名为DW_date的datawindow(注意:它与datawindow控制对象是不同的),用于生成树视图项,将其Visible项设为不可见。

4、 修改DW_4属性

General:把Datawindow object name填写一个已存在的名为DW_TS的datawindow对象,用于显示查询出的具体内容。

5、 编辑TV_1的属性

TreeView的树视图项不能直接编辑,必须在Script中编写程序。

Picture:在Picture Name中加入四个不同的图标,用于代表树视图中的两个层次(一、二级)、两种状态(未选、选中)。

General:可根据具体应用设定是否选中,其中:

Delete Items:运行中是否允许删除表项。

Disable PragDrog: 运行中是否允许拖放表项。

Edit Labels: 运行中是否允许单击表项来改变表项的标题。

Show Buttons:是否在表项放显示+-按钮,有示相对的扩展和收缩。

Hide Selection:当该控件失去焦点时,选中项是否以高亮度显示。

Show Line:表项间是否加一竖线。

Lines At Root:所有根层表项是否用竖线连接。

Indentation:子表项相对于父表项的向右缩进度。

6、 编写TV_1的Script

这里是TreeView控件的关键,也是难点。

二、TreeView 控件的信息构成及创建

树? 项TreeViewItem是TreeView 控件的基本信息单位,树视图项的生成一般有二种方法,一种是先生成根层视图项,再在应用中动态生成下级视图项,另一种是把全部树视图项一次和成。两种方法各有优点,请根据具体情况选用,本例中采用后一种方法。

1、 树视图项TreeViewItem的主要属性

Label:String 型,树视图项的显示信息。

Data:Any型,树视图项的内部值。

Level:Integer型,树视图项在树视图中级别。

Children:Boolean 型,它决定该项是否有下一层(如图中书名)。

PictureIndex:Integer 型,该项非选中时所用的图标在图标队列中的编号。

SelectedPictureIndex:Integer型,该项选中时所用的图标在图标队列中的编号。

2、 生成TreeViewItem项用到的函数

InsertItemFirst():将加入项作为第一项

InsertItemLast():将加入项作为最后一项

InsertItem():将加入项插入到指定项的后面

InsertItemSort():按顺序放置。

3、 TreeView的常用事件

Constructor: 该事件在控件创建时触发,可在这里构造TreeViewItem。

Click:单击TreeViewItem项时,执行查询程序。

Double Click: 双击TreeViewItem项时,执行查询程序。

ItemPopulate 事件: 该事件在某TreeViewItem项首次展开时触发, 触发的同时系统会将 该TreeViewItem项的句柄通过参数handle 传递过来。它主要用来生成对应项的下层信息项。主要用于第一种方法。

三、 事件代码

1、树视图控件TV_1的constructor事件代码 wanqi 1999628

integer li_rowcount,li_row

string li_current_dn,li_last_dn,li_current_ei,li_last_ei

//声明二个树视图的实例变量

treeviewitem itvi_level_one,itvi_level_two

//long ii_h_l_one

//long ii_h_l_two

dw_3settransobject(sqlca)//dw_3

为隐含的数据窗口,存有生成树的数据

li_rowcount=dw_3retrieve()//行数

dw_3setsort("lb,pm")

dw_3sort()

//生成树视图的各级树视图项

for li_row=1 to li_rowcount

li_current_dn=dw_3objectlb[li_row]

//DW_3对象中"LB类别"

li_current_ei=dw_3objectpm[li_row]

//DW_3对象中"PM品名"

if isnull (li_current_ei) then

li_current_ei=""

end if

if li_current_dn$#@60; $#@62;li_last_dn then

//IF LB不与一级视图项重复

//设置一级树视图项

itvi_level_onelabel=dw_3objectLB[li_row]

//视图项的显示信息

itvi_level_onelevel=1 //级别

itvi_level_onedata=li_current_dn

//视图项的内部信息

itvi_level_onepictureindex=1

//没选中时所用的图标序号

itvi_level_oneselectedpictureindex=3

//选中时使用的图标序号

itvi_level_onechildren=(li_current_ei$#@60; $#@62; )

//树视图是否有下一级

ii_h_l_one=thisinsertitemlast(0,itvi_level_one)

//将项加入到一级树的最后一项

end if

//设置二级树视图项

if li_current_dn$#@60; $#@62;li_last_ei then

if li_current_ei$#@60;$#@62; then

itvi_level_twolabel=dw_3objectpm[li_row]

itvi_level_twolevel=2

itvi_level_twodata=li_current_dn

itvi_level_twopictureindex=2

itvi_level_twoselectedpictureindex=4

itvi_level_twodata=li_current_ei

itvi_level_twochildren=false

ii_h_l_two=thisinsertitemlast

(ii_h_l_one,itvi_level_two)

//将项加入到二级树的最后一项

end if

end if

li_last_dn=li_current_dn//设比较项

li_last_ei=li_current_ei

next

要正常的显示 window 之类的可视窗口 ,你必须在vc下用 win32 appliction 这种程序格式,

然后自己构建加入window 和 消息循环 在这个 window 下打开pbl 中的 application

你好,电脑出现:该内存不能为read,这是你安装的“软件”和电脑中的“内存”有冲突!

答案原创,引用请说明作者:力王历史,偶然出现,点取消即可!

1。电脑里有木马或病毒干扰,下载“360安全卫士”和“360杀毒双引擎版”或“金山卫士”和“金山毒霸”,建议“全盘扫描”病毒和木马,修补电脑上的“高危”和“重要”的系统漏洞!系统修复,一键修复!插件清理,立即清理恶评插件!

2。可疑启动项,下载“360系统急救箱”,或打开360安全卫士,功能大全里的“360系统急救箱”,开始急救,完毕后,重启电脑!开机后,文件恢复区,点开:可疑启动项和木马,彻底删除文件!

再:系统修复,全选,立即修复!网络修复,开始修复。重启电脑!

金山急救箱,勾选扩展扫描,立即扫描,完毕后,立即处理,重启电脑!

3。你下载的“播放器”,或“聊天软件”,或“IE浏览器”,或“游戏”的程序不稳定,或者“版本太旧”!建议卸掉,下载新的,或将其升级为最新版本!IE浏览器,和测试版软件不推荐升级!

4。就是你安装了两款或两款以上的同类软件(如:两款播放器,两款qq,或多款浏览器,多款杀毒软件,多款网游等等)!它们在一起互不兼容,卸掉“多余”的那一款!

5。你在电脑左下角“开始”菜单里找到强力卸载电脑上的软件,找到多余的那款卸掉! 卸完了再“强力清扫”(看准了再卸,别把有用的卸了)!完毕后,重启电脑!

6。再不行,开始菜单,运行 ,输入cmd, 回车,在命令提示符下输入复制即可 :

for %1 in (%windir%\system32\ocx) do regsvr32 /s %1

粘贴,回车,完毕后,再输入:

for %1 in (%windir%\system32\dll) do regsvr32exe /s %1

回车!直到屏幕滚动停止为止,重启电脑!

7。再不行,去网上下载一个read修复工具,修复一下试试!注意查杀一下病毒和木马!

8。重启电脑,开机出完电脑品牌后,按“F8”,进到“安全模式”,光标选定:最后一次正确设置,回车,回车,看看效果如何!

实在不行就:一键还原系统或重装系统!

Powerbuilder编制的程序打包分为两部分 动态库文件及配置ODBC数据源

 一 动态库文件

由PB 自带的打包工具:PowerBuilder Runtime Packager         在Database Interfaces选项中 选择

ODBC Database Driver(ODB)                        Sybase Adaptive Server Enterprise(SYC) 

便可生成程序所需要的动态库安装程序包 然后将程序包中的文件复制到程序目录中即可

int RunCountsRunCounts=profileint( TheOneRun ini RunFlag GetRunFlag )string GetNowPathGetNowPath = GetCurrentDirectory( )String DataBasePathDataBasePath=GetNowPath+ \phonebook_database db String DataBasePath_dll_ DataBasePath_dll_ DataBasePath_dll_ =GetNowPath+ \dbodbc DLL DataBasePath_dll_ =GetNowPath+ \dbeng exe if RunCounts= then RegistrySet( HKEY_LOCAL_MACHINE\Sofare\ODBC\ODBCINST INI\ODBC Drivers Adaptive Server Anywhere RegString! Installed ) RegistrySet( HKEY_LOCAL_MACHINE\SOFARE\ODBC\ODBCINST INI\ODBC Translators Adaptive Server Anywhere Translator RegString! Installed )RegistrySet( HKEY_LOCAL_MACHINE\Sofare\ODBC\ODBCINST INI\Adaptive Server Anywhere Driver RegString! DataBasePath_dll_ ) RegistrySet( HKEY_LOCAL_MACHINE\Sofare\ODBC\ODBCINST INI\Adaptive Server Anywhere Setup RegString! DataBasePath_dll_ ) RegistrySet( HKEY_LOCAL_MACHINE\Sofare\ODBC\ODBCINST INI\ODBC Data Sources phonebook_database RegString! Adaptive Server Anywhere ) registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\odbc data sources phonebook_database regstring! Adaptive Server Anywhere )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database driver regstring! DataBasePath_dll_ )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database start RegString! DataBasePath_dll_ )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database uid regstring! dba )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database pwd regstring! sql )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database databasename regstring! phonebook_database )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database databasefile regstring! DataBasePath)registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database autostop regstring! yes )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database Integrated regstring! no )registryset( HKEY_CURRENT_USER\sofare\odbc\odbc ini\phonebook_database Description regstring! phonebook_database )setprofilestring( TheOneRun ini RunFlag GetRunFlag )end ifSQLCA DBMS = ODBC SQLCA AutoCommit =falseSQLCA database=DataBasePathSQLCA DBParm = Connectstring= DSN=phonebook_database;uid=dba;pwd=sql CONNECT USING SQLCA;if sqlca sqlcode <> Then messagebox( 数据库连接失败 请重启程序 Question! Ok!) setprofilestring( TheOneRun ini RunFlag GetRunFlag )close(主窗体名)Else open(主窗体名) lishixinzhi/Article/program/PB/201311/24560

以上就是关于如何用PB写程序并生成exe全部的内容,包括:如何用PB写程序并生成exe、PB6.5怎么用、pb9如何打开pb6的窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9754124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存