pfc对于pb的mis开发非常重要。

pfc对于pb的mis开发非常重要。  
  重要性首先在于它的正确性与稳定性,这是由很多pfc的开发实践证明的,否则无法解释pfc为何从5到8没有结构上的变化。  
  第二个是它提供了一个完整的体系结构,它试图用这个体系结构来应付各种各样的需求变化,实践证明是行之有效的,这也就是各种行业软件的mis开发都能应用pfc。  
   
  pfc内部元素的组成来源有两个,一个是继承原有的pb对象,可以叫它对象,如pfc_w_master,   pfc_u_dw.另一个是新建的对象,一般称之为服务。如pfc_rowmanager,   pfc_linkage.服务主要描述的是控件间的关系。  
   
  一般mis应用,mdi应用的比较多。mdi的组成部分主要有application,   frame,   menu,   sheet,   userobject,   dw.    
  pfc针对各部分都提供了功能增强和扩展。  
   
   
  增强和扩展的主要方式是  
  1是继承,增加实例变量(用于保存状态),增加事件(用于和外部控件提供接口),增加函数(改变自己的状态)。比如sheet继承于windows提供了关闭,打开,等附加功能。  
  2是利用服务,这是一种组合的方式,通过检测是否开关服务,可以判断是调用相应的服务处理程序,还是用默认的自身的处理程序。这差不多可以在各个事件都能看到。  
  由于从application到dw路径很长,因此提供了一个消息路由功能,提供了一些默认的消息处理路径,和消息发送方式,如menu的。而最大,最主要的消息处理分发功能集中在w_sheet上。这样子可以把开发者的注意力集中到各部分的接口部分,和各部分内部的处理,而不用过多考虑复杂的调用关系,  
   
  mis开发的一个主要部分是处理数据库。而处理数据库是pfc的主要方向,这也是把pfc_save事件放到w_sheet的一个主要原因。另一个原因是save消息一般是从菜单或按钮命令发出的,而w_sheet是消息的集中处理地。  
   
  u_dw的事件可以从几个部分解剖,retrieve部分,update部分,   数据操纵部分。  
  数据操纵需要有两个定位条件,一个是行,一个是列。因此一部分事件是行变换部分,一部分事件是列变换部分。数据操纵是开发的主要部分,因此在rowfocuschange,itemchange事件可以看到大量的服务,而这些服务无外乎是增强本u_dw的功能和建立和其他控件的联系的作用(最典型的是linkage).  
   
  考察pfc_save事件,可以看到pfc_w_master的80%的代码都是为pfc_save做准备。而pfc_save也是有7,8个事件组成,而这每个事件又大都遍历所有的u_dw,这也是面向对象所说的,“自己的事情自己做,自己做不了的给上级做”的一个体现。另一方面,又提供了可以为用户在不同层次,随意的在合适的位置添加业务逻辑,可以在不伤害原来代码的情况下,增加业务逻辑。  
   
  数据校验有几个层次,1、数据格式不对,2、validition   表达式,   3、本dw的一些业务校验,如不能为空等等,这些能判断出来的就放在pfc_validation去写,4、本dw判断不出的,比如借贷,存盘时要相等,就可以放在pfc_preupdate   去写,总而言之,能尽早处理就尽早处理,攒到最后就处理不过来了,会漏掉的。  
   
  再说一说典型的linkage服务,这个服务是提供了主从表服务。而主从表关系体现在行和列上。  
  主要逻辑是:  
  1、主表行变化时,从表显示对应的行。  
  2、主表连接字段变化,从表也变化。  
  3、从表增加时,主表必须要有行。而且相应的连接字段必须和主表一致。  
  4、主表删除时时间,从表也删除。  
  5、主表在有从表的行时,不能把连接字段清空,不能和已有的主表行连接字段内容一样。  
  还有一些其他的,也不少,从linkage的代码上可以看出来。  
   
  因此linkage调用会发生在rowfocuschanging,   rowfocuschanged,   itemchanged   ,  
  itemerror,   pfc_deleterow,   pfc_addrow,pfc_save等事件上。  
  还应该注意到linkage所加的实例变量的目的。  
  linkage会遍历所有的linkage链上的dw,做相应的处理。  
  最后可以看一看linkage的保存,是如何解决主从表间有外键的办法,分四次去update,很有趣.  
  总结一下,写或读一个服务的主要过程就是,  
  1、了解服务的目的。  
  2、总结服务所有可能触发的时间。  
  3、定义实例变量。  
  4、定义事件  
  5、定义函数  
  6、写代码。  
   
  最后我想说,pfc虽然好,但还是要结合自己的开发方式,对它做扩展,才更合用,千万别把pfc挖一块,那样破坏了这个体系的完整性,会有问题的.   
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
运行效果 http://hi.csdn.net/attachment/201012/9/0_1291865794j998.gif ************************************************************************* PowerBuilder Foundation Class Library Version 9.0 R E L E A S E N O T E S Copyright ?1996-2003 Sybase, Inc. and its subsidiaries. All rights reserved. ************************************************************************* Last Updated: January 17, 2003 ************************************************************************* Please take a few minutes to review this file for fixes that were made in PowerBuilder 8.0.2 and 9.0. ************************************************************************* BUG FIXES IN PFC 9.0 ************************************************************************* CR300376 Object: pfc_n_cst_fileSrv, pfc_n_cst_fileSrvwin32 Method: OfGetDiskSpace Fix: Method returned a negative number when the calculated amount of free disk space exceeded 2 gigabytes. Added new method of_GetDiskSpaceEx that takes decimals as arguments instead of longs. of_GetDiskSpace will be obsolete in a future release. ************************************************************************* BUG FIXES IN PFC 8.0.2 ************************************************************************* PFC.PBR CR256529 Fix: The PFC.PBR file can be used to copy bitmaps and dynamically referenced DataWindow objects into the executable file for deployment. The following bitmap files that were removed from PFC have now been removed from the PFC.PBR file: details.bmp, helptop.bmp, largeico.bmp, listv.bmp, and smallico.bmp. ======================================================== PFC DataStore CR261992 Object: pfc_u_ds Method: pfc_print/pfc_printdlg Fix: Changed the return code test to check for 1 on success, otherwise there is an error or the user cancelled. Fix: Set the
PFC Mathcad是一种功能强大的数学计算软件,由PTC公司开发。它为工程师、科学家和数学家提供了一种方便的方式来进行复杂的数学计算和分析。 PFC Mathcad具有直观的界面和易于使用的功能,使得用户可以轻松地进行各种数学操作。它支持多种数学函数和公式,如线性代数、微积分、微分方程、概率统计等,可以满足不同领域的需求。 使用PFC Mathcad,用户可以输入和修改数学表达式,并即时计算结果。它还具有符号运算的能力,可以精确地进行符号计算和求解。用户可以通过图形界面进行交互式计算和可视化结果,这有助于理解和解释数学问题。 PFC Mathcad还具有强大的数据分析和可视化功能。用户可以导入和处理各种数据,并进行统计分析、曲线拟合、图表绘制等操作。它还提供了专业的绘图和图形功能,使用户可以直观地展示和分享他们的研究成果。 除了数学计算和数据分析功能,PFC Mathcad还支持与其他软件和编程语言的集成。用户可以通过脚本语言扩展其功能,并与MATLAB、Python等软件进行数据交互和协同工作。 总之,PFC Mathcad是一款功能强大的数学计算软件,它为用户提供了方便、直观的方式来进行复杂的数学计算、数据分析和可视化。无论是在学术研究、工程设计还是科学实验中,PFC Mathcad都能为用户提供高效的计算和分析工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值