using KlassenBIB; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using SanShared; using System.Collections; using Database; namespace SanSystem { /// /// /// public partial class frmObjektEdit : Form { Inspektionsobjekt inspektionsobjekt = null; private bool neu = false; /// /// /// /// /// Wenn es sich um ein neues Objekt handelt public frmObjektEdit(Inspektionsobjekt inspektion, bool neu = false) { InitializeComponent(); this.neu = neu; btn_add_san.Text = Global.Instance.language.Labels["add_san"]; btn_close.Text = Global.Instance.language.Labels["btn_close"]; this.inspektionsobjekt = inspektion; dgv_schadenkuerzel.DataSource = inspektion.Schadenskuerzeln; foreach(Sanierung san in inspektion.Sanierung) { TabPage tab = new TabPage(); if(san is InlinerSanierung) { tab.Text = "InlinerSanierung"; UCInliner uCInliner = new UCInliner(san as InlinerSanierung); uCInliner.Dock = DockStyle.Fill; tab.Controls.Add(uCInliner); tabControl1.TabPages.Add(tab); } else if(san is SchachtAnbindung) { tab.Text = "Schachtanbindung"; UCSchachtanbindung uCSchachtanbindung = new UCSchachtanbindung(san as SchachtAnbindung); uCSchachtanbindung.Dock = DockStyle.Fill; tab.Controls.Add(uCSchachtanbindung); tabControl1.TabPages.Add(tab); } } if (Environment.MachineName.Equals("MEVES-LT")) { this.Width = 1512; this.Height = 907; } } private void frmObjektEdit_Load(object sender, EventArgs e) { txt_objekt_name.Enabled = false; txt_laenge_schacht.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Schachtlaenge")); txt_objekt_name.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Objektbezeichnung")); txt_ort.DataBindings.Add(new Binding("Text", inspektionsobjekt, "OrtName")); txt_punkt_von.DataBindings.Add(new Binding("Text", inspektionsobjekt, "VonPunkt")); txt_punkt_bis.DataBindings.Add(new Binding("Text", inspektionsobjekt, "BisPunkt")); txt_strasse.DataBindings.Add(new Binding("Text", inspektionsobjekt, "StrasseName")); txt_hausnummer.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Hausnummer")); cb_material.DataBindings.Add(new Binding("Text", inspektionsobjekt, "RohrMaterial")); txt_haltungslaenge.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Haltungslaenge")); txt_dn.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Kanalrohrweite")); txt_pro_nr.DataBindings.Add(new Binding("Text", inspektionsobjekt, "ProjektNummer")); dt_haltunggemessen_datum.DataBindings.Add(new Binding("Value", inspektionsobjekt, "HaltungGemessen")); txt_bemerkung.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Bemerkung")); } private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { } private void btn_close_Click(object sender, EventArgs e) { int width = this.Width; int height = this.Height; txt_laenge_schacht.DataBindings.Clear(); txt_objekt_name.DataBindings.Clear(); txt_punkt_von.DataBindings.Clear(); txt_punkt_bis.DataBindings.Clear(); txt_strasse.DataBindings.Clear(); txt_hausnummer.DataBindings.Clear(); cb_material.DataBindings.Clear(); txt_haltungslaenge.DataBindings.Clear(); txt_dn.DataBindings.Clear(); txt_pro_nr.DataBindings.Clear(); dt_haltunggemessen_datum.DataBindings.Clear(); txt_bemerkung.DataBindings.Clear(); txt_ort.DataBindings.Clear(); //MessageBox.Show(string.Format("width: {0} height: {1}", width, height)); this.Close(); } private void btn_add_san_Click(object sender, EventArgs e) { //Dongle dongle = new Dongle(103086, 60); //int mod = dongle.IsLicensed((byte)Sanierungsarten.INLINER) ? (int)Sanierungsarten.INLINER : 0; // (int)Sanierungsarten.INLINER ^ (int)Sanierungsarten.SCHACHTANBINDUNG; // Auslagern zur Dongle frmSelectNewSan frmSelectNewSan = new frmSelectNewSan(); frmSelectNewSan.AddInlinerClicked += FrmSelectNewSan_AddInlinerClicked; frmSelectNewSan.AddSchachtAnbindungClicked += FrmSelectNewSan_AddSchachtAnbindungClicked; frmSelectNewSan.ShowDialog(); } private void FrmSelectNewSan_AddSchachtAnbindungClicked(object sender, EventArgs e) { SchachtAnbindung schachtAnbindung = new SchachtAnbindung(); schachtAnbindung.Datum = DateTime.Now; schachtAnbindung.Inspektionsobjekt = inspektionsobjekt; inspektionsobjekt.Sanierung.Add(schachtAnbindung); TabPage tab = new TabPage(); tab.Text = "Schachtanbindung"; UCSchachtanbindung uCSchachtanbindung = new UCSchachtanbindung(schachtAnbindung); uCSchachtanbindung.Dock = DockStyle.Fill; tab.Controls.Add(uCSchachtanbindung); tabControl1.TabPages.Add(tab); } private void FrmSelectNewSan_AddInlinerClicked(object sender, EventArgs e) { if(inspektionsobjekt.Sanierung.Count > 0) { foreach(Sanierung xsan in inspektionsobjekt.Sanierung) { if(xsan is InlinerSanierung) { MessageBox.Show("Lustig Sie wollen einen Inliner in einem Inliner setzen?", "Lustig", MessageBoxButtons.OK, MessageBoxIcon.Question); return; } } } InlinerSanierung san = new InlinerSanierung(); san.Inspektionsobjekt = inspektionsobjekt; san.Datum = new DateTime(2018, 01, 01, 12, 00, 00); inspektionsobjekt.Sanierung.Add(san); TabPage tab = new TabPage(); tab.Text = "InlinerSanierung"; UCInliner uCInliner = new UCInliner(san); uCInliner.Dock = DockStyle.Fill; tab.Controls.Add(uCInliner); tabControl1.TabPages.Add(tab); } private void btn_delete_Click(object sender, EventArgs e) { if (MessageBox.Show("Wollen Sie diesen Eintrag wirklich Löschen?", "Sind sie Sicher?", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) != DialogResult.Yes) return; Datenbank.Instance.loadedProjekt.Objekte.Remove(inspektionsobjekt); this.Close(); } private void cb_objekname_man_CheckedChanged(object sender, EventArgs e) { txt_objekt_name.Enabled = cb_objekname_man.Checked; } private void txt_punkt_von_TextChanged(object sender, EventArgs e) { if(!cb_objekname_man.Checked) { txt_objekt_name.DataBindings.Clear(); inspektionsobjekt.Objektbezeichnung = txt_punkt_von.Text; txt_objekt_name.DataBindings.Add(new Binding("Text", inspektionsobjekt, "Objektbezeichnung")); } // Prüfen ob Attribute kommt if(neu) { txt_punkt_bis.DataBindings.Clear(); string vonPunkt = txt_punkt_von.Text; StringBuilder attribute = new StringBuilder(); for (int i = 0; i < vonPunkt.Length; i++) { if((int)vonPunkt[i] >= 65 && (int)vonPunkt[i] <= 122) { attribute.Append(vonPunkt[i]); } } if(attribute.Length > 0) { inspektionsobjekt.BisPunkt = vonPunkt.Replace(attribute.ToString(), "AP"); } txt_punkt_bis.DataBindings.Add(new Binding("Text", inspektionsobjekt, "BisPunkt")); } } private void dgv_schadenkuerzel_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { #if !DEBUG return; #endif DataGridView dataGridView = (DataGridView)sender; if (dataGridView == null) return; DataGridViewSelectedRowCollection dataGridViewRowsSelect = dataGridView.SelectedRows; if (dataGridViewRowsSelect.Count > 1) return; DataGridViewRow dgvr = dataGridViewRowsSelect[0]; Inspektionskuerzeln kuerzel = (dgvr.DataBoundItem as Inspektionskuerzeln); if (kuerzel == null) return; if (kuerzel.Sanierungskonzepts == null) kuerzel.Sanierungskonzepts = new SanierungskonzeptCollection(); frmSanKonzeptList frmSanKonzept = new frmSanKonzeptList(kuerzel.Sanierungskonzepts); //frmSanKonzept.MdiParent = this.MdiParent; frmSanKonzept.ShowDialog(); } private void Txt_punkt_bis_Leave(object sender, EventArgs e) { return; // Diese funktion ist hirnrissig, was ist wenn man zu mehrere Schächte Saniert? /* if (!neu) return; // Prüfen ob dieser Element bereits vorhanden ist if (Datenbank.Instance.loadedProjekt.Objekte.Exists(x => x.BisPunkt.Equals(txt_punkt_bis.Text))) txt_punkt_bis.BackColor = Color.Red; */ } } }