关于
专题文章

  >  
 Lotus Notes程序设计随笔(二)
文章作者:李建壹        发布时间:2008年3月25日        文章来源:Lotus 爱好者论坛
版权申明:本站署名的原创文章,本站及作者享有版权,其他网站及传统媒体如需使用,转载时请注明出处和原作者。本站转载的文章如有侵犯到您的版权,请及时向本站提出。

  七、Notes应用系统

  在进入开发组件的正题之前,我们先聊聊么是Notes应用系统。通常Notes应用系统也称为Notes应用程序、Notes AP…等等。尽管这些名词都同,但其实都是指使用Domino Designer这个设计接口所开发出的系统,像是请假系统、加班申报系统、请采购系统、文具申购系统、ISO文件管系统,甚至是ECN系统、NBR系统等等都属之。我想稍微出这些系统名称,应该就可以稍微明了Notes是只能用当作电子邮件系统吧。

  一般初学者在还没开始真正了解Notes应用系统时,通常会认为一个资库就是一支Notes应用系统。其实尽然如此,绝大部分的Notes应用系统都是由一个以上的资库所组成。

  举例來說,就Louis的经验,建议刚导入Notes而且要开始开发系统时,第一优先开发的应该是人员组织资库,这个资库主要在储存企业人员组织信息,像是部门文件与人员文件。为么要先开发建置这资库呢??因为使用者在许多系统的窗体中,都有申请人的姓名、部门、工号等等基本信息位,而这些位值强建议要让使用者输入,而是由程序去人员组织资库中自动搜寻并带出的(通常是@UserName取得的Notes名称当作关键值)。所以,拿请假系统來說,既然请假系统会跨资库到人员组织资库取值,这就算是由个资组成一个请假系统

  当然,上述的子是比较小型的子,又大型又比较有名的子就属Lotus Workflow,因为其每一支系统都至少要有三个资库所组成-应用程序资库、人员组织资库、过程定义资库、设计储存资库(选择性)。

  所以总结來說,一支Notes应用系统可以由一个或一个以上的Notes库所组成。

  注:您对人员组织资库没有么观的话,可以DominoClub网站的SnowMan中的简员工资库。虽然SnowMan兄谦虚的那是「简」员工资库,过其实该有的基本组件都已经有,可是麻雀虽小五脏俱全。各位只要依据各公司自己的需求再添加位就可以很完整。网址如下:
