本文整理汇总了C#中LibraryChannel.SearchItem方法的典型用法代码示例。如果您正苦于以下问题:C# LibraryChannel.SearchItem方法的具体用法?C# LibraryChannel.SearchItem怎么用?C# LibraryChannel.SearchItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LibraryChannel
的用法示例。
在下文中一共展示了LibraryChannel.SearchItem方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetBatchNoTable
// 获得批次号表
// parameters:
// strPubType 出版物类型。为 图书/连续出版物/(空) 之一
internal static void GetBatchNoTable(GetKeyCountListEventArgs e,
IWin32Window owner,
string strPubType, // 出版物类型
string strType,
Stop stop,
LibraryChannel Channel)
{
string strError = "";
long lRet = 0;
if (e.KeyCounts == null)
e.KeyCounts = new List<KeyCount>();
string strName = "";
if (strType == "order")
strName = "订购";
else if (strType == "item")
strName = "册";
else if (strType == "biblio")
strName = "编目";
else
throw new Exception("未知的strType '" + strType + "' 值");
// EnableControls(false);
stop.OnStop += new StopEventHandler(Channel.DoStop);
stop.Initial("正在列出全部" + strName + "批次号 ...");
stop.BeginLoop();
try
{
int nPerMax = 2000; // 一次检索命中的最大条数限制
string strLang = "zh";
string strDbName = "<all>";
if (strPubType == "图书")
strDbName = "<all book>";
else if (strPubType == "连续出版物")
strDbName = "<all series>";
else
strDbName = "<all>";
if (strType == "order")
{
lRet = Channel.SearchOrder(
stop,
strDbName, // "<all>",
"", // strBatchNo
nPerMax, // -1,
"批次号",
"left",
strLang,
"batchno", // strResultSetName
"desc",
"keycount", // strOutputStyle
out strError);
}
else if (strType == "biblio")
{
string strQueryXml = "";
lRet = Channel.SearchBiblio(
stop,
strDbName, // "<all>", // 尽管可以用 this.comboBox_inputBiblioDbName.Text, 以便获得和少数书目库相关的批次号实例,但是容易造成误会:因为数据库名列表刷新后,这里却不会刷新?
"", // strBatchNo,
nPerMax, // -1, // nPerMax
"batchno",
"left",
strLang,
"batchno", // strResultSetName
"desc",
"keycount", // strOutputStyle
"",
out strQueryXml,
out strError);
}
else if (strType == "item")
{
lRet = Channel.SearchItem(
stop,
strDbName, // "<all>",
"", // strBatchNo
nPerMax, // -1,
"批次号",
"left",
strLang,
"batchno", // strResultSetName
"desc",
"keycount", // strOutputStyle
out strError);
}
else
{
Debug.Assert(false, "");
}
//.........这里部分代码省略.........
示例2: SearchOneLocationItems
public static int SearchOneLocationItems(
MainForm main_form,
LibraryChannel channel,
Stop stop,
string strLocation,
string strOutputStyle,
out List<string> results,
out string strError)
{
strError = "";
results = new List<string>();
long lRet = channel.SearchItem(stop,
"<all>",
strLocation, //
-1,
"馆藏地点",
"left", // this.textBox_queryWord.Text == "" ? "left" : "exact", // 原来为left 2007/10/18 changed
"zh",
null, // strResultSetName
"", // strSearchStyle
"", //strOutputStyle, // (bOutputKeyCount == true ? "keycount" : ""),
out strError);
if (lRet == -1)
return -1;
long lHitCount = lRet;
long lStart = 0;
long lCount = lHitCount;
DigitalPlatform.LibraryClient.localhost.Record[] searchresults = null;
bool bOutputBiblioRecPath = false;
bool bOutputItemRecPath = false;
string strStyle = "";
if (strOutputStyle == "bibliorecpath")
{
bOutputBiblioRecPath = true;
strStyle = "id,cols,format:@coldef:*/parent";
}
else
{
bOutputItemRecPath = true;
strStyle = "id";
}
// 实体库名 --> 书目库名
Hashtable dbname_table = new Hashtable();
// 书目库记录路径,用于去重
Hashtable bilio_recpath_table = new Hashtable();
// 装入浏览格式
for (; ; )
{
Application.DoEvents(); // 出让界面控制权
if (stop != null && stop.State != 0)
{
strError = "检索共命中 " + lHitCount.ToString() + " 条,已装入 " + lStart.ToString() + " 条,用户中断...";
return -1;
}
lRet = channel.GetSearchResult(
stop,
null, // strResultSetName
lStart,
lCount,
strStyle, // bOutputKeyCount == true ? "keycount" : "id,cols",
"zh",
out searchresults,
out strError);
if (lRet == -1)
{
strError = "检索共命中 " + lHitCount.ToString() + " 条,已装入 " + lStart.ToString() + " 条," + strError;
return -1;
}
if (lRet == 0)
{
return 0;
}
// 处理浏览结果
for (int i = 0; i < searchresults.Length; i++)
{
DigitalPlatform.LibraryClient.localhost.Record searchresult = searchresults[i];
if (bOutputBiblioRecPath == true)
{
string strItemDbName = Global.GetDbName(searchresult.Path);
string strBiblioDbName = (string)dbname_table[strItemDbName];
if (string.IsNullOrEmpty(strBiblioDbName) == true)
{
strBiblioDbName = main_form.GetBiblioDbNameFromItemDbName(strItemDbName);
dbname_table[strItemDbName] = strBiblioDbName;
}
string strBiblioRecPath = strBiblioDbName + "/" + searchresult.Cols[0];
//.........这里部分代码省略.........