CellRightClick für Vorbereitet ohne Etikettendruck. Fehlermeldungen in Meldungen umbenannt und Allgemeine Meldungen mit Fallbacktext integriert.

This commit is contained in:
Kilian Wirl 2025-12-11 11:44:56 +01:00
parent 5af0215bd3
commit f84102f76a
14 changed files with 236 additions and 123 deletions

View File

@ -19,7 +19,7 @@ namespace Deckungsbeitrag
public Auftrag auftrag; public Auftrag auftrag;
public Benutzer benutzer; public Benutzer benutzer;
public List<AuftragArtikel> artikelList; public List<AuftragArtikel> artikelList;
public Fehlermeldungen meldung = new Fehlermeldungen(); public Meldungen meldung = new Meldungen();
//WENN AUFTRAG SPEICHERN //WENN AUFTRAG SPEICHERN
private bool _tosave = false; private bool _tosave = false;

View File

@ -19,7 +19,7 @@ namespace Deckungsbeitrag
{ {
public partial class FormAusschlager : Form public partial class FormAusschlager : Form
{ {
private Fehlermeldungen meldung = new Fehlermeldungen(); private Meldungen meldung = new Meldungen();
private Auftrag auftrag; private Auftrag auftrag;
private WSFach fach; private WSFach fach;
public Maschine maschine; public Maschine maschine;

View File

@ -16,7 +16,7 @@ namespace Deckungsbeitrag
{ {
public partial class FormBenutzerVW : Form public partial class FormBenutzerVW : Form
{ {
public Fehlermeldungen meldung = new Fehlermeldungen(); public Meldungen meldung = new Meldungen();
public Benutzer user; public Benutzer user;
public FormBenutzerVW() public FormBenutzerVW()

View File

@ -648,6 +648,7 @@
// //
// objectListViewAuftrag // objectListViewAuftrag
// //
this.objectListViewAuftrag.AlternateRowBackColor = System.Drawing.Color.LightSteelBlue;
this.objectListViewAuftrag.CellEditUseWholeCell = false; this.objectListViewAuftrag.CellEditUseWholeCell = false;
this.objectListViewAuftrag.Cursor = System.Windows.Forms.Cursors.Default; this.objectListViewAuftrag.Cursor = System.Windows.Forms.Cursors.Default;
this.objectListViewAuftrag.Dock = System.Windows.Forms.DockStyle.Fill; this.objectListViewAuftrag.Dock = System.Windows.Forms.DockStyle.Fill;
@ -658,11 +659,13 @@
this.objectListViewAuftrag.Name = "objectListViewAuftrag"; this.objectListViewAuftrag.Name = "objectListViewAuftrag";
this.objectListViewAuftrag.Size = new System.Drawing.Size(1147, 669); this.objectListViewAuftrag.Size = new System.Drawing.Size(1147, 669);
this.objectListViewAuftrag.TabIndex = 1; this.objectListViewAuftrag.TabIndex = 1;
this.objectListViewAuftrag.UseAlternatingBackColors = true;
this.objectListViewAuftrag.UseCompatibleStateImageBehavior = false; this.objectListViewAuftrag.UseCompatibleStateImageBehavior = false;
this.objectListViewAuftrag.UseHotControls = false; this.objectListViewAuftrag.UseHotControls = false;
this.objectListViewAuftrag.View = System.Windows.Forms.View.Details; this.objectListViewAuftrag.View = System.Windows.Forms.View.Details;
this.objectListViewAuftrag.ButtonClick += new System.EventHandler<BrightIdeasSoftware.CellClickEventArgs>(this.objectListViewAuftrag_ButtonClick); this.objectListViewAuftrag.ButtonClick += new System.EventHandler<BrightIdeasSoftware.CellClickEventArgs>(this.objectListViewAuftrag_ButtonClick);
this.objectListViewAuftrag.CellClick += new System.EventHandler<BrightIdeasSoftware.CellClickEventArgs>(this.objectListViewAuftrag_CellClick); this.objectListViewAuftrag.CellClick += new System.EventHandler<BrightIdeasSoftware.CellClickEventArgs>(this.objectListViewAuftrag_CellClick);
this.objectListViewAuftrag.CellRightClick += new System.EventHandler<BrightIdeasSoftware.CellRightClickEventArgs>(this.objectListViewAuftrag_CellRightClick);
// //
// tabControlAuftragList // tabControlAuftragList
// //

View File

@ -13,7 +13,7 @@ namespace Deckungsbeitrag
public partial class FormExpedit : Form public partial class FormExpedit : Form
{ {
private ToolTip cellTooltip = new ToolTip(); private ToolTip cellTooltip = new ToolTip();
public Fehlermeldungen fehlermeldung = new Fehlermeldungen(); public Meldungen fehlermeldung = new Meldungen();
public Image etikett = null; public Image etikett = null;
public Auftrag auftrag; public Auftrag auftrag;
public Auftrag NeuerAuftrag; //NEU FÜR UPDATE public Auftrag NeuerAuftrag; //NEU FÜR UPDATE
@ -23,7 +23,7 @@ namespace Deckungsbeitrag
DateTime? letzterLiefertag = null; DateTime? letzterLiefertag = null;
bool nocont = false; bool nocont = false;
bool nocontclicked = false; bool nocontclicked = false;
Fehlermeldungen meldung = new Fehlermeldungen(); Meldungen meldung = new Meldungen();
public List<KundeArtikel> artikelListe; public List<KundeArtikel> artikelListe;
public List<Auftrag> auftraglist; public List<Auftrag> auftraglist;
public List<Auftrag> sonderlist; public List<Auftrag> sonderlist;
@ -343,25 +343,26 @@ namespace Deckungsbeitrag
/// <param name="e"></param> /// <param name="e"></param>
private void buttonDrucken_Click(object sender, EventArgs e) private void buttonDrucken_Click(object sender, EventArgs e)
{ {
//AUFTRAG UPDATE if (this.textBoxCont.Text != "0")
this.auftrag.ContainerClean = int.Parse(this.textBoxCont.Text);
letzterLiefertag = this.auftrag.Liefertag = this.dTPLiefertag.Value;
//ETIKETT DRUCKEN
DialogResult result = Funktionen.Etikett_Drucken(auftrag, nocont);
if(result == DialogResult.OK)
{ {
this.auftrag.Gedruckt = this.auftrag.Erstellt = DateTime.Now; //AUFTRAG UPDATE
this.auftrag.GedrucktVon = this.auftrag.ErstelltVon = (int)this.benutzer.BenutzerID; this.auftrag.ContainerClean = int.Parse(this.textBoxCont.Text);
this.auftrag.Status = AuftragStatus.Vorbereitet; letzterLiefertag = this.auftrag.Liefertag = this.dTPLiefertag.Value;
this.auftrag.Save();
this.auftrag = null;
FormExpedit_Load(this, e);
this.dGArtikel.DataSource = null;
this.dGArtikel.Rows.Clear();
}
//AUFTRAG SPEICHERN //ETIKETT DRUCKEN
DialogResult result = Funktionen.Etikett_Drucken(auftrag, nocont);
if (result == DialogResult.OK)
{
this.auftrag.Gedruckt = this.auftrag.Erstellt = DateTime.Now;
this.auftrag.GedrucktVon = this.auftrag.ErstelltVon = (int)this.benutzer.BenutzerID;
this.auftrag.Status = AuftragStatus.Vorbereitet;
this.auftrag.Save();
this.auftrag = null;
FormExpedit_Load(this, e);
this.dGArtikel.DataSource = null;
this.dGArtikel.Rows.Clear();
}
}
} }
private void buttonNeuerAuftrag_Click(object sender, EventArgs e) private void buttonNeuerAuftrag_Click(object sender, EventArgs e)
{ {
@ -412,6 +413,28 @@ namespace Deckungsbeitrag
olv.Focus(); olv.Focus();
} }
private void objectListViewAuftrag_CellRightClick(object sender, CellRightClickEventArgs e)
{
ObjectListView olv = (ObjectListView)sender;
if (e.Column.Text == "Abschließen")
{
if(e.Model != null)
{
if(meldung.AuftragVorbereitetOhneEtikettDruck() == DialogResult.Yes)
{
Auftrag _auftrag = (Auftrag)e.Model;
_auftrag.Status = AuftragStatus.Vorbereitet;
_auftrag.Save();
olv.RefreshObject(e);
GetLists();
if (olv.Name.Contains("Sonder")) OLV_Load(olv, this.sonderlist);
else OLV_Load(olv, this.auftraglist);
}
}
}
}
private void objectListViewAuftrag_ButtonClick(object sender, CellClickEventArgs e) private void objectListViewAuftrag_ButtonClick(object sender, CellClickEventArgs e)
{ {
Cursor.Current = Cursors.WaitCursor; Cursor.Current = Cursors.WaitCursor;
@ -534,98 +557,98 @@ namespace Deckungsbeitrag
Cursor.Current = Cursors.Default; Cursor.Current = Cursors.Default;
} }
private void OLV_Load(ObjectListView olv, List<Auftrag> auftraglist) private void OLV_Load(ObjectListView olv, List<Auftrag> auftraglist)
{
// Cursor auf Warte-Status setzen, um Benutzerfeedback zu geben
Cursor.Current = Cursors.WaitCursor;
// Layout- und Update-Änderungen pausieren, um Flackern zu verhindern
olv.SuspendLayout(); // Stoppt Layout-Berechnungen (Anchor/Dock)
olv.BeginUpdate(); // Stoppt Datenaktualisierungen/Redraws
// Automatisch alle Properties von Auftrag als Spalten generieren
Generator.GenerateColumns(olv, typeof(Auftrag), true);
// ========== SPALTE 11: BUTTON-KOLUMNE ==========
// Spalte 11 (Index 11) als Button-Spalte konfigurieren
OLVColumn buttonColumn = (OLVColumn)olv.Columns[11];
buttonColumn.IsButton = true; // Als Button rendern
buttonColumn.ButtonSizing = OLVColumn.ButtonSizingMode.CellBounds; // Button füllt gesamte Zelle
// ========== IMAGE-LIST ZUWEISEN ==========
// SmallImageList für Icons in Detail-View (16x16 Pixel standard)
olv.SmallImageList = imagelist; // Voraussetzung: imagelist mit Icon Index 0 gefüllt
// ========== SPALTE 10: ICON-KOLUMNE ==========
// Spalte 10 als Icon-Spalte: zeigt Icon wenn AufgabeID vorhanden
OLVColumn iconColumn = (OLVColumn)olv.Columns[10];
iconColumn.ImageGetter = rowObject =>
{ {
var auftrag = rowObject as Auftrag; // Cursor auf Warte-Status setzen, um Benutzerfeedback zu geben
if (auftrag.AufgabeID == null) return null; // null = kein Icon anzeigen Cursor.Current = Cursors.WaitCursor;
else return 0; // Index 0 aus SmallImageList
};
// ========== TOOLTIP FÜR ICON-SPALTE ==========
// Automatischer Cell-Tooltip bei Mouse-Hover über Spalte 10
olv.CellToolTipShowing += (s, e) =>
{
// Nur für Icon-Spalte (Index 10) und gültiges Model
if (e.ColumnIndex == 10 && e.Model is Auftrag auftrag)
{
// Lade Bezeichnung der Aufgabe als Tooltip-Text
e.Text = Aufgabe.GetAufgabe(null, auftrag.AufgabeID).Bezeichnung;
}
};
// ========== DATEN LADEN ==========
// WICHTIG: SetObjects NACH Column-Konfiguration aufrufen!
olv.SetObjects(auftraglist); // Bindet die Auftragsliste an die View
// ========== SORTIERUNG ==========
// Spalte 5 als primäre Sortier-Spalte festlegen (nach Datenbindung!)
OLVColumn sortcolumn = (OLVColumn)olv.Columns[5];
olv.Sort(sortcolumn); // Sortiert aufsteigend nach Spalte 5
// ========== CHECKBOX-FUNKTIONALITÄT ==========
// Aktiviert Checkboxen basierend auf "IsChecked" Property des Auftrag-Modells
olv.CheckedAspectName = "IsChecked";
// ========== SPALTEN ANPASSEN ==========
Funktionen.Columns_Resize(olv); // Externe Funktion für responsive Spaltenbreiten
// Unsichtbare Spalten (Width = 0 = versteckt)
olv.Columns[0].Width = 0; // Spalte 0 verstecken
olv.Columns[7].Width = 0; // Spalte 7 verstecken
olv.Columns[8].Width = 0; // Spalte 8 verstecken
olv.Columns[9].Width = 0; // Spalte 9 verstecken
// ========== STATISTIKEN (nur bei Auftrags-OLV) ==========
if (olv.Name.Contains("Auftrag"))
{
// Anzahl sichtbarer Aufträge anzeigen
this.labelauftragtag.Text = olv.Items.Count.ToString();
// ContainerClean-Summe für heute berechnen // Layout- und Update-Änderungen pausieren, um Flackern zu verhindern
int summe = 0; olv.SuspendLayout(); // Stoppt Layout-Berechnungen (Anchor/Dock)
foreach (var obj in olv.Objects) // Durch alle Modelle iterieren olv.BeginUpdate(); // Stoppt Datenaktualisierungen/Redraws
{
Auftrag auf = (Auftrag)obj;
// Nur Aufträge von heute zählen
if (auf.Erstellt.Value.Date == DateTime.Now.Date)
summe += auf.ContainerClean;
}
this.labelcontainertag.Text = summe.ToString();
}
// ========== AUFRÄUMEN & AKTIVIEREN ==========
olv.EndUpdate(); // Update-Pause beenden, Daten neu zeichnen
olv.ResumeLayout(); // Layout-Pause beenden, Positionen neu berechnen
olv.Focus(); // OLV fokussieren (Tastaturbedienung aktivieren)
// Cursor zurücksetzen // Automatisch alle Properties von Auftrag als Spalten generieren
Cursor.Current = Cursors.Default; Generator.GenerateColumns(olv, typeof(Auftrag), true);
}
// ========== SPALTE 11: BUTTON-KOLUMNE ==========
// Spalte 11 (Index 11) als Button-Spalte konfigurieren
OLVColumn buttonColumn = (OLVColumn)olv.Columns[11];
buttonColumn.IsButton = true; // Als Button rendern
buttonColumn.ButtonSizing = OLVColumn.ButtonSizingMode.CellBounds; // Button füllt gesamte Zelle
// ========== IMAGE-LIST ZUWEISEN ==========
// SmallImageList für Icons in Detail-View (16x16 Pixel standard)
olv.SmallImageList = imagelist; // Voraussetzung: imagelist mit Icon Index 0 gefüllt
// ========== SPALTE 10: ICON-KOLUMNE ==========
// Spalte 10 als Icon-Spalte: zeigt Icon wenn AufgabeID vorhanden
OLVColumn iconColumn = (OLVColumn)olv.Columns[10];
iconColumn.ImageGetter = rowObject =>
{
var auftrag = rowObject as Auftrag;
if (auftrag.AufgabeID == null) return null; // null = kein Icon anzeigen
else return 0; // Index 0 aus SmallImageList
};
// ========== TOOLTIP FÜR ICON-SPALTE ==========
// Automatischer Cell-Tooltip bei Mouse-Hover über Spalte 10
olv.CellToolTipShowing += (s, e) =>
{
// Nur für Icon-Spalte (Index 10) und gültiges Model
if (e.ColumnIndex == 10 && e.Model is Auftrag auftrag)
{
// Lade Bezeichnung der Aufgabe als Tooltip-Text
e.Text = Aufgabe.GetAufgabe(null, auftrag.AufgabeID).Bezeichnung;
}
};
// ========== DATEN LADEN ==========
// WICHTIG: SetObjects NACH Column-Konfiguration aufrufen!
olv.SetObjects(auftraglist); // Bindet die Auftragsliste an die View
// ========== SORTIERUNG ==========
// Spalte 5 als primäre Sortier-Spalte festlegen (nach Datenbindung!)
OLVColumn sortcolumn = (OLVColumn)olv.Columns[5];
olv.Sort(sortcolumn); // Sortiert aufsteigend nach Spalte 5
// ========== CHECKBOX-FUNKTIONALITÄT ==========
// Aktiviert Checkboxen basierend auf "IsChecked" Property des Auftrag-Modells
olv.CheckedAspectName = "IsChecked";
// ========== SPALTEN ANPASSEN ==========
Funktionen.Columns_Resize(olv); // Externe Funktion für responsive Spaltenbreiten
// Unsichtbare Spalten (Width = 0 = versteckt)
olv.Columns[0].Width = 0; // Spalte 0 verstecken
olv.Columns[7].Width = 0; // Spalte 7 verstecken
olv.Columns[8].Width = 0; // Spalte 8 verstecken
olv.Columns[9].Width = 0; // Spalte 9 verstecken
// ========== STATISTIKEN (nur bei Auftrags-OLV) ==========
if (olv.Name.Contains("Auftrag"))
{
// Anzahl sichtbarer Aufträge anzeigen
this.labelauftragtag.Text = olv.Items.Count.ToString();
// ContainerClean-Summe für heute berechnen
int summe = 0;
foreach (var obj in olv.Objects) // Durch alle Modelle iterieren
{
Auftrag auf = (Auftrag)obj;
// Nur Aufträge von heute zählen
if (auf.Erstellt.Value.Date == DateTime.Now.Date)
summe += auf.ContainerClean;
}
this.labelcontainertag.Text = summe.ToString();
}
// ========== AUFRÄUMEN & AKTIVIEREN ==========
olv.EndUpdate(); // Update-Pause beenden, Daten neu zeichnen
olv.ResumeLayout(); // Layout-Pause beenden, Positionen neu berechnen
olv.Focus(); // OLV fokussieren (Tastaturbedienung aktivieren)
// Cursor zurücksetzen
Cursor.Current = Cursors.Default;
}
/// <summary> /// <summary>
/// Liefertag wird ermittelt und in Day of Week umgerechnet. RadioButtons werden Checked oder Unchecked und Click wird registriert. /// Liefertag wird ermittelt und in Day of Week umgerechnet. RadioButtons werden Checked oder Unchecked und Click wird registriert.
@ -753,6 +776,5 @@ private void OLV_Load(ObjectListView olv, List<Auftrag> auftraglist)
einstellung.ShowDialog(); einstellung.ShowDialog();
} }
} }
} }

View File

@ -19,14 +19,14 @@ namespace Deckungsbeitrag
public Fach fach = null; public Fach fach = null;
Benutzer benutzer; Benutzer benutzer;
Maschine maschine; Maschine maschine;
public Fehlermeldungen fm; public Meldungen fm;
private Auftrag auftrag; private Auftrag auftrag;
public FormFachBearbeiten() public FormFachBearbeiten()
{ {
InitializeComponent(); InitializeComponent();
formcenter = new Point(this.Width / 2, this.Height / 2); formcenter = new Point(this.Width / 2, this.Height / 2);
fm = new Fehlermeldungen(); fm = new Meldungen();
Load_comboBoxes(); Load_comboBoxes();
} }

View File

@ -20,7 +20,7 @@ namespace Deckungsbeitrag
private FilterInfoCollection videoDevices; private FilterInfoCollection videoDevices;
Kunde kunde; Kunde kunde;
List<KundeArtikel> artikelListe; List<KundeArtikel> artikelListe;
Fehlermeldungen meldung = new Fehlermeldungen(); Meldungen meldung = new Meldungen();
//Benutzer benutzer; //Benutzer benutzer;
string userid; string userid;
public FormFehlmengeCount() public FormFehlmengeCount()

View File

@ -31,7 +31,7 @@ namespace Deckungsbeitrag
Kunde kunde = null; Kunde kunde = null;
Bitmap bitmap = null; Bitmap bitmap = null;
Image qrcode = null; Image qrcode = null;
Fehlermeldungen meldung = new Fehlermeldungen(); Meldungen meldung = new Meldungen();
Benutzer benutzer; Benutzer benutzer;
int beforeedit = 0; int beforeedit = 0;
int[] saveindex = null; int[] saveindex = null;

View File

@ -21,7 +21,7 @@ namespace Deckungsbeitrag
public partial class FormMain : Form public partial class FormMain : Form
{ {
private Benutzer benutzer = null; private Benutzer benutzer = null;
Fehlermeldungen meldung = new Fehlermeldungen(); Meldungen meldung = new Meldungen();
bool open = false; bool open = false;
private bool isDragging = false; private bool isDragging = false;
private Point dragStartPoint; private Point dragStartPoint;
@ -92,6 +92,8 @@ namespace Deckungsbeitrag
} }
} }
this.Activate(); this.Activate();
meldung.GetInfo(this, null, false);
} }
private void Paint_Boarder(Size size, Point location, PaintEventArgs e) private void Paint_Boarder(Size size, Point location, PaintEventArgs e)

