Files
fl-knowledge/LP/FormLook3CuoShiTuiJian.cs
T

1018 lines
36 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace LP;
public class FormLook3CuoShiTuiJian : 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 TaskData mBLQ_3_TaskData = null;
private XianLuData mLookXianLuData = null;
private TaskGroup mLookTaskGroup = null;
private DataSet mDS = null;
private List<string> mList_SBH = null;
private string mFileName = "";
private int mIndex_detail_Look3 = -1;
private bool mAfterInit = false;
private bool mBusy = false;
private bool mPermitButton_AnZhuangBLQ = false;
private IContainer components = null;
private Panel panel_Form;
private Button buttonExport;
private Button buttonCancel;
private Panel panel_Result;
private DataGridView dataGridView_Result;
private TextBox textBox_ShowInform;
private Button buttonBLQ_compute;
public FormLook3CuoShiTuiJian()
{
InitializeComponent();
mTitle = "展示计算结果(措施推荐)";
if (mList_SBH == null)
{
mList_SBH = new List<string>();
}
}
public void MySet_mIndex_detail_Look3(int _index)
{
mIndex_detail_Look3 = _index;
}
private void FormLook3CuoShiTuiJian_Load(object sender, EventArgs e)
{
mAfterInit = false;
mPermitButton_AnZhuangBLQ = false;
MyInput_Data();
MySet_Form_Title(this, "");
MyInit_DataSet();
if (mDS != null)
{
MySet_DataGridView_DataSource(dataGridView_Result, mDS.Tables[0].DefaultView);
}
buttonBLQ_compute.Visible = mPermitButton_AnZhuangBLQ;
mAfterInit = true;
}
private void FormLook3CuoShiTuiJian_FormClosing(object sender, FormClosingEventArgs e)
{
MySet_DataGridView_DataSource(dataGridView_Result, null);
}
public void Destroy()
{
if (mList_SBH != null)
{
mList_SBH.Clear();
}
mList_SBH = 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;
}
if (mBLQ_3_TaskData != null)
{
mBLQ_3_TaskData.Destroy();
}
mBLQ_3_TaskData = null;
}
public void MyInput_Data()
{
TaskDetail taskDetail = null;
if (mIndex_detail_Look3 >= 0)
{
taskDetail = desktop.mTask.mListDetails[mIndex_detail_Look3];
mLookTaskData = taskDetail.mTaskData;
mLookTaskGroup = taskDetail.mTaskGroup;
for (int i = 0; i < desktop.mXL.mListXianLuData.Count; i++)
{
if (taskDetail.mXianLuID_Detail == desktop.mXL.mListXianLuData[i].mID_XianLu)
{
mLookXianLuData = desktop.mXL.mListXianLuData[i];
break;
}
}
}
taskDetail = null;
mTitle = "展示计算结果(措施推荐) - " + mLookTaskData.mName_Task + " | " + mLookXianLuData.mName_XianLu;
if (mIndex_detail_Look3 < 0)
{
MyLog.AddLog($"FormLook3CuoShiTuiJian.cs MyInput_Data() mIndex_detail_Look3={mIndex_detail_Look3}");
}
}
private void MyInit_DataSet()
{
if (mList_SBH == null)
{
mList_SBH = new List<string>();
}
mList_SBH.Clear();
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[20]
{
"塔号", "杆塔模型", "塔形", "雷电流幅值a", "地面倾角1", "地闪密度", "波头时间/μs", "波尾时间/μs", "反击耐雷水平kA", "反击跳闸率(次/100km.a)",
"绕击耐雷水平kA", "绕击跳闸率(次/100km.a)", "雷击风险等级", "保护角", "普通计算结果", "绝缘子串长mm推荐值", "绝缘子串长mm原始值", "接地电阻Ω推荐值", "接地电阻Ω原始值", "安装避雷器"
};
string[] array2 = new string[38]
{
"塔号", "杆塔模型", "塔形", "雷电流幅值a", "地面倾角1", "地闪密度", "波头时间/μs", "波尾时间/μs", "绕击跳闸率(次/100km.a)", "雷击风险等级",
"A相绕击耐雷水平kA", "B相绕击耐雷水平kA", "C相绕击耐雷水平kA", "单相反击耐雷水平kA", "单相闪络相", "单相反击跳闸率(次/100km.a)", "双相反击耐雷水平kA", "双相闪络相", "双相反击跳闸率(次/100km.a)", "三相反击耐雷水平kA",
"三相闪络相", "三相反击跳闸率(次/100km.a)", "四相反击耐雷水平kA", "四相闪络相", "四相反击跳闸率(次/100km.a)", "五相反击耐雷水平kA", "五相闪络相", "五相反击跳闸率(次/100km.a)", "六相反击耐雷水平kA", "六相闪络相",
"六相反击跳闸率(次/100km.a)", "保护角", "普通计算结果", "绝缘子串长mm推荐值", "绝缘子串长mm原始值", "接地电阻Ω推荐值", "接地电阻Ω原始值", "安装避雷器"
};
string[] array3 = new string[21]
{
"塔号", "杆塔模型", "塔形", "雷电流幅值a", "地面倾角1", "地闪密度", "波头时间/μs", "波尾时间/μs", "反击耐雷水平kA", "反击跳闸率(次/100km.a)",
"绕击耐雷水平kA", "绕击跳闸率(次/100km.a)", "雷击风险等级", "普通计算结果", "保护角推荐值", "保护角原始值", "绝缘子串长mm推荐值", "绝缘子串长mm原始值", "接地电阻Ω推荐值", "接地电阻Ω原始值",
"安装避雷器"
};
string[] array4 = new string[39]
{
"塔号", "杆塔模型", "塔形", "雷电流幅值a", "地面倾角1", "地闪密度", "波头时间/μs", "波尾时间/μs", "绕击跳闸率(次/100km.a)", "雷击风险等级",
"A相绕击耐雷水平kA", "B相绕击耐雷水平kA", "C相绕击耐雷水平kA", "单相反击耐雷水平kA", "单相闪络相", "单相反击跳闸率(次/100km.a)", "双相反击耐雷水平kA", "双相闪络相", "双相反击跳闸率(次/100km.a)", "三相反击耐雷水平kA",
"三相闪络相", "三相反击跳闸率(次/100km.a)", "四相反击耐雷水平kA", "四相闪络相", "四相反击跳闸率(次/100km.a)", "五相反击耐雷水平kA", "五相闪络相", "五相反击跳闸率(次/100km.a)", "六相反击耐雷水平kA", "六相闪络相",
"六相反击跳闸率(次/100km.a)", "普通计算结果", "保护角推荐值", "保护角原始值", "绝缘子串长mm推荐值", "绝缘子串长mm原始值", "接地电阻Ω推荐值", "接地电阻Ω原始值", "安装避雷器"
};
string text = "";
TGanTas tGanTas = null;
try
{
tGanTas = mLookTaskGroup.mListExTaskData[0].mTGanTas;
}
catch (Exception)
{
tGanTas = null;
}
if (tGanTas != null)
{
text = tGanTas.mListTGanTaData[0].mM1_Xiang_GanTa;
text += tGanTas.mListTGanTaData[0].mM2_Xiang_GanTa;
text += tGanTas.mListTGanTaData[0].mM3_Xiang_GanTa;
text += tGanTas.mListTGanTaData[0].mM4_Xiang_GanTa;
text += tGanTas.mListTGanTaData[0].mM5_Xiang_GanTa;
text += tGanTas.mListTGanTaData[0].mM6_Xiang_GanTa;
text = text.ToUpper();
}
bool flag = false;
flag = text.IndexOf("A") >= 0 || text.IndexOf("B") >= 0 || text.IndexOf("C") >= 0;
try
{
if (desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData.mTypeCode_Task == 3 || desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData.mTypeCode_Task == 6)
{
if (!flag)
{
for (int i = 0; i < array.Length; i++)
{
list.Add(array[i]);
}
}
else if (flag)
{
for (int j = 0; j < array2.Length; j++)
{
list.Add(array2[j]);
}
}
}
else if (desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData.mTypeCode_Task == 302 || desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData.mTypeCode_Task == 602)
{
if (!flag)
{
for (int k = 0; k < array3.Length; k++)
{
list.Add(array3[k]);
}
}
else if (flag)
{
for (int l = 0; l < array4.Length; l++)
{
list.Add(array4[l]);
}
}
}
for (int m = 0; m < list.Count; m++)
{
mDS.Tables[0].Columns.Add(list[m]);
}
DataRow dataRow = null;
int num = -1;
CanShuFenJi canShuFenJi = null;
string text2 = "";
for (int n = 0; n < mLookTaskGroup.mListExTaskData.Count; n++)
{
if (mLookTaskGroup.mListExTaskData[n] == null || mLookTaskGroup.mListExTaskData[n].mTGanTas == null)
{
continue;
}
tGanTas = mLookTaskGroup.mListExTaskData[n].mTGanTas;
for (int num2 = 0; num2 < tGanTas.mListTGanTaData.Count; num2++)
{
dataRow = mDS.Tables[0].NewRow();
num = desktop.mAll_CanShuFenJi.MyFind(tGanTas.mListTGanTaData[num2].m_ID_CanShuFenJi);
canShuFenJi = ((num <= 0) ? null : desktop.mAll_CanShuFenJi.mList_CanShuFenJi_all[num]);
if (num > 0)
{
text2 = (canShuFenJi.mBLQ_need ? "需要安装避雷器" : "不需要安装避雷器");
}
else
{
text2 = "";
}
if (num > 0 && canShuFenJi.mBLQ_need && (desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData.mTypeCode_Task == 3 || desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData.mTypeCode_Task == 302))
{
mPermitButton_AnZhuangBLQ = true;
}
for (int num3 = 0; num3 < list.Count; num3++)
{
switch (list[num3])
{
case "塔号":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mID_GanTa;
break;
case "杆塔模型":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mModel_GanTa;
break;
case "塔形":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mTaXing_GanTa;
break;
case "雷电流幅值a":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mCurrent_a_GanTa;
break;
case "地面倾角1":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mDMQJ1_GanTa;
break;
case "地闪密度":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mDSMD_GanTa;
break;
case "波头时间/μs":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mCurrentHeadTime_GanTa;
break;
case "波尾时间/μs":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mCurrentTailTime_GanTa;
break;
case "反击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mFJ_NLSP_GanTa;
break;
case "反击跳闸率(次/100km.a)":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mFJ_TZL_GanTa;
break;
case "绕击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mRJ_NLSP_GanTa;
break;
case "绕击跳闸率(次/100km.a)":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mRJ_TZL_GanTa;
break;
case "雷击风险等级":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mFXDJ_GanTa;
break;
case "A相绕击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mMA_RJ_NLSP_GanTa;
break;
case "B相绕击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mMB_RJ_NLSP_GanTa;
break;
case "C相绕击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mMC_RJ_NLSP_GanTa;
break;
case "单相反击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM1_NLSP_GanTa;
break;
case "单相闪络相":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM1_Xiang_GanTa;
break;
case "单相反击跳闸率(次/100km.a)":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM1_TZL_GanTa;
break;
case "双相反击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM2_NLSP_GanTa;
break;
case "双相闪络相":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM2_Xiang_GanTa;
break;
case "双相反击跳闸率(次/100km.a)":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM2_TZL_GanTa;
break;
case "三相反击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM3_NLSP_GanTa;
break;
case "三相闪络相":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM3_Xiang_GanTa;
break;
case "三相反击跳闸率(次/100km.a)":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM3_TZL_GanTa;
break;
case "四相反击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM4_NLSP_GanTa;
break;
case "四相闪络相":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM4_Xiang_GanTa;
break;
case "四相反击跳闸率(次/100km.a)":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM4_TZL_GanTa;
break;
case "五相反击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM5_NLSP_GanTa;
break;
case "五相闪络相":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM5_Xiang_GanTa;
break;
case "五相反击跳闸率(次/100km.a)":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM5_TZL_GanTa;
break;
case "六相反击耐雷水平kA":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM6_NLSP_GanTa;
break;
case "六相闪络相":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM6_Xiang_GanTa;
break;
case "六相反击跳闸率(次/100km.a)":
dataRow[num3] = tGanTas.mListTGanTaData[num2].mM6_TZL_GanTa;
break;
case "保护角":
dataRow[num3] = tGanTas.mListTGanTaData[num2].m_BaoHuJiao;
break;
case "普通计算结果":
dataRow[num3] = tGanTas.mListTGanTaData[num2].m_Result_PuTongJiSuan_GanTa;
break;
case "绝缘子串长mm推荐值":
dataRow[num3] = ((num > 0) ? $"{canShuFenJi.mNew_JYZCD}" : "");
break;
case "绝缘子串长mm原始值":
dataRow[num3] = ((num > 0) ? $"{canShuFenJi.mOld_JYZCD}" : "");
break;
case "接地电阻Ω推荐值":
dataRow[num3] = ((num > 0) ? $"{canShuFenJi.mNew_JDDZ}" : "");
break;
case "接地电阻Ω原始值":
dataRow[num3] = ((num > 0) ? $"{canShuFenJi.mOld_JDDZ}" : "");
break;
case "保护角推荐值":
dataRow[num3] = ((num > 0) ? $"{canShuFenJi.mNew_BaoHuJiao}" : "");
break;
case "保护角原始值":
dataRow[num3] = ((num > 0) ? $"{canShuFenJi.mOld_BaoHuJiao}" : "");
break;
case "安装避雷器":
dataRow[num3] = tGanTas.mListTGanTaData[num2].m_CuoShiTuiJian_GanTa ?? "";
break;
}
}
mDS.Tables[0].Rows.Add(dataRow);
mList_SBH.Add($"{tGanTas.mListTGanTaData[num2].mTaskIDstring}|{tGanTas.mListTGanTaData[num2].mIndex__GanTa}");
}
}
}
catch (Exception ex2)
{
MyLog.AddLog("MyInit_DataSet() FormLook1 Exception=" + ex2.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);
}
private void buttonExport_Click(object sender, EventArgs e)
{
if (mBusy)
{
return;
}
mBusy = true;
try
{
if (mLookTaskGroup == null || mLookTaskGroup.mListExTaskData.Count == 0)
{
MyLog.AddLog($"buttonExport_Click() 参数分级数据无匹配:任务ID={mLookTaskGroup.mID_Task}");
MessageBox.Show("无杆塔数据可以导出!");
mBusy = false;
return;
}
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = Application.StartupPath;
saveFileDialog.Filter = "所有文件*.*|*.*|Excel文件(*.csv)|*.csv|Txt文件(*.txt)|*.txt";
saveFileDialog.FilterIndex = 2;
if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
{
mFileName = saveFileDialog.FileName;
Thread thread = new Thread(MySave_TGanTas);
thread.Start();
}
}
catch (Exception ex)
{
MyLog.AddLog("FormLook3CuoShiTuiJian.cs buttonExport_Click() ex=" + ex.Message);
}
}
private void MySave_TGanTas()
{
TGanTaData tGanTaData = null;
int num = 0;
string value = "";
string text = "";
CanShuFenJi canShuFenJi = null;
int num2 = -1;
try
{
using FileStream fileStream = new FileStream(mFileName, FileMode.Create, FileAccess.Write, FileShare.None);
using (StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8))
{
streamWriter.WriteLine("<TGanTa>");
for (int i = 0; i < mLookTaskGroup.mListExTaskData.Count; i++)
{
if (mLookTaskGroup.mListExTaskData[i] == null || mLookTaskGroup.mListExTaskData[i].mTGanTas == null)
{
continue;
}
for (int j = 0; j < mLookTaskGroup.mListExTaskData[i].mTGanTas.mListTGanTaData.Count; j++)
{
tGanTaData = mLookTaskGroup.mListExTaskData[i].mTGanTas.mListTGanTaData[j];
if (tGanTaData != null)
{
if (num == 0)
{
streamWriter.Write(TGanTaData.MyHead_ToString());
value = "";
value += ",安装避雷器";
value += ",绝缘子串长mm推荐值";
value += ",绝缘子串长mm原始值";
value += ",绝缘子串长档级";
value += ",接地电阻Ω推荐值";
value += ",接地电阻Ω原始值";
value += ",接地电阻档级";
value += ",绝缘子串长标准值";
value += ",高度-标准值";
streamWriter.WriteLine(value);
}
streamWriter.Write(tGanTaData.MyToString());
num2 = desktop.mAll_CanShuFenJi.MyFind(tGanTaData.m_ID_CanShuFenJi);
if (num2 <= 0)
{
value = ",,,,,,,,,";
}
else if (num2 > 0)
{
canShuFenJi = desktop.mAll_CanShuFenJi.mList_CanShuFenJi_all[num2];
text = (canShuFenJi.mBLQ_need ? "需要安装避雷器" : "不需要安装避雷器");
value = "";
value = value + "," + tGanTaData.m_CuoShiTuiJian_GanTa;
value += $",{canShuFenJi.mNew_JYZCD}";
value += $",{canShuFenJi.mOld_JYZCD}";
value += $",{canShuFenJi.mFenJi_JYZCD}";
value += $",{canShuFenJi.mNew_JDDZ}";
value += $",{canShuFenJi.mOld_JDDZ}";
value += $",{canShuFenJi.mFenJi_JDDZ}";
value += $",{canShuFenJi.mSTD_JYZ_mm}";
value += $",{canShuFenJi.mSTD_height_m}";
}
streamWriter.WriteLine(value);
num++;
}
}
}
streamWriter.WriteLine("</TGanTa>");
streamWriter.Close();
}
fileStream.Close();
}
catch (Exception ex)
{
MyLog.AddLog("MySave_TGanTas() 异常=" + ex.Message);
MessageBox.Show(ex.Message);
}
MessageBox.Show($"导出{num}条杆塔数据。文件名{mFileName}");
mBusy = false;
}
private void buttonBLQ_compute_Click(object sender, EventArgs e)
{
if (mAfterInit && !mBusy)
{
if (mBLQ_3_TaskData == null)
{
mBLQ_3_TaskData = new TaskData();
}
if (mIndex_detail_Look3 >= 0 && mIndex_detail_Look3 < desktop.mTask.mListDetails.Count && desktop.mTask.mListDetails[mIndex_detail_Look3] != null && desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData != null)
{
mBusy = true;
Thread thread = new Thread(MyThread_BLQ_computeTask);
thread.Start();
}
}
}
private void MyThread_BLQ_computeTask()
{
TaskData taskData = null;
int index = -1;
TaskData taskData2 = null;
TaskData taskData3 = null;
TaskData taskData4 = null;
int num = 0;
bool flag = false;
try
{
taskData2 = desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData;
for (int i = 0; i < desktop.mTask.mListDetails.Count; i++)
{
if (desktop.mTask.mListDetails[i].mTaskID_Detail == taskData2.mTaskID_QianQu_PuTongOrTongTiao_CuoShiTuiJian)
{
index = i;
taskData = desktop.mTask.mListDetails[index].mTaskData;
break;
}
}
if (taskData == null)
{
taskData = desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData;
}
mBLQ_3_TaskData.copyFrom_TaskData(taskData);
if (taskData2.mTypeCode_Task == 3)
{
mBLQ_3_TaskData.mTypeCode_Task = 6;
}
else if (taskData2.mTypeCode_Task == 302)
{
mBLQ_3_TaskData.mTypeCode_Task = 602;
}
else
{
mBLQ_3_TaskData.mTypeCode_Task = 6;
}
mBLQ_3_TaskData.mID_Task = TaskData.mNextID_static;
mBLQ_3_TaskData.mID_string_Task = $"{mBLQ_3_TaskData.mID_Task}|{mBLQ_3_TaskData.mID_ExTask}";
mBLQ_3_TaskData.mName_Task = $"避雷器-{taskData.mName_Task}-{mBLQ_3_TaskData.mID_Task}";
mBLQ_3_TaskData.mTaskID_QianQu_PuTongOrTongTiao_CuoShiTuiJian = taskData.mID_Task;
mBLQ_3_TaskData.mTaskID_QianQu_PuTongOrTongTiao_JiaZhuangBLQ = taskData.mID_Task;
mBLQ_3_TaskData.Finished6_AnZhuangBLQ = 0;
num = 0;
flag = false;
for (int j = 0; j < desktop.mTask.mListDetails.Count; j++)
{
if (mBLQ_3_TaskData.mID_Task == desktop.mTask.mListDetails[j].mTaskID_Detail)
{
desktop.mTask.mListDetails[j].mTaskData.copyFrom_TaskData(mBLQ_3_TaskData);
num = j;
flag = true;
break;
}
}
if (!flag)
{
TaskDetail taskDetail = new TaskDetail();
taskDetail.mTaskID_Detail = mBLQ_3_TaskData.mID_Task;
taskDetail.mXianLuID_Detail = mBLQ_3_TaskData.mXianLuID_Task;
taskDetail.mTaskData.copyFrom_TaskData(mBLQ_3_TaskData);
num = desktop.mTask.mListDetails.Count;
desktop.mTask.mListDetails.Add(taskDetail);
desktop.mTask.mListDetails[num].mTaskGroup.mID_Task = mBLQ_3_TaskData.mID_Task;
desktop.mTask.mListDetails[num].mTaskData.mID_Task = mBLQ_3_TaskData.mID_Task;
}
else if (flag)
{
MyLog.AddLog($"MyThread_BLQ_computeTask() Detail repeat(indexDetail={num}, mListDetails.Count={desktop.mTask.mListDetails.Count}).");
mBusy = false;
return;
}
XianLuData sourceXianLuData = null;
for (int k = 0; k < desktop.mXL.mListXianLuData.Count; k++)
{
if (desktop.mXL.mListXianLuData[k].mID_XianLu == desktop.mTask.mListDetails[index].mXianLuID_Detail)
{
sourceXianLuData = desktop.mXL.mListXianLuData[k];
break;
}
}
for (int l = 0; l < desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskGroup.mListExTaskData.Count; l++)
{
taskData4 = desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskGroup.mListExTaskData[l];
if (taskData4 != null)
{
taskData3 = new TaskData();
taskData3.copyFrom_TaskData(mBLQ_3_TaskData);
taskData3.mCurveTimeHead = taskData4.mCurveTimeHead;
taskData3.mCurveTimeTail = taskData4.mCurveTimeTail;
taskData3.mTGanTas.SetXianLuData(taskData3.mID_string_Task, sourceXianLuData);
taskData3.mTGanTas.mListTGanTaData.Clear();
desktop.mTask.Add1_ExTaskData(num, taskData3);
}
}
TGanTas tGanTas = null;
GanTaData ganTaData = null;
GanTaData ganTaData2 = null;
TGanTaData tGanTaData = null;
TGanTaData tGanTaData2 = null;
int num2 = -1;
bool flag2 = false;
bool flag3 = false;
for (num2 = 0; num2 < desktop.mXL.mListXianLuData.Count; num2++)
{
if (desktop.mXL.mListXianLuData[num2].mID_XianLu == mBLQ_3_TaskData.mXianLuID_Task)
{
flag3 = true;
break;
}
}
MyLog.AddLog("创建安装避雷器任务");
for (int m = 0; m < desktop.mTask.mListDetails[num].mTaskGroup.mListExTaskData.Count; m++)
{
taskData3 = desktop.mTask.mListDetails[num].mTaskGroup.mListExTaskData[m];
taskData3.mTGanTas.mListTGanTaData.Clear();
for (int n = 0; n < desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskGroup.mListExTaskData.Count; n++)
{
if (n != m)
{
continue;
}
MyLog.AddLog($"{desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskData.mName_Task} mIndex_detail_Look3={mIndex_detail_Look3} k={n}");
taskData4 = desktop.mTask.mListDetails[mIndex_detail_Look3].mTaskGroup.mListExTaskData[n];
tGanTas = taskData4.mTGanTas;
for (int num3 = 0; num3 < tGanTas.mListTGanTaData.Count; num3++)
{
if (tGanTas.mListTGanTaData[num3].mFXDJ_GanTa <= 2)
{
continue;
}
flag2 = false;
tGanTaData = null;
for (int num4 = 0; num4 < desktop.mTask.mListDetails[index].mTaskGroup.mListExTaskData[n].mTGanTas.mListTGanTaData.Count; num4++)
{
tGanTaData2 = desktop.mTask.mListDetails[index].mTaskGroup.mListExTaskData[n].mTGanTas.mListTGanTaData[num4];
if (tGanTaData2.mID_GanTa == tGanTas.mListTGanTaData[num3].mID_GanTa)
{
tGanTaData = tGanTaData2;
flag2 = true;
break;
}
}
ganTaData = new GanTaData();
if (!flag2)
{
if (flag3 && num2 < desktop.mXL.mListGanTas.Count)
{
for (int num5 = 0; num5 < desktop.mXL.mListGanTas[num2].mListGanTaData.Count; num5++)
{
ganTaData2 = desktop.mXL.mListGanTas[num2].mListGanTaData[num5];
if (ganTaData2 != null && ganTaData2.mID_GanTa.Equals(tGanTas.mListTGanTaData[num3].mID_GanTa))
{
ganTaData.CopyFrom_GanTaData(ganTaData2);
break;
}
}
}
}
else if (flag2)
{
ganTaData.CopyFrom_TGanTaData(tGanTaData);
if (flag2 && flag3 && num2 < desktop.mXL.mListGanTas.Count)
{
for (int num6 = 0; num6 < desktop.mXL.mListGanTas[num2].mListGanTaData.Count; num6++)
{
ganTaData2 = desktop.mXL.mListGanTas[num2].mListGanTaData[num6];
if (ganTaData2 != null && ganTaData2.mID_GanTa.Equals(tGanTaData.mID_GanTa))
{
ganTaData.mJYZCD_GanTa = ganTaData2.mJYZCD_GanTa;
ganTaData.mJDDZ_GanTa = ganTaData2.mJDDZ_GanTa;
ganTaData.mBLZJ_L_GanTa = ganTaData2.mBLZJ_L_GanTa;
ganTaData.mBLZJ_R_GanTa = ganTaData2.mBLZJ_R_GanTa;
break;
}
}
}
}
ganTaData.mBLQ_A_GanTa = "是";
ganTaData.mBLQ_B_GanTa = "是";
ganTaData.mBLQ_C_GanTa = "是";
taskData3.mTGanTas.Add1TGanTaData(ganTaData, taskData4.mIndex_CurrentCurve, taskData4.mCurveTimeHead, taskData4.mCurveTimeTail);
MyLog.AddLog($"mID_GanTa={ganTaData.mID_GanTa} mJYZCD_GanTa={ganTaData.mJYZCD_GanTa} mJDDZ_GanTa={ganTaData.mJDDZ_GanTa} mBLZJ_L_GanTa={ganTaData.mBLZJ_L_GanTa} mBLZJ_R_GanTa={ganTaData.mBLZJ_R_GanTa}");
TGanTaData.mNextID_static++;
}
}
}
for (int num7 = 0; num7 < 10; num7++)
{
if (desktop.mAddTaskData.mID_Task <= 0)
{
break;
}
Thread.Sleep(1000);
}
desktop.mAddTaskData.copyFrom_TaskData(mBLQ_3_TaskData);
desktop.MySendForm_TaskData(desktop, desktop.mAddTaskData);
MySet_Form_Title(this, "创建任务 " + mBLQ_3_TaskData.mName_Task);
}
catch (Exception ex)
{
MyLog.AddLog("FormLook3CuoShiTuiJian.cs MyThread_BLQ_computeTask() ex=" + ex.Message);
}
finally
{
mBusy = false;
}
}
private void dataGridView_Result_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (mBusy)
{
return;
}
mBusy = true;
try
{
int rowIndex = e.RowIndex;
if (rowIndex < 0)
{
mBusy = false;
return;
}
MyRefresh_Right(rowIndex);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
mBusy = false;
}
private void MyRefresh_Right(int _index)
{
try
{
string text = "1";
try
{
text = mList_SBH[_index].Trim();
}
catch (Exception)
{
text = "-";
}
string text2 = "";
TGanTaData tGanTaData = null;
TGanTas tGanTas = null;
CanShuFenJi canShuFenJi = null;
string text3 = "";
for (int i = 0; i < mLookTaskGroup.mListExTaskData.Count; i++)
{
if (mLookTaskGroup.mListExTaskData[i] == null || mLookTaskGroup.mListExTaskData[i].mTGanTas == null)
{
continue;
}
tGanTas = mLookTaskGroup.mListExTaskData[i].mTGanTas;
if (tGanTas == null || tGanTas.mListTGanTaData == null)
{
continue;
}
for (int j = 0; j < tGanTas.mListTGanTaData.Count; j++)
{
tGanTaData = tGanTas.mListTGanTaData[j];
if (!text.Equals($"{tGanTaData.mTaskIDstring}|{tGanTaData.mIndex__GanTa}"))
{
continue;
}
if (tGanTaData.m_ID_CanShuFenJi == 0)
{
text2 = "\r\n无分级数据";
textBox_ShowInform.Text = text2;
break;
}
int num = -1;
num = desktop.mAll_CanShuFenJi.MyFind(tGanTaData.m_ID_CanShuFenJi);
if (num <= 0)
{
text2 = "\r\n无分级数据";
}
else if (num > 0)
{
canShuFenJi = desktop.mAll_CanShuFenJi.mList_CanShuFenJi_all[num];
text3 = (canShuFenJi.mBLQ_need ? "需要安装避雷器" : "不需要安装避雷器");
text2 += $"绝缘子串长标准值:{canShuFenJi.mSTD_JYZ_mm}\r\n\r\n";
text2 += $"高度-标准值:{canShuFenJi.mSTD_height_m}\r\n\r\n";
}
textBox_ShowInform.Text = text2;
break;
}
}
}
catch (Exception ex2)
{
MyLog.AddLog("FormLook3CuoShiTuiJian.cs MyRefresh_Right() ex=" + ex2.Message);
}
}
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.textBox_ShowInform = new System.Windows.Forms.TextBox();
this.buttonExport = new System.Windows.Forms.Button();
this.buttonCancel = new System.Windows.Forms.Button();
this.panel_Result = new System.Windows.Forms.Panel();
this.dataGridView_Result = new System.Windows.Forms.DataGridView();
this.buttonBLQ_compute = new System.Windows.Forms.Button();
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.textBox_ShowInform);
this.panel_Form.Controls.Add(this.buttonBLQ_compute);
this.panel_Form.Controls.Add(this.buttonExport);
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(1476, 607);
this.panel_Form.TabIndex = 1;
this.textBox_ShowInform.Enabled = false;
this.textBox_ShowInform.Font = new System.Drawing.Font("宋体", 9f, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 134);
this.textBox_ShowInform.Location = new System.Drawing.Point(1317, 131);
this.textBox_ShowInform.Multiline = true;
this.textBox_ShowInform.Name = "textBox_ShowInform";
this.textBox_ShowInform.Size = new System.Drawing.Size(152, 315);
this.textBox_ShowInform.TabIndex = 4;
this.buttonExport.Font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134);
this.buttonExport.Location = new System.Drawing.Point(1373, 477);
this.buttonExport.Name = "buttonExport";
this.buttonExport.Size = new System.Drawing.Size(50, 29);
this.buttonExport.TabIndex = 3;
this.buttonExport.Text = "导出";
this.buttonExport.UseVisualStyleBackColor = true;
this.buttonExport.Click += new System.EventHandler(buttonExport_Click);
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(1373, 531);
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(1302, 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(1300, 581);
this.dataGridView_Result.TabIndex = 1;
this.dataGridView_Result.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(dataGridView_Result_CellClick);
this.buttonBLQ_compute.Font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134);
this.buttonBLQ_compute.Location = new System.Drawing.Point(1330, 73);
this.buttonBLQ_compute.Name = "buttonBLQ_compute";
this.buttonBLQ_compute.Size = new System.Drawing.Size(122, 29);
this.buttonBLQ_compute.TabIndex = 3;
this.buttonBLQ_compute.Text = "加装避雷器计算";
this.buttonBLQ_compute.UseVisualStyleBackColor = true;
this.buttonBLQ_compute.Click += new System.EventHandler(buttonBLQ_compute_Click);
base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 12f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(1476, 607);
base.Controls.Add(this.panel_Form);
base.Name = "FormLook3CuoShiTuiJian";
base.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "FormLook3CuoShiTuiJian";
base.FormClosing += new System.Windows.Forms.FormClosingEventHandler(FormLook3CuoShiTuiJian_FormClosing);
base.Load += new System.EventHandler(FormLook3CuoShiTuiJian_Load);
this.panel_Form.ResumeLayout(false);
this.panel_Form.PerformLayout();
this.panel_Result.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)this.dataGridView_Result).EndInit();
base.ResumeLayout(false);
}
}