/// <summary> /// 加载XML /// </summary> /// <param name="xmlPath">XML路径</param> public override void Load(String xmlPath) { LoadFile(xmlPath, null); DataCenter.MainUI = this; ControlA control = Native.GetControls()[0]; control.BackColor = COLOR.CONTROL; RegisterEvents(control); m_jiras.Clear(); //从服务端拿取数据 m_jiras = XmlHandle.GetJiras(); this.m_gridDgvTable = GetGrid("dgvTable"); //注册事件,这样可以在一个自定义方法里监听 m_gridDgvTable.RegisterEvent(new ControlTimerEvent(TimerEvent), EVENTID.TIMER); m_timerID = ControlA.GetNewTimerID(); m_gridDgvTable.StartTimer(m_timerID, 1000); int size = m_jiras.Count; for (int i = 0; i < size; i++) { Jira jira = m_jiras[i]; AddOrUpdate(jira);//添加一行 } //刷新界面 m_gridDgvTable.Invalidate(); }
/// <summary> /// 刷新数据 /// </summary> public void Renovate() { //从服务端拿取数据 m_jiras = XmlHandle.GetJiras(); int count = m_jiras.Count; //创建Dictionary存放ID和数据 Dictionary <String, Jira> jiraIDs = new Dictionary <String, Jira>(); //遍历服务器的数据 for (int i = 0; i < count; i++) { Jira jira = m_jiras[i]; jiraIDs.Add(jira.JiraID, jira); } //获取表格所有行 List <GridRow> rows = m_gridDgvTable.GetRows(); int rowsCount = rows.Count; Dictionary <String, GridRow> gridRows = new Dictionary <String, GridRow>(); //遍历表格的数据 for (int i = 0; i < rowsCount; i++) { GridRow row = rows[i]; //取ID String id = row.GetCell("colT1").Text; //依据ID判断 if (!jiraIDs.ContainsKey(id)) { //ID不匹配删除行 m_gridDgvTable.RemoveRow(row); rowsCount--; i--; } else { //匹配则加到Dictionary gridRows.Add(id, row); } } m_gridDgvTable.Update(); m_gridDgvTable.BeginUpdate(); for (int i = 0; i < count; i++) { //遍历服务器数据 Jira jira = m_jiras[i]; bool newData = false; String key = jira.JiraID; GridRow row; if (gridRows.ContainsKey(key)) { row = gridRows[key]; } else { newData = true; row = new GridRow(); //row.Grid = m_gridDgvTable; //m_gridDgvTable.m_rows.Add(row); //row.OnAdd(); m_gridDgvTable.AddRow(row); } //遍历columns List <GridColumn> columns = m_gridDgvTable.GetColumns(); int countColumn = columns.Count; for (int j = 0; j < countColumn; j++) { GridColumn column = columns[j]; GridCell cell; if (newData) { cell = new GridCellExp(); row.AddCell(column.Index, cell); cell.Column = column; } else { cell = row.GetCell(column.Index); } DateTime dt = DateTime.Now; String status = jira.EndDate.ToFileTime() > dt.ToFileTime() ? "(超时)" : "(正常)"; int countGroup = XmlHandle.Groups.Count; switch (j) { case 0: GridCellStyle gridStyle1 = new GridCellStyle(); gridStyle1.BackColor = COLOR.DISABLEDCONTROL; gridStyle1.ForeColor = COLOR.ARGB(255, 255, 255); cell.Text = jira.JiraID; cell.Style = gridStyle1; //colT1 break; case 1: GridCellStyle gridStyle2 = new GridCellStyle(); gridStyle2.BackColor = COLOR.DISABLEDCONTROL; gridStyle2.ForeColor = COLOR.ARGB(45, 142, 45); cell.Text = jira.Title; cell.Style = gridStyle2; break; case 2: GridCellStyle gridStyle3 = new GridCellStyle(); gridStyle3.BackColor = COLOR.DISABLEDCONTROL; gridStyle3.ForeColor = COLOR.ARGB(47, 145, 145); cell.Text = jira.Creater; cell.Style = gridStyle3; break; case 3: GridCellStyle gridStyle4 = new GridCellStyle(); gridStyle4.BackColor = COLOR.DISABLEDCONTROL; gridStyle4.ForeColor = COLOR.ARGB(47, 145, 145);; cell.Style = gridStyle4; cell.Text = jira.Developer; break; case 4: { for (int m = 0; m < countGroup; m++) { if (XmlHandle.Groups[m].Id == jira.GroupID) { GridCellStyle gridStyle5 = new GridCellStyle(); gridStyle5.BackColor = COLOR.DISABLEDCONTROL; gridStyle5.ForeColor = COLOR.ARGB(47, 145, 145); cell.Style = gridStyle5; cell.Text = XmlHandle.Groups[m].Name; break; } } break; } case 5: { for (int m = 0; m < countGroup; m++) { if (XmlHandle.Groups[m].Id == jira.GroupID) { GridCellStyle gridStyle6 = new GridCellStyle(); gridStyle6.BackColor = COLOR.DISABLEDCONTROL; gridStyle6.ForeColor = COLOR.ARGB(255, 153, 153); cell.Style = gridStyle6; cell.Text = XmlHandle.Groups[m].Manager; break; } } break; } case 6: { for (int m = 0; m < countGroup; m++) { if (XmlHandle.Groups[m].Id == jira.GroupID) { List <JCategory> categories = XmlHandle.Groups[m].Categories; int cateCount = categories.Count; for (int n = 0; n < cateCount; n++) { if (categories[n].Id == jira.CategoryID) { GridCellStyle gridStyle7 = new GridCellStyle(); gridStyle7.BackColor = COLOR.DISABLEDCONTROL; gridStyle7.ForeColor = COLOR.ARGB(45, 142, 45); cell.Style = gridStyle7; cell.Text = categories[n].Name; break; } } break; } } break; } case 7: cell.Text = jira.DeveloperReceive ? "是" : "否"; GridCellStyle gridStyle8 = new GridCellStyle(); gridStyle8.ForeColor = COLOR.ARGB(255, 255, 255); if (cell.Text == "是") { gridStyle8.BackColor = COLOR.ARGB(93, 146, 202); } else { gridStyle8.BackColor = COLOR.ARGB(163, 5, 50); } cell.Style = gridStyle8; break; case 8: cell.Text = jira.DeveloperPass ? "是" : "否"; GridCellStyle gridStyle9 = new GridCellStyle(); gridStyle9.ForeColor = COLOR.ARGB(255, 255, 255); if (cell.Text == "是") { gridStyle9.BackColor = COLOR.ARGB(93, 146, 202); } else { gridStyle9.BackColor = COLOR.ARGB(163, 5, 50); } cell.Style = gridStyle9; break; case 9: cell.Text = jira.TestPass ? "是" : "否"; GridCellStyle gridStyle10 = new GridCellStyle(); gridStyle10.ForeColor = COLOR.ARGB(255, 255, 255); if (cell.Text == "是") { gridStyle10.BackColor = COLOR.ARGB(93, 146, 202); } else { gridStyle10.BackColor = COLOR.ARGB(163, 5, 50); } cell.Style = gridStyle10; break; case 10: cell.Text = jira.ProductPass ? "是" : "否"; GridCellStyle gridStyle11 = new GridCellStyle(); gridStyle11.ForeColor = COLOR.ARGB(255, 255, 255); if (cell.Text == "是") { gridStyle11.BackColor = COLOR.ARGB(93, 146, 202); } else { gridStyle11.BackColor = COLOR.ARGB(163, 5, 50); } cell.Style = gridStyle11; break; case 11: cell.Text = jira.WaitPublish ? "是" : "否"; GridCellStyle gridStyle12 = new GridCellStyle(); gridStyle12.ForeColor = COLOR.ARGB(255, 255, 255); if (cell.Text == "是") { gridStyle12.BackColor = COLOR.ARGB(93, 146, 202); } else { gridStyle12.BackColor = COLOR.ARGB(163, 5, 50); } cell.Style = gridStyle12; break; case 12: cell.Text = jira.Published ? "是" : "否"; GridCellStyle gridStyle13 = new GridCellStyle(); gridStyle13.ForeColor = COLOR.ARGB(255, 255, 255); if (cell.Text == "是") { gridStyle13.BackColor = COLOR.ARGB(93, 146, 202); } else { gridStyle13.BackColor = COLOR.ARGB(163, 5, 50); } cell.Style = gridStyle13; break; case 13: cell.Text = jira.CloseTask ? "是" : "否"; GridCellStyle gridStyle14 = new GridCellStyle(); gridStyle14.ForeColor = COLOR.ARGB(255, 255, 255); if (cell.Text == "是") { gridStyle14.BackColor = COLOR.ARGB(93, 146, 202); } else { gridStyle14.BackColor = COLOR.ARGB(163, 5, 50); } cell.Style = gridStyle14; break; case 14: cell.Text = jira.Hurry; GridCellStyle gridStyle15 = new GridCellStyle(); gridStyle15.BackColor = COLOR.ARGB(0, 0, 0); if (cell.Text == "紧急") { gridStyle15.ForeColor = COLOR.ARGB(163, 5, 50); } else { gridStyle15.ForeColor = COLOR.ARGB(227, 171, 26); } cell.Style = gridStyle15; break; case 15: GridCellStyle gridStyle16 = new GridCellStyle(); GridCell cell16 = new GridCellExp(status + jira.StartDate.ToLongDateString().ToString()); cell.Text = cell16.Text; gridStyle16.ForeColor = COLOR.ARGB(255, 255, 0); cell.Style = gridStyle16; break; case 16: GridCellStyle gridStyle17 = new GridCellStyle(); GridCell cell17 = new GridCellExp(status + jira.StartDate.ToLongDateString().ToString()); cell.Text = cell17.Text; gridStyle17.ForeColor = COLOR.ARGB(255, 255, 0); cell.Style = gridStyle17; break; } } } m_gridDgvTable.EndUpdate(); m_gridDgvTable.Invalidate(); }
/// <summary> /// 添加数据 /// </summary> private void AddData() { if (m_txtJiraID.Text == null || m_txtJiraID.Text.Length == 0) { MessageBox.Show("ID不能为空,请填写ID!"); return; } if (m_txtCreater.Text == null || m_txtCreater.Text.Length == 0) { MessageBox.Show("发布人不能为空,请填写发布人!"); return; } if (m_txtTitle.Text == null || m_txtTitle.Text.Length == 0) { MessageBox.Show("标题栏不能为空,请填写标题!"); return; } //设置配置 m_jira = new Jira(); m_jira.Branches = this.m_txtBranches.Text; m_jira.CloseTask = this.m_chbCloseTask.Checked; m_jira.Creater = this.m_txtCreater.Text; m_jira.Description = this.m_rtbDescription.Text; m_jira.Developer = this.m_txtDeveloper.Text; m_jira.DeveloperPass = this.m_chbDeveloperPass.Checked; m_jira.DeveloperReceive = this.m_chbDeveloperReceive.Checked; m_jira.EndDate = Convert.ToDateTime(this.m_dtpEnd.Text); m_jira.HttpPath = this.m_txtHttpPath.Text; m_jira.Hurry = this.m_cmbHurry.Text; m_jira.JiraID = this.m_txtJiraID.Text; m_jira.ModifyDate = DateTime.Now; m_jira.ProductPass = this.m_chbProductPass.Checked; m_jira.Published = this.m_chbPublished.Checked; m_jira.RelativeGroup = this.m_txtRelativeGroup.Text; m_jira.StartDate = Convert.ToDateTime(this.m_dtpStart.Text);//c#字符串转datatime m_jira.Title = this.m_txtTitle.Text; m_jira.TestPass = this.m_chbTestPass.Checked; m_jira.WaitPublish = this.m_chbWaitPublish.Checked; //分组ID try { m_jira.GroupID = (m_cmbGroup.GetItems()[this.m_cmbGroup.SelectedIndex].Tag as JGroup).Id; string cachePath = Path.Combine(XmlHandle.UserDir, "SetCache.txt"); File.WriteAllText(cachePath, m_jira.GroupID, Encoding.UTF8); } catch (Exception ex) { ErrorException.OnError(ex); } //分类ID try { m_jira.CategoryID = (m_cmbCategory.GetItems()[this.m_cmbCategory.SelectedIndex].Tag as JCategory).Id; } catch (Exception ex) { ErrorException.OnError(ex); } //检查添加 if (m_isAdd) { Jira checkJira = XmlHandle.GetJira(m_jira.JiraID); String isOk = HttpGetService.Get(DataCenter.ServerAddr + "/giraservice?func=checkid&gid=" + m_jira.JiraID); if (isOk != null && isOk == "0") { m_isOverride = false; } else { if (DialogResult.OK != MessageBox.Show("ID已存在,自动更换为最新的ID,请重新提交!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)) { String strJiraID = HttpGetService.Get(DataCenter.ServerAddr + "giraservice?func=availablenum"); int maxJiraID = 0; int.TryParse(strJiraID, out maxJiraID); this.m_txtJiraID.Text = maxJiraID.ToString(); return; } } } m_mainFrame.AddOrUpdate(m_jira); Close(); }