SearchReader()接口参数说明 - DigitalPlatform/dp2 GitHub Wiki

功能:检索读者记录

通过这个API我们可以根据需要检索指定库的读者记录,并将所需的信息存储到结果集。

在统计方案中,使用DigitalPlatform.LibraryClient.LibraryChannel类的SearchReader()函数

        // 检索读者信息
        // parameters:
        //      stop    停止对象
        //      strReaderDbNames    读者库名。可以为单个库名,也可以是逗号(半角)分割的读者库名列表。还可以为 <全部>/<all> 之一,表示全部读者库。
        //      strQueryWord    检索词
        //      nPerMax 一批检索命中的最大记录数。-1表示不限制。
        //      strFrom 检索途径
        //      strMatchStyle   匹配方式。值为left/right/exact/middle之一。
        //      strLang 界面语言代码。一般为"zh"。
        //      strResultSetName    结果集名。可使用null。而指定有区分的结果集名,可让两批以上不同目的的检索结果及互相不冲突。
        // 权限:
        //      读者不能检索任何人的读者记录,包括他自己的;
        //      工作人员需要 searchreader 权限
        // return:
        //      -1  error
        //      >=0 命中结果记录总数
        /// <summary>
        /// 检索读者记录。
        /// 请参考 dp2Library API SearchReader() 的详细说明
        /// </summary>
        /// <param name="stop">Stop 对象</param>
        /// <param name="strReaderDbNames">读者库名。可以为单个库名,也可以是逗号(半角)分割的读者库名列表。还可以为 &lt;全部&gt;/&lt;all&gt; 之一,表示全部读者库。</param>
        /// <param name="strQueryWord">检索词</param>
        /// <param name="nPerMax">一批检索命中的最大记录数。-1表示不限制</param>
        /// <param name="strFrom">检索途径</param>
        /// <param name="strMatchStyle">匹配方式。值为left/right/exact/middle之一</param>
        /// <param name="strLang">界面语言代码。例如 "zh"</param>
        /// <param name="strResultSetName">结果集名。可使用null,等同于 "default"。而指定有区分的结果集名,可让两批以上不同目的的检索结果集可以共存</param>
        /// <param name="strOutputStyle">输出风格。keyid / keycount 之一。缺省为 keyid</param>
        /// <param name="strError">返回出错信息</param>
        /// <returns>
        /// <para>-1:   出错</para>
        /// <para>&gt;=0:  检索命中的记录数</para>
        /// </returns>
        public long SearchReader(
            DigitalPlatform.Stop stop,
            string strReaderDbNames,
            string strQueryWord,
            int nPerMax,
            string strFrom,
            string strMatchStyle,
            string strLang,
            string strResultSetName,
            string strOutputStyle,
            out string strError)

参数说明请参考 参考手册第3.12节SearchReader()

应用示例

该示例是在一个框架统计方案中,检索读者的写法。

            LibraryChannel channel = this.MainForm.GetChannel();
            try
            {
                string strError = "";
                long lRet = channel.SearchReader(null,  
                    "<全部>", //读者库名列表
                    name,  //检索词
                    -1,  //最大命中数。-1表示不限制
                    "姓名",  //检索途径
                    "exact",  //匹配方式:exact, left, right, middle
                    "zh",  //语言代码
                    "readers",  //结果集名
                    "",  //输出方式
                    out strError);

                if (lRet == -1)  //错误
                {
                    MessageBox.Show(strError);
                    return;
                }
                else if (lRet == 0)  //没有命中
                {
                    // TODO:未命中 输出到操作历史
                    continue;
                }
                else if (lRet > 1)  //命中。返回值为命中的记录条数
                {
                    // TODO: 重名 输出到操作历史
                    continue;
                }
            finally
            {
                this.MainForm.ReturnChannel(channel);
            }
⚠️ **GitHub.com Fallback** ⚠️