PFC的使用与探索(一)

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

数据库快速开发工具 PowerBuilder 从5.0版本开始提供了一套基础类库PFC(PowerBuilder Foundation Class),使得应用程序的开发速度又提高了一大步。由于PFC使用的不是很广泛,许多开发者对此还不是很了解。下面就我使用的过程中所得到的心得与遇到的问题,整理出来与大家共享与探讨。各位觉得有不合适的地方,希望批评指正。

PFC的帮助对各个独立服务、事件或者函数有一些实例代码,但是对于整体的使用几乎没有很全面地介绍。因此,我写这些东西,作为PFC帮助的一个辅助材料,大部分是在PFC帮助上没有的内容,是我使用PFC的过程中的总结与归纳。

PFC入门

首先,介绍一下如何创建一个简单的PFC应用程序。

构造一个简单的PFC程序框架

使用PFC,我们得先学会使用PFC构造一个简单的应用程序。我们可以根据PFC帮助提供的模式来构造我们的应用程序框架(参见PFC帮助的Overview 中的 For a quick start项),也可以查看PFC例程(Peat、Example等)仿造构造我们的应用程序。下面简单的陈述一下我通常使用PFC构造应用程序的步骤:

  1. 首先,创建一个空的应用程序,从对象n_cst_appmanager继承一个新的用户对象,命名为n_mdl_app;
  2. 其次,根据PFC帮助快速模型实例创建简单的应用程序框架,有所不同的是:应用程序服务,我使用刚才创建的用户对象n_mdl_app代替了n_cst_appmanager,
    设置n_mdl_app的相关事件的代码,可参见PFC例程的程序代码;
  3. 打开应用(Application)对象,更改部分属性及代码:
    • 在Additional Properties中,更改Variable Types 页中的3个变量(SQLCA->n_tr; Error->n_err; Message->n_msg)(参考PFC例程Peat)
    • 根据需要更改默认字体的类型及大小(由于我们开发的都是中文界面的应用程序,所有字体更改为“宋体 9pt”),根据需要更改应用程序的图标;
    • 根据需要更改其他的属性,比如:DisplayName, MicroHelpDefault, 等等;
    • 另外,我还需要更改应用对象的SystemError事件的代码,我使用的是逄新利编写的一个错误陷阱模块。
       
  4. 根据需要编写.Ini文件或者更改注册表项值。

好了,到此为止,一个PFC应用程序框架就完成了。试着运行一下,可以看到框架窗口的运行状态。

添加一个工作区窗口

应用程序框架窗口实现出来了,为了能够工作,我们还得有工作区窗口(Sheet)。

首相,随便创建一个Grid型的数据窗口对象,保存为d_demo1。然后从w_sheet窗口继承出来一个窗口对象,然后在这个窗口中放置一个用户对象u_dw(数据窗口的基础祖先对象)。该数据窗口控件的数据对象为刚才创建的数据窗口对象d_demo1。

在窗口的Open事件中编写如下代码:

// 开启Resize服务this.of_SetResize(True)//设置Resize服务的原始大小this.inv_Resize.of_SetOrigsize( dw_Demo.Width + dw_Demo.X * 2, dw_Demo.Height + dw_Demo.Y * 2 )//注册要实施Resize服务的控件及方法this.inv_Resize.of_Register(dw_Demo,this.inv_Resize.SCALERIGHTBOTTOM)//异步触发事件,利用消息路由发送消息。该消息是要检索数据this.Event Post PFC_MessageRouter('PFC_Retrieve')

在数据窗口控件的Constructor事件中编写如下代码:

this.of_SetTransObject(SQLCA) <script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
个人分类: 数据库
想对作者说点什么? 我来说一句

pb pfc示例 pb9版

2010年12月09日 4.47MB 下载

powerbuilder pfc 学习图解

2009年05月31日 1.28MB 下载

PFC2d使用手册

2014年11月13日 4.06MB 下载

1.5kw无桥PFC方案 可用有电路有PCB

2015年06月15日 649KB 下载

pfc边坡开挖命令流

2014年04月09日 1KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