From 05946b151e7010b2b1a851892152e6b5d34151b3 Mon Sep 17 00:00:00 2001
From: lx <ex_lixiang17@cosl.com.cn>
Date: 星期五, 11 七月 2025 17:30:52 +0800
Subject: [PATCH] update
---
ErrorAnalysis.UI/FrmMain.cs | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 107 insertions(+), 3 deletions(-)
diff --git a/ErrorAnalysis.UI/FrmMain.cs b/ErrorAnalysis.UI/FrmMain.cs
index cef7132..d6a053c 100644
--- a/ErrorAnalysis.UI/FrmMain.cs
+++ b/ErrorAnalysis.UI/FrmMain.cs
@@ -1,11 +1,14 @@
using ErrorAnalysis.Repository;
+using ErrorAnalysis.Repository.Entity;
+using static System.Windows.Forms.VisualStyles.VisualStyleElement.Menu;
namespace ErrorAnalysis.UI
{
public partial class FrmMain : Form
{
private string? _connectionString;
-
+ private List<COModelTable> _models;
+ private COModelTable? _curModel;
public FrmMain()
{
InitializeComponent();
@@ -14,8 +17,6 @@
{
var modelRepository = new COModelRepository(_connectionString);
var models = modelRepository.GetCOModels();
-
-
}
private void rdoMode_CheckedChanged(object sender, EventArgs e)
@@ -42,8 +43,33 @@
if (result == DialogResult.OK)
{
+ pbLoadDB.Show();
+ pbLoadDB.Value = 0;
txtDataPath.Text = fileDlg.FileName;
+ txtToolType.Text = fileDlg.SafeFileName.Replace("DB.db", "").Replace("Mcnp", "");
_connectionString = $"Data Source={fileDlg.FileName};";
+ var modelRepository = new COModelRepository(_connectionString);
+ pbLoadDB.Value = 50;
+ Task.Run(() =>
+ {
+ _models = modelRepository.GetCOModels();
+ BeginInvoke(new System.Action(() =>
+ {
+ pbLoadDB.Value = 80;
+ InitInputControl();
+ }));
+
+ BeginInvoke(new System.Action(() =>
+ {
+ pbLoadDB.Value = 100;
+ }));
+ Thread.Sleep(1000);
+ BeginInvoke(new System.Action(() =>
+ {
+ pbLoadDB.Hide();
+ }));
+
+ });
}
}
@@ -51,5 +77,83 @@
{
cmbSpeedUnit.SelectedIndex = 0;
}
+
+ private void InitInputControl()
+ {
+ foreach (var item in gpBorehole.Controls)
+ if (item is ComboBox cmb)
+ cmb.Items.Clear();
+
+ if (_models != null)
+ {
+ cmbBit.Items.AddRange(_models.Select(m => m.BIT).Distinct().ToArray());
+ }
+ }
+
+ private void btnSelectBore_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrEmpty(_connectionString))
+ {
+ MessageBox.Show("Please choose data source first!");
+ return;
+ }
+ }
+
+ private void borehole_cmb_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ var control = (sender as ComboBox);
+
+ var parentControl = control.Parent;
+ var allCmb = parentControl.Controls.OfType<Control>().Where(c => c is ComboBox).Select(c => c as ComboBox).ToList();
+ if (control.Name == "cmbBit")
+ {
+ foreach (var item in allCmb)
+ {
+ if (item.Name != "cmbBit")
+ {
+ item.Items.Clear();
+ }
+ }
+ }
+ else if (control.Name.Contains("OD"))
+ {
+ allCmb.FirstOrDefault(a => a.Name == control.Name.Replace("OD", "ID")).Items.Clear();
+ }
+ else if (control.Name == "cmbCasingID")
+ {
+ cmbScreenOD.Items.Clear();
+ cmbScreenID.Items.Clear();
+ cmbTubeOD.Items.Clear();
+ cmbTubeID.Items.Clear();
+ }
+ var selectedCmbs = allCmb.Where(c => c.SelectedIndex != -1).ToList();
+ var unSelectedCmbs = allCmb.Where(c => c.SelectedIndex == -1).ToList();
+ var selectedModels = _models;
+ var modelType = _models[0].GetType();
+
+ foreach (var cmb in selectedCmbs)
+ {
+ selectedModels = selectedModels.Where(c => modelType.GetProperty(cmb.Tag.ToString()).GetValue(c).ToString() == cmb.Text).ToList();
+ }
+
+ foreach (var cmb in unSelectedCmbs)
+ {
+ cmb.Items.Clear();
+ cmb.Enabled = true;
+ var currentItems = selectedModels.Where(c => modelType.GetProperty(cmb.Tag.ToString()).GetValue(c).ToString() != "0").Select(c => modelType.GetProperty(cmb.Tag.ToString()).GetValue(c).ToString()).Distinct().ToArray();
+ if (currentItems.Length == 0)
+ cmb.Enabled = false;
+
+
+ cmb.Items.AddRange(currentItems);
+ if (currentItems.Length == 1)
+ cmb.Text = currentItems[0];
+ }
+
+ if (selectedModels.Count == 1)
+ {
+ _curModel = selectedModels[0];
+ }
+ }
}
}
--
Gitblit v1.9.3