Files
fl-knowledge/LP/FormLook2FengXianPingGu.cs
T

346 lines
11 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
namespace LP;
public class FormLook2FengXianPingGu : Form
{
private delegate void delegateFormTitle(Form form, string value);
private delegate void delegateDataGridViewDataSource(DataGridView dataGridView, DataView value);
private delegate void delegateFormHide(Form form);
public FormDesktop desktop = null;
private string mTitle = "";
private TaskData mLookTaskData = null;
private XianLuData mLookXianLuData = null;
private DataSet mDS = null;
private bool mAfterInit = false;
private IContainer components = null;
private Panel panel_Form;
private Button buttonCancel;
private Panel panel_Result;
private DataGridView dataGridView_Result;
public FormLook2FengXianPingGu()
{
InitializeComponent();
mTitle = "展示计算结果(风险评估)";
if (mLookTaskData == null)
{
mLookTaskData = new TaskData();
}
if (mLookXianLuData == null)
{
mLookXianLuData = new XianLuData();
}
}
private void FormLook2FengXianPingGu_Load(object sender, EventArgs e)
{
mAfterInit = false;
MyInput_Data();
MySet_Form_Title(this, "");
MyInit_DataSet();
if (mDS != null)
{
MySet_DataGridView_DataSource(dataGridView_Result, mDS.Tables[0].DefaultView);
}
mAfterInit = true;
}
private void FormLook2FengXianPingGu_FormClosing(object sender, FormClosingEventArgs e)
{
}
public void Destroy()
{
if (mLookXianLuData != null)
{
mLookXianLuData.Destroy();
}
mLookXianLuData = null;
if (mLookTaskData != null)
{
mLookTaskData.Destroy();
}
mLookTaskData = null;
if (mDS != null)
{
if (mDS.Tables.Count > 0)
{
mDS.Tables[0].Rows.Clear();
mDS.Tables[0].Columns.Clear();
}
mDS.Tables[0].Clear();
mDS.Clear();
mDS = null;
}
}
public void MyInput_Data()
{
mLookTaskData.copyFrom_TaskData(desktop.mRightTaskData);
mLookXianLuData.CopyFrom_XianLuData(desktop.mRightXianLuData);
mTitle = "展示计算结果(风险评估) - " + mLookTaskData.mName_Task + " | " + mLookXianLuData.mName_XianLu;
}
private void MyInit_DataSet()
{
if (mDS == null)
{
mDS = new DataSet();
}
if (mDS.Tables.Count == 0)
{
mDS.Tables.Add(new DataTable());
}
mDS.Tables[0].Rows.Clear();
mDS.Tables[0].Columns.Clear();
List<string> list = new List<string>();
list.Clear();
string[] array = new string[63]
{
"线路编号", "序号", "线路名称", "电压等级", "塔号", "杆塔模型", "塔形", "经度", "纬度", "I回相序",
"II回相序", "III回相序", "IV回相序", "A相是否安装避雷器", "B相是否安装避雷器", "C相是否安装避雷器", "接地电阻", "左避雷中距m", "右避雷中距m", "避雷线高度m",
"绝缘子串长度mm", "杆塔呼高m", "I回上相中距m", "I回中相中距m", "I回下相中距m", "I回上相高度m", "I回中相高度m", "I回下相高度m", "II回上相中距m", "II回中相中距m",
"II回下相中距m", "II回上相高度m", "II回中相高度m", "II回下相高度m", "III回上相中距m", "III回中相中距m", "III回下相中距m", "III回上相高度m", "III回中相高度m", "III回下相高度m",
"IV回上相中距m", "IV回中相中距m", "IV回下相中距m", "IV回上相高度m", "IV回中相高度m", "IV回下相高度m", "小号侧档距", "大号侧档距", "电角度", "雷电流幅值a",
"雷电流幅值b", "地面倾角1", "地面倾角2", "海拔m", "地形", "地闪密度", "直线或耐张杆塔", "绕击反击", "反击耐雷水平kA", "反击跳闸率(次/100km.a)",
"绕击耐雷水平kA", "绕击跳闸率(次/100km.a)", "雷击风险等级"
};
string[] array2 = new string[11]
{
"塔号", "塔形", "接地电阻", "绝缘子串长度mm", "杆塔呼高m", "地面倾角1", "反击耐雷水平kA", "反击跳闸率(次/100km.a)", "绕击耐雷水平kA", "绕击跳闸率(次/100km.a)",
"雷击风险等级"
};
int num = -1;
GanTas ganTas = null;
try
{
for (int i = 0; i < array2.Length; i++)
{
list.Add(array2[i]);
}
for (int j = 0; j < list.Count; j++)
{
mDS.Tables[0].Columns.Add(list[j]);
}
for (int k = 0; k < desktop.mXL.mListXianLuData.Count; k++)
{
if (mLookXianLuData.mName_XianLu.Equals(desktop.mXL.mListXianLuData[k].mName_XianLu))
{
num = k;
}
}
if (num < 0)
{
MyLog.AddLog("MyInit_DataSet() FormLook1 未匹配线路(" + mLookXianLuData.mName_XianLu + ").");
return;
}
if (num >= desktop.mXL.mListGanTas.Count)
{
MyLog.AddLog($"MyInit_DataSet() FormLook1 mListGanTas越界(index={num} out of [0,{desktop.mXL.mListGanTas.Count - 1}]).");
return;
}
ganTas = desktop.mXL.mListGanTas[num];
for (int l = 0; l < ganTas.mListGanTaData.Count; l++)
{
DataRow dataRow = mDS.Tables[0].NewRow();
for (int m = 0; m < list.Count; m++)
{
switch (list[m])
{
case "塔号":
dataRow[m] = ganTas.mListGanTaData[l].mID_GanTa;
break;
case "塔形":
dataRow[m] = ganTas.mListGanTaData[l].mTaXing_GanTa;
break;
case "接地电阻":
dataRow[m] = ganTas.mListGanTaData[l].mJDDZ_GanTa;
break;
case "绝缘子串长度mm":
dataRow[m] = ganTas.mListGanTaData[l].mJYZCD_GanTa;
break;
case "杆塔呼高m":
dataRow[m] = ganTas.mListGanTaData[l].mHuGao_GanTa;
break;
case "地面倾角1":
dataRow[m] = ganTas.mListGanTaData[l].mDMQJ1_GanTa;
break;
case "地面倾角2":
dataRow[m] = ganTas.mListGanTaData[l].mDMQJ2_GanTa;
break;
case "反击耐雷水平kA":
dataRow[m] = ganTas.mListGanTaData[l].mFJ_NLSP_GanTa;
break;
case "反击跳闸率(次/100km.a)":
dataRow[m] = ganTas.mListGanTaData[l].mFJ_TZL_GanTa;
break;
case "绕击耐雷水平kA":
dataRow[m] = ganTas.mListGanTaData[l].mRJ_NLSP_GanTa;
break;
case "绕击跳闸率(次/100km.a)":
dataRow[m] = ganTas.mListGanTaData[l].mRJ_TZL_GanTa;
break;
case "雷击风险等级":
dataRow[m] = ganTas.mListGanTaData[l].mFXDJ_GanTa;
break;
}
}
mDS.Tables[0].Rows.Add(dataRow);
}
}
catch (Exception ex)
{
MyLog.AddLog("MyInit_DataSet() FormLook1 Exception=" + ex.Message + ".");
}
}
private void buttonCancel_Click(object sender, EventArgs e)
{
if (mAfterInit)
{
Thread thread = new Thread(MyCancel);
thread.Start();
}
}
private void MyCancel()
{
MySet_Form_Title(this, "取消—");
MySet_Form_Title(this, "取消———");
base.DialogResult = DialogResult.Cancel;
MyFormHide(this);
}
public void MySet_Form_Title(Form form, string value)
{
if (form.InvokeRequired)
{
delegateFormTitle method = MySet_Form_Title;
form.Invoke(method, form, value);
}
else
{
form.Text = mTitle + " " + value;
}
}
public void MySet_DataGridView_DataSource(DataGridView dataGridView, DataView value)
{
if (dataGridView.InvokeRequired)
{
delegateDataGridViewDataSource method = MySet_DataGridView_DataSource;
dataGridView.Invoke(method, dataGridView, value);
}
else
{
dataGridView.DataSource = value;
}
}
public void MyFormHide(Form form)
{
try
{
if (form.InvokeRequired)
{
delegateFormHide method = MyFormHide;
form.Invoke(method, form);
}
else
{
form.Hide();
}
}
catch (Exception)
{
}
}
protected override void Dispose(bool disposing)
{
if (disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.panel_Form = new System.Windows.Forms.Panel();
this.buttonCancel = new System.Windows.Forms.Button();
this.panel_Result = new System.Windows.Forms.Panel();
this.dataGridView_Result = new System.Windows.Forms.DataGridView();
this.panel_Form.SuspendLayout();
this.panel_Result.SuspendLayout();
((System.ComponentModel.ISupportInitialize)this.dataGridView_Result).BeginInit();
base.SuspendLayout();
this.panel_Form.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panel_Form.Controls.Add(this.buttonCancel);
this.panel_Form.Controls.Add(this.panel_Result);
this.panel_Form.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel_Form.Location = new System.Drawing.Point(0, 0);
this.panel_Form.Name = "panel_Form";
this.panel_Form.Size = new System.Drawing.Size(1283, 607);
this.panel_Form.TabIndex = 1;
this.buttonCancel.Font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134);
this.buttonCancel.Location = new System.Drawing.Point(1219, 563);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(50, 29);
this.buttonCancel.TabIndex = 3;
this.buttonCancel.Text = "取消";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(buttonCancel_Click);
this.panel_Result.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel_Result.Controls.Add(this.dataGridView_Result);
this.panel_Result.Location = new System.Drawing.Point(10, 10);
this.panel_Result.Name = "panel_Result";
this.panel_Result.Size = new System.Drawing.Size(1203, 583);
this.panel_Result.TabIndex = 2;
this.dataGridView_Result.AllowUserToAddRows = false;
this.dataGridView_Result.AllowUserToDeleteRows = false;
this.dataGridView_Result.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText;
this.dataGridView_Result.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView_Result.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridView_Result.Location = new System.Drawing.Point(0, 0);
this.dataGridView_Result.Name = "dataGridView_Result";
this.dataGridView_Result.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
this.dataGridView_Result.RowTemplate.Height = 23;
this.dataGridView_Result.Size = new System.Drawing.Size(1201, 581);
this.dataGridView_Result.TabIndex = 1;
base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 12f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(1283, 607);
base.Controls.Add(this.panel_Form);
base.Name = "FormLook2FengXianPingGu";
base.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "FormLook2FengXianPingGu";
base.FormClosing += new System.Windows.Forms.FormClosingEventHandler(FormLook2FengXianPingGu_FormClosing);
base.Load += new System.EventHandler(FormLook2FengXianPingGu_Load);
this.panel_Form.ResumeLayout(false);
this.panel_Result.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)this.dataGridView_Result).EndInit();
base.ResumeLayout(false);
}
}