瀏覽代碼

样品测量信息添加选择颗粒完毕

CXS 3 年之前
父節點
當前提交
62c9dfbf0a

+ 55 - 3
OTSIncAReportApp/1-UI/Control_Grids/ParticlesGridDevidePage.cs

@@ -205,11 +205,63 @@ namespace OTSIncAReportGrids
         #region 自定义方法
         void UpdateTable()
         {
-            //多次测试发现 读取数据库时间耗时长,但读取条数目对读取数据库时长影响不大,故此处直接读取所有数据库信息,以取代多次连接数据库方式,优化分页速度
-            particlesAll = new DataTable();
-            particlesAll = Particledata.GetInfoForPartucleDevidePage2(condition);
+            int sel = m_ReportApp.m_conditionChoose.m_SourceGridData.GetComboDownListIndexByItemName(OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE);
+            if (sel == 1)
+            {
+                List<OTSIncAReportApp.DataOperation.Model.Particle> selectParticles = m_ReportApp.GetSelectedParticles();
+                DataTable dtUelect = new DataTable();
+                dtUelect.Columns.Add("fieldid");
+                dtUelect.Columns.Add("particleid");
+                dtUelect.Columns.Add("AveGray");
+                dtUelect.Columns.Add("RectLeft");
+                dtUelect.Columns.Add("RectTop");
+                dtUelect.Columns.Add("RectWidth");
+                dtUelect.Columns.Add("RectHeight");
+                dtUelect.Columns.Add("Area");
+                dtUelect.Columns.Add("PosX");
+                dtUelect.Columns.Add("PosY");
+                dtUelect.Columns.Add("TypeId");
+                dtUelect.Columns.Add("ElementNum");
+                dtUelect.Columns.Add("SegmentNum");
+                dtUelect.Columns.Add("SEMPosX");
+                dtUelect.Columns.Add("SEMPosY");
+                dtUelect.Columns.Add("XrayId");
+                dtUelect.Columns.Add("DMAX");
+                dtUelect.Columns.Add("DMIN");
+                dtUelect.Columns.Add("DPERP");
+                dtUelect.Columns.Add("PERIMETER");
+                dtUelect.Columns.Add("ORIENTATION");
+                dtUelect.Columns.Add("DINSCR");
+                dtUelect.Columns.Add("DMEAN");
+                dtUelect.Columns.Add("DELONG");
+                dtUelect.Columns.Add("DFERET");
+                dtUelect.Columns.Add("TypeName");
+                dtUelect.Columns.Add("TypeColor");
+                dtUelect.Columns.Add("SubParticles");
+                dtUelect.Columns.Add("Element");
+                for(int i=0;i< selectParticles.Count;i++)
+                {
+                    dtUelect.Rows.Add(selectParticles[i].FieldId, selectParticles[i].ParticleId, selectParticles[i].AveGray, selectParticles[i].RectLeft, selectParticles[i].RectTop, selectParticles[i].RectWidth, selectParticles[i].RectHeight, selectParticles[i].Area, selectParticles[i].PosX, selectParticles[i].PosX, selectParticles[i].TypeId, selectParticles[i].ElementNum, selectParticles[i].SegmentNum, selectParticles[i].SEMPosX, selectParticles[i].SEMPosY, selectParticles[i].ParticleId, selectParticles[i].DMAX, selectParticles[i].DMIN, selectParticles[i].DPERP, selectParticles[i].PERIMETER, selectParticles[i].ORIENTATION, selectParticles[i].DINSCR, selectParticles[i].DMEAN, selectParticles[i].DELONG, selectParticles[i].FERET, selectParticles[i].TypeName, selectParticles[i].TypeColor, "", "");
+                 }
+                particlesAll = new DataTable();
+                particlesAll = dtUelect.Copy();
+                btn_Sel.Enabled = false;
+            }
+            else
+            {
+                //多次测试发现 读取数据库时间耗时长,但读取条数目对读取数据库时长影响不大,故此处直接读取所有数据库信息,以取代多次连接数据库方式,优化分页速度
+                particlesAll = new DataTable();
+                particlesAll = Particledata.GetInfoForPartucleDevidePage2(condition);
+                btn_Sel.Enabled = true;
+            }
+                
             DataTable elementchemistry = Particledata.GetElementChemistry();
 
+            if(particlesAll==null)
+            {
+                return;
+            }
+
             for (int i = 0; i < particlesAll.Rows.Count; i++)
             {
                 string str = "XRayId = " + particlesAll.Rows[i]["particleId"].ToString() + " and fieldid = " + particlesAll.Rows[i]["fieldid"].ToString();

+ 1 - 1
OTSIncAReportApp/3-ServiceCenter/DataOperation/DataAccess/ParticleData.cs

@@ -386,7 +386,7 @@ namespace OTSIncAReportApp.DataOperation.DataAccess
         }
         public DataTable GetInfoForPartucleDevidePage2(string condition)
         {
-            string sqliteString = "select fieldid,particleid,AveGray,RectLeft,RectTop,RectWidth,RectHeight,Area,PosX,PosY,TypeId,ElementNum,SegmentNum,FieldPosX as 'SEMPosX',FieldPosY as 'SEMPosY',ParticleId,DMAX,DMIN,DPERP,PERIMETER,ORIENTATION,DINSCR,DMEAN,DELONG,DFERET,TypeName,TypeColor,SubParticles, (select group_concat(name || '-' || Percentage, ';') from ElementChemistry where XRayId = MergedParticleInfo.XRayId and fieldid = MergedParticleInfo.fieldid) as Element from MergedParticleInfo where 1=1 " + condition + " union select fieldid,particleid,AveGray,RectLeft,RectTop,RectWidth,RectHeight,Area,PosX,PosY,TypeId,ElementNum,SegmentNum,FieldPosX,FieldPosY,ParticleId,DMAX,DMIN,DPERP,PERIMETER,ORIENTATION,DINSCR,DMEAN,DELONG,DFERET,TypeName,TypeColor,'' as SubParticles,'' as Element from INcAData where xrayid > -1 and instr(','||(select ifnull(group_concat(SubParticles, ','),'') from MergedParticleInfo)|| ',',',' || fieldid || ':' || particleid || ',')= 0 " + condition;
+            string sqliteString = "select fieldid,particleid,AveGray,RectLeft,RectTop,RectWidth,RectHeight,Area,PosX,PosY,TypeId,ElementNum,SegmentNum,FieldPosX as 'SEMPosX',FieldPosY as 'SEMPosY',XrayId,DMAX,DMIN,DPERP,PERIMETER,ORIENTATION,DINSCR,DMEAN,DELONG,DFERET,TypeName,TypeColor,SubParticles, (select group_concat(name || '-' || Percentage, ';') from ElementChemistry where XRayId = MergedParticleInfo.XRayId and fieldid = MergedParticleInfo.fieldid) as Element from MergedParticleInfo where 1=1 " + condition + " union select fieldid,particleid,AveGray,RectLeft,RectTop,RectWidth,RectHeight,Area,PosX,PosY,TypeId,ElementNum,SegmentNum,FieldPosX,FieldPosY,XrayId,DMAX,DMIN,DPERP,PERIMETER,ORIENTATION,DINSCR,DMEAN,DELONG,DFERET,TypeName,TypeColor,'' as SubParticles,'' as Element from INcAData where xrayid > -1 and instr(','||(select ifnull(group_concat(SubParticles, ','),'') from MergedParticleInfo)|| ',',',' || fieldid || ':' || particleid || ',')= 0 " + condition;
             DataTable DT = new DataTable();
             DT = dbHelper.ExecuteQuery(sqliteString);
             return DT;