using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using QMTask.Client.TaskService; namespace QMTask.Client { /// /// 计划管理 /// public partial class PlanListForm : Form { //计划列表 PlanInfo[] _plan; //任务调度服务 TaskService.TaskServiceClient tsc = ServiceUtil.GetTaskService(); public PlanListForm() { InitializeComponent(); } #region 窗体载入 private void PlanListForm_Load(object sender, EventArgs e) { //加载计划列表 loadData(); GridViewBind(); } #endregion #region 加载计划列表 /// /// 加载计划列表 /// private void loadData() { try { _plan = tsc.GetPlanList(); } catch (Exception ex) { MessageBox.Show("加载计划失败:" + ex.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void GridViewBind() { if (_plan == null) return; dataGridView1.Rows.Clear(); List tasks = tsc.GetTaskList().ToList(); foreach (var a in _plan) { TaskInfo task = tasks.Find(p => p.TaskID == a.TaskID); string periodType = ""; string intervalType = ""; switch (a.IntervalType) { case "s": intervalType = "秒"; break; case "m": intervalType = "分"; break; case "h": intervalType = "小时"; break; } switch (a.PeriodType) { case "d": if (string.IsNullOrEmpty(a.OnceTime) == false) { periodType = "每天"; } else { periodType = "每"+a.Interval+intervalType; } break; case "w": periodType = "每周"; break; case "m": if (a.Period == 1) { periodType = "每月"; } else { periodType = "每"+a.Period.ToString()+"月"; } break; } string PlanEndDate = "无"; if (a.PlanEndDate != new DateTime()) { PlanEndDate =a.PlanEndDate.ToString(); } dataGridView1.Rows.Add(a.PlanID, a.PlanName, task.TaskName, periodType, a.IsUse == "true" ? "是" : "否", a.PlanStartDate, PlanEndDate); } } #endregion #region 编辑计划 private void btn_update_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 0) { MessageBox.Show("请选择要编辑的计划。"); return; } PlanEditForm editForm = new PlanEditForm(); editForm.Plan = _plan[dataGridView1.SelectedRows[0].Index]; editForm.ShowDialog(); string action = editForm.Action; if (string.IsNullOrEmpty(action) == true) return; //加载计划列表 loadData(); GridViewBind(); } #endregion #region 删除计划 /// /// 删除计划 /// /// /// private void btn_del_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 0) { MessageBox.Show("请选择要删除的计划。"); return; } string PlanID = dataGridView1.SelectedRows[0].Cells["PlanID"].Value.ToString(); if (MessageBox.Show("是否删除选中的计划信息?", "删除", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.Yes) { try { bool r=tsc.DeletePlan(new PlanInfo() { PlanID = PlanID }); if (r == false) { MessageBox.Show("删除失败", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } catch (Exception ex) { MessageBox.Show("删除失败:" + ex.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //重新加载计划 loadData(); GridViewBind(); } } #endregion #region 添加计划 private void btn_add_Click(object sender, EventArgs e) { PlanEditForm editForm = new PlanEditForm(); editForm.ShowDialog(); string action = editForm.Action; if (string.IsNullOrEmpty(action) == true) return; //加载计划列表 loadData(); GridViewBind(); } #endregion private void btn_start_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 0) { MessageBox.Show("请选择要启用的计划。"); return; } PlanInfo plan = _plan[dataGridView1.SelectedRows[0].Index]; if (MessageBox.Show("是否启用选中的计划?", "启用", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.Yes) { try { bool r = tsc.StartPlan(plan); if (r == false) { MessageBox.Show("启用失败", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } catch (Exception ex) { MessageBox.Show("启用失败:" + ex.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //重新加载计划 loadData(); GridViewBind(); } } private void btn_stop_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count == 0) { MessageBox.Show("请选择要停用的计划。"); return; } PlanInfo plan =_plan[dataGridView1.SelectedRows[0].Index]; if (MessageBox.Show("是否停用选中的计划?", "停用", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.Yes) { try { bool r = tsc.StopPlan(plan); if (r == false) { MessageBox.Show("停用失败", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } catch (Exception ex) { MessageBox.Show("停用失败:" + ex.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //重新加载计划 loadData(); GridViewBind(); } } } }