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

点击:1237

[回复顶层(需要先登录)] [表状] [详细]
[回复(需要先登录)] [引用(需要先登录)]普通文章跟帖
文章id: 36
配置circulation.xml

作者: xietao


<amerce> -- 违约金配置参数

    <amerce dbname="违约金" overdueStyle="includeNoneworkingDay" />

dbname 违约金库名

overdueStyle 计算超期违约金的办法。如果为空,则表示排除借期末尾的非工作日天数;如果为includeNoneworkingDay,则表示把借期末尾的非工作日也计算在内。注:如果读者在宽限日还书,当然不会发生违约金问题;但一旦在宽限日后一天还书,超期违约金就要算上前面的若干个连续的非工作日。

 

<rightstable> -- 读者借阅权限配置参数

一个片断如下:

    <rightstable>
        <!-- 所有类型的缺省参数 -->
        <param name="可借总册数" value="5" />
        <param name="可借册数" value="3" />
        <param name="借期" value="30day,15day,14day,13day,12day" />
        <param name="工作日历名" value="基本开馆日历" />
        <param name="超期违约金因子" value="CNY0.1yuan/day" />
        <param name="丢失违约金因子" value="3.0" />


        <type book="原版西文">
            <param name="可借册数" value="1" />
        </type>
        <type reader="本科生">
            <param name="可借总册数" value="5" />
            <param name="可借册数" value="5" />
            <param name="借期" value="30day,15day" />
            <type book="普通图书">
                <param name="可借册数" value="6" />
            </type>
            <type book="小说">
                <param name="可借册数" value="1" />
            </type>
        </type>
        <type reader="讲师" book="*">
            <param name="可借册数" value="15" />
            <param name="借期" value="30day" />
        </type>
    </rightstable>

解释:

每个域中可以配置的参数名为如下几个:

                    "可借总册数",
                    "可借册数",
                    "借期" ,
                    "超期违约金因子",
                    "丢失违约金因子",
                    "工作日历名",

根据<type>元素的嵌套关系,内层域中缺乏的参数,继承外层的参数。如果多个外层都有同类参数定义,则依最近的一个。

<type>元素有两个属性:reader和book,分别定义了<type>元素作用的读者类型和图书类型层面。如果缺某个属性,或者属性值为“*”,表示不在乎这个因素。

<browseformats> -- 公共查询浏览显示格式配置

片断如下:

    <browseformats>
        <database name="中文图书">
            <format name="详细" type="biblio" />
        </database>


       <database name="中文期刊篇名">
           <format name="详细" scriptfile="./cfgs/opac_detail.fltx" />
       </database>


    </browseformats>

上例中,“中文图书”的“详细”格式采用了“biblio”类型,这种类型会自动找数据库的opac_biblio.fltx角色配置文件,创建书目数据显示格式(因此可以通过修改opac_biblio.fltx角色文件重构显示格式)。并且,“biblio”类型会自动找出相关实体库中的册信息进行显示,册信息的显示格式是系统内部固化定义的(不能被重构)。

而“中文期刊篇名”的“详细”格式采用了数据库的指定角色配置文件来创建显示格式。在例子中,是“="./cfgs/opac_detail.fltx”,也就是数据库下cfgs目录中的opac_detail.fltx角色文件。注意,在这种定义模式下,不会显示该库的实体库中的册信息(或者该库根本就不具备对应的实体库)。

scriptfile参数,其形式有以下几种:

scriptfile="./cfgs/opac_detail.fltx" 这是指数据库下的相对路径

scriptfile="/cfgs/opac_detail.fltx" 这是指数据库所在服务器(根)下的绝对路径。也就是那个服务器下的cfgs目录中的公共角色文件。

scriptfile="/中文图书/cfgs/opac_detail.fltx" 这也是一个绝对路径,表示同服务器下固定名字数据库下的配置文件。

