转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
PFC编程基础         ★★★★

PFC编程基础

作者:闵涛 文章来源:闵涛的学习笔记 点击数:679 更新时间:2009/4/22 22:54:37
  概要:

  这一章阐述了 PFC 编程的基本技巧,同时也告诉了你如何开始运用 PFC 编写应用程序。

  设置应用程序管理器

  首先建立一个PFC应用程序的第一步就是配置应用程序以及建立应用程序管理器- -n_cst_appmanager。应用程序管理器将替代原来的应用程序对象。原来在应用程序对象中编写的脚本将全部改写在应用程序管理器中。应用程序管理器中同时还通过实例变量、函数来维护应用程序的属性。其中有框架窗口、应用程序与用户的INI文件或注册键以及帮助文件等。

  注意:

  使用分开的物理文件

  每个独立的应用程序都必须拥有自己独立的一套文件。你不可以共享父类文件,也就是那些以PFC开头的文件。这是由PFC的内部继承关系而决定的。

  例如,假设应用程序1与应用程序2都拥有它们自己的一套扩展的PFC库文件,但是它们共享父类文件(PFC库文件)。这时应用程序1在自己的PFE(PFC扩展库)的w_master中增加了一个函数名为of_SetData。这样这个函数将在w_master的所有子类中都有效,这些子类是pfc_w_main,pfc_w_frame,pfc_w_sheet 等。而这些对象恰恰在这两个应用程序共享的父类文件(PFC库文件)中。这样当应用程序2重新生成应用程序时(regenerate)由于应用程序2的PFE文件中没有of_SetData函数。这样w_master的所有子类中的关于of_SetData函数的指针都将被删除。这样当应用程序1运行时将会导致运行时错误与编译错误。

  具体步骤

  1. 打开应用程序画笔。

  2. 定义库文件列表。

PFCAPSRV.PBL
PFCDWSRV.PBL
PFCMAIN.PBL
PFCUTIL.PBL
PFCWNSRV.PBL
PFEAPSRV.PBL
PFEDWSRV.PBL
PFEMAIN.PBL
PFEUTIL.PBL
PFEWNSRC.PBL
PFCOLD.PBL(如果你的应用程序是使用老版本的PFC库那么请增加该文件到库列表 中)
  3. 在应用程序画笔中打开脚本画笔,定义n_cst_appmanager类型的全局变量gnv _app。

  n_cst_appmanger gnv_app 这个变量名必须是gnv_app,因为PFC的对象、函数、事件都需要这个n_cst_appm anager或它的子类的全局变量—gnv_app。

  4. 增加如下代码到应用程序对象的OPEN事件中。它的用途是创建n_cst_appmanager、调用pfc_Open事件。

gnv_app = Create n_cst_appmanager
gnv_app.Event pfc_Open(commandline)
  5. 增加如下代码到应用程序对象的CLOSE事件中。

gnv_app.Event pfc_Close()
Destroy gnv_app
  6. 增加如下代码到应用程序对象的SystemError事件中。调用pfc_SystemError事 件。
gnv_app.Event pfc_SystemError()

  7. 关闭应用程序画笔,保存所作的修改。

  8. 打开用户自定义对象画笔。在PFEAPSRV.PBL中找到n_cst_appmanager并打开,或者是它的子类。

  9. 在n_cst_appmanager的构造事件(Constructor Event)中调用它的函数来初始化关于软件版本号、公司、和INI文件的实例变量。

  10. 在 n_cst_appmanager的pfc_Open事件中打开你所想要的应用程序Service 。

  你所想打开的Service 调用函数Application preference of_SetAppPreference DataWindow caching of_SetDWCache Error of_SetError Most recently used object of_SetMRU Transaction registration of_SetSecurity Debug of_SetDebug

  11. 在pfc_Open事件中增加打开你的初始窗口的代码,例如框架窗口(Frame Window)或者调用显示快闪窗口的of_Splash()函数。

  12. (可选)增加代码到pfc_PreAbout,pfc_PreLogonDlg,pfc_PreSplash事件中,用于定制关于对话框(About box)、登录对话框(Logon box)、快闪窗口(splash screen)。

  13. (可选)增加代码到pfc_idle,pfc_ConnectionBegin,pfc_ConnectionEnd事件中。

  l_ 在应用程序对象的idle事件中调用pfc_idle事件。
  l_ 在应用程序对象的ConnectionBegin事件中调用pfc_ConnectionBegin事件。
  l_ 在应用程序对象的 ConnectionEnd事件中调用pfc_ConnectionEnd事件。

  14. 保存n_cst_appmanager

  如何显示快闪窗口

  非常简单,只需在pfc_Open事件中,在打开第一个窗口的代码之前写上如下代码 :

  this.of_Splash(1)
  Open(w_tut_frame)(根据不同的应用程序有不同的变化!)

  如何显示登录窗口

  1. 在框架窗口的Open事件中调用of_LogonDlg函数:

Integer li_return
li_return = gnv_app.of_LogonDlg( )
IF li_return = 1 THEN
this.SetMicroHelp("Logon successful")
ELSE
MessageBox("Logon", "Logon failed")
Close(this)
End If
  Of_LogonDlg函数将显示w_logon对话框,同时还会提示输入用户名、密码,当用 户点击OK按钮时还会触发n_cst_appmanager的pfc_Logon事件。

  同样,你也可以在n_cst_appmanager的pfc_Open事件中的打开框架窗口之后立即 调用Of_LogonDlg函数。但是绝对不要在Of_Splash之后立即调用Of_LogonDlg 。

  2. 在n_cst_appmanager的pfc_logon事件中编写登录到数据库的代码。这个例子 假设有一个INI文件,它包含了所有的需要登录到数据库的信息,除了用户名、密码以外。同时还假设你已将SQLCA的默认类型改为n_tr(PFC制定的书屋对象类型 )。

Integer li_returnString ls_inifile, ls_userid, ls_password
ls_inifile = gnv_app.of_GetAppIniFile()
IF SQLCA.of_Init(ls_inifile,"Database") = -1 THEN
Return -1
END IF
// as_userid and as_password are arguments
// to the pfc_Logon event
SQLCA.of_SetUser(as_userid, as_password)
IF SQLCA.of_Connect() = -1 THEN
Return -1
ELSE
gnv_app.of_SetUserID(as_userid)
Return 1
End If


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台