记录你生活的点滴,体会分享的快乐

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/feibabeibei_beibei/article/details/51226422

首先,自己搞移动安全已经快一年了但是想着今天开始写一篇技术博客,想来想去真不知道有什么自己原创的有价值的东西给网友分享,感到极为的惭愧。。。这一年来都是膜拜这个大神,膜拜那个大神,看大神一些帖子在成长,缺的是自己没有真正的把它们用起来加进自己的想法,因此才导致现在自己这个状况,越是不自信越是懒得去写,去想,无限的恶性循环,因此从今天开始,保障在每周都应该有技术上的进步和分享,哪怕是很小的进步或者不足挂齿的东西,因为在如今的今天,我们更加应该懂得记录你生活的点滴,体会分享的快乐。

写这篇文章也是对自己的一个鼓励或者像我一样的小白,能够分享自己的想法,不要总是在“外边打转转”。

展开阅读全文

pfc学习点滴体会

05-13

pfc对于pb的mis开发非常重要。rn重要性首先在于它的正确性与稳定性,这是由很多pfc的开发实践证明的,否则无法解释pfc为何从5到8没有结构上的变化。rn第二个是它提供了一个完整的体系结构,它试图用这个体系结构来应付各种各样的需求变化,实践证明是行之有效的,这也就是各种行业软件的mis开发都能应用pfc。rnrnpfc内部元素的组成来源有两个,一个是继承原有的pb对象,可以叫它对象,如pfc_w_master, pfc_u_dw.另一个是新建的对象,一般称之为服务。如pfc_rowmanager, pfc_linkage.服务主要描述的是控件间的关系。rnrn一般mis应用,mdi应用的比较多。mdi的组成部分主要有application, frame, menu, sheet, userobject, dw. rnpfc针对各部分都提供了功能增强和扩展。rnrnrn增强和扩展的主要方式是rn1是继承,增加实例变量(用于保存状态),增加事件(用于和外部控件提供接口),增加函数(改变自己的状态)。比如sheet继承于windows提供了关闭,打开,等附加功能。rn2是利用服务,这是一种组合的方式,通过检测是否开关服务,可以判断是调用相应的服务处理程序,还是用默认的自身的处理程序。这差不多可以在各个事件都能看到。rn由于从application到dw路径很长,因此提供了一个消息路由功能,提供了一些默认的消息处理路径,和消息发送方式,如menu的。而最大,最主要的消息处理分发功能集中在w_sheet上。这样子可以把开发者的注意力集中到各部分的接口部分,和各部分内部的处理,而不用过多考虑复杂的调用关系,rnrnmis开发的一个主要部分是处理数据库。而处理数据库是pfc的主要方向,这也是把pfc_save事件放到w_sheet的一个主要原因。另一个原因是save消息一般是从菜单或按钮命令发出的,而w_sheet是消息的集中处理地。rnrnu_dw的事件可以从几个部分解剖,retrieve部分,update部分, 数据操纵部分。rn数据操纵需要有两个定位条件,一个是行,一个是列。因此一部分事件是行变换部分,一部分事件是列变换部分。数据操纵是开发的主要部分,因此在rowfocuschange,itemchange事件可以看到大量的服务,而这些服务无外乎是增强本u_dw的功能和建立和其他控件的联系的作用(最典型的是linkage).rnrn考察pfc_save事件,可以看到pfc_w_master的80%的代码都是为pfc_save做准备。而pfc_save也是有7,8个事件组成,而这每个事件又大都遍历所有的u_dw,这也是面向对象所说的,“自己的事情自己做,自己做不了的给上级做”的一个体现。另一方面,又提供了可以为用户在不同层次,随意的在合适的位置添加业务逻辑,可以在不伤害原来代码的情况下,增加业务逻辑。rnrn数据校验有几个层次,1、数据格式不对,2、validition 表达式, 3、本dw的一些业务校验,如不能为空等等,这些能判断出来的就放在pfc_validation去写,4、本dw判断不出的,比如借贷,存盘时要相等,就可以放在pfc_preupdate 去写,总而言之,能尽早处理就尽早处理,攒到最后就处理不过来了,会漏掉的。rnrn再说一说典型的linkage服务,这个服务是提供了主从表服务。而主从表关系体现在行和列上。rn主要逻辑是:rn1、主表行变化时,从表显示对应的行。rn2、主表连接字段变化,从表也变化。rn3、从表增加时,主表必须要有行。而且相应的连接字段必须和主表一致。rn4、主表删除时时间,从表也删除。rn5、主表在有从表的行时,不能把连接字段清空,不能和已有的主表行连接字段内容一样。rn还有一些其他的,也不少,从linkage的代码上可以看出来。rnrn因此linkage调用会发生在rowfocuschanging, rowfocuschanged, itemchanged ,rnitemerror, pfc_deleterow, pfc_addrow,pfc_save等事件上。rn还应该注意到linkage所加的实例变量的目的。rnlinkage会遍历所有的linkage链上的dw,做相应的处理。rn最后可以看一看linkage的保存,是如何解决主从表间有外键的办法,分四次去update,很有趣.rn总结一下,写或读一个服务的主要过程就是,rn1、了解服务的目的。rn2、总结服务所有可能触发的时间。rn3、定义实例变量。rn4、定义事件rn5、定义函数rn6、写代码。rnrn最后我想说,pfc虽然好,但还是要结合自己的开发方式,对它做扩展,才更合用,千万别把pfc挖一块,那样破坏了这个体系的完整性,会有问题的.rnrn希望大家踊跃讨论 论坛

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