📄 clsshujuguanli.cs
字号:
}
else if(!bianHua && ShuJuJian.Equals(clsChangLiang.SHUJU_XUQIU))
{
xuqiuShiFouBianHua = false;//没有变化
}
}
}
/// <summary>
/// 获得相应的数据
/// </summary>
/// <param name="ShuJuJian">数据种类键值</param>
/// <returns>数据</returns>
public DataSet HuoDeShuJu(string ShuJuJian)
{
lock(this)
{
//是否有该键值
if(!this.xiangShuJu.ContainsKey(ShuJuJian))
{
return null;
}
//获得相应的值
IDictionaryEnumerator jiHe = xiangShuJu.GetEnumerator();
while ( jiHe.MoveNext() )
{
if(jiHe.Key.Equals(ShuJuJian) )
{
break;
}
}
//返回数据
return (jiHe.Value as DataSet);
}
}
/// <summary>
/// 需求数据是否变化
/// </summary>
/// <returns>true 变化;false 没有变化</returns>
public bool XuQiuBianHua()
{
return xuqiuShiFouBianHua;
}
/// <summary>
/// 是否需要等待数据刷新
/// </summary>
/// <returns>true:需要数据刷新 false:不需要数据刷新</returns>
public bool ShiFouXuYaoXiaZai()
{
DataSet jibenShuJu = this.HuoDeShuJu(clsChangLiang.SHUJU_JIBENSHUJU);
DataSet peizhiXinXi = this.HuoDeShuJu(clsChangLiang.SHUJU_PEIZHIXINXI);
if(jibenShuJu.Tables.Count == 0 || peizhiXinXi.Tables.Count==0)
{
return true;
}
return false;
}
/// <summary>
/// 添加一个新得需求
/// </summary>
/// <param name="xinXuQiu"></param>
/// <returns></returns>
public DataSet XuQiuTianJian(DataTable xinXuQiu)
{
lock(this)
{
//1.0.0.0
//DataSet shuJu = this.HuoDeShuJu(clsChangLiang.SHUJU_XUQIU);
//2.0.0.0
DataSet shuJu = this.HuoDeShuJu(clsChangLiang.SHUJU_XUQIU_WEIDAFU);
DataSet xinShuJu = null;
if(shuJu.Tables.Count <1 )
{
xinShuJu = new DataSet();
xinXuQiu.TableName="XuQiu";
xinShuJu.Merge(xinXuQiu);
}
else
{
//zhangwi 11-23 将原来只构造系统数据改为根据xinXuQiu中数据构造,同时增加一个BiaoHao列
xinShuJu = shuJu;
string lieMing = "" ;
//将xinShuJu.Tables["XuQiu"]中的所有列保存到HashTable中
System.Collections.Hashtable table = new Hashtable() ;
for (int i=0;i<xinShuJu.Tables["XuQiu"].Columns.Count;i++)
table.Add(xinShuJu.Tables["XuQiu"].Columns[i].ColumnName,"") ;
for (int i=0;i<xinXuQiu.Columns.Count;i++)
{
lieMing = xinXuQiu.Columns[i].ColumnName ;
if (!table.ContainsKey(lieMing))
{
System.Data.DataColumn xinLie= new DataColumn() ;
xinLie.ColumnName = lieMing ;
xinLie.AllowDBNull = true ;
xinShuJu.Tables["XuQiu"].Columns.Add(xinLie) ;
}
}
//增加编号列
if (!table.ContainsKey("BianHao"))
{
System.Data.DataColumn xinLie= new DataColumn() ;
xinLie.ColumnName = "BianHao" ;
xinLie.AllowDBNull = true ;
xinShuJu.Tables["XuQiu"].Columns.Add(xinLie) ;
}
DataRow xinHang = xinShuJu.Tables["XuQiu"].NewRow();
for (int i=0;i<xinXuQiu.Columns.Count;i++)
{
lieMing = xinXuQiu.Columns[i].ColumnName ;
if (!xinXuQiu.Rows[0].IsNull(lieMing))
xinHang[lieMing] = xinXuQiu.Rows[0][lieMing].ToString() ;
}
xinHang["BianHao"]="-1";
xinShuJu.Tables["XuQiu"].Rows.Add(xinHang);
}
//2.0.0.0->begin
this.xiangShuJu.Remove(clsChangLiang.SHUJU_XUQIU_WEIDAFU);
this.xiangShuJu.Add(clsChangLiang.SHUJU_XUQIU_WEIDAFU,xinShuJu);
//更新总数据
/*special code block, bad custom
DataSet zongShuJu = this.HuoDeShuJu(clsChangLiang.SHUJU_XUQIU);
zongShuJu.Merge(this.HuoDeShuJu(clsChangLiang.SHUJU_XUQIU_YIDAFU)); */
DataSet zongShuJu = new DataSet();
zongShuJu.Merge(this.HuoDeShuJu(clsChangLiang.SHUJU_XUQIU_WEIDAFU));
zongShuJu.Merge(this.HuoDeShuJu(clsChangLiang.SHUJU_XUQIU_YIDAFU));
this.xiangShuJu.Remove(clsChangLiang.SHUJU_XUQIU);
this.xiangShuJu.Add(clsChangLiang.SHUJU_XUQIU,zongShuJu);
//2.0.0.0->end
//zhangwj 11-22 每次更新存入文件
CunRuShuJu();
return xinShuJu;
}
}
/// <summary>
/// 区分需求数据,2.0.0.0新特性
/// </summary>
/// <param name="ZongXuQiu">总的需求数据</param>
/// <returns></returns>
private ArrayList QuFengXuQiuShuJu(DataSet ZongXuQiu)
{
ArrayList lingshi= new ArrayList();
if(ZongXuQiu.Tables.Count < 1)
{
lingshi.Add(new DataSet());
lingshi.Add(new DataSet());
}
else
{
DataTable xuqiuShuJuYiDaFu =ZongXuQiu.Tables["XuQiu"].Clone();
xuqiuShuJuYiDaFu.Clear();
DataTable xuqiuShuJu = ZongXuQiu.Tables["XuQiu"].Clone();
xuqiuShuJu.Clear();
//区分数据
for(int Loop=0;Loop<ZongXuQiu.Tables["XuQiu"].Rows.Count;Loop++)
{
DataRow hang = ZongXuQiu.Tables["XuQiu"].Rows[Loop];
//判断是否答复
if(hang["DaFuRen"].ToString().Trim().Length > 0) //已答复
{
DataRow xinHang = xuqiuShuJuYiDaFu.NewRow();
//拷贝数据
for(int iLoop = 0;iLoop<ZongXuQiu.Tables["XuQiu"].Columns.Count;iLoop++)
{
xinHang[ZongXuQiu.Tables["XuQiu"].Columns[iLoop].ColumnName]
= hang[ZongXuQiu.Tables["XuQiu"].Columns[iLoop].ColumnName];
}
xuqiuShuJuYiDaFu.Rows.Add(xinHang);
}
else //没有答复
{
DataRow xinHang =xuqiuShuJu.NewRow();
//拷贝数据
for(int iLoop = 0;iLoop<ZongXuQiu.Tables["XuQiu"].Columns.Count;iLoop++)
{
xinHang[ZongXuQiu.Tables["XuQiu"].Columns[iLoop].ColumnName]
= hang[ZongXuQiu.Tables["XuQiu"].Columns[iLoop].ColumnName];
}
xuqiuShuJu.Rows.Add(xinHang);
}
}
//生成DataSet
DataSet xuqiuShuJuJH = new DataSet();
if(xuqiuShuJu.Rows.Count>0)
{
xuqiuShuJuJH.Merge(xuqiuShuJu);
}
DataSet xuqiuShuJuYiDaFuJH = new DataSet();
if(xuqiuShuJuYiDaFu.Rows.Count>0)
{
xuqiuShuJuYiDaFuJH.Merge(xuqiuShuJuYiDaFu);
}
//需求没有答复数据在第一位,已答复数据在第二位
lingshi.Add(xuqiuShuJuJH);
lingshi.Add(xuqiuShuJuYiDaFuJH);
}
return lingshi;
}
/// <summary>
/// 构造界面数据集
/// 包括两个DataTable: JieGou 界面元素描述 ; ShuJu 存放界面中得到的数据
/// 其中:JieGou的DataTable为从服务器端得到的配置dataTable ,
/// ShuJu 的DataTable 列名为结构DataTable 中的ShuJuXiangKJM的值
/// </summary>
/// <returns></returns>
public System.Data.DataSet ChuangJianShuJuJi()
{
System.Data.DataSet ret = new System.Data.DataSet() ;
//JieGou
System.Data.DataSet fuWuQiMiaoShu = HuoDeShuJu(clsChangLiang.SHUJU_PEIZHIXINXI) ;
ret.Tables.Add(fuWuQiMiaoShu.Tables["PeiZhi"].Copy()) ;
//ShuJu
System.Data.DataTable shuJuDatable = new System.Data.DataTable("ShuJu") ;
System.Data.DataColumn xinlie ;
for (int i=0;i<fuWuQiMiaoShu.Tables["PeiZhi"].Rows.Count;i++)
{
xinlie = new System.Data.DataColumn() ;
xinlie.ColumnName = fuWuQiMiaoShu.Tables["PeiZhi"].Rows[i]["ShuJuXiangKJM"].ToString().Trim() ;
shuJuDatable.Columns.Add(xinlie) ;
}
ret.Tables.Add(shuJuDatable) ;
fuWuQiMiaoShu = HuoDeShuJu(clsChangLiang.SHUJU_JIBENSHUJU) ;
ret.Tables.Add(fuWuQiMiaoShu.Tables["XinXiDian"].Copy()) ;
ret.Tables.Add(fuWuQiMiaoShu.Tables["XuQiuFenLei"].Copy()) ;
return ret ;
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -