Files
fl-knowledge/LP/Form4_FengXianPingGu.cs
T

645 lines
18 KiB
C#

using System;
using System.ComponentModel;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
namespace LP;
public class Form4_FengXianPingGu : Form
{
private delegate void delegateFormSetTitle(Form form, string value);
private delegate void delegateComboBoxItemsClear(ComboBox comboBox);
private delegate void delegateComboBoxAdd(ComboBox comboBox, string value);
private delegate void delegateComboBoxSetSelectedIndex(ComboBox comboBox, int value);
private delegate void delegateListBoxItemsClear(ListBox listBox);
private delegate void delegateListBoxAdd(ListBox listBox, string value);
private delegate void delegateListBoxSetSelectedIndex(ListBox listBox, int value);
private delegate void delegateTextBoxSetText(TextBox textBox, string value);
private delegate void delegateButtonEnabled(Button button, bool value);
private delegate void delegateFormHide(Form form);
public FormDesktop desktop = null;
private bool mAfterInit = false;
public string mTitle = "";
public XianLuData mXianLuData = null;
private int mXianLuID = 0;
public string mNameXianLu = "";
public int mIndexControl_XianLuName = -1;
public int mIndexData_ListXianLuData = -1;
private bool mReady_XianLuName = false;
public TaskData mTaskData = null;
public string mNameTask = "";
public int mIndexControl_TaskName_PuTongJiSuan = -1;
private string mTaskName_PuTongJiSuan = "";
private TaskData mPuTongJiSuan_TaskData = null;
private bool mBusy_ButtonOK = false;
private bool mBusy_ListBox_TaskName_PuTongJiSuan = false;
private IContainer components = null;
private ComboBox comboBox_TaskName_PuTongJiSuan;
private ComboBox comboBox_XianLuName;
private Label label4;
private Label label1;
private Button buttonCancel;
private Button buttonOK;
public bool Ready_XianLuName
{
get
{
return mReady_XianLuName;
}
set
{
mReady_XianLuName = value;
}
}
public string TaskName_PuTongJiSuan
{
get
{
return mTaskName_PuTongJiSuan;
}
set
{
mTaskName_PuTongJiSuan = value;
mNameTask = "风险评估-" + value;
if (string.IsNullOrEmpty(value) || mPuTongJiSuan_TaskData == null)
{
return;
}
for (int i = 0; i < desktop.mTask.mListDetails.Count; i++)
{
if (value.Equals(desktop.mTask.mListDetails[i].mTaskData.mName_Task))
{
mPuTongJiSuan_TaskData.copyFrom_TaskData(desktop.mTask.mListDetails[i].mTaskData);
break;
}
}
}
}
public bool Busy_ButtonOK
{
get
{
return mBusy_ButtonOK;
}
set
{
mBusy_ButtonOK = value;
MyButtonEnabled(buttonCancel, !value);
}
}
public bool Busy_ComboBox_TaskName_PuTongJiSuan
{
get
{
return mBusy_ListBox_TaskName_PuTongJiSuan;
}
set
{
mBusy_ListBox_TaskName_PuTongJiSuan = value;
}
}
public Form4_FengXianPingGu()
{
InitializeComponent();
if (mTaskData == null)
{
mTaskData = new TaskData();
}
if (mXianLuData == null)
{
mXianLuData = new XianLuData();
}
if (mPuTongJiSuan_TaskData == null)
{
mPuTongJiSuan_TaskData = new TaskData();
}
mNameTask = "风险评估";
mTitle = "风险评估";
mIndexControl_XianLuName = -1;
mIndexData_ListXianLuData = -1;
mIndexControl_TaskName_PuTongJiSuan = -1;
}
private void Form4_FengXianPingGu_Load(object sender, EventArgs e)
{
mAfterInit = false;
Busy_ButtonOK = false;
MyFormSetTitle(this, "");
Ready_XianLuName = false;
base.DialogResult = DialogResult.None;
MyInput_TaskData();
MyInit_ComboBox_XianLuName();
MyInit_ComboBox_TaskName_PuTongJiSuan();
mAfterInit = true;
}
private void Form4_FengXianPingGu_FormClosing(object sender, FormClosingEventArgs e)
{
}
public void MyInput_TaskData()
{
mTaskData.copyFrom_TaskData(desktop.m4TaskData_FengXianPingGu);
}
public void MyOutput_TaskData()
{
desktop.m4TaskData_FengXianPingGu.copyFrom_TaskData(mTaskData);
}
private void MyInit_ComboBox_XianLuName()
{
MyComboBoxItemsClear(comboBox_XianLuName);
if (desktop.mXL == null || desktop.mXL.mListXianLuData == null)
{
return;
}
for (int i = 0; i < desktop.mXL.mListXianLuData.Count; i++)
{
MyComboBoxAdd(comboBox_XianLuName, desktop.mXL.mListXianLuData[i].mName_XianLu);
}
if (mIndexControl_XianLuName < 0 || mIndexControl_XianLuName >= comboBox_XianLuName.Items.Count)
{
mIndexControl_XianLuName = 0;
}
if (mIndexControl_XianLuName >= 0 && mIndexControl_XianLuName < comboBox_XianLuName.Items.Count)
{
MyComboBoxSetSelectedIndex(comboBox_XianLuName, mIndexControl_XianLuName);
mNameXianLu = comboBox_XianLuName.SelectedItem.ToString().Trim();
for (int j = 0; j < desktop.mXL.mListXianLuData.Count; j++)
{
if (mNameXianLu.Equals(desktop.mXL.mListXianLuData[j].mName_XianLu))
{
mXianLuData.CopyFrom_XianLuData(desktop.mXL.mListXianLuData[j]);
mIndexData_ListXianLuData = j;
mXianLuID = mXianLuData.mID_XianLu;
break;
}
}
Ready_XianLuName = true;
}
else
{
mNameXianLu = "";
mXianLuID = 0;
Ready_XianLuName = false;
}
}
private void MyInit_ComboBox_TaskName_PuTongJiSuan()
{
Busy_ComboBox_TaskName_PuTongJiSuan = true;
MyComboBoxItemsClear(comboBox_TaskName_PuTongJiSuan);
for (int i = 0; i < desktop.mTask.mListDetails.Count; i++)
{
if (desktop.mTask.mListDetails[i].mTaskData.mXianLuName_Task.Equals(mNameXianLu) && desktop.mTask.mListDetails[i].mTaskData.Permit_FengXianPingGu() && desktop.mTask.mListDetails[i].mTaskData.mName_Task.IndexOf("风险评估") < 0 && desktop.mTask.mListDetails[i].mTaskData.mName_Task.IndexOf("措施推荐") < 0)
{
MyComboBoxAdd(comboBox_TaskName_PuTongJiSuan, desktop.mTask.mListDetails[i].mTaskData.mName_Task);
}
}
if (mIndexControl_TaskName_PuTongJiSuan < 0 || mIndexControl_TaskName_PuTongJiSuan >= comboBox_TaskName_PuTongJiSuan.Items.Count)
{
mIndexControl_TaskName_PuTongJiSuan = 0;
}
if (mIndexControl_TaskName_PuTongJiSuan >= 0 && mIndexControl_TaskName_PuTongJiSuan < comboBox_TaskName_PuTongJiSuan.Items.Count)
{
MyComboBoxSetSelectedIndex(comboBox_TaskName_PuTongJiSuan, mIndexControl_TaskName_PuTongJiSuan);
TaskName_PuTongJiSuan = comboBox_TaskName_PuTongJiSuan.SelectedItem.ToString();
}
else
{
TaskName_PuTongJiSuan = "";
}
Busy_ComboBox_TaskName_PuTongJiSuan = false;
}
public void Destroy()
{
mPuTongJiSuan_TaskData.Destroy();
mTaskData.Destroy();
mXianLuData.Destroy();
}
private void buttonOK_Click(object sender, EventArgs e)
{
MyFormSetTitle(this, "");
if (Busy_ButtonOK)
{
return;
}
Busy_ButtonOK = true;
if (!Ready_XianLuName)
{
if (comboBox_XianLuName.Items.Count > 0)
{
MyFormSetTitle(this, "请选择线路,然后点击按钮“" + buttonOK.Text + "”。");
}
if (comboBox_XianLuName.Items.Count == 0)
{
MyFormSetTitle(this, "缺少线路数据。 请点击按钮“" + buttonCancel.Text + "”,退出对话框。");
}
comboBox_XianLuName.Focus();
Busy_ButtonOK = false;
return;
}
if (string.IsNullOrEmpty(TaskName_PuTongJiSuan))
{
if (comboBox_TaskName_PuTongJiSuan.Items.Count == 0)
{
MyFormSetTitle(this, "!无匹配结果!防雷计算。");
Busy_ButtonOK = false;
buttonCancel.Focus();
}
else
{
MyFormSetTitle(this, "请选择已有结果的防雷计算任务,然后点击“" + buttonOK.Text + "”。");
comboBox_TaskName_PuTongJiSuan.Focus();
Busy_ButtonOK = false;
}
return;
}
switch (desktop.mTask.MyCheckTaskName(mNameTask))
{
case 1:
MyFormSetTitle(this, "任务名称空白!");
buttonCancel.Focus();
Busy_ButtonOK = false;
return;
case 2:
MyFormSetTitle(this, "评估任务已存在!请点击“" + buttonCancel.Text + "”。");
buttonCancel.Focus();
Busy_ButtonOK = false;
return;
}
if (!mPuTongJiSuan_TaskData.Permit_FengXianPingGu())
{
MyFormSetTitle(this, "重新完成普通计算。");
comboBox_TaskName_PuTongJiSuan.Focus();
Busy_ButtonOK = false;
}
else
{
Thread thread = new Thread(MyThread_ButtonOK);
thread.Start();
}
}
private bool IsRepeatTask()
{
bool result = false;
for (int i = 0; i < desktop.mTask.mListDetails.Count; i++)
{
if (mNameTask.Equals(desktop.mTask.mListDetails[i].mTaskData.mName_Task))
{
result = true;
break;
}
}
return result;
}
private void MyRefresh_TaskData()
{
if (mPuTongJiSuan_TaskData != null)
{
mTaskData.copyFrom_TaskData(mPuTongJiSuan_TaskData);
}
mTaskData.mID_Task = TaskData.mNextID_static;
mTaskData.mTypeCode_Task = 2;
mTaskData.mName_Task = mNameTask;
mTaskData.mXianLuID_Task = mXianLuData.mID_XianLu;
mTaskData.mXianLuName_Task = mXianLuData.mName_XianLu;
mTaskData.mXianLuJLZL_Task = mXianLuData.mJLZL_XianLu;
mTaskData.mDYDJ_Task = mXianLuData.mDYDJ_XianLu;
mTaskData.Finished2_FengXianPingGu = 0;
}
private void MyThread_ButtonOK()
{
Busy_ButtonOK = false;
MyRefresh_TaskData();
for (int i = 0; i < 10; i++)
{
if (desktop.m4TaskData_FengXianPingGu.mID_Task < 0)
{
break;
}
Thread.Sleep(1000);
}
desktop.m4TaskData_FengXianPingGu.copyFrom_TaskData(mTaskData);
desktop.MySendForm_TaskData(desktop, desktop.m4TaskData_FengXianPingGu);
base.DialogResult = DialogResult.OK;
MyFormHide(this);
}
private void buttonCancel_Click(object sender, EventArgs e)
{
MyFormSetTitle(this, "");
MyButtonEnabled(buttonCancel, value: false);
Thread thread = new Thread(MyCancel);
thread.Start();
}
private void MyCancel()
{
MyFormSetTitle(this, "取消—");
MyFormSetTitle(this, "取消———");
base.DialogResult = DialogResult.Cancel;
MyFormHide(this);
}
private void comboBox_XianLuName_SelectedIndexChanged(object sender, EventArgs e)
{
if (!mAfterInit || Busy_ButtonOK)
{
return;
}
int selectedIndex = ((ComboBox)sender).SelectedIndex;
mIndexControl_XianLuName = selectedIndex;
mNameXianLu = ((ComboBox)sender).SelectedItem.ToString().Trim();
for (int i = 0; i < desktop.mXL.mListXianLuData.Count; i++)
{
if (mNameXianLu.Equals(desktop.mXL.mListXianLuData[i].mName_XianLu))
{
mIndexData_ListXianLuData = i;
mXianLuData.CopyFrom_XianLuData(desktop.mXL.mListXianLuData[i]);
mXianLuID = mXianLuData.mID_XianLu;
Ready_XianLuName = true;
break;
}
}
MyInit_ComboBox_TaskName_PuTongJiSuan();
}
private void comboBox_TaskName_PuTongJiSuan_SelectedIndexChanged(object sender, EventArgs e)
{
if (mAfterInit && !Busy_ButtonOK && !Busy_ComboBox_TaskName_PuTongJiSuan)
{
Busy_ComboBox_TaskName_PuTongJiSuan = true;
int selectedIndex = ((ComboBox)sender).SelectedIndex;
mIndexControl_TaskName_PuTongJiSuan = selectedIndex;
TaskName_PuTongJiSuan = ((ComboBox)sender).SelectedItem.ToString();
Busy_ComboBox_TaskName_PuTongJiSuan = false;
}
}
public void MyFormSetTitle(Form form, string value)
{
if (form.InvokeRequired)
{
delegateFormSetTitle method = MyFormSetTitle;
form.Invoke(method, form, value);
return;
}
if (string.IsNullOrEmpty(value))
{
form.Text = mTitle;
}
if (!string.IsNullOrEmpty(value))
{
form.Text = mTitle + " " + value;
}
}
public void MyComboBoxItemsClear(ComboBox comboBox)
{
if (comboBox.InvokeRequired)
{
delegateComboBoxItemsClear method = MyComboBoxItemsClear;
comboBox.Invoke(method, comboBox);
}
else
{
comboBox.Items.Clear();
}
}
public void MyComboBoxAdd(ComboBox comboBox, string value)
{
if (comboBox.InvokeRequired)
{
delegateComboBoxAdd method = MyComboBoxAdd;
comboBox.Invoke(method, comboBox, value);
}
else if (!string.IsNullOrEmpty(value))
{
comboBox.Items.Add(value);
}
}
public void MyComboBoxSetSelectedIndex(ComboBox comboBox, int value)
{
if (comboBox.InvokeRequired)
{
delegateComboBoxSetSelectedIndex method = MyComboBoxSetSelectedIndex;
comboBox.Invoke(method, comboBox, value);
}
else if (value >= 0 && value < comboBox.Items.Count)
{
comboBox.SelectedIndex = value;
}
}
public void MyListBoxItemsClear(ListBox listBox)
{
if (listBox.InvokeRequired)
{
delegateListBoxItemsClear method = MyListBoxItemsClear;
listBox.Invoke(method, listBox);
}
else
{
listBox.Items.Clear();
}
}
public void MyListBoxAdd(ListBox listBox, string value)
{
if (listBox.InvokeRequired)
{
delegateListBoxAdd method = MyListBoxAdd;
listBox.Invoke(method, listBox, value);
}
else if (!string.IsNullOrEmpty(value))
{
listBox.Items.Add(value);
}
}
public void MyListBoxSetSelectedIndex(ListBox listBox, int value)
{
if (listBox.InvokeRequired)
{
delegateListBoxSetSelectedIndex method = MyListBoxSetSelectedIndex;
listBox.Invoke(method, listBox, value);
}
else if (value >= 0 && value < listBox.Items.Count)
{
listBox.SelectedIndex = value;
}
}
public void MyTextBoxSetText(TextBox textBox, string value)
{
if (textBox.InvokeRequired)
{
delegateTextBoxSetText method = MyTextBoxSetText;
textBox.Invoke(method, textBox, value);
}
else
{
textBox.Text = value;
}
}
public void MyButtonEnabled(Button button, bool value)
{
if (button.InvokeRequired)
{
delegateButtonEnabled method = MyButtonEnabled;
button.Invoke(method, button, value);
}
else
{
button.Enabled = 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.comboBox_TaskName_PuTongJiSuan = new System.Windows.Forms.ComboBox();
this.comboBox_XianLuName = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.buttonCancel = new System.Windows.Forms.Button();
this.buttonOK = new System.Windows.Forms.Button();
base.SuspendLayout();
this.comboBox_TaskName_PuTongJiSuan.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox_TaskName_PuTongJiSuan.Font = new System.Drawing.Font("宋体", 12f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134);
this.comboBox_TaskName_PuTongJiSuan.FormattingEnabled = true;
this.comboBox_TaskName_PuTongJiSuan.Location = new System.Drawing.Point(25, 89);
this.comboBox_TaskName_PuTongJiSuan.Name = "comboBox_TaskName_PuTongJiSuan";
this.comboBox_TaskName_PuTongJiSuan.Size = new System.Drawing.Size(356, 20);
this.comboBox_TaskName_PuTongJiSuan.TabIndex = 64;
this.comboBox_TaskName_PuTongJiSuan.SelectedIndexChanged += new System.EventHandler(comboBox_TaskName_PuTongJiSuan_SelectedIndexChanged);
this.comboBox_XianLuName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox_XianLuName.Font = new System.Drawing.Font("宋体", 12f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134);
this.comboBox_XianLuName.FormattingEnabled = true;
this.comboBox_XianLuName.Location = new System.Drawing.Point(25, 32);
this.comboBox_XianLuName.Name = "comboBox_XianLuName";
this.comboBox_XianLuName.Size = new System.Drawing.Size(356, 20);
this.comboBox_XianLuName.TabIndex = 65;
this.comboBox_XianLuName.SelectedIndexChanged += new System.EventHandler(comboBox_XianLuName_SelectedIndexChanged);
this.label4.AutoSize = true;
this.label4.Font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134);
this.label4.Location = new System.Drawing.Point(25, 72);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(91, 14);
this.label4.TabIndex = 61;
this.label4.Text = "防雷计算任务";
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134);
this.label1.Location = new System.Drawing.Point(25, 15);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(63, 14);
this.label1.TabIndex = 63;
this.label1.Text = "线路名称";
this.buttonCancel.Location = new System.Drawing.Point(295, 133);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(86, 28);
this.buttonCancel.TabIndex = 68;
this.buttonCancel.Text = "取消";
this.buttonCancel.UseVisualStyleBackColor = true;
this.buttonCancel.Click += new System.EventHandler(buttonCancel_Click);
this.buttonOK.Location = new System.Drawing.Point(187, 133);
this.buttonOK.Name = "buttonOK";
this.buttonOK.Size = new System.Drawing.Size(86, 28);
this.buttonOK.TabIndex = 67;
this.buttonOK.Text = "确定";
this.buttonOK.UseVisualStyleBackColor = true;
this.buttonOK.Click += new System.EventHandler(buttonOK_Click);
base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 12f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(407, 173);
base.Controls.Add(this.buttonCancel);
base.Controls.Add(this.buttonOK);
base.Controls.Add(this.comboBox_TaskName_PuTongJiSuan);
base.Controls.Add(this.comboBox_XianLuName);
base.Controls.Add(this.label4);
base.Controls.Add(this.label1);
base.Name = "Form4_FengXianPingGu";
base.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Form4_FengXianPingGu";
base.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form4_FengXianPingGu_FormClosing);
base.Load += new System.EventHandler(Form4_FengXianPingGu_Load);
base.ResumeLayout(false);
base.PerformLayout();
}
}