85 lines
2.5 KiB
C#
85 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Data;
|
|
using DCSoft.Writer.Data;
|
|
using System.Data.SqlClient;
|
|
using HelperDB;
|
|
|
|
namespace DocumentManagement
|
|
{
|
|
/// <summary>
|
|
/// 自定义的加载知识节点下拉列表项目的类型
|
|
/// </summary>
|
|
/// <remarks></remarks>
|
|
public class MyListItemsProvider : DCSoft.Writer.Data.IListItemsProvider
|
|
{
|
|
/// <summary>
|
|
/// 初始化对象
|
|
/// </summary>
|
|
public MyListItemsProvider()
|
|
{
|
|
}
|
|
|
|
public ListItemCollection GetListItems(ListItemsEventArgs args)
|
|
{
|
|
if (args.KBEntry != null && args.KBEntry.Style == KBEntryStyle.ListSQL)
|
|
{
|
|
string sql = args.KBEntry.Value;
|
|
if (string.IsNullOrEmpty(sql) == false)
|
|
{
|
|
IDataReader reader = DbHelperSQL.GetDataReader(sql);
|
|
ListItemCollection list = CreateList(reader);
|
|
reader.Close();
|
|
return list;
|
|
}//if
|
|
}//if
|
|
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据读取的数据生成项目列表
|
|
/// </summary>
|
|
/// <param name="reader">数据读取器</param>
|
|
/// <returns>项目列表</returns>
|
|
private ListItemCollection CreateList(IDataReader reader)
|
|
{
|
|
int fieldCount = reader.FieldCount;
|
|
if (fieldCount == 0)
|
|
{
|
|
return null;
|
|
}
|
|
ListItemCollection list = new ListItemCollection();
|
|
while (reader.Read())
|
|
{
|
|
ListItem item = new ListItem();
|
|
if (reader.IsDBNull(0) == false)
|
|
{
|
|
item.Text = Convert.ToString(reader.GetValue(0));
|
|
}
|
|
if (fieldCount == 1)
|
|
{
|
|
item.Value = item.Text;
|
|
}
|
|
else
|
|
{
|
|
if (reader.IsDBNull(1) == false)
|
|
{
|
|
item.Value = Convert.ToString(reader.GetValue(1));
|
|
}
|
|
}
|
|
if (fieldCount >= 3)
|
|
{
|
|
if (reader.IsDBNull(2) == false)
|
|
{
|
|
item.SpellCode = Convert.ToString(reader.GetValue(2));
|
|
}
|
|
}
|
|
list.Add(item);
|
|
}//while
|
|
return list;
|
|
}
|
|
}
|
|
}
|