346 lines
11 KiB
C#
346 lines
11 KiB
C#
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);
|
|
}
|
|
}
|