导出订购到excel档 进行图书订购 - DigitalPlatform/dp2 GitHub Wiki
“导出订购分配去向 Excel 文件”这个功能的开发,目的是让用户能够使用excel档为系统批创建订购记录,从而不必拘泥在系统中操作创建订购记录各字段的信息。用户只需要在相关导出的excel档中设置订购记录的各字段,确认无误之后,再将excel档导入dp2系统,即可在系统中创建相应的订购记录。所导出的excel档,相当于一个延展出来的dp2系统订购对话框。
使用“导出订购分配去向 Excel 文件”功能可以满足用户以下需要:
1.导出系统中满足条件(一般是分馆,渠道)的已订购记录。便于用户汇总观察数据。
2.导出系统中已存在的满足条件的待订购记录(状态字段为空),用户可以在excel中调整各订购字段,再导入excel档到系统,excel的内容会覆盖原有的待订购信息,从而批量更新已有的待订购记录。
3.当订购记录中不存在满足条件的待订购记录(即状态为空的订购记录)时,系统会即时创建一条满足条件的新订购记录到excel档,用户在excel中调整新订购记录的各订购字段后,再导入excel档到系统,即可生成与excel内容相对应的新的订购记录。
“导出订购分配去向 Excel 文件”的使用分三个步骤:
1.导出订购记录到excel档
2.在excel档中修改订购事项
3.导入excel到dp2系统
以下依次介绍三个步骤的具体操作。
1. 导出订购记录到excel档。
导出订购记录到excel档,可以导出系统中现有满足条件的订购记录到excel档;当系统中不存在满足条件的订购记录时,系统会临时创建一个满足条件的待订购记录并导出到excel档。
通过【订购查询窗】导出订购记录时,只能导出系统中现有满足条件的订购记录;
通过【书目查询窗】不仅可以导出系统中现有满足条件的订购记录,当所选书目下不存在满足条件的订购记录时,系统会临时创建一条满足条件的新订购记录并导出到excel文件当中。
1.1 通过【订购查询窗】导出订购记录到excel档
点击【常用窗口】-【订购查询窗】,进入【订购查询窗】界面。
在【订购查询窗】里,用户先检索出一批订购记录,全选这些记录,在任意已选记录处单击鼠标右键,从右键菜单里选择【导出】-【订购分配表到excel文件】命令,系统弹出【保存到订购去向excel文件】对话框。用户利用这个对话框来筛选需要导出的记录,并且设置所导出excel显示的内容。
在【如何输出】属性页设置导出条件
【保存到订购去向excel文件】对话框有两个属性页:【如何输出】属性页和【配置】属性页。
在【如何输出】属性页里,用户可以设置导出时的筛选条件,并指定所导出excel文档的存储地址和文件名称。筛选条件包含【馆代码】,【渠道(书商)】,以及【仅输出状态为空的订购记录】选项。
-【馆代码】,指需要导出的订购记录所属的馆代码。导出过程中,只有属于所选馆代码管辖范围的订购记录才能够被导出。
比如,如果某笔订购记录中配置了两个以上分馆的馆藏:馆A,馆B,导出时馆必须设置为同时具有这两个分馆权限(包含A+B的权限)时,才能导出这笔记录。
【仅总馆】的馆代码只具有总馆操作权限,不能够导出分馆的记录。
【馆代码】下拉列表中所显示的内容与当前账号的权限有关。如果当前为分馆权限账号,则此处只显示当前分馆和“仅总馆”的馆代码。
如果订购记录未分配馆藏(去向字段为空白,类似“:1”形式),则视为分馆身份未定。这时,使用“总馆”和每个分馆的馆代码都可以导出这笔记录。
用“【仅总馆】”或者“总馆+全部分馆”导出时能够导出未分配的数量;用分馆的馆代码导出时只能导出订购记录而无法导出数量。
-【渠道(书商)筛选】,指所导出订购记录的订购渠道(书商),一般通过下拉列表进行选择设置,用户可以选择“全部”或者同时选择多种渠道。“全部”和“空”这两种渠道不能与其他渠道一并多选。
渠道书商列表是图书馆系统管理员在【系统管理窗】-【值列表】中预先设置好的。导出时订购记录的书商字段内容必须包含在所选的渠道当中,才会被输出到 Excel 文件内。
-【仅输出状态为空的订购记录】。此选项勾选后将只导出订购状态字段为空白的订购记录(待订购记录);如果不勾选,则系统中满足条件的所有订购记录将被导出到excel档。
以上三项都设置好后,点击【输出excel文件名】输入框右边的【...】按钮,系统弹出【请指定要输出的去向分配表excel文件名】对话框,用户指定导出文档的存储地址以及文件名,然后点击【保存】按钮,文档路径显示到【输出excel文件名】输入框里面。
当保存的文件是一个已经存在的文件时,系统会弹出【当前文件已经存在,是否需要替换它】的提示。用户确认需要替换,点击【确定】即可,这种情况下导出后原有文件的内容会被新的导出覆盖。
在【配置】属性页配置导出excel中显示的栏目
用户可以【配置】属性页里配置想要在导出的excel文件中显示的内容。配置包含具体的书目信息列和订购信息列。
点击【书目信息列】按钮,系统弹出【书目信息列】对话框,这个对话框里显示了当前配置的书目信息列。
用户选择需要移动的栏位后,可以点击【上移】,【下移】按钮对该栏位显示的先后顺序进行调整;或者点击【修改】按钮对该栏位的内容进行修改;对需要删除的栏位可以点击【删除】按钮进行删除;
需要显示更多其他栏位时,点击【新增】按钮,系统弹出【一个栏目】对话框,用户在这里设置需要新增栏位的具体内容。
可以从下拉列表中选择需要的栏目名称,这个下拉列表是软件开发人员事先拟定好的。设置完后点击【确定】,此时【一个栏目】对话框关闭,新增的栏位增加到【书目信息列】列表的最后。
设置书目信息列时需要注意栏位不要重复,否则会导致后面excel导出时报错。
同样,当用户需要重新配置订购信息列时, 点击【配置】属性页中【订购信息列】按钮,系统弹出【订购信息列】对话框,这个对话框的栏位里显示了当前配置的订购信息列。
用户选择需要移动的栏位后,可以点击【上移】,【下移】按钮对该栏位显示的先后顺序进行调整;或者点击【修改】按钮对该栏位的内容进行修改;对不需要删除的栏位可以点击【删除】按钮进行删除;
需要显示更多其他栏位时,点击【新增】按钮,系统弹出【一个栏目】对话框,用户在这里设置需要新增栏位的具体内容。栏目名称可以从下拉列表中选择,这个下拉列表是软件开发人员事先拟定好的。
设置完后点击【确定】,此时【一个栏目】对话框关闭,新增的栏位增加到【订购信息列】列表的最后。设置订购信息列时需要注意栏位不能够重复,否则会导致后面excel导入不成功。
以上设置好后系统会保存这些设置,下次导出仍然生效。如果下次需要改变导出栏目,则需要重新设置。
导出
以上两个属性页都设置好后,点击【确定】按钮,系统开始导出订购记录到excel档。同时右侧固定面板的”操作历史“属性页里,会同步显示导出过程。
导出完成后,系统自动打开所导出的excel档,并且弹出对话框提示【导出完成,共导出订购记录*条】。
如果所导的excel是已经存在的文件,且导出时该文件正在打开,系统会弹出对话框提示【需要导出的文件正在由另一进程使用,因此该进程无法访问此文件】。用户需要先关闭这个excel,然后从选择待订购记录开始,从头到尾操作一遍,才能导出需要的订购记录。
从订购记录中导出的订购记录可能有种:一种是已订购记录,即订购状态为非空值的记录(可能是已订购,或者已验收),这种记录在excel中会以深灰色底纹显示;第二种是系统中现有的待订购记录(订购状态为空值),这些记录正常显示。
1.1.2 通过【书目查询窗】导出订购记录到excel档。
通过【书目查询窗】导出订购记录到excel档,不仅可以导出所选书目下现有满足条件的订购记录;当系统中不存在满足条件的订购记录时,系统会临时创建一条新的订购记录并导出到excel档。
点击【常用窗口】-【书目查询窗】,进入【书目查询窗】界面。
用户检索出一批书目记录之后,选择需要相关书目后,在任意一条已选书目记录上单击鼠标右键,从右键菜单里选择【导出】-【订购分配表到excel文件】命令,系统弹出【保存到订购去向excel文件】对话框。
导出设置
这个对话框的内容与从【订购查询窗】所弹出的【保存到订购去向excel文件】对话框相比,多了一个【输出时即创建新订购记录】选项以外,其他全部相同,这里就不重复介绍了。
从【书目查询窗】导出订购记录所弹出的【存到订购去向excel文件】对话框中,【馆代码】这个选项,除了作为订购记录的筛选条件对所导出的订购记录起作用以外,当某条书目记录下不存在满足条件的记录,需要系统临时创建一条满足条件的订购记录时,会对所创建记录的馆藏分配产生影响。(具体请参考“新增订购事项”中馆藏分配的设置)
【输出时即创建新订购记录】选项的意思,指当系统中不存在满足条件的订购记录时,系统临时创建一条满足条件的新订购记录。当用户勾选这个选项时,系统临时创建的新订购记录输出到excel档的同时,会将新记录保存到系统当中;如果用户不勾选【输出时即创建新订购记录】选项,系统输出新订购记录到excel档时,新的订购记录不会被保存到系统当中。
(用户可以从两点判断新的订购是否保存到系统中,一是导出完成后进入书目对应的【种册窗】-【采购】属性页查看;二是从导出的excel档来观察,“订购记录路径”一栏被赋值的是已经存在于系统当中的记录,没有赋值的是系统中不存在的记录)
与通过【订购查询窗】导出一样,【如何输出】和【配置】的两个属性页都设置好后,点击【确定】按钮。系统开始导出。
系统临时新建订购记录
在勾选了【输出时即创建新订购记录】选项的情况下,导出过程中,如果存在某条书目记录下没有满足条件的订购记录时,系统会弹出【新增订购事项】对话框。
这个对话框相当于此批新建订购记录的订购模板。用户需要设置其中各字段具体内容。
第一栏,【书目号】。指书商提供的书目编号,比如邮局的邮发代号。这个编号是用于将来和书商交涉的。用户根据实际情况进行填写。不填写时,导出后的excel档该栏内容为空。
第二栏【渠道】,系统会默认设置为筛选的书商渠道的第一种。用户也可以根据需要从下拉列表中选择设置或者手动输入设置。
第三栏【经费来源】,用户可以根据需要从下拉列表中选择设置或者输入设置。不设置时,所导出excel档对应栏内容为空。这里的渠道不局限于下拉列表,用户可以任意输入。
第四栏,【复本数】。正确的复本数应该以数字表达,比如5,表示5个复本;特殊情况,如果订购图书为一套多册,则以复本数量*每套册数
来表示。比如3*5
,表示3个复本,每套5册,这样设置所导出excel中会自动将套数3和每套册数5分别显示在对应的栏位。只输入一个纯数字时,系统默认每套册数为1,所导出excel的【每套册数】一栏系统会设置为1。【复本数】一栏如果输入其他字母或者符号系统会报错,无法实现导出。
第五栏,【单价】。正确的单价应该以三位字母表示的币别前缀+数字的形式来表达。比如,单价是人民币20元,此处填写为CNY20;单价是美金10元,此处填写USD10。单价一栏可以使用宏变量@price,这样导出到excel时订购单价会自动设置为书目价格(UNIMARC 格式来说来说这是 010$a 子字段,对于 USMARC 格式来说这是 020$c 子字段)。如果单价栏输入其他字母或者符号,仍然会被导出到excel中对应的栏位。
【码洋】栏,填写规则同【单价】栏。
【折扣】栏,折扣为单价所占码洋的比例,比如0.8表示八折,即单价/码洋=0.8。此处需要填写数字或者小数。
【单价】、【码洋】和【折扣】三栏中,一般只填写【单价】栏或者其中两栏。当三栏都填写但不符合计算规则时,系统导出时会报错;用户需要修改输入,使之符合规则后,才能导出记录。
【馆藏分配】栏。指对所订购复本的馆藏分配。用户可以点击输入框右侧的选择按钮,在弹出的【去向】对话框里具体分配去向。
此处所分配的数量一般要等于复本数,并且只能够分配为所选分馆权限以内的馆藏。当用户设置为权限以外的馆藏分配时,点击“确认”后,系统会提示“馆藏去向越过当前用户的关注范围”。
如果用户实际能够确定去向的数量小于复本数量,可以在这里将去向未定的复本分配到一个预先设置好的待分配馆藏地(这个馆藏地需要系统管理员预先在系统管理窗的馆藏地中配好)。因为系统导出的excel时会默认复本总数等于已分配去向的数量,如果不这样设置会导致导出的总数少于预定的订购数量。
【类别】栏。指当前图书所属的类别,用户可以下拉选择设置。
【批次号】栏。建议一定要设置,便于后续用批次号进行查询或其他批处理。批次号一般设置为批次描述+日期的形式。比如 图书待订购20180520.
以上都设置好后,点击【确定】按钮,系统开始导出订购记录到excel档。导出时,在右侧固定面板的【操作历史】属性页里,会同步显示导出过程。
导出完成后,系统自动打开所导出的excel档,并且弹出对话框提示【导出完成。共处理书目记录 *条, 导出订购记录条。所导出的订购记录中,*条是新订购记录,其中 *条已经写入订购库】。
2. 导出的excel文件,以及在excel档中修改订购事项
2.1 导出的excel文件中以两条黑色的竖线划分显示了三部分内容。
第一条竖线左侧是书目信息列,两条竖线中间是订购信息列,第二条竖线右侧是馆藏分配信息列。
如果导出的是系统已存在待订购记录(包含原本书目下没有待订购记录,勾选“输出时即创建新订购记录”选项导出时,系统临时创建并保存到系统的),则订购记录路径一栏显示了具体的路径值;
如果原本书目下没有待订购记录,系统临时创建输出到excel但并没有保存到系统的(不勾选“输出时即创建新订购记录”选项的情况下所创建的新订购记录),订购记录路径一栏显示为空白。
2.2 用户可以在这个列表基础上做适当修改以满足实际订购的需要
需要注意的是,标题列的文字,内容行左端的序号,书目记录路径和订购记录路径都不能修改,修改了会导致导入功能出错(不要随意增减栏位,否则导入时也可能出错)。黑色背景的记录为系统中已订购的记录,不能修改。 每一行中,订购信息列内容可以修改,馆藏分配列内容也可以修改。但书目信息列修改后不会被导入系统。
用户在修改设置渠道,价格,复本数和馆藏时需要注意以下内容:
【渠道】栏。目前excel当中渠道只能从下拉列表当中选择设置。如果导出时已经设置为列表以外的内容,仍然可以被导入。
【码洋】、【折扣】、【订购价】栏。用户可以修改,注意仍然需要按照币别前缀+数字的形式来表达,并且同一种货币统一使用同一个前缀。一般只需要填写【单价】栏或者其中两栏。当三栏都填写但不符合计算规则时,导入时系统会报错。
如果【码洋】或【订购价】只含有货币前缀不含有数字,导入时系统会报错;如果所导入excel中同一渠道的价格栏相同币别的前缀设置不统一,后面打印订单时系统只能对各币别进行罗列。
【每套册数】,正确的设置应该为纯数字。如果【每套册数】不设置时系统默认为1.
【馆藏分配】,馆藏分配只能设置为1-1000之间的纯数字。
【套数】栏,excel中设置了【套数】栏等于馆藏分配总和。用户不需要去修改,如果用户手动修改了【套数】不等于馆藏和,导入excel时,系统也只会根据馆藏分配总和设置复本数。
3. 导入excel到dp2系统。
用户在excel档中设置完需要的信息后,将excel导入dp2系统,从而使订购记录在系统中兑现。导入之前,需要确保当前导入的excel处于关闭状态。打开状态的excel档无法被导入系统。
点击【批处理】-【从订购去向excel文件导入】,系统弹出【请指定要导入的订购去向excel文件名】对话框,用户选择需要导入的excel之后,点击【打开】,系统开始导入。导入完后,系统以对话框提示【导入完成。共处理订购记录*
条。其中新创建订购记录*
条,其余的*
条是根据 Excel 文件内容覆盖修改订购库中的已有订购记录】。
导入excel到dp2系统之后,系统会根据导入实际数据修改原有的excel文档相应栏位的内容。比如,导入时系统会对新存入的待订购记录赋予一个订购批次号,导入后这个批次号会自动填入所导的excel当中;如果excel中原来不是按照馆藏总和来设置复本数的,导入后系统会将excel中的复本数自动修改为馆藏总和。