配置文件的扩展名有一些讲究。如果为.fltx,则图书馆服务器只获取这个配置文件即可。而对于.cs扩展名的配置文件,应当在相同目录下,还要准备好一个.cs.ref的配置文件(前面部分名字相同),因图书馆服务器需要两个文件配套才能完成任务。也就是说,虽然scriptfile参数仅指定了一个配置文件,但如果这个配置文件的扩展名为.cs,则软件暗含了一个要求,需要准备同名的.cs.ref配置文件。之所以作这样的规定,是由.cs文件的特点决定的,它无法独立定义所连接的库文件信息,必须要有其他文件帮助定义。

<arrived> -- 预约到书参数配置

dbname属性是预约到书队列库的库名。

reserveTimeSpan属性是预约到书后图书馆为读者保留的时间长度。例如“2day”。

样例:

    <arrived dbname="预约到书" reserveTimeSpan="2day" />

<message> -- dpMail邮件系统的配置参数

dbname属性是消息库的库名。

reserveTimeSpan属性是消息保留在信箱中的时间长度。例如“180day”。

样例:

<message dbname="消息" reserveTimeSpan="180day" />

<mailTemplates> -- 邮件模板配置参数

配置通过内置邮件系统针对读者进行各种业务通知的邮件模板。

其中的<template>用于配置模板。

样例如下:

    <mailTemplates>
        <template name="预约到书通知">
尊敬的读者:
您预约的图书%item%已经到书,请尽快来图书馆办理借书手续。图书馆将为您保留%reservetime%,如果您未能在保留期限内来馆办理借阅手续,图书馆将把优先借阅权转给后面排队等待的预约者,或做归架处理。

%today%
 </template>
    </mailTemplates>

<traceDTLP> -- 跟踪dt1000/dt1500参数

样例如下:
<traceDTLP>
 <origin serverAddr="test" UserName="root" Password="" >

  <databaseMap>
   <item targetDatabase="跟踪流通库" originDatabase="流通库" marcSyntax="unimarc"/>
   <item targetDatabase="跟踪中文图书" originDatabase="图书总库" marcSyntax="unimarc" />
   <item targetDatabase="跟踪英文图书" originDatabase="English Books" marcSyntax="usmarc" />
  </databaseMap>

 </origin>
</traceDTLP> 

升级dt1000读者数据(连同流通信息)到dp2的配置办法:

               <item targetDatabase="读者" originDatabase="读者库" marcSyntax="xmlreader" />

升级dt1000书目中流通信息到dp2的配置办法:

               <item targetDatabase="中文图书" originDatabase="图书总库" marcSyntax="unimarc" targetEntityDatabase="中文图书实体" noBiblio="false" />

升级dt1000书目中流通信息到dp2时,只跟踪实体库,而保留书目库不加以初始化和写入的特殊配置办法:

               <item targetDatabase="中文图书" originDatabase="图书总库" marcSyntax="unimarc" targetEntityDatabase="中文图书实体" noBiblio="true" />

 

<locationtypes> -- 馆藏地点类型配置

这个配置体系决定了哪些馆藏地点的图书可以外借。

<item>元素的文本是馆藏地点名文字,而canborrow属性定义了是否可以外借。

样例如下:

    <locationtypes>
        <item canborrow="yes">流通书库</item>"
        <item>阅览室</item>
    </locationtypes>

如果图书馆的外借政策比较复杂,不能单纯依靠册信息中的<location>元素值来决定,那么就可以采用脚本来定义是否外借的规则。这是靠在LibraryHost派生类中书写一个如下函数来实现的:

 public bool ItemCanBorrow(XmlDocument itemdom,
  out string strMessageText)
 {
  string strBookType = DomUtil.GetElementText(itemdom.DocumentElement,
   "bookType");
  string strLocation = DomUtil.GetElementText(itemdom.DocumentElement,
   "Location");
  if (strBookType == "内阅图书")
  {
   strMessageText = "不可借。";
   return false;
  }
  strMessageText = "";
  return true;
 }

