欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 83

点击:1713

[顶层访客留言] [回复顶层(需要先登录)] [表状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章跟帖
文章id: 83
自动创建数据

作者: xietao


MARC数据字段相互之间存在密切的联系,例如200$f$g中的内容,可以复制提供给创建701/702著者字段内容用;010$a中的ISBN号,可以为创建出版社210$a$c和出版地代码102$a$b提供线索。

或者,一些字段子字段的内容,需要从数据字典,或者从外部数据库中选用值。

凡此种种需求,dp2编目系统都通过一个数据加工模块来实现。

由于这些需求具有很大的弹性,用户经常要对其进行配置修改,除了具有数据密集的特点,还有操作逻辑复杂的特点,因此开发者决定用二次开发脚本的方式加以实现。

在初期,软件用户可以使用缺省提供的功能,并不感觉到脚本程序的存在;随着用户需求的增长,对系统熟悉程度的提高,就可以对脚本程序进行二次开发,扩展本馆的特色功能。

下图是在MARC编辑器中用Ctrl+A调出的脚本功能菜单:

对话框中有一个“自动执行加亮事项”chechbox,如果处于勾选状态,则每当对话框出现的时候,如果其中有而且只有一项处于加亮状态,就自动结束对话框去执行加亮事项要求的功能。

熟练的编目员很喜欢这个功能。

在数据加工事项定义的时候,可以定义这个事项针对哪些字段、子字段位置敏感。例如,“加入种次号”的功能,自然是对905$e这个子字段位置敏感,当插入符处于这个位置的时候触发Ctrl+A,那么“加入种次号”事项应当是发亮的。

所有的数据加工功能,都是在库下的cfgs/autogenerate.cs文件中定义的。这是一个用.NET C#语言书写的脚本程序。虽然名为脚本程序,似乎暗示了功能的局限性甚至简陋,但是实际情况却不是这样,且听我下面解释。

===

dp2编目系统,或者这个大系统中的所有模块,数字平台公司的开发人员进行的开发活动,可以称为“一次开发” ,也就是写出、编出、造出这个软件的根本所在。而上述提供给用户增值开发的手段和方式,可以称为“二次开发”。二次开发和一次开发的重点自然是不同,二次开发不是要去发明车轮,而是要调度好、使用好已有的大部分功能。

为着这个目的,一次开发需要和二次开发进行配合。虽然在一次开发的时候,也许二次开发在哪里还未可知呢,但是,开发者应当意识到,他所建立和一直在使用的程序架构,数据模型,不但是小小的开发团队在使用,而且将来一定要被二次开发用到。所以,结构是否合理、简易通俗,变量命名是否直截了当、便于记忆理解,都是关系到二次开发成功的核心要素。

从这个意义,dp2编目系统从一次开发的时候就明白,它是一个最终“面向二次开发的系统”。

具体来说,从程序对象结构来说,用户从视觉上观察到并认同的一些窗口对象,例如框架窗口,检索窗,详细窗,在一次开发或者二次开发的视角,就是MainForm,SearchForm,DetailForm这样命名的类、对象。

例如,在数据加工脚本中要使用MARC编辑窗,比方说要像键盘输入一样通过程序代码插入字段、子字段内容,可以通过this.DetailForm.MarcEditor这样的代码来指明MARC编辑器对象,通过:

  Field field_200 = this.DetailForm.MarcEditor.Record.Fields.GetOneField("200",0);

这样一行代码,获得200字段对象;通过:

SubfieldCollection subfields_200 = field_200.Subfields;

这样一行代码,获得200字段中的子字段集合;通过:

Subfield subfield_f = subfields_200["f"];

这样一行代码,获得其中的$f子字段。

可以说,二次开发的代码,足以做任何复杂的事情。因为它从技术手段上,和一次开发使用同样的开发语言C#,并不弱了什么。当然,一次开发和二次开发的目的不同,手段也有所不同。二次开发不会写出几千行、上万行的代码,非常复杂地去从头实现一个功能,这本是一次开发的任务。数字平台公司会竭尽全力,在软件生命周期的全过程中,为图书馆业务功能提供足够的一次开发模块,也就是有价值的高质量的预制“组件”;用户可以灵活有效地运用这些组件,享受这些组件带来的功能。

dp2系统以名字空间DigitalPlatform提供了许多组件。二次开发可以享用全部这些组件。

二次开发对一次开发有推动的作用。用户发展出来的二次开发代码,经过归纳测试后可以提升到一次开发代码,含入软件的预制组件中。一个有用软件的生命周期通常都会很长,因此,在软件投入运行后不断升级、成熟的过程中,这个二次开发的推动作用很重要,效果也应是很明显的。相信dp2现有的这些设施,是一个很好的开端。



发表时间: 2006-05-30 15:40:48
最后修改时间: 2006-06-01 10:02:17



  • 精品 图解dp2编目系统 xietao 2006-05-30 15:03:14[点击:142531]
  • 普通文章 什么叫dp2 ? xietao 2006-05-30 15:15:07 (ID:76) [点击:1960]
  • 普通文章 框架窗口,检索窗 xietao 2006-05-30 15:20:10 (ID:77) [点击:1612]
  • 普通文章 详细窗 xietao 2006-05-30 15:24:14 (ID:78) [点击:1850]
  • 普通文章 定长模板 xietao 2006-05-30 15:27:00 (ID:79) [点击:1720]
  • 普通文章 值列表 xietao 2006-05-30 15:30:23 (ID:80) [点击:1612]
  • 普通文章 缺省值 xietao 2006-05-30 15:34:05 (ID:81) [点击:1598]
  • 普通文章 一些编辑功能 xietao 2006-05-30 15:36:49 (ID:82) [点击:1703]
  • 普通文章 自动创建数据 xietao 2006-05-30 15:40:48 (ID:83) [点击:1713]
  • 普通文章 种次号 xietao 2006-05-30 15:44:14 (ID:84) [点击:1642]
  • 普通文章 分类主题对照 xietao 2006-05-30 15:47:14 (ID:85) [点击:2164]
  • 普通文章 使用中的一些顾虑 liujp 2006-07-02 21:43:28 (ID:98) [点击:2356]
  • 普通文章 回复: 使用中的一些顾虑 xietao 2006-07-03 10:30:21 (ID:102) [点击:1947]
  • 普通文章 服务器端不能创建根下的cfgs目录 liujp 2006-07-02 21:46:26 (ID:99) [点击:2221]
  • 普通文章 回复: 服务器端不能创建根下的cfgs目录 xietao 2006-07-03 10:37:31 (ID:103) [点击:1707]
  • 普通文章 典藏册登录 xietao 2006-05-30 15:49:50 (ID:86) [点击:1967]
  • 普通文章 编目查重 xietao 2006-05-30 15:54:04 (ID:87) [点击:1671]
  • 普通文章 观察检索点 xietao 2006-05-30 15:56:06 (ID:88) [点击:2014]
  • 普通文章 著者号码 xietao 2006-06-01 15:07:35 (ID:89) [点击:1903]
  • 普通文章 繁简体汉字归一化检索点技术 xietao 2006-06-01 15:36:43 (ID:90) [点击:1756]
  • 普通文章 追记 xietao 2012-04-02 12:02:14 (ID:724) [点击:1475]
  •  

    在线用户
    访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客 (我自己)   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客
    当前栏目在线用户数 46, 总在线用户数 47