View File

@ -20,7 +20,7 @@ namespace Deckungsbeitrag
{ {
public partial class FormNeuerAuftrag : Form public partial class FormNeuerAuftrag : Form
{ {
public Fehlermeldungen meldung = new Fehlermeldungen(); public Meldungen meldung = new Meldungen();
public Kunde kunde; public Kunde kunde;
public Auftrag Auftrag; public Auftrag Auftrag;
public Auftrag extraAuftrag; public Auftrag extraAuftrag;

View File

@ -14,7 +14,7 @@ namespace Deckungsbeitrag.AA_Forms
{ {
public partial class FormNeuerBenutzer : Form public partial class FormNeuerBenutzer : Form
{ {
private Fehlermeldungen meldung = new Fehlermeldungen(); private Meldungen meldung = new Meldungen();
bool[] tosave = { false, false, false }; bool[] tosave = { false, false, false };
public FormNeuerBenutzer() public FormNeuerBenutzer()
{ {

View File

@ -21,7 +21,7 @@ namespace Deckungsbeitrag.AA_Forms
private string Userid; private string Userid;
private Maschine maschine; private Maschine maschine;
private Auftrag auftrag; private Auftrag auftrag;
private Fehlermeldungen meldung = new Fehlermeldungen(); private Meldungen meldung = new Meldungen();
private Aufgabe aufgabe; private Aufgabe aufgabe;
private WSFach fach; private WSFach fach;
private Auftrag extraAuftrag; private Auftrag extraAuftrag;

View File

@ -9,10 +9,10 @@ using ZXing;
namespace DatenDB namespace DatenDB
{ {
public class Fehlermeldungen public class Meldungen
{ {
public Fehlermeldungen() public Meldungen()
{ {
} }
@ -286,5 +286,91 @@ namespace DatenDB
result = MessageBox.Show(s, caption, buttons, icon); result = MessageBox.Show(s, caption, buttons, icon);
return result; return result;
} }
internal DialogResult AuftragVorbereitetOhneEtikettDruck()
{
DialogResult result = DialogResult.Cancel;
string s = $"Für den Auftrag wurden keine Etiketten gedruckt, ohne Etikettendruck als Vorbereitet markieren?";
string caption = "ACHTUNG";
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
MessageBoxIcon icon = MessageBoxIcon.Exclamation;
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
#region ALLGEMEINE MELDUNGEN RETURN DIALOGRESULT
/// <summary>
/// Allgemeine Info mit Fallbacktext.
/// </summary>
/// <param name="sender">Position der Info.</param>
/// <param name="s">Infotext. Wenn null dann Fallbacktext</param>
/// <param name="cancel">Button Cancel anzeigen dann true.</param>
/// <returns>DialogResult</returns>
internal DialogResult GetInfo(object sender, string s, bool cancel)
{
DialogResult result = DialogResult.Cancel;
MessageBoxIcon icon = MessageBoxIcon.Information;
MessageBoxButtons buttons;
string caption = "INFO";
if (cancel) buttons = MessageBoxButtons.OKCancel;
else buttons = MessageBoxButtons.OK;
if (s == null) s = $"Hier sollte eine Info stehen. Frag Kilian welche Info hier ({sender.ToString()}) erscheinen soll.";
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
/// <summary>
/// Allgemeine Frage mit Fallbacktext.
/// </summary>
/// <param name="sender">Positon der Frage</param>
/// <param name="s">Fragentext. Wenn null dann Fallbacktext.</param>
/// <param name="cancel">Button Cancel anzeigen dann true.</param>
/// <returns>DialogResult</returns>
internal DialogResult GetFrage(object sender, string s, bool cancel)
{
DialogResult result = DialogResult.Cancel;
MessageBoxIcon icon = MessageBoxIcon.Question;
MessageBoxButtons buttons;
string caption = "FRAGE";
if (cancel) buttons = MessageBoxButtons.YesNoCancel;
else buttons = MessageBoxButtons.YesNo;
if (s == null) s = $"Hier sollte eine Frage kommen. Frag Kilian welche Frage er dir hier ({sender.ToString()}) stellen wollte.";
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
/// <summary>
/// Allgemeiner Fehler mit Fallbacktext.
/// </summary>
/// <param name="sender">Position des Fehlers</param>
/// <param name="s">Fehlertext. Wenn null dann Fallbacktext.</param>
/// <param name="cancel">Button Cancel anzeigen dann true.</param>
/// <returns>DialogResult</returns>
internal DialogResult GetFehler(object sender, string s, bool cancel)
{
DialogResult result = DialogResult.Cancel;
MessageBoxIcon icon = MessageBoxIcon.Error;
MessageBoxButtons buttons;
string caption = "FEHLER";
if (cancel) buttons = MessageBoxButtons.OKCancel;
else buttons = MessageBoxButtons.OK;
if (s == null) s = $"Da ist ein Fehler aufgetreten. Frag Kilian welcher Ehler hier ({sender.ToString()}) passiert ist.";
result = MessageBox.Show(s, caption, buttons, icon);
return result;
}
#endregion
} }
} }

View File

@ -177,7 +177,7 @@
<Compile Include="AA-Klassen\DatenbankConnection.cs" /> <Compile Include="AA-Klassen\DatenbankConnection.cs" />
<Compile Include="AA-Klassen\Fach.cs" /> <Compile Include="AA-Klassen\Fach.cs" />
<Compile Include="AA-Klassen\FahrerAuftrag.cs" /> <Compile Include="AA-Klassen\FahrerAuftrag.cs" />
<Compile Include="AA-Klassen\Fehlermeldungen.cs" /> <Compile Include="AA-Klassen\Meldungen.cs" />
<Compile Include="AA-Forms\FormArtikelVW.cs"> <Compile Include="AA-Forms\FormArtikelVW.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>