XML,Timer技术.实现定时刷新

XML回传数据,绑定到Timer,实现数据定时刷新

1.功能要求


项目需求:
       将设置界面中,刷新时间,滚动时间,查询条件,通过XML的方式进行回传,主界面按照设置中传回来的值进行设置。

2.刷新界面截图


这里写图片描述

3.XML回传 界面截图


这里写图片描述

4.加载XML 将值赋给相应控件


/// <summary>
        /// 加载xml
        /// </summary>
        private void LoadBoardSetXml()
        {
            m_strSql = "";
            if (File.Exists("" + Application.StartupPath + "\\FormScheduleTracking.xml"))
            {
                string s = Application.StartupPath;
                DataSet dsXml = new DataSet();
                dsXml.ReadXml("" + Application.StartupPath + "\\FormScheduleTracking.xml");
                if (dsXml.Tables.Count > 0)
                {
                    m_strFormName = "FormScheduleTracking";
                    DataRow[] drsFrom = dsXml.Tables["from"].Select("Text = '" + m_strFormName + "'");
                    if (drsFrom.Length > 0)
                    {
                        string strFromID = drsFrom[0]["from_id"].ToString();
                        //刷新A
                        DataRow[] drsRefreshSetA = dsXml.Tables["refreshSetA"].Select("from_id = '" + strFromID + "'");
                        if (drsRefreshSetA.Length > 0)
                        {

                            if (drsRefreshSetA[0]["refreshType"].ToString() == "刷新")
                            {
                                timerFlush.Enabled = true;
                                timerFlush.Interval = Convert.ToInt32(drsRefreshSetA[0]["value"].ToString()) * 1000;
                            }
                            else
                            {
                                timerFlush.Enabled = false;
                            }
                        }
                        //滚动A
                        DataRow[] drsRollSetA = dsXml.Tables["rollSetA"].Select("from_id = '" + strFromID + "'");
                        if (drsRollSetA.Length > 0)
                        {

                            if (drsRollSetA[0]["rollType"].ToString() == "滚动")
                            {
                                timer2.Enabled = true;
                                timer2.Interval = Convert.ToInt32(drsRollSetA[0]["value"].ToString()) * 1000;
                            }
                            else
                            {
                                timer2.Enabled = false;
                            }
                        }
                        //查询
                        if (dsXml.Tables.Contains("queryConditionA"))
                        {
                            DataRow[] drsQueryConditionA = dsXml.Tables["queryConditionA"].Select("from_id = '" + strFromID + "'");
                            if (drsQueryConditionA.Length > 0)
                            {

                                foreach (DataRow drA in drsQueryConditionA)
                                {
                                    //类型是datatime
                                    if (this.dstExtrusionBoard1.TV_ORDER_MANUFACTURE_INFO.Columns[drA["item"].ToString()].DataType.Name.ToLower() == "datetime")
                                    {
                                        m_strSql += drA["joinCondition"].ToString() + drA["leftPart"].ToString() + drA["item"].ToString() + drA["rightPart"].ToString() + drA["condition"].ToString() + "to_date('" + drA["result"].ToString() + "','yyyy/mm/dd hh24:mi:ss')";
                                    }
                                     //类型是string
                                    else if (this.dstExtrusionBoard1.TV_ORDER_MANUFACTURE_INFO.Columns[drA["item"].ToString()].DataType.Name.ToLower() == "string")
                                    {
                                        m_strSql += drA["joinCondition"].ToString() + drA["leftPart"].ToString() + drA["item"].ToString() + drA["rightPart"].ToString() + drA["condition"].ToString() + "'" + drA["result"].ToString() + "'";
                                    }
                                    else
                                    {
                                        m_strSql += drA["joinCondition"].ToString() + drA["leftPart"].ToString() + drA["item"].ToString() + drA["rightPart"].ToString() + drA["condition"].ToString() + drA["result"].ToString();
                                    }
                                    RefreshData(m_strSql);
                                }
                            }
                        }
                    }
                }
            }


        }

5.查询数据 刷新时间


 /// <summary>
        /// 查询数据+刷新时间()
        /// </summary>
        private void RefreshData(string strSql)
        {
           //生成xml,进行清除(否则上几次会累加)
            dstExtrusionBoard1.Clear();
           //存入数据集
            DataSet dsPackageInventoryIn = PackageManageAPI.PackageManageService.GetLookData(strSql);
            dstExtrusionBoard1.Merge(dsPackageInventoryIn);
           labDateTime.Text = System.DateTime.Now.ToString();


        }

6.设置按钮


/// <summary>
        /// 设置按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSetting_Click(object sender, EventArgs e)

        {
            FormBoardSet frmBS = new FormBoardSet("FormScheduleTracking", this.gdvTrack, null, null, this.dstExtrusionBoard1.TV_ORDER_MANUFACTURE_INFO, null, null);
          //返回ok 
            if (frmBS.ShowDialog()==DialogResult.OK)
            {
                LoadBoardSetXml();              
            }
        }

7.停止滚动


 /// <summary>
        /// 停止滚动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStopspeed_Click(object sender, EventArgs e)
        {
            if (timer2.Enabled == true)//状态切换
            {
                timer2.Enabled = false;
                this.btnStopspeed.BackgroundImage = global::ZhongWang.SOA.ViewBoardUI.Properties.Resources.XZGD;
            }
            else if(timer2.Enabled == false){
                timer2.Enabled = true;
                this.btnStopspeed.BackgroundImage = global::ZhongWang.SOA.ViewBoardUI.Properties.Resources.MRTZGD;
            }
        }

8.停止取数


/// <summary>
        /// 停止取数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnStopgetting_Click(object sender, EventArgs e)
        {
            if (timerFlush.Enabled == true && timer2.Enabled == true) {
                timerFlush.Enabled = false;
                timer2.Enabled = false;
                this.btnStopgetting.BackgroundImage = global::ZhongWang.SOA.ViewBoardUI.Properties.Resources.XZQS;
            }
            else if (timerFlush.Enabled == true && timer2.Enabled == false) {
                timerFlush.Enabled = false;
                timer2.Enabled = false;
                this.btnStopgetting.BackgroundImage = global::ZhongWang.SOA.ViewBoardUI.Properties.Resources.XZQS;
            }
            else if (timerFlush.Enabled == false && timer2.Enabled == true)
            {
                timerFlush.Enabled = false;
                timer2.Enabled = false;
                this.btnStopgetting.BackgroundImage = global::ZhongWang.SOA.ViewBoardUI.Properties.Resources.XZQS;
            }
            else if (timerFlush.Enabled == false && timer2.Enabled == false) {
                timerFlush.Enabled = true;
                timer2.Enabled = true;
                this.btnStopgetting.BackgroundImage = global::ZhongWang.SOA.ViewBoardUI.Properties.Resources.MRTZQS;
            }
        }

9.滚动状态


 /// <summary>
        /// 滚动状态
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// 

        private void scroll(object sender, EventArgs e)
        {

            if (gdvTrack.DataRowCount.ToString().Length > 0)//如果有数据
            {
                if (this.gdvTrack.IsLastRow)//如果最后一行
                {
                    this.gdvTrack.MoveFirst();//滚动到第一行
                }
                else
                {
                    this.gdvTrack.MoveNextPage();//滚动到下一页
                }
            }
        }

将来的你,会感激现在拼命地自己!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值