根据本周本月本日来查询数据 C#winform数据查询

这个我是在winform的页面上做的

1. 首先是在页面上添加3个lable   第一次点击lable会有相应的数据被查询出来  第二次点击同一个lable会刷新所有的数据

2.点击不同的label会有颜色提示当前点击的是哪一个  第二次点击的时候会还原lable的颜色

3.根据本日 本周 本月查询数据  是根据时间段来查询的  所以应该要先获取到本日的时间段  本周的时间段和本月的时间段

本日  labDay  本周  labWeek 本月  labMonth

代码如下

  1 public partial class frmSelCase
  2     {
  3          private List<Label> m_lstLabel = new List<Label>();
  4      }
  5 
  6 //单数次颜色变为蓝色  偶数次颜色为默认色
  7 bool[] labelClick = { false, false, false };
  8 
  9 private void initControls()
 10         {
 11             //三个lable的点击事件
 12             labDay.Click += new EventHandler(labDay_Click);
 13             labWeek.Click += new EventHandler(labWeek_Click);
 14             labMonth.Click += new EventHandler(labMonth_Click);
 15 
 16             initResonArray();
 17             for (int i = 0; i < m_lstLabel.Count; i++)
 18             {
 19                 Label labLeaveReson = m_lstLabel[i];
 20                 labLeaveReson.Click += new EventHandler(lab_Click);
 21             }
 22          }
 23 
 24 private void initResonArray()
 25         {
 26             m_lstLabel.Add(labDay);
 27             m_lstLabel.Add(labWeek);
 28             m_lstLabel.Add(labMonth);
 29         }
 30 
 31 //将切换了lable颜色的事件我写到了一起
 32 
 33  private void lab_Click(object sender, EventArgs e)
 34         {
 35             if (null == m_lstLabel) return;
 36             if (null == sender) return;
 37             Label labCurClick = (Label)sender;
 38 
 39             for (int i = 0; i < m_lstLabel.Count; i++)
 40             {
 41                 Label labReson = m_lstLabel[i];
 42 
 43                 if (labReson.Name == labCurClick.Name && labelClick[i] == false)
 44                 {
 45                     if (labReson.BackColor != Color.FromArgb(16, 155, 246)) labReson.BackColor = Color.FromArgb(16, 155, 246);
 46                     if (labReson.ForeColor != Color.FromArgb(255, 255, 255)) labReson.ForeColor = Color.FromArgb(255, 255, 255);
 47                     labelClick[i] = true;
 48                 }
 49                 else
 50                 {
 51                     if (labReson.BackColor != Color.FromArgb(217, 229, 238)) labReson.BackColor = Color.FromArgb(217, 229, 238);
 52                     if (labReson.ForeColor != Color.FromArgb(17, 95, 124)) labReson.ForeColor = Color.FromArgb(17, 95, 124);
 53                     labelClick[i] = false;
 54                 }
 55             }
 56         }
 57 
 58 //获取时间段
 59   private void getDateRange(DateRange range, out DateTime startTime, out DateTime endTime)
 60         {
 61             startTime = DateTime.MinValue;
 62             endTime = DateTime.MinValue;
 63 
 64             DateTime dtNow = DateTime.Now;
 65 
 66             switch (range)
 67             {
 68                 case DateRange.Day:
 69                     startTime = dtNow.Date;
 70                     endTime = dtNow.AddDays(1).AddSeconds(-1);
 71                     break;
 72                 case DateRange.Week:
 73                     startTime = dtNow.Date.AddDays(1 -Convert.ToInt32(dtNow.DayOfWeek.ToString("d")));
 74                     endTime = startTime.AddDays(7).AddSeconds(-1);
 75                     break;
 76                 case DateRange.Month:
 77                     startTime = dtNow.Date.AddDays(1 - DateTime.Now.Date.Day);
 78                     endTime = startTime.AddMonths(1).AddSeconds(-1);
 79                     break;
 80                 case DateRange.None:
 81                 default:
 82                     break;
 83             }
 84         }
 85 
 86 //单击本日 查询本日的数据 再点击一下就还原lable的颜色和初始数据
 87    private void labDay_Click(object sender, EventArgs e)
 88         {
 89             if (DateRange.Day == m_dateRange)
 90             {
 91                 m_dateRange = DateRange.None;
 92             }
 93             else
 94             {
 95                 m_dateRange = DateRange.Day;
 96             }
 97             getDateRange(m_dateRange, out m_dtFilter_StartTime, out m_dtFilter_EndTime);
 98             String strInputText = InputText.ToUpper();
 99             if (SysDefine.FAILED == refreshList(0, strInputText))
100             {
101                 MessageBox.Show(this.ErrorText, "信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
102             }
103         }
104 
105 //单击本周 查询本周的数据 再点击一下就还原lable的颜色和初始数据
106         private void labWeek_Click(object sender, EventArgs e)
107         {
108             if (DateRange.Week == m_dateRange)
109             {
110                 m_dateRange = DateRange.None;
111             }
112             else
113             {
114                 m_dateRange = DateRange.Week;
115             }
116 
117             getDateRange(m_dateRange, out m_dtFilter_StartTime, out m_dtFilter_EndTime);
118 
119             String strInputText = InputText.ToUpper();
120             if (SysDefine.FAILED == refreshList(0, strInputText))
121             {
122                 MessageBox.Show(this.ErrorText, "信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
123             }
124            
125         }
126 
127 //单击本月 查询本月的数据 再点击一下就还原lable的颜色和初始数据
128         private void labMonth_Click(object sender, EventArgs e)
129         {
130             if (DateRange.Month == m_dateRange)
131             {
132                 m_dateRange = DateRange.None;
133             }
134             else
135             {
136                 m_dateRange = DateRange.Month;
137             }
138 
139             getDateRange(m_dateRange, out m_dtFilter_StartTime, out m_dtFilter_EndTime);
140 
141             String strInputText = InputText.ToUpper();
142             if (SysDefine.FAILED == refreshList(0, strInputText))
143             {
144                 MessageBox.Show(this.ErrorText, "信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
145             }
146         }
147 
148 //将当前lable的状态定位四个  未选中  选中day  选中week  选中 Month
149   private DateRange m_dateRange = DateRange.None;
150   private enum DateRange
151     {
152       None = 0,
153       Day = 1,
154       Week = 2,
155       Month = 3
156     }
157 
158   public String InputText
159     {
160      get { return ucPages.InputText; }
161      set { ucPages.InputText = value; }
163     }
164 
165   private DateTime m_dtFilter_StartTime = DateTime.MinValue;
166   public DateTime Filter_StartDate
167     {
168      get { return m_dtFilter_StartTime; }
169     }
170 
171   private DateTime m_dtFilter_EndTime = DateTime.MinValue;
172   public DateTime Filter_EndDate
173     {
174      get { return m_dtFilter_EndTime; }
175     }

 

posted @ 2017-09-12 10:44  安东家的安东  阅读(1486)  评论(0编辑  收藏  举报