http://www.domino.idv.tw/bbs/bbs2002...B?OpenDocument

  八、位-ItemField

  应该会有朋友觉得奇怪,为何Louis是先介绍文件或是套表,反而是先介绍位呢??其实我在下笔时也有考虑过这问题,之后一方面认为如果先讲文件与套表,可能要花比较多的时间与篇幅写;另一方面觉得位是最基础的观,而且在位观时也会稍微补充套表与文件的观,所以决定先位。

  ItemField的中文翻译通常是「位」,所以常被搞混,但者其实是完全同的。严格來說Item是要透过文件属性方块才可以看到的后端位;Field则是在套表上才能看到的前端位。以下是针对者的特性期之间的关性加以明:

  (一)Item
  Notes在储存上最基本的容器就是item。它可以储存文字、字、日期时间、附加档案等等资。也由于是储存容器,所以要在文件储存后才会产生,文件还没储存是会有Item存在的,您可以试着开启一份新文件,然后打开文件属性方块看看就知道。所以简而言之,文件其实就是由item所组成的。Item本身也有其属性,如储存在item中的资、资料類等等。而这些也可以从文件属性方块看到。

  (二)Field
  至于Field,简单來說,在新文件上是要让使用者输入资;而在已存在的文件上,则是用显示及编辑已储存于Item中的资,所以称之为前端位,也就是Field是用与使用者互动的一个设计组件。既然是与使用者互动的设计组件,那就一定有某些方法可以达成此目的,就是透过field的程序,像是默认值公式、转译公式、验证公式、个事件可以让程序设计师撰写程序以达到上述的互动目的。

  (三)ItemField
  既然item是后端位,field是前端位,那就一定有方法将结起。举例來說,在一般况下,在套表上有一个名为X1field,当文件储存时,在此位中的值就会储存到名为X1item中。再假设一种况,假设套表上有一个名为X1field,在文件中另有一个名为Y1item要将Y1值显示在X1 field的话,只要在X1 field的默认值公式或是计算公式填入Y1这个item名称即可。

  (四)LotusScriptItemField
  因为这种前后端结构的观,所以在LotusScript中的NotesDocument别下提供几个方法操作处item,像是GetFirstItemGetItemValue…等等。如果程序设计师想要进一步处item,则可以使用NotesItem别。这后端的别与方法通常是用item中的值。
  至于操作处Field的相关方法则被放在NotesUIDocument前端别中,像是FieldGetTextFieldSetText等等。这前端的别与方法通常是用与使用者达到互动。

  九、套表

  就官方的定义而言,套表是用显示动态信息的。既然是显示动态信息,就表示其中的信息是要让使用者可以看的到,深入一点,就是让使用者可以透过套表跟资库中的资作互动。所以套表在Notes中真的占有很重要的地位,而且应用层面甚广,如,单纯显示文件中的信息、让使用者输入资以建文件、编辑文件中的资新信息、在套表事件或是其它组件加入程序以运算处文件中的资等等。在ND6中则可以直接查询RDB中的资ND7开始可以和DB2库做资

  但是,回到原点,没有任何其它设计组件存在的空套表是没有实质意义的。所以当套表中存在field、按钮、动作按钮、小节、焦点信息、有程序的事件等等设计组件,才能发挥出套表的功效。相对于文件是许多item的容器,套表则是许多设计组件的容器。如在Web上可以在套表中嵌入视界美化视界在Web上的呈现。

  再回到套表最主要的功能-建与编辑文件。就建新文件而言,当使用者在各field中输入值并储存以后就会产生一份文件,而field中的值则会储存到该文件中的各item中。另一方面,当使用者用套表开启已经存在的文件时,套表的field通常就是用显示或编辑item值。

  十、文件
  
  其实在上述中差多已经把位、套表、文件的关系解释的差。所以在这儿我们就只稍做补充。

  由于Item无法自存在,而是必须存在于文件中,所以换言之,Notes文件可以是包含一个以上Item的集合,这可是一个抽象的观。其实有些人会认为视界有显示出或是套表可以打开的才算是文件,但其实然,因为文件也有可能是「隐藏」在资库中而显示的。这就是常有人会看到工作区的资库显示有未阅文件,但又在视界中找到的原因。

  另外,也有些人会认为文件跟套表是一体的,事实上也然,套表与文件是分开的,就如同先前曾经提到,套表是为让使用者可以新增、编辑、显示文件的。但也有外,如果在套表属性中有勾选文件与套表一起储存的属性时,文件与套表就会储存在一起,但通常建议如此做。因为把套表中的所有设计组件与文件合并储存在一起,就会让文件的体积变大,进而占用硬盘空间。就像是本只有55公斤的Louis穿上几件衣服后,可能就增加到57公斤

  另外,在Notes中还有一种特殊文件,就是设计文件,也就是开发者开发出的设计组件,像是套表、视界等等,也是以文件型态存在的,这些文件统称为Design Notes过当然也可以称为Design Document。在Domino Designer的设计组件清单中,使用鼠右键单击任一组件,都可以看到该设计组件的文件属性。顺带一提,在早期Notes文件并称为Document,而是称为note,所以才有Lotus Notes这名字出现。

  但是把话,因为Notes文件的资并无法像关式资库可以key值把各资做互相关,所以产生一些资上的不便过这问题通常还是可以经由技术上解决的。而且也因为如此,Notes才能成为各种关式资库的整合接口,是吗?

联系我们
统讯科技
联系方式
了解统讯
统讯为您打造
个性化的服务
   联系我们 | 网站地图 | 错误链接报告