|
@@ -163,7 +163,7 @@ namespace OTSIncAReportGrids
|
|
|
m_ReportApp = ReportApp;
|
|
|
result = m_ReportApp.resultFilesList[m_ReportApp.WorkingResult];
|
|
|
|
|
|
- //设置窗体的双缓冲
|
|
|
+ //设置窗体的双缓冲,以保证大数据时拖动不卡
|
|
|
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
|
|
|
this.UpdateStyles();
|
|
|
|
|
@@ -171,17 +171,15 @@ namespace OTSIncAReportGrids
|
|
|
|
|
|
//利用反射设置DataGridView的双缓冲
|
|
|
Type dgvType = this.dgV_ParticlesDevidePage.GetType();
|
|
|
- PropertyInfo pi = dgvType.GetProperty("DoubleBuffered",BindingFlags.Instance | BindingFlags.NonPublic);
|
|
|
+ PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
|
|
|
pi.SetValue(this.dgV_ParticlesDevidePage, true, null);
|
|
|
|
|
|
- m_frm_userprogress = new Frm_UserProgress();
|
|
|
-
|
|
|
- m_mythread_state = false;
|
|
|
- m_mythread = new Thread(new ParameterizedThreadStart(Thread_GO));
|
|
|
-
|
|
|
lan = new Language(this);
|
|
|
table = lan.GetNameTable(this.Name);
|
|
|
|
|
|
+ m_mythread_state = false;
|
|
|
+ m_mythread = new Thread(new ParameterizedThreadStart(Thread_GO));
|
|
|
+ //m_frm_userprogress = new Frm_UserProgress();
|
|
|
fieldData = new FieldData(result.FilePath);
|
|
|
Particledata = new ParticleData(result.FilePath);
|
|
|
}
|
|
@@ -190,19 +188,20 @@ namespace OTSIncAReportGrids
|
|
|
{
|
|
|
//初始化底层操作类
|
|
|
m_OTSIncAReportGridsFun = new OTSIncAReportGridsFun(m_ReportApp, this);
|
|
|
+
|
|
|
+ ProgressStart();
|
|
|
+
|
|
|
//多次测试发现 读取数据库时间耗时长,但读取条数目对读取数据库时长影响不大,故此处直接读取所有数据库信息,以取代多次连接数据库方式,优化分页速度
|
|
|
particlesAll = new DataTable();
|
|
|
particlesAll = Particledata.GetInfoForPartucleDevidePage2(condition);
|
|
|
-
|
|
|
+
|
|
|
cbB_PageSize.Items.Add("20");
|
|
|
cbB_PageSize.Items.Add("100");
|
|
|
cbB_PageSize.Items.Add("500");
|
|
|
cbB_PageSize.Items.Add("1000");
|
|
|
cbB_PageSize.Items.Add("5000");
|
|
|
cbB_PageSize.Items.Add("All");
|
|
|
- //cbB_PageSize.SelectedIndexChanged -= new System.EventHandler(this.cbB_PageSize_SelectedIndexChanged);
|
|
|
cbB_PageSize.SelectedIndex = 0;
|
|
|
- //cbB_PageSize.SelectedIndexChanged += new System.EventHandler(this.cbB_PageSize_SelectedIndexChanged);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -363,25 +362,10 @@ namespace OTSIncAReportGrids
|
|
|
{
|
|
|
dgV_ParticlesDevidePage.Visible = false;
|
|
|
|
|
|
- #region 加载显示进度条部份
|
|
|
- this.Cursor = Cursors.WaitCursor;
|
|
|
- m_frm_userprogress = new Frm_UserProgress();
|
|
|
-
|
|
|
- //显示进度条,计算进度条应该显示的位置和宽度
|
|
|
- Form ls_main_form = this.ParentForm.ParentForm;//取出父窗体
|
|
|
- if (ls_main_form == null)
|
|
|
+ if (m_frm_userprogress.IsDisposed)
|
|
|
{
|
|
|
- m_frm_userprogress.Visible = false;
|
|
|
+ ProgressStart();
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- string str7 = table["str7"].ToString();
|
|
|
- m_frm_userprogress.Width = (int)(MyPrimaryScreen.DESKTOP.Width / MyPrimaryScreen.ScaleX * 0.9);
|
|
|
- m_frm_userprogress.Location = new Point(ls_main_form.Location.X + 80, ls_main_form.Location.Y + (int)(MyPrimaryScreen.DESKTOP.Height / MyPrimaryScreen.ScaleX) / 2);
|
|
|
- m_frm_userprogress.Show();
|
|
|
- m_frm_userprogress.SetProgressValueAndText(0, str7);
|
|
|
- }
|
|
|
- #endregion
|
|
|
|
|
|
dgV_ParticlesDevidePage.Rows.Clear();
|
|
|
dgV_ParticlesDevidePage.Columns.Clear();
|
|
@@ -532,7 +516,6 @@ namespace OTSIncAReportGrids
|
|
|
{
|
|
|
//更新进度,每100条记录加载完,更新一次进度
|
|
|
if (i % 10 == 0)
|
|
|
-
|
|
|
m_frm_userprogress.SetProgressValueAndText((int)(jd * i), "loading..");
|
|
|
|
|
|
Dictionary<string, string>.Enumerator enl = keyValues.GetEnumerator();
|
|
@@ -649,6 +632,16 @@ namespace OTSIncAReportGrids
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //for(int i=0;i< dgV_ParticlesDevidePage.Rows.Count;i++)
|
|
|
+ //{
|
|
|
+ // for(int j= strs.Count()+5;j< dgV_ParticlesDevidePage.Columns.Count;j++)
|
|
|
+ // {
|
|
|
+ // if(dgV_ParticlesDevidePage.Rows[i].Cells[j].Value == null)
|
|
|
+ // {
|
|
|
+ // dgV_ParticlesDevidePage.Rows[i].Cells[j].Value = 0;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
|
|
|
#region 加载进度条进度部份结束
|
|
|
//加载完成设置鼠标为默认
|
|
@@ -675,9 +668,6 @@ namespace OTSIncAReportGrids
|
|
|
//用户不能调整 行高
|
|
|
dgV_ParticlesDevidePage.AllowUserToResizeRows = false;
|
|
|
|
|
|
- //改变行的高度;
|
|
|
- //Gview_gz.RowTemplate.Height = 20;
|
|
|
-
|
|
|
//点击选择整行
|
|
|
dgV_ParticlesDevidePage.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
|
|
|
|
@@ -1225,10 +1215,39 @@ namespace OTSIncAReportGrids
|
|
|
condition += " and TypeName Like \"%" + tbx_Type.Text + "%\" ";
|
|
|
}
|
|
|
|
|
|
+ if (m_frm_userprogress.IsDisposed)
|
|
|
+ {
|
|
|
+ ProgressStart();
|
|
|
+ }
|
|
|
+ particlesAll = new DataTable();
|
|
|
+ particlesAll = Particledata.GetInfoForPartucleDevidePage2(condition);
|
|
|
+
|
|
|
lnkFirst_Click(null, null);
|
|
|
SetDataGridViewStyle();
|
|
|
}
|
|
|
|
|
|
+ void ProgressStart()
|
|
|
+ {
|
|
|
+ #region 加载显示进度条部份
|
|
|
+ this.Cursor = Cursors.WaitCursor;
|
|
|
+ m_frm_userprogress = new Frm_UserProgress();
|
|
|
+
|
|
|
+ //显示进度条,计算进度条应该显示的位置和宽度
|
|
|
+ Form ls_main_form = this.ParentForm.ParentForm;//取出父窗体
|
|
|
+ if (ls_main_form == null)
|
|
|
+ {
|
|
|
+ m_frm_userprogress.Visible = false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ m_frm_userprogress.Width = (int)(MyPrimaryScreen.DESKTOP.Width / MyPrimaryScreen.ScaleX * 0.9);
|
|
|
+ m_frm_userprogress.Location = new Point(ls_main_form.Location.X + 200, ls_main_form.Location.Y + 200 + (int)(MyPrimaryScreen.DESKTOP.Height / MyPrimaryScreen.ScaleX) / 2);
|
|
|
+ m_frm_userprogress.Show();
|
|
|
+ m_frm_userprogress.SetProgressValueAndText(0, "Loading data of particles...");
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ }
|
|
|
+
|
|
|
private void cbB_order_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
{
|
|
|
int ordernum = cbB_order.SelectedIndex;
|