请启动dp2manager模块,打开编辑您关注的一个书目库的下属的dp2circulation_marc_autogen.cs脚本文件。
由于历史的原因,这个脚本文件中的MyHost类,可以从两个基类中派生。现在推荐用DetailHost类。以前那个类我就不讲了,虽然现在也兼容它。请检查您打开的脚本文件中的class定义语句。
*** 准备工作
在我写这篇文章以前,脚本代码中的MyHost类是凭借自己写出来加拼音的功能,而没有借助基类DetailHost的功能。为了体验最新的效果,您需要先删除里面的下列两个函数代码:
void AddPinyin()
{
...
}
int GetPinyinCfgLine( string strFieldName, out string strFrom, out string strTo)
{
...
}
要删除的代码比较长,我在这里就不全部列出了,上面省略号代表了没有列出的部分。
另外请删除MyHost类内前部变量定义部分的下述代码:
string [] cfgFields = new string {
...
};
*** 体验新的加拼音代码
在脚本文件中适当位置加入新的AddPinyin()函数,代码如下:
void AddPinyin()
{
AddPinyin(this.PinyinCfgXml);
}
然后在MyHost内前部变量定义部分增加下述代码:
string PinyinCfgXml = "<root>"
+ "<item name='200' from='a' to='9' />"
+ "<item name='701' indicator='@[^A].' from='a' to='9' />"
+ "<item name='711' from='a' to='9' />"
+ "<item name='702' indicator='@[^A].' from='a' to='9' />"
+ "<item name='712' from='a' to='9' />"
+ "</root>";
由于以前本来在Main()函数内就有AddPinyin()函数的入口,那么到此为止代码就修改好了,保存它。
启动dp2circulation,装入一条MARC记录到种册窗,在MARC编辑器中按下Ctrl+A,选择“加拼音”功能,就能体验到新的加拼音功能了。
这个加拼音功能感觉起来和以前的没有什么不同。当然,除了选择多音字的对话框发现了点外观变化 --- 这是最近的新修改,和二次开发脚本倒是无关。
后面我会逐步展开说明这段加拼音的代码的好处。