using OpenCvSharp; using OpenCvSharp.Extensions; using PaintDotNet.Base.Functionodel; using PaintDotNet.CustomControl; using PaintDotNet.Data.Param; using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Windows.Forms; using PaintDotNet.DbOpreate.DbBll; using PaintDotNet.DbOpreate.DbModel; using PaintDotNet.Base.CommTool; using System.Data; using System.IO; using PaintDotNet.Instrument; using Metis.ParameterSet; using PaintDotNet.Base; namespace PaintDotNet.GeneralAnalysis { /// /// 两相面积含量 /// internal class PolyphaseContentDialog : PdnBaseForm { /// /// 主空间 /// private AppWorkspace appWorkspace; /// /// 图像面板 /// private DocumentWorkspaceWindow documentWorkspace; private DocumentWorkspaceWindow tmpDocumentWorkspace; /// /// 选中图片的mat /// private Mat imageMat; private List polyphaseAnalysisResults = new List(); private List viewPolyphaseAnalysisResults = new List(); private List mainPolyphaseAnalysisResults = new List(); /// /// 处理程序 /// private ParamObject action = new Data.Action.Action901(); /// /// 当前选择的图片index /// int selectIndex = 0; int decnum = 2; private CommonControlButtons commonControlButtons; private int is_all = 0; private List bitList = new List(); private Dictionary> bitDic = new Dictionary>(); private int imgIndex = -1; private GeneralAnalysisModel generalAnalysisModel = new GeneralAnalysisModel(); private bool isExportResults = false; private bool isExportReports = false; private bool isExportProjects = false; /// /// 是否脚本运行 /// private Boolean initScriptValues = false; private int menuId; private string menuName; #region 控件 private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.ListView listView1; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button button2; private System.Windows.Forms.CheckBox checkBox1; private System.Windows.Forms.Button button1; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.GroupBox groupBox_review; private System.Windows.Forms.GroupBox groupBox5; private System.Windows.Forms.GroupBox groupBox6; private System.Windows.Forms.GroupBox groupBox7; private System.Windows.Forms.Label label1; private System.Windows.Forms.Button button4; private System.Windows.Forms.Button button3; private System.Windows.Forms.DataGridView dataGridView1; private System.Windows.Forms.ImageList imageList1; private GroupBox groupBox3; private Label label5; private Label label4; private Label label3; private DataGridView dataGridView_results; private Label lbl_content; private Label lbl_area; private Label lbl_rate; private Button button_remove; private Button button_all; private Button button5; private NumericUpDown numericUpDown1; private DataGridViewTextBoxColumn Column1; private DataGridViewTextBoxColumn Column2; private DataGridViewTextBoxColumn Column3; private DataGridViewTextBoxColumn Column4; private Button button9; private CheckedListBox listBox_analysisResult; private DataGridViewTextBoxColumn Column5; private DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; private DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; private DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; private DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; private IContainer components; #endregion public PolyphaseContentDialog() { InitializeComponent(); } public PolyphaseContentDialog(AppWorkspace appWorkspace, PdnMenuItem menuItem) { InitializeComponent(); InitializeLanguageText(); this.appWorkspace = appWorkspace; this.menuId = menuItem.MenuId; this.menuName = menuItem.Text; this.documentWorkspace = new DocumentWorkspaceWindow(appWorkspace); this.documentWorkspace.Dock = DockStyle.Fill; this.documentWorkspace.HookMouseEvents(); this.documentWorkspace.AuxiliaryLineEnabled = false; this.documentWorkspace.Visible = false; tmpDocumentWorkspace = new DocumentWorkspaceWindow(appWorkspace); this.groupBox_review.Controls.Add(documentWorkspace); this.commonControlButtons = new CommonControlButtons(); this.commonControlButtons.Dock = DockStyle.Top; this.commonControlButtons.Height = 30; this.commonControlButtons.HideZoomToWindowAndActualSize(); this.groupBox_review.Controls.Add(commonControlButtons); InitPicList(); CalcProcess(); this.listView1.SelectedIndexChanged += new EventHandler(this.ListViewSelectedIndexChanged); SetAnalyzeModelFromXml("Template.Manager.item2.PolyphaseContent"); SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲 InitCommonButtonEvent(); this.Shown += showImg; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.saveLastData); } private void showImg(object sender, EventArgs e) { listView1.Focus(); if (this.imgIndex != -1) { //滚动到指定的行位置 this.listView1.EnsureVisible(this.imgIndex); this.listView1.Items[imgIndex].Focused = true; this.listView1.Items[imgIndex].Selected = true; //如果是脚本执行,将参数带入 if (appWorkspace.ScriptRunning && appWorkspace.ScriptCurrentParam != null) { this.initScriptValues = true;//ScriptAutomatic //Boolean initScriptValues = true; ////在这里反射出对应功能的参数类 string className = InvariantData.path_Action + ".Action" + menuId; ParamObject param = (ParamObject)System.Reflection.Assembly.Load(InvariantData.assembly_Data).CreateInstance(className); foreach (Args arg in param.Lists) { Args param1 = appWorkspace.ScriptCurrentParam.Lists.Find(m => m.Key.Equals(arg.Key)); if (param1.value != null) arg.Value = param1.value; getValue(arg.key, arg.Value); } appWorkspace.ScriptCurrentParam = null;//阻止第二次进入仍然被赋值参数 } else {//读取上次关闭窗口时保存的参数 getLastData(); } if (this.initScriptValues && this.appWorkspace.ScriptAutomatic) this.startScriptAutomaticAction(); } } /// /// 获取上次操作参数 /// private void getLastData() { string filePath = Application.StartupPath + "\\Config\\Default\\ParameterSaving\\ParameterGeneralAnalysis.xml"; if (!System.IO.File.Exists(filePath)) { generalAnalysisModel = new GeneralAnalysisModel(); generalAnalysisModel.PolyphaseMutiAreaContentModels = new GeneralAnalysisModel.PolyphaseMutiAreaContentModel(); generalAnalysisModel.PolyphaseCounterAnalysisModels = new GeneralAnalysisModel.PolyphaseCounterAnalysisModel(); generalAnalysisModel.TwoPhaseScaleModels = new GeneralAnalysisModel.TwoPhaseScaleModel(); generalAnalysisModel.PolyphaseContentModels = new GeneralAnalysisModel.PolyphaseContentModel(); generalAnalysisModel.PolyphaseDistanceModels = new GeneralAnalysisModel.PolyphaseDistanceModel(); generalAnalysisModel.DebrisSelectionModels = new GeneralAnalysisModel.DebrisSelectionModel(); generalAnalysisModel.CountNumberAnalysisModels = new GeneralAnalysisModel.CountNumberAnalysisModel(); generalAnalysisModel.PolyphaseMutiAreaContentModels.hasUsed = false; generalAnalysisModel.PolyphaseCounterAnalysisModels.hasUsed = false; generalAnalysisModel.TwoPhaseScaleModels.hasUsed = false; generalAnalysisModel.PolyphaseContentModels.hasUsed = false; generalAnalysisModel.PolyphaseDistanceModels.hasUsed = false; generalAnalysisModel.DebrisSelectionModels.hasUsed = false; generalAnalysisModel.CountNumberAnalysisModels.hasUsed = false; string porosityInfoXml = XmlSerializeHelper.XmlSerialize(generalAnalysisModel); Directory.CreateDirectory(Application.StartupPath + "\\Config\\Default\\ParameterSaving\\"); FileOperationHelper.WriteStringToFile(porosityInfoXml, filePath, FileMode.CreateNew); } else { generalAnalysisModel = XmlSerializeHelper.DESerializer(FileOperationHelper.ReadStringFromFile(filePath, FileMode.Open)); if (generalAnalysisModel.PolyphaseContentModels == null) { generalAnalysisModel.PolyphaseContentModels = new GeneralAnalysisModel.PolyphaseContentModel(); } if (generalAnalysisModel.PolyphaseContentModels.hasUsed) { numericUpDown1.Value = generalAnalysisModel.PolyphaseContentModels.parameter1; checkBox1.Checked = generalAnalysisModel.PolyphaseContentModels.parameter2; } } } /// /// 保存上次操作参数 /// private void saveLastData(object sender, EventArgs e) { #region [开启脚本录制] if (appWorkspace.startScriptRecording) { getScriptRecording(); } #endregion if (generalAnalysisModel.PolyphaseContentModels == null) { generalAnalysisModel.PolyphaseContentModels = new GeneralAnalysisModel.PolyphaseContentModel(); } generalAnalysisModel.PolyphaseContentModels.hasUsed = true; generalAnalysisModel.PolyphaseContentModels.parameter1 = (int)numericUpDown1.Value; generalAnalysisModel.PolyphaseContentModels.parameter2 = checkBox1.Checked; string filePath = Application.StartupPath + "\\Config\\Default\\ParameterSaving\\ParameterGeneralAnalysis.xml"; string porosityInfoXml = XmlSerializeHelper.XmlSerialize(generalAnalysisModel); FileOperationHelper.WriteStringToFile(porosityInfoXml, filePath, FileMode.Create); } private void PolyphaseContentDialog_Load(object sender, EventArgs e) { } #region 公共按钮 private void InitCommonButtonEvent() { this.commonControlButtons.zoomInButton.Click += new EventHandler(zoomInButton_Click); this.commonControlButtons.zoomOutButton.Click += new EventHandler(zoomOutButton_Click); this.commonControlButtons.zoomToWindowButton.Click += new EventHandler(zoomToWindowButton_Click); this.commonControlButtons.actualSizeButton.Click += new EventHandler(actualSizeButton_Click); this.commonControlButtons.pointerButton.Click += new EventHandler(pointerButton_Click); this.commonControlButtons.mobileModeButton.Click += new EventHandler(mobileModeButton_Click); } private void zoomInButton_Click(object sender, EventArgs e) { if(this.imageMat != null) this.documentWorkspace.ZoomIn(); } private void zoomOutButton_Click(object sender, EventArgs e) { if (this.imageMat != null) this.documentWorkspace.ZoomOut(); } private void zoomToWindowButton_Click(object sender, EventArgs e) { this.documentWorkspace.ZoomBasis = ZoomBasis.FitToWindow; } private void actualSizeButton_Click(object sender, EventArgs e) { this.documentWorkspace.ZoomBasis = ZoomBasis.ScaleFactor; this.documentWorkspace.ScaleFactor = ScaleFactor.OneToOne; } private void pointerButton_Click(object sender, EventArgs e) { this.documentWorkspace.ActiveTool = Annotation.Enum.DrawToolType.Pointer; } private void mobileModeButton_Click(object sender, EventArgs e) { this.documentWorkspace.ActiveTool = Annotation.Enum.DrawToolType.MoveMode; } #endregion /// /// 初始化图片列表数据 /// //public void InitPicList() //{ // //初始化图片列表 // for (int i = 0; i < this.appWorkspace.DocumentWorkspaces.Length; i++) // { // this.imageList1.Images.Add("img" + i, this.appWorkspace.DocumentWorkspaces[i].BinarizationThumbnail); // this.listView1.Items.Add("", i); // this.listView1.Items[i].ImageIndex = i; // this.listView1.Items[i].Text = this.appWorkspace.DocumentWorkspaces[i].GetFriendlyName(); // this.listView1.Items[i].Name = this.appWorkspace.DocumentWorkspaces[i].GetFriendlyName(); // } //} public void InitPicList() { //初始化图片列表 for (int i = 0; i < this.appWorkspace.DocumentWorkspaces.Length; i++) { this.imageList1.Images.Add("img" + i, this.appWorkspace.DocumentWorkspaces[i].CompositionSurface.Thumbnail); this.listView1.Items.Add("", i); this.listView1.Items[i].ImageIndex = i; String imageName = this.appWorkspace.DocumentWorkspaces[i].GetFriendlyName(); if (listView1.Items.Find(imageName, false).Count() > 0) { if (imageName.Split('.').Count() > 1) { imageName = imageName.Split('.')[0] + "(" + listView1.Items.Find(imageName, false).Count() + ")." + imageName.Split('.')[1]; } } this.listView1.Items[i].Text = imageName; this.listView1.Items[i].Name = imageName; if (this.appWorkspace.DocumentWorkspaces[i].Equals(this.appWorkspace.ActiveDocumentWorkspace)) { this.imgIndex = i; } } } /// /// ListView图片选择改变事件 /// /// /// private void ListViewSelectedIndexChanged(object sender, EventArgs e) { if (this.listView1.FocusedItem != null && this.listView1.FocusedItem.Selected) { this.imageMat = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].CompositionSurface.CreatedAliasedMat(); Document document = Document.FromImageMat(imageMat.Clone()); this.documentWorkspace.Document = document; this.documentWorkspace.Visible = true; this.documentWorkspace.GraphicsList = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].GraphicsList; this.documentWorkspace.phaseModels = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].phaseModels; //tmpDocumentWorkspace.Document = document; //tmpDocumentWorkspace.Visible = true; //tmpDocumentWorkspace.GraphicsList = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].GraphicsList; //tmpDocumentWorkspace.phaseModels = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].phaseModels; this.applyButtonImpl(sender, e); //获取显示直方图 //pdnRegion = new PdnRegion(AppWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].Document.Bounds); //this.histogramControl1.Histogram.UpdateHistogram(AppWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].SurfaceBox.Surface, pdnRegion); } } private void CalcProcess() { //for (int selectIndex = 0; selectIndex < this.appWorkspace.DocumentWorkspaces.Count(); selectIndex++) //{ //} } /// /// 参数改变时,重新处理图像 /// /// /// private void applyButtonImpl(object sender, EventArgs e) { //double pxPerUnit = Startup.instance.rules[MeasurementUnit.Micron]; double pxPerUnit = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].GetRuler(MeasurementUnit.Micron); if (this.listView1.FocusedItem != null) { dataGridView1.Rows.Clear(); mainPolyphaseAnalysisResults.Clear(); selectIndex = this.listView1.FocusedItem.Index; //判断是否存在视场,如果存在视场,则把视场提取出来,进行处理 if (this.appWorkspace.DocumentWorkspaces[selectIndex].GraphicsList.IsExsitView()) { for (int i = 0; i < this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels.Count; i++) { PhaseModel pModel = this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i]; if (pModel.choise) { Color pColor = new Color(); pColor = Color.FromArgb(pModel.color); Mat front = pModel.mat; //相总面积 int phaseAmount = AnalysisTools.GetPointsFromMat(front); //视图中相面积 Bitmap frontTarget = this.documentWorkspace.GetFullSizeWithRegion(front.ToBitmap()); //frontTarget.Save("D:\\1-1.bmp"); //获取视图中相的点合计 //int frontAmount = AnalysisTools.GetPointsFromMat(PaintDotNet.Camera.Tools.ToMat(frontTarget)); Mat background = this.imageMat.Clone(); Mat roi = new Mat(background, new Rect(0, 0, background.Width, background.Height)); Mat mask = Mat.FromImageData(front.ToBytes(), ImreadModes.Grayscale); front.CopyTo(roi, mask); Bitmap target = this.documentWorkspace.GetFullSizeWithRegion(background.ToBitmap()); Mat targetMat = PaintDotNet.Camera.Tools.ToMat(target); targetMat.SaveImage("D:\\2.bmp"); //获取合并后视场内的点合计 int allAmount = AnalysisTools.GetPointsFromMat(targetMat); int picAmount = AnalysisTools.GetPointsFromMat(background); double cRate = 0f; //计算比例 //视场内部存在相 //if (viewAmount > 0) //{ //} //else //{ // //视场内部不存在相 // cRate = (double)phaseAmount / allAmount; //} cRate = (double)phaseAmount / allAmount; //计算面积 double cArea = phaseAmount; //计算相含量 double fRate = (double)phaseAmount / picAmount; //dataGridView1.Rows.Add(this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i].name, cArea, cRate, fRate); PolyphaseAnalysisResult pResult = new PolyphaseAnalysisResult(); pResult.GraphName = this.listView1.FocusedItem.Text; pResult.PolyphaseName = this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i].name; pResult.PolyphaseArea = cArea * pxPerUnit * pxPerUnit; pResult.PolyphaseRate = cRate * 100; pResult.PolyphaseAllRate = fRate * 100; mainPolyphaseAnalysisResults.Add(pResult); dataGridView1.Rows.Add(pResult.PolyphaseName, AnalysisTools.GetDecNum(pResult.PolyphaseArea, decnum) , AnalysisTools.GetDecNum(pResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseAllRate, decnum)); } } } else { for (int i = 0; i < this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels.Count; i++) { PhaseModel pModel = this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i]; if (pModel.choise) { Color pColor = new Color(); pColor = Color.FromArgb(pModel.color); int phaseArea = AnalysisTools.GetPointsFromMat(pModel.mat); Mat sourceMat = this.imageMat.Clone(); int picAmount = AnalysisTools.GetPointsFromMat(sourceMat); //计算面积 double cRate = (double)phaseArea / picAmount; PolyphaseAnalysisResult pResult = new PolyphaseAnalysisResult(); pResult.GraphName = this.listView1.FocusedItem.Text; pResult.PolyphaseName = this.appWorkspace.DocumentWorkspaces[selectIndex].phaseModels[i].name; pResult.PolyphaseArea = phaseArea * pxPerUnit * pxPerUnit; pResult.PolyphaseRate = cRate * 100; pResult.PolyphaseAllRate = cRate * 100; mainPolyphaseAnalysisResults.Add(pResult); dataGridView1.Rows.Add(pResult.PolyphaseName, AnalysisTools.GetDecNum(pResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseAllRate, decnum)); } } } show_avg(); } } #region InitializeComponent private void InitializeLanguageText() { this.Column2.HeaderText = PdnResources.GetString("Menu.Phasearea.text"); this.Column3.HeaderText = PdnResources.GetString("Menu.proportion.text") + "%"; this.Column4.HeaderText = PdnResources.GetString("Menu.Phasecontent.text") + "%"; this.groupBox_review.Text = PdnResources.GetString("Menu.Preview.text"); this.groupBox5.Text = PdnResources.GetString("Menu.Analysisresult.text"); this.button_remove.Text = PdnResources.GetString("Menu.Edit.Delete.Text"); this.button_all.Text = PdnResources.GetString("Menu.Showall.text"); this.Column5.HeaderText = PdnResources.GetString("Menu.picture.Text"); this.dataGridViewTextBoxColumn1.HeaderText = PdnResources.GetString("Menu.Phasename.text"); this.label4.Text = PdnResources.GetString("Menu.Phasearea.text") + ":"; this.label3.Text = PdnResources.GetString("Menu.proportion.text") + "% :"; this.Text = PdnResources.GetString("Menu.GeneralAnalysis.TwoPhaseArea.Text"); this.dataGridViewTextBoxColumn2.HeaderText = PdnResources.GetString("Menu.Phasearea.text"); this.dataGridViewTextBoxColumn3.HeaderText = PdnResources.GetString("Menu.proportion.text") + "%"; this.dataGridViewTextBoxColumn4.HeaderText = PdnResources.GetString("Menu.Phasecontent.text") + "%"; this.button9.Text = PdnResources.GetString("Menu.Tools.OpenProject.Text"); this.label1.Text = PdnResources.GetString("Menu.Decimal.text"); this.button4.Text = PdnResources.GetString("Menu.Exportresults.text"); this.button3.Text = PdnResources.GetString("Menu.Tools.CreateReport.Text"); this.groupBox3.Text = PdnResources.GetString("Menu.Averageresult.text"); this.label5.Text = PdnResources.GetString("Menu.Phasecontent.text") + "% :"; this.groupBox4.Text = PdnResources.GetString("Menu.Tools.ImageIndex.Text"); this.groupBox1.Text = PdnResources.GetString("Menu.operation.text"); this.button5.Text = PdnResources.GetString("Menu.File.Close.Text"); this.button2.Text = PdnResources.GetString("Menu.Saveresult.text"); this.checkBox1.Text = PdnResources.GetString("Menu.Opensettingsatingreport.text"); this.button1.Text = PdnResources.GetString("Menu.Setting.Text"); this.groupBox2.Text = PdnResources.GetString("Menu.Resultspreview.text"); this.Column1.HeaderText = PdnResources.GetString("Menu.Phasename.text"); } private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.listView1 = new System.Windows.Forms.ListView(); this.imageList1 = new System.Windows.Forms.ImageList(this.components); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.button5 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.button1 = new System.Windows.Forms.Button(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.groupBox_review = new System.Windows.Forms.GroupBox(); this.groupBox5 = new System.Windows.Forms.GroupBox(); this.listBox_analysisResult = new System.Windows.Forms.CheckedListBox(); this.button_remove = new System.Windows.Forms.Button(); this.button_all = new System.Windows.Forms.Button(); this.groupBox6 = new System.Windows.Forms.GroupBox(); this.dataGridView_results = new System.Windows.Forms.DataGridView(); this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.groupBox7 = new System.Windows.Forms.GroupBox(); this.button9 = new System.Windows.Forms.Button(); this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); this.label1 = new System.Windows.Forms.Label(); this.button4 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.lbl_content = new System.Windows.Forms.Label(); this.lbl_area = new System.Windows.Forms.Label(); this.lbl_rate = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.groupBox4.SuspendLayout(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); this.groupBox5.SuspendLayout(); this.groupBox6.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_results)).BeginInit(); this.groupBox7.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); this.groupBox3.SuspendLayout(); this.SuspendLayout(); // // groupBox4 // this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); this.groupBox4.Controls.Add(this.listView1); this.groupBox4.Location = new System.Drawing.Point(13, 72); this.groupBox4.Margin = new System.Windows.Forms.Padding(4); this.groupBox4.Name = "groupBox4"; this.groupBox4.Padding = new System.Windows.Forms.Padding(4); this.groupBox4.Size = new System.Drawing.Size(158, 483); this.groupBox4.TabIndex = 9; this.groupBox4.TabStop = false; this.groupBox4.Text = "图像索引"; // // listView1 // this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.listView1.HideSelection = false; this.listView1.LargeImageList = this.imageList1; this.listView1.Location = new System.Drawing.Point(8, 26); this.listView1.Margin = new System.Windows.Forms.Padding(4); this.listView1.MultiSelect = false; this.listView1.Name = "listView1"; this.listView1.Size = new System.Drawing.Size(140, 449); this.listView1.TabIndex = 0; this.listView1.UseCompatibleStateImageBehavior = false; this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged); // // imageList1 // this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.imageList1.ImageSize = new System.Drawing.Size(64, 64); this.imageList1.TransparentColor = System.Drawing.Color.Transparent; // // groupBox1 // this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox1.Controls.Add(this.button5); this.groupBox1.Controls.Add(this.button2); this.groupBox1.Controls.Add(this.checkBox1); this.groupBox1.Controls.Add(this.button1); this.groupBox1.Location = new System.Drawing.Point(20, 12); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(1145, 53); this.groupBox1.TabIndex = 10; this.groupBox1.TabStop = false; this.groupBox1.Text = "操作"; // // button5 // this.button5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.button5.Location = new System.Drawing.Point(956, 21); this.button5.Name = "button5"; this.button5.Size = new System.Drawing.Size(75, 23); this.button5.TabIndex = 3; this.button5.Text = "关闭"; this.button5.UseVisualStyleBackColor = true; this.button5.Click += new System.EventHandler(this.button5_Click); // // button2 // this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.button2.Location = new System.Drawing.Point(1053, 21); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(75, 23); this.button2.TabIndex = 2; this.button2.Text = "保存结果"; this.button2.UseVisualStyleBackColor = true; this.button2.Click += new System.EventHandler(this.button2_Click); // // checkBox1 // this.checkBox1.AutoSize = true; this.checkBox1.Location = new System.Drawing.Point(98, 24); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(132, 16); this.checkBox1.TabIndex = 1; this.checkBox1.Text = "生成报告时打开设置"; this.checkBox1.UseVisualStyleBackColor = true; // // button1 // this.button1.Location = new System.Drawing.Point(6, 24); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 0; this.button1.Text = "设置"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // groupBox2 // this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); this.groupBox2.Controls.Add(this.dataGridView1); this.groupBox2.Location = new System.Drawing.Point(178, 72); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(406, 347); this.groupBox2.TabIndex = 11; this.groupBox2.TabStop = false; this.groupBox2.Text = "结果预览"; // // dataGridView1 // this.dataGridView1.AllowUserToAddRows = false; this.dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.Column1, this.Column2, this.Column3, this.Column4}); this.dataGridView1.Location = new System.Drawing.Point(6, 26); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.RowHeadersVisible = false; this.dataGridView1.RowHeadersWidth = 51; this.dataGridView1.RowTemplate.Height = 27; this.dataGridView1.Size = new System.Drawing.Size(394, 444); this.dataGridView1.TabIndex = 0; // // Column1 // this.Column1.MinimumWidth = 6; this.Column1.Name = "Column1"; this.Column1.Width = 70; // // Column2 // this.Column2.MinimumWidth = 6; this.Column2.Name = "Column2"; this.Column2.Width = 90; // // Column3 // this.Column3.MinimumWidth = 6; this.Column3.Name = "Column3"; this.Column3.Width = 125; // // Column4 // this.Column4.MinimumWidth = 6; this.Column4.Name = "Column4"; this.Column4.Width = 125; // // groupBox_review // this.groupBox_review.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox_review.Location = new System.Drawing.Point(590, 72); this.groupBox_review.Name = "groupBox_review"; this.groupBox_review.Size = new System.Drawing.Size(575, 483); this.groupBox_review.TabIndex = 12; this.groupBox_review.TabStop = false; this.groupBox_review.Text = "预览"; // // groupBox5 // this.groupBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.groupBox5.Controls.Add(this.listBox_analysisResult); this.groupBox5.Controls.Add(this.button_remove); this.groupBox5.Controls.Add(this.button_all); this.groupBox5.Location = new System.Drawing.Point(12, 562); this.groupBox5.Name = "groupBox5"; this.groupBox5.Size = new System.Drawing.Size(224, 165); this.groupBox5.TabIndex = 13; this.groupBox5.TabStop = false; this.groupBox5.Text = "分析结果"; // // listBox_analysisResult // this.listBox_analysisResult.CheckOnClick = true; this.listBox_analysisResult.FormattingEnabled = true; this.listBox_analysisResult.HorizontalScrollbar = true; this.listBox_analysisResult.Location = new System.Drawing.Point(11, 53); this.listBox_analysisResult.Name = "listBox_analysisResult"; this.listBox_analysisResult.Size = new System.Drawing.Size(202, 100); this.listBox_analysisResult.TabIndex = 10; this.listBox_analysisResult.SelectedIndexChanged += new System.EventHandler(this.listBox_analysisResult_SelectedIndexChanged); // // button_remove // this.button_remove.Location = new System.Drawing.Point(130, 24); this.button_remove.Name = "button_remove"; this.button_remove.Size = new System.Drawing.Size(75, 23); this.button_remove.TabIndex = 8; this.button_remove.Text = "删除"; this.button_remove.UseVisualStyleBackColor = true; this.button_remove.Click += new System.EventHandler(this.button_remove_Click); // // button_all // this.button_all.Location = new System.Drawing.Point(14, 24); this.button_all.Name = "button_all"; this.button_all.Size = new System.Drawing.Size(75, 23); this.button_all.TabIndex = 1; this.button_all.Text = "全部显示"; this.button_all.UseVisualStyleBackColor = true; this.button_all.Click += new System.EventHandler(this.button_all_Click); // // groupBox6 // this.groupBox6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox6.Controls.Add(this.dataGridView_results); this.groupBox6.Location = new System.Drawing.Point(257, 562); this.groupBox6.Name = "groupBox6"; this.groupBox6.Size = new System.Drawing.Size(678, 165); this.groupBox6.TabIndex = 14; this.groupBox6.TabStop = false; // // dataGridView_results // this.dataGridView_results.AllowUserToAddRows = false; this.dataGridView_results.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.dataGridView_results.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dataGridView_results.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView_results.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.Column5, this.dataGridViewTextBoxColumn1, this.dataGridViewTextBoxColumn2, this.dataGridViewTextBoxColumn3, this.dataGridViewTextBoxColumn4}); this.dataGridView_results.Location = new System.Drawing.Point(16, 29); this.dataGridView_results.Name = "dataGridView_results"; this.dataGridView_results.RowHeadersVisible = false; this.dataGridView_results.RowHeadersWidth = 51; this.dataGridView_results.RowTemplate.Height = 27; this.dataGridView_results.Size = new System.Drawing.Size(645, 130); this.dataGridView_results.TabIndex = 1; // // Column5 // this.Column5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.Column5.HeaderText = "Column5"; this.Column5.MinimumWidth = 6; this.Column5.Name = "Column5"; // // dataGridViewTextBoxColumn1 // this.dataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.dataGridViewTextBoxColumn1.HeaderText = "dataGridViewTextBoxColumn1"; this.dataGridViewTextBoxColumn1.MinimumWidth = 6; this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; // // dataGridViewTextBoxColumn2 // this.dataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.dataGridViewTextBoxColumn2.HeaderText = "dataGridViewTextBoxColumn2"; this.dataGridViewTextBoxColumn2.MinimumWidth = 6; this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; // // dataGridViewTextBoxColumn3 // this.dataGridViewTextBoxColumn3.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.dataGridViewTextBoxColumn3.HeaderText = "dataGridViewTextBoxColumn3"; this.dataGridViewTextBoxColumn3.MinimumWidth = 6; this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; // // dataGridViewTextBoxColumn4 // this.dataGridViewTextBoxColumn4.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.dataGridViewTextBoxColumn4.HeaderText = "dataGridViewTextBoxColumn4"; this.dataGridViewTextBoxColumn4.MinimumWidth = 6; this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; // // groupBox7 // this.groupBox7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.groupBox7.Controls.Add(this.button9); this.groupBox7.Controls.Add(this.numericUpDown1); this.groupBox7.Controls.Add(this.label1); this.groupBox7.Controls.Add(this.button4); this.groupBox7.Controls.Add(this.button3); this.groupBox7.Location = new System.Drawing.Point(941, 562); this.groupBox7.Name = "groupBox7"; this.groupBox7.Size = new System.Drawing.Size(224, 165); this.groupBox7.TabIndex = 15; this.groupBox7.TabStop = false; this.groupBox7.Enter += new System.EventHandler(this.groupBox7_Enter); // // button9 // this.button9.Location = new System.Drawing.Point(19, 88); this.button9.Name = "button9"; this.button9.Size = new System.Drawing.Size(141, 23); this.button9.TabIndex = 9; this.button9.Text = "项目工程"; this.button9.UseVisualStyleBackColor = true; this.button9.Click += new System.EventHandler(this.button9_Click); // // numericUpDown1 // this.numericUpDown1.Location = new System.Drawing.Point(66, 122); this.numericUpDown1.Maximum = new decimal(new int[] { 10, 0, 0, 0}); this.numericUpDown1.Name = "numericUpDown1"; this.numericUpDown1.Size = new System.Drawing.Size(94, 21); this.numericUpDown1.TabIndex = 4; this.numericUpDown1.Value = new decimal(new int[] { 2, 0, 0, 0}); this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(17, 126); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(41, 12); this.label1.TabIndex = 3; this.label1.Text = "小数:"; // // button4 // this.button4.Location = new System.Drawing.Point(19, 54); this.button4.Name = "button4"; this.button4.Size = new System.Drawing.Size(141, 23); this.button4.TabIndex = 1; this.button4.Text = "导出结果"; this.button4.UseVisualStyleBackColor = true; this.button4.Click += new System.EventHandler(this.button4_Click); // // button3 // this.button3.Location = new System.Drawing.Point(19, 20); this.button3.Name = "button3"; this.button3.Size = new System.Drawing.Size(141, 23); this.button3.TabIndex = 0; this.button3.Text = "生成报告"; this.button3.UseVisualStyleBackColor = true; this.button3.Click += new System.EventHandler(this.button3_Click); // // groupBox3 // this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.groupBox3.Controls.Add(this.lbl_content); this.groupBox3.Controls.Add(this.lbl_area); this.groupBox3.Controls.Add(this.lbl_rate); this.groupBox3.Controls.Add(this.label5); this.groupBox3.Controls.Add(this.label4); this.groupBox3.Controls.Add(this.label3); this.groupBox3.Location = new System.Drawing.Point(184, 439); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(394, 116); this.groupBox3.TabIndex = 16; this.groupBox3.TabStop = false; // // lbl_content // this.lbl_content.AutoSize = true; this.lbl_content.Location = new System.Drawing.Point(239, 60); this.lbl_content.Name = "lbl_content"; this.lbl_content.Size = new System.Drawing.Size(0, 12); this.lbl_content.TabIndex = 7; // // lbl_area // this.lbl_area.AutoSize = true; this.lbl_area.Location = new System.Drawing.Point(76, 26); this.lbl_area.Name = "lbl_area"; this.lbl_area.Size = new System.Drawing.Size(0, 12); this.lbl_area.TabIndex = 6; // // lbl_rate // this.lbl_rate.AutoSize = true; this.lbl_rate.Location = new System.Drawing.Point(73, 60); this.lbl_rate.Name = "lbl_rate"; this.lbl_rate.Size = new System.Drawing.Size(0, 12); this.lbl_rate.TabIndex = 5; // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(179, 61); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(0, 12); this.label5.TabIndex = 3; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(16, 26); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(0, 12); this.label4.TabIndex = 2; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(16, 61); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(0, 12); this.label3.TabIndex = 1; // // PolyphaseContentDialog // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1177, 744); this.Controls.Add(this.groupBox3); this.Controls.Add(this.groupBox7); this.Controls.Add(this.groupBox6); this.Controls.Add(this.groupBox5); this.Controls.Add(this.groupBox_review); this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox4); this.Name = "PolyphaseContentDialog"; this.Text = "两相面积含量"; this.Load += new System.EventHandler(this.PolyphaseContentDialog_Load); this.Controls.SetChildIndex(this.groupBox4, 0); this.Controls.SetChildIndex(this.groupBox1, 0); this.Controls.SetChildIndex(this.groupBox2, 0); this.Controls.SetChildIndex(this.groupBox_review, 0); this.Controls.SetChildIndex(this.groupBox5, 0); this.Controls.SetChildIndex(this.groupBox6, 0); this.Controls.SetChildIndex(this.groupBox7, 0); this.Controls.SetChildIndex(this.groupBox3, 0); this.groupBox4.ResumeLayout(false); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.groupBox2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); this.groupBox5.ResumeLayout(false); this.groupBox6.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dataGridView_results)).EndInit(); this.groupBox7.ResumeLayout(false); this.groupBox7.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); this.ResumeLayout(false); } #endregion private void show_avg() { if (listView1.FocusedItem != null) { var results = mainPolyphaseAnalysisResults.Where(p => p.GraphName.Equals(listView1.FocusedItem.Text)); if (results.Count() > 0) { lbl_area.Text = AnalysisTools.GetDecNum(results.Average(item => item.PolyphaseArea), decnum); lbl_rate.Text = AnalysisTools.GetDecNum(results.Average(item => item.PolyphaseRate), decnum); lbl_content.Text = AnalysisTools.GetDecNum(results.Average(item => item.PolyphaseAllRate), decnum); } } } private void button2_Click(object sender, EventArgs e) { if (listView1.SelectedItems.Count == 0) { MessageBox.Show(PdnResources.GetString("Menu.seselecttheimagethatyouwanttoan.Text")+"!"); return; } if (dataGridView1.Rows.Count == 0) { MessageBox.Show("结果为空!"); return; } String tag = listView1.FocusedItem.Text; List tempBit = new List(); if (listView1.FocusedItem != null) { if (polyphaseAnalysisResults.FindAll(item => item.GraphName.Equals(listView1.FocusedItem.Text)).Count == 0) { listBox_analysisResult.Items.Add(this.listView1.FocusedItem.Text); listBox_analysisResult.SetItemChecked(listBox_analysisResult.Items.Count - 1, true); for (int i = 0; i < mainPolyphaseAnalysisResults.Count; i++) { PolyphaseAnalysisResult aResult = mainPolyphaseAnalysisResults[i]; polyphaseAnalysisResults.Add(aResult); viewPolyphaseAnalysisResults.Add(aResult); dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, AnalysisTools.GetDecNum(aResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum)); } } else { DialogResult dr = MessageBox.Show(PdnResources.GetString("Menu.Theresuethertoreplace.text")+"?", PdnResources.GetString("Form.OkButton.Text"), MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); if (dr != DialogResult.OK) { return; } viewPolyphaseAnalysisResults.RemoveAll(u => u.GraphName == listView1.FocusedItem.Text); polyphaseAnalysisResults.RemoveAll(u => u.GraphName == listView1.FocusedItem.Text); polyphaseAnalysisResults.AddRange(mainPolyphaseAnalysisResults); viewPolyphaseAnalysisResults.AddRange(mainPolyphaseAnalysisResults); List list = new List(); foreach (var s in this.listBox_analysisResult.Items) { list.Add(s.ToString()); } this.listBox_analysisResult.Items.Clear(); foreach (var s in list) { this.listBox_analysisResult.Items.Add(s); } var thisindex = this.listBox_analysisResult.Items.IndexOf(listView1.FocusedItem.Text); this.dataGridView_results.Rows.Clear(); listBox_analysisResult.SetItemChecked(thisindex, true); for (int i = 0; i < mainPolyphaseAnalysisResults.Count; i++) { PolyphaseAnalysisResult aResult = mainPolyphaseAnalysisResults[i]; dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, AnalysisTools.GetDecNum(aResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum)); } } double pantographRatio = (double)this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].GetRulerMultiple(MeasurementUnit.Micron);//标尺*放大倍数 Bitmap originalBit = this.appWorkspace.DocumentWorkspaces[this.listView1.FocusedItem.Index].CompositionSurface.CreateAliasedBitmap(); originalBit.Tag = pantographRatio; tempBit.Add(originalBit); Bitmap newBit = originalBit.Clone(new Rectangle(0, 0, originalBit.Width, originalBit.Height), originalBit.PixelFormat); Graphics graphics = Graphics.FromImage(newBit); Draw(graphics); newBit.Tag = pantographRatio; tempBit.Add(newBit); if (bitDic.ContainsKey(tag)) { bitDic[tag].Clear(); bitDic[tag] = tempBit; } else { bitDic.Add(tag, tempBit); } } } private void Draw(Graphics graphics) { if (this.documentWorkspace.phaseModels.Count > 0) { foreach (PhaseModel model in this.documentWorkspace.phaseModels) { if (model.choise && model.mat != null) { Bitmap map = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(model.mat); graphics.DrawImage(map, 0, 0, map.Width, map.Height); } } } } private void button_all_Click(object sender, EventArgs e) { dataGridView_results.Rows.Clear(); if (this.is_all % 2 == 0) { for (int i = 0; i < listBox_analysisResult.Items.Count; i++) { listBox_analysisResult.SetItemChecked(i, false); } } else { for (int i = 0; i < listBox_analysisResult.Items.Count; i++) { listBox_analysisResult.SetItemChecked(i, true); } viewPolyphaseAnalysisResults.Clear(); viewPolyphaseAnalysisResults.AddRange(polyphaseAnalysisResults); for (int i = 0; i < viewPolyphaseAnalysisResults.Count; i++) { PolyphaseAnalysisResult aResult = viewPolyphaseAnalysisResults[i]; dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, aResult.PolyphaseArea, AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum)); } } this.is_all += 1; } private void button_remove_Click(object sender, EventArgs e) { var removeList = new List(); if (listBox_analysisResult.CheckedItems != null && listBox_analysisResult.CheckedItems.Count > 0) { DialogResult dr = MessageBox.Show(PdnResources.GetString("Menu.ertodeletetheselectedanalysisres.Text")+"?", PdnResources.GetString("Menu.Edit.Delete.Text"), MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dr == DialogResult.OK) { dataGridView_results.Rows.Clear(); foreach (var s in listBox_analysisResult.CheckedItems) { polyphaseAnalysisResults.RemoveAll(u => u.GraphName == s.ToString()); viewPolyphaseAnalysisResults.RemoveAll(u => u.GraphName == s.ToString()); removeList.Add(s.ToString()); } for (int i = 0; i < viewPolyphaseAnalysisResults.Count; i++) { PolyphaseAnalysisResult aResult = viewPolyphaseAnalysisResults[i]; dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, aResult.PolyphaseArea, AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum)); } foreach (var m in removeList) { listBox_analysisResult.Items.Remove(m); } } } else { MessageBox.Show(PdnResources.GetString("Menu.Pleaseselecttheimagetodelete.Text")+"!"); } } private void listBox_analysisResult_SelectedIndexChanged(object sender, EventArgs e) { dataGridView_results.Rows.Clear(); if (listBox_analysisResult.CheckedItems != null && listBox_analysisResult.CheckedItems.Count > 0) { foreach (var s in listBox_analysisResult.CheckedItems) { List findResults = polyphaseAnalysisResults.FindAll(item => item.GraphName.Equals(s.ToString())); viewPolyphaseAnalysisResults.Clear(); viewPolyphaseAnalysisResults.AddRange(findResults); for (int i = 0; i < viewPolyphaseAnalysisResults.Count; i++) { PolyphaseAnalysisResult aResult = viewPolyphaseAnalysisResults[i]; dataGridView_results.Rows.Add(aResult.GraphName, aResult.PolyphaseName, AnalysisTools.GetDecNum(aResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(aResult.PolyphaseAllRate, decnum)); } } } } private void domainUpDown1_SelectedItemChanged(object sender, EventArgs e) { } private void button5_Click(object sender, EventArgs e) { this.Close(); } private void listView1_SelectedIndexChanged(object sender, EventArgs e) { } private void numericUpDown1_ValueChanged(object sender, EventArgs e) { decnum = (int)numericUpDown1.Value; refeshGrids(); } private void refeshGrids() { dataGridView1.Rows.Clear(); for (int i = 0; i < mainPolyphaseAnalysisResults.Count; i++) { PolyphaseAnalysisResult pResult = mainPolyphaseAnalysisResults[i]; dataGridView1.Rows.Add(pResult.PolyphaseName, AnalysisTools.GetDecNum(pResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseAllRate, decnum)); } dataGridView_results.Rows.Clear(); for (int i = 0; i < polyphaseAnalysisResults.Count; i++) { PolyphaseAnalysisResult pResult = polyphaseAnalysisResults[i]; dataGridView_results.Rows.Add(pResult.GraphName, pResult.PolyphaseName, AnalysisTools.GetDecNum(pResult.PolyphaseArea, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseRate, decnum), AnalysisTools.GetDecNum(pResult.PolyphaseAllRate, decnum)); } show_avg(); } private void button1_Click(object sender, EventArgs e) { AnalyzeSettingDialog recombinationRateSetDialog = new AnalyzeSettingDialog(this, "Template.Manager.item2.PolyphaseContent"); if (recombinationRateSetDialog.hasModule) { recombinationRateSetDialog.StartPosition = FormStartPosition.CenterScreen; recombinationRateSetDialog.ShowDialog(); } else { recombinationRateSetDialog = null; } } private void button3_Click(object sender, EventArgs e) { if (checkBox1.Checked) { AnalyzeSettingDialog recombinationRateSetDialog = new AnalyzeSettingDialog(this, "Template.Manager.item2.PolyphaseContent"); if (recombinationRateSetDialog.hasModule) { recombinationRateSetDialog.StartPosition = FormStartPosition.CenterScreen; recombinationRateSetDialog.ShowDialog(); } else { recombinationRateSetDialog = null; } } bitList.Clear(); if (this.analyzeSettingModel != null && !string.IsNullOrEmpty(this.analyzeSettingModel.analyzeClassify)) { //获取word书签与excel单元格的关系,以字典方式存储 List mic_module_infos = mic_module_infos_BLL.FindAll().FindAll(a => a.analyze_classify == this.analyzeSettingModel.analyzeClassify); Dictionary tagInfos = new Dictionary(); if (mic_module_infos != null && mic_module_infos.Count > 0) { foreach (mic_module_infos info in mic_module_infos) { tagInfos.Add(info.tag_name, info.cell_position); } } List> analysisContent = new List>(); for (int i = 0; i < this.dataGridView_results.Rows.Count; i++) { List content1 = new List(); if (i == 0) { content1.Add(this.dataGridView_results.Columns[0].HeaderText); content1.Add(this.dataGridView_results.Columns[1].HeaderText); content1.Add(this.dataGridView_results.Columns[2].HeaderText); content1.Add(this.dataGridView_results.Columns[3].HeaderText); content1.Add(this.dataGridView_results.Columns[4].HeaderText); analysisContent.Add(content1); } content1 = new List(); content1.Add(this.dataGridView_results.Rows[i].Cells[0].Value.ToString()); content1.Add(this.dataGridView_results.Rows[i].Cells[1].Value.ToString()); content1.Add(this.dataGridView_results.Rows[i].Cells[2].Value.ToString()); content1.Add(this.dataGridView_results.Rows[i].Cells[3].Value.ToString()); content1.Add(this.dataGridView_results.Rows[i].Cells[4].Value.ToString()); analysisContent.Add(content1); string tag = this.dataGridView_results.Rows[i].Cells[0].Value.ToString(); if (bitDic.ContainsKey(tag)) { bitList.Add(bitDic[tag][0]); bitList.Add(bitDic[tag][1]); } } this.appWorkspace.CreateAnalysisReport(this.analyzeSettingModel, analysisContent, bitList, tagInfos); } else MessageBox.Show(PdnResources.GetString("Menu.Pleasesettheanalysisreportfirst.text")+"!"); } private void groupBox7_Enter(object sender, EventArgs e) { } private void button4_Click(object sender, EventArgs e) { if (this.dataGridView_results.Rows.Count > 0) { SaveFileDialog exe = new SaveFileDialog(); exe.Filter = "Execl files (*.xlsx)|*.xlsx"; exe.FilterIndex = 0; exe.RestoreDirectory = true; exe.Title = "Export Excel File"; exe.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); exe.FileName = PdnResources.GetString("Menu.GeneralAnalysis.TwoPhaseArea.Text")+ PdnResources.GetString("Menu.Analysisresult.text") + DateTime.Now.ToString("yyyyMMddhhmmss"); DialogResult dr = exe.ShowDialog(); if (dr == DialogResult.OK) { DataTable dtb = new DataTable(); foreach (DataGridViewColumn c in this.dataGridView_results.Columns) { dtb.Columns.Add(c.HeaderText); } for (int r = 0; r < this.dataGridView_results.Rows.Count; r++) { DataRow dataRow = dtb.NewRow(); for (int c = 0; c < this.dataGridView_results.Rows[r].Cells.Count; c++) { dataRow[this.dataGridView_results.Columns[c].HeaderText] = this.dataGridView_results.Rows[r].Cells[c].Value; } dtb.Rows.Add(dataRow); } List list = new List(); list.Add(dtb); this.appWorkspace.ExportDataToExcelWithProgress(list, exe.FileName, true, false, true); } } else { MessageBox.Show(PdnResources.GetString("Menu.Noanalysisresults.text")+"!"); } } private void button9_Click(object sender, EventArgs e) { if (this.dataGridView_results.Rows.Count == 0) { MessageBox.Show(PdnResources.GetString("Menu.Noresults.text")); return; } if (this.analyzeSettingModel == null) { MessageBox.Show(PdnResources.GetString("Menu.Pleasesetiirst.Text")); return; } //获取项目工程内的文件夹路径 ProjectEngineering.NodeItem item = this.appWorkspace.GetInsertProjectPath(2, "Menu.GeneralAnalysis.TwoPhaseArea.Text", this.analyzeSettingModel.savePath); if (item != null) { //向文件夹内保存图片和报告 if (!string.IsNullOrEmpty(this.analyzeSettingModel.analyzeClassify)) { //获取word书签与excel单元格的关系,以字典方式存储 List mic_module_infos = mic_module_infos_BLL.FindAll().FindAll(a => a.analyze_classify == this.analyzeSettingModel.analyzeClassify); Dictionary tagInfos = new Dictionary(); if (mic_module_infos != null && mic_module_infos.Count > 0) { foreach (mic_module_infos info in mic_module_infos) { tagInfos.Add(info.tag_name, info.cell_position); } } List> analysisContent = new List>(); List> inclusionList = new List>(); List exportModel = new List(); List bitImgList = new List(); List titleContent = new List(); for (int i = 0; i < this.dataGridView_results.Rows.Count; i++) { List content1 = new List(); if (i == 0) { content1.Add(this.dataGridView_results.Columns[0].HeaderText); content1.Add(this.dataGridView_results.Columns[1].HeaderText); content1.Add(this.dataGridView_results.Columns[2].HeaderText); content1.Add(this.dataGridView_results.Columns[3].HeaderText); content1.Add(this.dataGridView_results.Columns[4].HeaderText); analysisContent.Add(content1); titleContent.AddRange(content1); } content1 = new List(); content1.Add(this.dataGridView_results.Rows[i].Cells[0].Value.ToString()); content1.Add(this.dataGridView_results.Rows[i].Cells[1].Value.ToString()); content1.Add(this.dataGridView_results.Rows[i].Cells[2].Value.ToString()); content1.Add(this.dataGridView_results.Rows[i].Cells[3].Value.ToString()); content1.Add(this.dataGridView_results.Rows[i].Cells[4].Value.ToString()); analysisContent.Add(content1); string tag = this.dataGridView_results.Rows[i].Cells[0].Value.ToString(); var export = exportModel.Where(m => m.picName == tag).FirstOrDefault(); if (export == null) { ExportProjectModel exportProjectModel = new ExportProjectModel(); exportProjectModel.dataList = new List>(); exportProjectModel.dataList.Add(titleContent); exportProjectModel.dataList.Add(content1); exportProjectModel.picName = tag; exportProjectModel.tagName = PdnResources.GetString("Menu.GeneralAnalysis.TwoPhaseArea.Text"); exportModel.Add(exportProjectModel); } else { exportModel[exportModel.IndexOf(export)].dataList.Add(content1); } if (bitDic.ContainsKey(tag)) { bitImgList.Add(bitDic[tag][0]); bitImgList.Add(bitDic[tag][1]); } } try { this.appWorkspace.CreateAnalysisReport(this.analyzeSettingModel, analysisContent, exportModel, bitImgList, tagInfos, item.path, item.code); } catch (Exception ex) { MessageBox.Show(ex.Message); } } else { MessageBox.Show(PdnResources.GetString("Menu.Pleasesettheanalysisreportfirst.text")+"!"); return; } //保存项目信息到数据库 this.appWorkspace.InsertIntoDB(this.analyzeSettingModel, item); } } private void getValue(string key, Object value) { switch (key) { case "OpenWhileExportReport": checkBox1.Checked = Convert.ToBoolean(value); break; case "CalculatorDecimalDigits": numericUpDown1.Value = Convert.ToDecimal(value); break; case "ExportResults": isExportResults = Convert.ToBoolean(value); break; case "ExportReports": isExportReports = Convert.ToBoolean(value); break; case "ExportProjects": isExportProjects = Convert.ToBoolean(value); break; } } #region [应用全部保存全部-私有方法] /// /// 应用全部私有方法 /// private void applyAll() { } /// /// 保存全部私有方法 /// private void saveAll() { for (int i = 0; i < listView1.Items.Count; i++) { this.listView1.EnsureVisible(i); this.listView1.Items[i].Focused = true; this.listView1.Items[i].Selected = true; this.button2.PerformClick(); } } /// /// 执行脚本自动化的步骤 /// private void startScriptAutomaticAction() { saveAll(); if (isExportResults)//导出结果 this.button4.PerformClick(); if (isExportReports)//生成报告 this.button3.PerformClick(); if (isExportProjects)//导出项目 this.button9.PerformClick(); this.appWorkspace.ScriptAutomatic = false; this.Close(); } #endregion #region [脚本录制] private void getScriptRecording() { string className = InvariantData.path_Action + ".Action" + menuId; ParamObject param = (ParamObject)System.Reflection.Assembly.Load(InvariantData.assembly_Data).CreateInstance(className); List args = param.Lists; foreach (var item in args) { item.value = setScriptRecording(item.key); } appWorkspace.SetScriptStartRecording(this.menuId, menuName, args); } private object setScriptRecording(string key) { object value = null; switch (key) { case "OpenWhileExportReport": value = checkBox1.Checked; break; case "CalculatorDecimalDigits": value = numericUpDown1.Value; break; case "ExportResults": value = isExportResults; break; case "ExportReports": value = isExportReports; break; case "ExportProjects": value = isExportProjects; break; } return value; } #endregion } }