函数在两个场合起作用:一个是在类似book.aspx的bookitem控件界面上决定册每行左边的checkbox是否Enable和“状态”栏内的文字;另外是在借书操作中作为判断是否能够外借的一个环节。

这个函数如果返回true,表示可以相关册可以外借,否则就不可外借。参数itemdom提供了完整的册记录,可以利用其中的任何数据元素来进行综合判断。strMessageText返回一个状态理由。在bookitem显示控件界面上,strMessageText会出现在“状态”栏内容中;在借书操作中,如果调用上述脚本函数后发现不可外借,strMessageText的内容会出现在操作返回信息中,表明不可外借的具体原因。

可能需要在类定义前面加入:

using System.Xml;

using DigitalPlatform.Xml;

在<script>元素尾部(内侧,CDATA节后面)加入:

<refs>
<ref>system.dll</ref>
<ref>system.xml.dll</ref>
<ref>%bindir%\digitalplatform.xml.dll</ref>
</refs>

以便可以引用必要的外部类库(DomUtil类)。

如果没有配置上述ItemCanBorrow()函数,则<locationtypes>中的配置会起作用。

获取书目局部的功能

 public int GetBiblioPart(XmlDocument bibliodom,
  string strPartName,
  out string strResultValue)
 {
  strResultValue = "";

  XmlNamespaceManager mngr = new XmlNamespaceManager(new NameTable());
  mngr.AddNamespace("dprms", DpNs.dprms);


  if (bibliodom.DocumentElement.NamespaceURI == Ns.usmarcxml)
  {

   mngr.AddNamespace("usmarc", Ns.usmarcxml); // "http://www.loc.gov/MARC21/slim"

   string strXPath = "";

   if (strPartName == "price")
    strXPath = "//usmarc:record/usmarc:datafield[@tag='020']/usmarc:subfield[@code='c']";
   else
   {
    strResultValue = "不能识别的 strPartName 值 '" + strPartName + "'";
    return -1;
   }

   XmlNode node = bibliodom.SelectSingleNode(strXPath, mngr);
   if (node == null)
    return 0;

   strResultValue = node.InnerText;
   return 1;
  }
  else if (bibliodom.DocumentElement.NamespaceURI == DpNs.unimarcxml)
  {
   mngr.AddNamespace("unimarc", DpNs.unimarcxml); // "http://dp2003.com/UNIMARC"

   string strXPath = "";

   if (strPartName == "price")
    strXPath = "//unimarc:record/unimarc:datafield[@tag='010']/unimarc:subfield[@code='d']";
   else
   {
    strResultValue = "不能识别的 strPartName 值 '" + strPartName + "'";
    return -1;
   }

   XmlNode node = bibliodom.SelectSingleNode(strXPath, mngr);
   if (node == null)
    return 0;

   strResultValue = node.InnerText;
   return 1;
  }
  else {
   strResultValue = "无法识别的MARC格式";
   return -1;
  }

 }

 

 



发表时间: 2006-12-24 16:19:34
最后修改时间: 2007-04-11 15:56:00



  • 普通文章 dp2图书馆应用服务器参考手册 xietao 2006-12-24 16:18:00[点击:34137]
  • 普通文章 安装 xietao 2006-12-24 16:18:23 (ID:34) [点击:1070]
  • 普通文章 配置circulation.xml xietao 2006-12-24 16:19:34 (ID:36) [点击:1237]
  • 普通文章 cfgs目录下的配置文件 xietao 2006-12-24 16:20:09 (ID:37) [点击:1111]
  • 普通文章 readerxml2html.cs xietao 2006-12-24 17:08:04 (ID:38) [点击:1327]
  • 普通文章 itemxml2html.cs xietao 2006-12-24 17:50:53 (ID:39) [点击:1099]
  • 普通文章 .aspx命令参数规范 xietao 2006-12-25 11:39:08 (ID:40) [点击:2014]
  •  

    在线用户
    (无) 
    当前栏目在线用户数 0, 总在线用户数 0