当前位置: 首页>>代码示例>>C#>>正文


C# LibraryChannel.Search方法代码示例

本文整理汇总了C#中LibraryChannel.Search方法的典型用法代码示例。如果您正苦于以下问题:C# LibraryChannel.Search方法的具体用法?C# LibraryChannel.Search怎么用?C# LibraryChannel.Search使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在LibraryChannel的用法示例。


在下文中一共展示了LibraryChannel.Search方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SearchAllBatchNo

        // 检索出盘点库内全部批次号名称
        int SearchAllBatchNo(
            LibraryChannel channel,
            Stop stop,
            string strInventoryDbName,
            out string strError)
        {
            strError = "";

            this.listView_records.Items.Clear();

            // EnableControls(false);
            stop.OnStop += new StopEventHandler(channel.DoStop);
            stop.Initial("正在列出全部批次号 ...");
            stop.BeginLoop();

            try
            {
                // 构造检索式
                StringBuilder text = new StringBuilder();

                text.Append("<target list='"
                        + StringUtil.GetXmlStringSimple(strInventoryDbName + ":" + "批次号")
                        + "'>");
                // 当前是否为全局用户
                bool bGlobalUser = this._libraryCodeList.Count == 0 || this._libraryCodeList.IndexOf("") != -1;
                    // 全局用户只认列表中 "" 一个值。这样可以检索出全部批次号,包括各个分馆的
                if (bGlobalUser == true && this._libraryCodeList.Count != 1)
                {
                    this._libraryCodeList.Clear();
                    this._libraryCodeList.Add("");
                }
                int i = 0;
                foreach (string librarycode in this.LibraryCodeList)
                {
                    if (i > 0)
                        text.Append("<operator value='OR' />");

                    text.Append("<item><word>"
                        + StringUtil.GetXmlStringSimple(bGlobalUser ? "" : librarycode + "-")
                        + "</word><match>left</match><relation>=</relation><dataType>string</dataType><maxCount>-1</maxCount></item><lang>zh</lang>");
                    i++;
                }

                if (bGlobalUser == true)
                {
                    if (i > 0)
                        text.Append("<operator value='OR' />");

                    // 针对空批次号的检索。空只能被全局用户可见
                    text.Append("<item><word>"
            + StringUtil.GetXmlStringSimple("")
            + "</word><match>exact</match><relation>=</relation><dataType>string</dataType><maxCount>-1</maxCount></item><lang>zh</lang>");
                    i++;
                }

                text.Append("</target>");

#if NO
                // 构造检索式
                string strQueryXml = "<target list='"
                        + StringUtil.GetXmlStringSimple(strInventoryDbName + ":" + "批次号")
                        + "'><item><word>"
                        + StringUtil.GetXmlStringSimple("")
                        + "</word><match>left</match><relation>=</relation><dataType>string</dataType><maxCount>-1</maxCount></item><lang>zh</lang>";
                strQueryXml += "<operator value='OR' />";
                strQueryXml += "<item><word>"
        + StringUtil.GetXmlStringSimple("")
        + "</word><match>exact</match><relation>=</relation><dataType>string</dataType><maxCount>-1</maxCount></item><lang>zh</lang></target>";
#endif

                long lRet = channel.Search(
                    stop,
                    text.ToString(),
                    "batchno",
                    "keycount", // strOutputStyle
                    out strError);
                if (lRet == 0)
                {
                    strError = "not found";
                    return 0;   // not found
                }
                if (lRet == -1)
                    return -1;

                long lHitCount = lRet;

                long lStart = 0;
                long lCount = lHitCount;
                DigitalPlatform.CirculationClient.localhost.Record[] searchresults = null;

                // 装入浏览格式
                for (; ; )
                {
                    Application.DoEvents();	// 出让界面控制权

                    if (stop != null && stop.State != 0)
                    {
                        strError = "用户中断";
                        return -1;
//.........这里部分代码省略.........
开发者ID:paopaofeng,项目名称:dp2,代码行数:101,代码来源:SelectBatchNoDialog.cs

示例2: DoLogicSearch

        // 逻辑检索
        // 本函数不负责清除浏览列表中的已有内容
        int DoLogicSearch()
        {
            string strError = "";
            int nRet = 0;

            this._processing++;
            try
            {
                long lHitCount = 0;
                long lLoaded = 0;

                List<QueryItem> items = null;

                nRet = this.dp2QueryControl1.BuildQueryXml(
                this.SearchMaxCount,
                "zh",
                out items,
                out strError);
                if (nRet == -1)
                    goto ERROR1;


                // 修改窗口标题
                this.Text = "dp2检索窗 逻辑检索";

#if NO
            ClearListViewPropertyCache();

            if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
            {
                // 按住Ctrl键的时候,不清除listview中的原有内容
            }
            else
            {
                // this.listView_browse.Items.Clear();
                ClearListViewItems();
            }
#endif

                bool bFillBrowseLine = true;
                if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
                {
                    bFillBrowseLine = false;
                }

                this.textBox_resultInfo.Clear();

                this.EnableControlsInSearching(false);

                stop.OnStop += new StopEventHandler(this.DoStop);
                stop.Initial("正在检索 ...");
                stop.BeginLoop();

                this.m_bInSearching = true;

                long lTotalHitCount = 0;
                int nErrorCount = 0;

                this.listView_browse.BeginUpdate();
                try
                {
                    for (int j = 0; j < items.Count; j++)
                    {
                        if (stop != null)
                        {
                            if (stop.State != 0)
                            {
                                strError = "用户中断";
                                goto ERROR1;
                            }
                        }
                        QueryItem item = items[j];

                        string strServerName = item.ServerName;

                        dp2Server server = this.dp2ResTree1.Servers.GetServerByName(strServerName);
                        if (server == null)
                        {
                            strError = "名为 '" + strServerName + "' 的服务器在检索窗中尚未定义...";
                            goto ERROR1;
                        }

                        string strServerUrl = server.Url;
                        this.Channel = this.Channels.GetChannel(strServerUrl);

                        string strOutputStyle = "id";

                        long lRet = Channel.Search(stop,
                            item.QueryXml,
                            "default",
                            strOutputStyle,
                            out strError);
                        if (lRet == -1)
                        {
                            this.textBox_resultInfo.Text += "检索式 '" + item.QueryXml + "' 检索时发生错误:" + strError + "\r\n";
                            nErrorCount++;
                            continue;
                        }
//.........这里部分代码省略.........
开发者ID:renyh1013,项目名称:dp2,代码行数:101,代码来源:dp2SearchForm.cs

示例3: SearchComments

        // 检索出评注数据
        // return:
        //      命中的全部结果数量。
        public static long SearchComments(
            OpacApplication app,
            LibraryChannel channel,
            string strBiblioRecPath,
            out string strError)
        {
            strError = "";
            // string strXml = "";

            Debug.Assert(String.IsNullOrEmpty(strBiblioRecPath) == false, "");

            //string strBiblioDbName = ResPath.GetDbName(strBiblioRecPath);
            string strBiblioDbName = StringUtil.GetDbName(strBiblioRecPath);

            if (String.IsNullOrEmpty(strBiblioDbName) == true)
            {
                strError = "从书目记录路径 '" + strBiblioRecPath + "' 中无法获得库名部分";
                return -1;
            }

            string strCommentDbName = "";
            // 根据书目库名, 找到对应的评注库名
            // return:
            //      -1  出错
            //      0   没有找到
            //      1   找到
            int nRet = app.GetCommentDbName(strBiblioDbName,
                out strCommentDbName,
                out strError);
            if (nRet == -1)
                return -1;

            //string strBiblioRecId = ResPath.GetRecordId(strBiblioRecPath);
            string strBiblioRecId = StringUtil.GetRecordId(strBiblioRecPath);

            string strQueryXml = "<target list='"
                + StringUtil.GetXmlStringSimple(strCommentDbName + ":" + "父记录")       // 2007/9/14 
                + "'><item><order>DESC</order><word>"
                + strBiblioRecId
                + "</word><match>exact</match><relation>=</relation><dataType>string</dataType><maxCount>-1</maxCount></item><lang>zh</lang></target>";

            // LibraryChannel channel = this.GetChannel(true, this.m_strParameters);
            try
            {
                long lRet = //this.Channel.
                    channel.Search(
                    null,
                    strQueryXml,
                    "default",
                    "", // strOuputStyle
                    out strError);
                if (lRet == -1)
                    return -1;

                if (lRet == 0)
                {
                    strError = "没有找到";
                    return 0;
                }

                return lRet;
            }
            finally
            {
                // this.ReturnChannel(channel);
            }
        }
开发者ID:renyh1013,项目名称:dp2,代码行数:70,代码来源:CommentsControl.cs

示例4: ThreadFillAmercedMain

        /*public*/
        void ThreadFillAmercedMain()
        {
            string strError = "";
            m_bStopFillAmerced = false;

            LibraryChannel channel = new LibraryChannel();
            channel.Url = this.MainForm.LibraryServerUrl;

            channel.BeforeLogin += new BeforeLoginEventHandle(Channel_BeforeLogin);

            channel.AfterLogin += new AfterLoginEventHandle(Channel_AfterLogin);

            try
            {
                string strResultSetName = "";
                // 获得一些系统参数
                string strDbName = "违约金";
                string strQueryXml = "";
                string strLang = "zh";

                long lRet = Channel.GetSystemParameter(
                    stop,
                    "amerce",
                    "dbname",
                    out strDbName,
                    out strError);
                if (lRet == -1)
                    goto ERROR1;

                if (m_bStopFillAmerced == true)
                    return;

                // 2010/12/16 change
                if (lRet == 0 || String.IsNullOrEmpty(strDbName) == true)
                {
                    if (String.IsNullOrEmpty(strError) == true)
                        strError = "违约金库名没有配置。";
                    goto ERROR1;
                }

                if (string.IsNullOrEmpty(this.FillAmercedParam.ReaderBarcode) == false)
                {
                    Safe_clearList(this.listView_amerced);

                    string strFrom = "读者证条码";
                    string strMatchStyle = "exact";

                    // 2007/4/5 改造 加上了 GetXmlStringSimple()
                    strQueryXml = "<target list='" + strDbName + ":" + strFrom + "'><item><word>"
        + StringUtil.GetXmlStringSimple(this.FillAmercedParam.ReaderBarcode)
        + "</word><match>" + strMatchStyle + "</match><relation>=</relation><dataType>string</dataType><maxCount>-1</maxCount></item><lang>" + strLang + "</lang></target>";

                    strResultSetName = "amercing";
                } // end of strReaderBarcode != ""
                else
                {
                    if (this.FillAmercedParam.IDs == null || this.FillAmercedParam.IDs.Count == 0)
                    {
                        strError = "IDs 参数不能为空";
                        goto ERROR1;
                    }

                    string strFrom = "ID";
                    string strMatchStyle = "exact";

                    strQueryXml = "<target list='" + strDbName + ":" + strFrom + "'>";
                    for (int i = 0; i < this.FillAmercedParam.IDs.Count; i++)
                    {
                        string strID = this.FillAmercedParam.IDs[i];

                        if (i > 0)
                            strQueryXml += "<operator value='OR' />";

                        strQueryXml += "<item><word>"
            + StringUtil.GetXmlStringSimple(strID)
            + "</word><match>" + strMatchStyle + "</match><relation>=</relation><dataType>string</dataType><maxCount>-1</maxCount></item><lang>" + strLang + "</lang>";
                    }
                    strQueryXml += "</target>";

                    strResultSetName = "amerced";
                }

                // 开始检索
                lRet = channel.Search(
    stop,
    strQueryXml,
    strResultSetName,
    "", // strOutputStyle
    out strError);
                if (lRet == 0)
                {
                    strError = "not found";
                    return;   // not found
                }
                if (lRet == -1)
                    goto ERROR1;

                if (m_bStopFillAmerced == true)
                    return;
//.........这里部分代码省略.........
开发者ID:renyh1013,项目名称:dp2,代码行数:101,代码来源:AmerceForm.cs


注:本文中的LibraryChannel.Search方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。