浏览代码

报告导出,颗粒列表(帧图显示按照DMAX大小选前10个颗粒的帧图进行显示)

zhangjiaxin 3 年之前
父节点
当前提交
bb7be0017e

+ 47 - 86
OTSIncAReportApp/1-UI/Control_Grids/ParticlesGridDevidePage.cs

@@ -1447,6 +1447,23 @@ namespace OTSIncAReportGrids
         /// </summary>
         public void SaveMarkParticleRectangleOnFieldFile(DataTable dataTable ,out List<string> vs , out DataTable dt_FIeld)
         {
+            List<string> maxlength = new List<string>();
+            for (int i=0;i< dataTable.Rows.Count;i++)
+            {
+                if (dataTable.Rows[i]["TypeName"].ToString()!= "Not Identified")
+                {
+                    if (maxlength.Count<10)
+                    {
+                        maxlength.Add(dataTable.Rows[i]["Fieldid"].ToString());
+                    }
+                    else
+                    {
+                        break;
+                    }
+                }
+            }
+            List<string> max_list = maxlength.Distinct().ToList();
+
             string str_path_FIELD_FILES = result.FilePath + "\\FIELD_FILES\\";
             string str_path_FIELD_FILES_MARK = result.FilePath + "\\FIELD_FILES_MARK\\";
             int intQuantity = 0;
@@ -1482,29 +1499,41 @@ namespace OTSIncAReportGrids
                 dt.Columns.Add("fieldName");
                 dt.Columns.Add("cunt",typeof(int));
                 dt.Columns.Add("fieldFullName");
-                
-                foreach (FileInfo nextifile in theFolder.GetFiles())
+                for (int i = 0; i < max_list.Count; i++)
                 {
-                    if (nextifile.Name.Contains(".bmp") == true || nextifile.Name.Contains(".BMP") == true)
+                    foreach (FileInfo nextifile in theFolder.GetFiles())
                     {
-                        //确认对应的帧图名
-                        string str_fieldid = Path.GetFileNameWithoutExtension(nextifile.Name);
-                        str_fieldid = str_fieldid.Substring(5, str_fieldid.Length - 5);//减去field字符长度
-                        DataRow dr = dt.NewRow();
-                        dr["fieldid"] = " fieldid = " + str_fieldid;
-                        dr["cunt"] = dataTable.Select(" fieldid = " + str_fieldid).Count();
-                        dr["fieldName"] = nextifile.Name;
-                        dr["fieldFullName"] = nextifile.FullName;
-                        dr["id"] = str_fieldid;
-                        dt.Rows.Add(dr);
+                        if (nextifile.Name.Contains(".bmp") == true || nextifile.Name.Contains(".BMP") == true)
+                        {
+                            //确认对应的帧图名
+                            string str_fieldid = Path.GetFileNameWithoutExtension(nextifile.Name);
+                            str_fieldid = str_fieldid.Substring(5, str_fieldid.Length - 5);//减去field字符长度
+                            bool bl = false;
+
+                            if (str_fieldid == max_list[i].ToString())
+                            {
+                                bl = true;
+                            }
+
+                            if (bl)
+                            {
+                                DataRow dr = dt.NewRow();
+                                dr["fieldid"] = " fieldid = " + str_fieldid;
+                                dr["cunt"] = dataTable.Select(" fieldid = " + str_fieldid).Count();
+                                dr["fieldName"] = nextifile.Name;
+                                dr["fieldFullName"] = nextifile.FullName;
+                                dr["id"] = str_fieldid;
+                                dt.Rows.Add(dr);
+                            }
+
+                        }
                     }
-                        
                 }
-                DataView dv = dt.DefaultView;
-                dv.Sort = "cunt DESC";
-                dt_FIeld = dv.ToTable();
+                //DataView dv = dt.DefaultView;
+                //dv.Sort = "cunt DESC";
+                dt_FIeld = dt.Copy();
 
-                for (int i=0;i<10; i++)
+                for (int i=0;i< dt_FIeld.Rows.Count; i++)
                 {
                     if (dataTable.Select(dt_FIeld.Rows[i]["fieldid"].ToString()).Count() > 0)
                     {
@@ -1563,74 +1592,6 @@ namespace OTSIncAReportGrids
                     }
                 }
 
-
-                ////循环帧图,再循环各帧图中的颗粒,进行标记,保存
-                //foreach (FileInfo nextifile in theFolder.GetFiles())
-                //{
-                //    //找出所有的用户库文件,在这个目录中
-                //    if (nextifile.Name.Contains(".bmp") == true || nextifile.Name.Contains(".BMP") == true)
-                //    {
-                //        //确认对应的帧图名
-                //        string str_fieldid = Path.GetFileNameWithoutExtension(nextifile.Name);
-                //        str_fieldid = str_fieldid.Substring(5, str_fieldid.Length - 5);//减去field字符长度
-
-                //        if (intQuantity > 10)
-                //            continue;
-
-                //        if (dataTable.Select(" fieldid = " + str_fieldid).Count() > 0)
-                //        {
-                //            Image img = Image.FromFile(nextifile.FullName);
-                //            Bitmap ls_fieldbp = new Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
-                //            using (Graphics g = Graphics.FromImage(ls_fieldbp))
-                //            {
-                //                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
-                //                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
-                //                g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
-                //                g.DrawImage(img, 0, 0);
-                //            }
-
-                //            img.Dispose();
-                //            img = null;
-
-                //            //循环将颗粒,进行标记到bitmap图上
-                //            DataRow[] drlist = dt_AllParticle.Select("  fieldid = " + str_fieldid);
-                //            if (drlist.Count() > 0)
-                //                intQuantity = intQuantity + 1;
-                //            for (int i_row = 0; i_row < drlist.Count(); i_row++)
-                //            {
-                //                //string str_fieldid = drlist[i_row]["fieldid"].ToString();
-                //                string str_particleid = drlist[i_row]["particleid"].ToString();
-                //                string str_stdtypeid = drlist[i_row]["typeid"].ToString();
-                //                string str_offset_rect_X = drlist[i_row]["RectLeft"].ToString();
-                //                string str_offset_rect_Y = drlist[i_row]["RectTop"].ToString();
-                //                string str_offset_rect_Width = drlist[i_row]["RectWidth"].ToString();
-                //                string str_offset_rect_Height = drlist[i_row]["RectHeight"].ToString();
-
-                //                //确定需要标记颗粒的定位
-                //                Rectangle offset_rect = new Rectangle(Convert.ToInt32(str_offset_rect_X), Convert.ToInt32(str_offset_rect_Y),
-                //        Convert.ToInt32(str_offset_rect_Width), Convert.ToInt32(str_offset_rect_Height));
-
-                //                //向帧图进行标记颗粒位置
-                //                Graphics g = Graphics.FromImage(ls_fieldbp);
-                //                g.DrawRectangle(new Pen(Color.Aquamarine), offset_rect);
-
-                //                //判断是否超出了图像外面,是的话,让文字在左侧显示,默认在右侧显示
-                //                int ls_offsetx = offset_rect.X + offset_rect.Width;
-                //                if (ls_offsetx > ls_fieldbp.Width - 10)
-                //                {
-                //                    ls_offsetx = offset_rect.X - 10;
-                //                }
-                //                g.DrawString(str_fieldid + "" + str_particleid.ToString(),
-                //                    new Font("黑体", 8), new SolidBrush(Color.Aqua), new PointF(ls_offsetx, offset_rect.Y));
-
-                //                //保存带有标记的帧图
-                //                ls_fieldbp.Save(str_path_FIELD_FILES_MARK + str_fieldid.ToString() + ".bmp");
-
-                //                //ls_fieldbp.Dispose();
-                //            }
-                //        }
-                //    }
-                //}
             }
             //
             GC.Collect();

+ 1 - 1
OTSIncAReportApp/1-UI/OTSTemplateDesigner/Export_ReportTemplate.cs

@@ -215,7 +215,7 @@ namespace OTSIncAReportApp.OTSTemplateDesigner
             DataTable dt = fielddata.GetIncaSurfaceData();
             //将颗粒大小排序(从大到小)
             DataView dv = dt.DefaultView;
-            dv.Sort = "Area DESC";
+            dv.Sort = "DMAX DESC";
             DataTable dt_ParticlesGridDevidePage = dv.ToTable();