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();//滚动到下一页
}
}
}
将来的你,会感激现在拼命地自己!