📄 clsxuqiuchaxunkongzhi.cs
字号:
/// 停止组件更新
/// </summary>
private void TingZhiZuJianGengXin()
{
if(this.shifouGengXin)
{
//MUAB销毁
this.gengXinKongZhi.StopUpdater();
gengXinKongZhi = null;
//程序组件更新线程销毁
if( null != this. gengXinXC)
{
// 阻塞线程
bool isThreadJoined = gengXinXC.Join( clsChangLiang.XIANCHENGZHUSAISHIJIAN);
if( !isThreadJoined )
{
gengXinXC.Interrupt();
}
gengXinXC = null;
}
//修改标识
shifouGengXin = false;
}
}
/// <summary>
/// 重新发送需求
/// </summary>
private void ChongFaShuJu()
{
System.Data.DataSet chongfaShuJu = shujuGuanLi.ChongXinFaSong() ;
//2004-11-22.&& chongfaShuJu.Tables["ShuJu"].Rows.Count>0
if(chongfaShuJu.Tables.Count > 0 && chongfaShuJu.Tables["ShuJu"].Rows.Count>0)
{
XuQiuTiJiao(chongfaShuJu,0) ;
}
}
#endregion
#region 公有方法区域
/// <summary>
/// 构造器
/// </summary>
/// <param name="jieMian">需求查询界面引用</param>
public clsXuQiuChaXunKongZhi(XuQiuChaXunForm jieMian)
{
this.jieMian = jieMian;
//获得MOAB实例
lixianKongZhi = OfflineBlockBuilder.Instance;
//注册离线和在线事件
lixianKongZhi.ConnectionManager.ConnectionStateChangedEvent +=
new ConnectionStateChangedEventHandler(
ConnectionManagerConnectionStateChangedEvent);
//注册错误处理
FailsafeServiceAgent cuowuChuLi = lixianKongZhi.FailsafeServiceAgent;
cuowuChuLi.ErrorEvent += new MethodExecutionFailureReportEventHandler(FailSafeServiceAgentErrorEvent);
//载入驻留在本地硬盘中的数据
shujuGuanLi = new clsShuJuGuanLi();
shujuGuanLi.ZaiRuShuJu();
//获得业务代表实例
yewuDaiBiao = new clsYeWuDaiBiao();
//注册业务代表的消息处理
yewuDaiBiao.ReportErrorEvent += new ReportErrorEventHandler(YeWuDaiBiaoReportErrorEvent);
yewuDaiBiao.XuQiuTiJiaoFanHuiShiJian += new XuQiuTiJiaoFanHuiShiJianHandler(XuQiuTiJiaoFanHui);
yewuDaiBiao.XuQiuChaXunFanHuiShiJian += new XuQiuChaXunFanHuiShiJianHandler(XuQiuChaXunFanHui);
yewuDaiBiao.HuoDeJiBenShuJuFanHuiShiJian += new HuoDeJiBenShuJuFanHuiShiJianHandler(HuoDeJiBenShuJuFanHui);
yewuDaiBiao.HuoDePeiZhiXinXiFanHuiShiJian += new HuoDePeiZhiXinXiFanHuiShiJianHandler(HuoDePeiZhiFanHui);
}
/// <summary>
/// 控制器运行
/// </summary>SheZhiShuJuYuan
public void YunXin()
{
try
{
//界面填充数据
jieMian.SheZhiShuJuYuan(this.shujuGuanLi.HuoDeShuJu(clsChangLiang.SHUJU_XUQIU));
//MOAB启动
lixianKongZhi.Start();
//zhangwj 11-23 增加对为提交数据的重新提交
this.ChongFaShuJu() ;
}
catch(Exception genException)
{
gengXinXC = null;
throw new Exception("应用程序更新线程"+genException.Message) ;
}
}
/// <summary>
/// 控制器销毁
/// </summary>
public void XiaoHui()
{
try
{
//存放参考数据到本地文件
shujuGuanLi.CunRuShuJu();
shujuGuanLi = null;
//停止数据更新
this.TingZhiShuJuGengXin();
}
catch(Exception genException)
{
new Exception("数据更新线程停止错误!"+genException.Message);
throw;
}
try
{
//停止应用程序组件更新
TingZhiZuJianGengXin();
}
catch(Exception genException)
{
new Exception("应用程序组件停止错误!"+genException.Message);
throw;
}
}
/// <summary>
/// 需求提交
/// </summary>
public void XuQiuTiJiao(DataSet XuQiu)
{
this.yewuDaiBiao.XuQiuTiJiao(XuQiu);
//界面显示
try
{
DataSet shuJu = this.shujuGuanLi.XuQiuTianJian(XuQiu.Tables["ShuJu"]);
this.jieMian.GengXinXuQiu(shuJu);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
/// <summary>
/// 需求提交 不更新界面
/// </summary>
public void XuQiuTiJiao(DataSet XuQiu,int BiaoZhi)
{
this.yewuDaiBiao.XuQiuTiJiao(XuQiu);
}
/// <summary>
/// 需求查询
/// </summary>
public void XuQiuChaXun()
{
yewuDaiBiao.XuQiuChaXun();
}
/// <summary>
/// 获得基本数据
/// </summary>
public void HuoDeJiBenShuJu()
{
yewuDaiBiao.HuoDeJiBenShuJu();
}
/// <summary>
/// 获得配置信息
/// </summary>
public void HuoDePeiZhi()
{
yewuDaiBiao.HuoDePeiZhi();
}
/// <summary>
/// 数据查询,发出数据查询请求
/// </summary>
public void ShuJuChaXun()
{
if(this.shifouLianJie) //连接状态下查询最新的数据
{
this.XuQiuChaXun();
this.HuoDeJiBenShuJu();
this.HuoDePeiZhi();
}
}
/// <summary>
/// 获得界面描述数据
/// zhangwj 11.8
/// </summary>
/// <param name="Jian">键</param>
/// <param name="Hang">行号</param>
/// <returns></returns>
public System.Data.DataSet HuoDeShuJu(string Jian,int Hang)
{
System.Data.DataSet fanHui = null;
System.Collections.Hashtable table = new System.Collections.Hashtable() ;
fanHui = this.shujuGuanLi.HuoDeShuJu(Jian) ;
if(Hang < 0 ) return null;
DataTable shujuBiao = fanHui.Tables[0];
DataRow shujuHang = shujuBiao.Rows[Hang];
DataTable xinShuJuBiao = shujuBiao.Copy();
DataRow xinShuJuHang = xinShuJuBiao.NewRow();
for (int i=0;i<xinShuJuBiao.Columns.Count;i++)
table.Add(xinShuJuBiao.Columns[i].ColumnName,"") ;
for(int Loop=0;Loop<shujuBiao.Columns.Count;Loop++)
{
if (table.ContainsKey(shujuBiao.Columns[Loop].ColumnName))
{
if (!shujuHang.IsNull(shujuBiao.Columns[Loop].ColumnName))
xinShuJuHang[shujuBiao.Columns[Loop].ColumnName] = shujuHang[shujuBiao.Columns[Loop].ColumnName].ToString();
}
}
xinShuJuBiao.Rows.Clear();
xinShuJuBiao.Rows.Add(xinShuJuHang);
fanHui = new DataSet() ;
fanHui.Merge(xinShuJuBiao);
return fanHui ;
}
/// <summary>
/// 获得数据
/// </summary>
/// <param name="Jian"></param>
/// <returns></returns>
public System.Data.DataSet HuoDeShuJu(string Jian)
{
return this.shujuGuanLi.HuoDeShuJu(Jian);
}
/// <summary>
/// 定时数据更新程序,线程序工作函数
/// </summary>
public void DingShiShuJuChaXun()
{
if(this.shifouLianJie) //连接状态下查询最新的数据
{
this.XuQiuChaXun();
this.HuoDeJiBenShuJu();
this.HuoDePeiZhi();
}
}
/// <summary>
/// 是否需要等待数据刷新
/// </summary>
/// <returns>true:需要数据刷新 false:不需要数据刷新</returns>
public bool ShiFouXuYaoXiaZai()
{
return this.shujuGuanLi.ShiFouXuYaoXiaZai();
}
/// <summary>
/// 强制上线
/// </summary>
public void QiangZhiShangXian()
{
try
{
this.lixianKongZhi.ConnectionManager.GoOnline();
}
catch(Exception e)
{
clsRiZhiChuLi.JiLuRiZhi("强制上线失败"+e.Message);
}
}
/// <summary>
/// 强制离线
/// </summary>
public void QiangZhiLiXian()
{
try
{
this.lixianKongZhi.ConnectionManager.GoOffline();
}
catch(Exception e)
{
clsRiZhiChuLi.JiLuRiZhi("强制离线失败"+e.Message);
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -