📄 form1.cs
字号:
private void UpdateButtonState()
{
//变电站基本信息前后翻按钮
if (bdz_baseBindingSource.Position <= 0)
bdz_pre.Enabled = false;
else
bdz_pre.Enabled = true;
if (bdz_baseBindingSource.Position >= bdz_baseBindingSource.Count - 1)
bdz_next.Enabled = false;
else
bdz_next.Enabled = true;
//支线基本信息前后翻按钮
if (subline_baseBindingSource.Position <= 0)
sub_pre.Enabled = false;
else
sub_pre.Enabled = true;
if (subline_baseBindingSource.Position >= subline_baseBindingSource.Count - 1)
sub_next.Enabled = false;
else
sub_next.Enabled = true;
//交叉跨越前后翻按钮
if (line_crossBindingSource.Position <= 0)
lc_pre.Enabled = false;
else
lc_pre.Enabled = true;
if (line_crossBindingSource.Position >= line_crossBindingSource.Count - 1)
lc_next.Enabled = false;
else
lc_next.Enabled = true;
//杆塔前后翻按钮
if (pole_towerBindingSource.Position <= 0)
gt_pre.Enabled = false;
else
gt_pre.Enabled = true;
if (pole_towerBindingSource.Position >= pole_towerBindingSource.Count - 1)
gt_next.Enabled = false;
else
gt_next.Enabled = true;
}
//数据导入功能的实现
private void open_bdz_base_file_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() != DialogResult.Cancel)
{
bdzbasefilepath.Text = ofd.FileName;
}
}
private void open_linebase_file_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() != DialogResult.Cancel)
{
linebasefilepath.Text = ofd.FileName;
}
}
private void open_code_table_file_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() != DialogResult.Cancel)
{
codetablefilepath.Text = ofd.FileName;
}
}
private bool IsFilePathExists(string filepath)
{
if (filepath.Length <= 0)
{
MessageBox.Show("请选择文件之后点击‘开始导入’按钮");
return false;
}
if (!File.Exists(filepath))
{
MessageBox.Show("找不到文件" + filepath + ",请检查确认后重新导入!");
return false;
}
return true;
}
private void import_bdz_info_Click(object sender, EventArgs e)
{
//文件路径
string filepath = bdzbasefilepath.Text;
if(!IsFilePathExists(filepath))
return;
if (filepath.Substring(filepath.IndexOf('.'), 4).CompareTo(".xml") == 0)
{
//MessageBox.Show(filepath.Substring(filepath.IndexOf('.')+1, 3));
ImprotBdzBaseDataFromXmlFile(filepath);
}
}
private void import_linebase_info_Click(object sender, EventArgs e)
{
//检查文件路径
string filepath = linebasefilepath.Text;
if (!IsFilePathExists(filepath))
return;
if (filepath.Substring(filepath.IndexOf('.'), 4).CompareTo(".xml") == 0)
{
ImprotLineBaseDataFromXmlFile(filepath);
}
}
private void import_code_table_info_Click(object sender, EventArgs e)
{
//检查文件路径
string filepath = codetablefilepath.Text;
if (!IsFilePathExists(filepath))
return;
if (filepath.Substring(filepath.IndexOf('.'), 4).CompareTo(".xml") == 0)
{
ImprotCodeTableDataFromXmlFile(filepath);
}
}
private void EnableControl(TextBox tb, Button bt1, Button bt2, bool bEnable)
{
tb.Enabled = bEnable;
bt1.Enabled = bEnable;
bt2.Enabled = bEnable;
}
private void IsEnableBdzImport_CheckStateChanged(object sender, EventArgs e)
{
if (IsEnableBdzImport.Checked)
{
EnableControl(bdzbasefilepath, open_bdz_base_file, import_bdz_info, true);
}
else
{
EnableControl(bdzbasefilepath, open_bdz_base_file, import_bdz_info, false);
}
}
private void IsEnableLineInfoImport_CheckStateChanged(object sender, EventArgs e)
{
if (IsEnableLineInfoImport.Checked)
{
EnableControl(linebasefilepath, open_linebase_file, import_linebase_info, true);
}
else
{
EnableControl(linebasefilepath, open_linebase_file, import_linebase_info, false);
}
}
private void IsEnableCodeInfoImport_CheckStateChanged(object sender, EventArgs e)
{
if (IsEnableCodeInfoImport.Checked)
{
EnableControl(codetablefilepath, open_code_table_file, import_code_table_info, true);
}
else
{
EnableControl(codetablefilepath, open_code_table_file, import_code_table_info, false);
}
}
/// <summary>
/// 导入xml文件格式的变电站基本信息
/// </summary>
/// <param name="strFilePath">xml文件路径</param>
private void ImprotBdzBaseDataFromXmlFile(string strFilePath)
{
//记录集,用于读取XML文件
DataSet ds = new DataSet();
DataTableReader dtr;
string strSql = "";
//读取xml数据到数据集
ds.ReadXml(strFilePath);
dtr = ds.CreateDataReader();
//先清空数据
strSql = "delete from bdz_base";
ExcuteSql(strSql);
//导入
while (dtr.Read())
{
strSql = "insert into bdz_base(bdz_code,bdz_name) values('" + dtr.GetValue(1).ToString() + "','" + dtr.GetValue(2).ToString() + "')";
ExcuteSql(strSql);
}
//this.bdz_baseTableAdapter.Fill(qxpdaDataSet.bdz_base);
this.bdz_baseBindingSource.ResetBindings(false);
MessageBox.Show("变电站基本信息导入完毕!");
}
/// <summary>
/// 导入xml文件格式的代码表基本信息
/// </summary>
/// <param name="strFilePath"></param>
private void ImprotCodeTableDataFromXmlFile(string strFilePath)
{
//记录集,用于读取XML文件
DataSet ds = new DataSet();
DataTableReader dtr;
string strSql = "";
//先已有清空数据
strSql = "delete from c_code";
ExcuteSql(strSql);
//读取xml数据到记录集中
ds.ReadXml(strFilePath);
dtr = ds.CreateDataReader();
//导入
while (dtr.Read())
{
strSql = "insert into c_code(code,name,code_lb) values('" + dtr.GetValue(1).ToString() + "','" + dtr.GetValue(2).ToString() + "','" + dtr.GetValue(3).ToString() + "')";
ExcuteSql(strSql);
}
MessageBox.Show("代码表基本信息导入完毕!");
}
/// <summary>
/// 导入xml文件格式的干线线路基本信息
/// </summary>
/// <param name="strFilePath"></param>
private void ImprotLineBaseDataFromXmlFile(string strFilePath)
{
//记录集,用于读取XML文件
DataSet ds = new DataSet();
DataTableReader dtr;
string strSql = "";
//先已有清空数据
strSql = "delete from line_base";
ExcuteSql(strSql);
//读取xml数据到记录集中
ds.ReadXml(strFilePath);
dtr = ds.CreateDataReader();
//导入
while (dtr.Read())
{
strSql = "insert into line_base(bdz_code,line_code,line_name) values('" + dtr.GetValue(1).ToString() + "','" + dtr.GetValue(2).ToString() + "','" + dtr.GetValue(3).ToString() + "')";
ExcuteSql(strSql);
}
MessageBox.Show("干线线路基本信息导入完毕!");
}
//导出数据的处理
private void output_xmlfile_Click(object sender, EventArgs e)
{
string strSql = "";
strSql = "select * from bdz_base order by bdz_code";
if (!OutputDataToXmlFile(strSql, "变电站基本信息.xml"))
{
MessageBox.Show("变电站基本信息导出失败!请检查后重试!");
}
strSql = "select * from pole_tower order by id";
if (!OutputDataToXmlFile(strSql, "杆塔基本信息.xml"))
{
MessageBox.Show("杆塔基本信息导出失败!请检查后重试!");
}
strSql = "select * from line_cross order by lc_code";
if (!OutputDataToXmlFile(strSql, "架空线基本信息.xml"))
{
MessageBox.Show("架空线基本信息导出失败!请检查后重试!");
}
MessageBox.Show("导出XML文件完毕!");
}
/// <summary>
/// 导出xml格式数据
/// </summary>
/// <param name="strSql">提取要导出数据的sql语句</param>
/// <param name="filename">导出的文件名</param>
/// <returns></returns>
private bool OutputDataToXmlFile(string strSql, string strFileName)
{
DataTable dt = new DataTable();
SqlCeDataAdapter sda = new SqlCeDataAdapter(strSql, sqlconn);
//默认导出到”我的文档“目录下的”GIS数据“文件夹
string strFileDirectory = @"\My Documents\GIS数据\";
if (!Directory.Exists(strFileDirectory))
{
Directory.CreateDirectory(strFileDirectory);
}
sda.Fill(dt);
if (dt.Rows.Count > 0)
{
dt.WriteXml(strFileDirectory + strFileName);
return true;
}
else
{
return false;
}
}
private void button6_Click(object sender, EventArgs e)
{
File.Copy(@"\Program Files\qxpda\code.xml", @"\My Documents\code.xml");
File.Copy(@"\Program Files\qxpda\bdzbase.xml", @"\My Documents\bdzbase.xml");
}
//数据合法性校验
private bool IsBdzDataReady()
{
if (bdz_bdz_name.SelectedValue == null)
{
MessageBox.Show("请选择变电站选项!");
return false;
}
if (bdz_voltage_level.SelectedValue == null)
{
MessageBox.Show("请选择电压等级选项!");
return false;
}
if (bdz_x1.TextLength < 0 || bdz_y1.TextLength < 0)
{
MessageBox.Show("第一点坐标不能为空,请重新获取!");
return false;
}
if (bdz_x2.TextLength < 0 || bdz_y2.TextLength < 0)
{
MessageBox.Show("第二点坐标不能为空,请重新获取!");
return false;
}
if (bdz_x3.TextLength < 0 || bdz_y3.TextLength < 0)
{
MessageBox.Show("第三点坐标不能为空,请重新获取!");
return false;
}
if (bdz_x4.TextLength < 0 || bdz_y4.TextLength < 0)
{
MessageBox.Show("第四点坐标不能为空,请重新获取!");
return false;
}
return true;
}
private bool IsSublineBaseDataReady()
{
if (sub_bdz_name.SelectedValue==null)
{
MessageBox.Show("请选择变电站选项!");
return false;
}
if (sub_line_name.SelectedValue==null)
{
MessageBox.Show("请选择线路选项!");
return false;
}
if (sub_subline_name.TextLength < 4)
{
MessageBox.Show("支路名称太简单,请尽量使用规范的线路名称!");
return false;
}
return true;
}
private enum OperType
{
Insert = 0,
Update = 1,
}
private bool IsPoleTowerBaseDataReady(OperType ot)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -