using DatenDB; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Printing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Deckungsbeitrag { public partial class FormAufleger : Form { public Fach fach; //Das aktuelle Fach welches gerade beladen wird. private readonly SPSDaten _monitor; //Ziel der Eventanfragen für die SPS. private Screen[] screens; //Aktueller Plan mit Screen spiegeln erfordert die Unterscheidung nicht. //Wurde zur Untescheidung der Anzeigen benötigt. private Benutzer person; //Ist der Bediener. Daraus werden bestimmte Rechte und Funktionen abgeleitet. public FormAusschlager ausschlager; //Wird wegen Umbau nicht mehr gebraucht. //Ansicht für den Ausschlager. public Kunde extrakunde; public List fachliste; //Ist der Inhalt der jeweiligen Maschine. public Maschine maschine; //Bearbeitete Maschine. public Auftrag auftrag; //Ein Auftrag ist eine Abholung/Lieferung eines bestimmten Kunden zu einem bestimmten Liefertag mit X Anzahl an Containern. public Auftrag auftragsummary; //Wir zur Erstellung einer Tischsummary benötigt. public FormAufleger() { InitializeComponent(); //Die Auswahl der Maschine wird eingeblendet um die richtige MaschineID zu bekommen. FormMSAuswahl auswahl = new FormMSAuswahl(); if (auswahl.ShowDialog() == DialogResult.OK) maschine = Maschine.GetMaschine(auswahl.s, string.Empty); //Der Inhalt der Maschine wird aus der DB View geladen. fachliste = Fach.GetInhalt(maschine.MaschineID, maschine.Faecher); //Das erste Fach in der fachliste ist der aktuelle Auftrag. this.fach = fachliste[0]; //NEUPROGRAMMIERUNG EVENTUELL UNNÖTIG //NEUPROGRAMMIERUNG AUFTRAG WIRD AUFGERUFEN UND BEI TRANSPORT WIRD FACH ERSTELLT if (this.auftrag == null) this.auftrag = Auftrag.GetAuftrag(fachliste[0].AuftragID); } public FormAufleger(Screen[] screens, Benutzer person) : this() { this.screens = screens; this.person = person; this._monitor = new SPSDaten(); this.Tag = maschine; //Je nach Maschine werden die richtigen Events erstellt. if (maschine.MaschineID == 1) { _monitor.WS1Transport += Transport_ValueChanged; _monitor.Presse1Leer += WS1_Value_Changed; _monitor.Trockner1Beladen += WS1_Value_Changed; _monitor.Trockner1Entladen += WS1_Value_Changed; _monitor.TischSummaryWS1_print += TischSummary_print; _monitor.BegleitzettelWS1_print += Begleitzettel_print; } //Maschine 1 else { _monitor.WS2Transport += Transport_ValueChanged; _monitor.Presse2Leer += WS2_Value_Changed; _monitor.Trockner2Beladen += WS2_Value_Changed; _monitor.Trockner2Entladen += WS2_Value_Changed; _monitor.TischSummaryWS2_print += TischSummary_print; _monitor.BegleitzettelWS2_print += Begleitzettel_print; } //Maschine 2 } private void FormAufleger_Load(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; Funktionen.HideControls(this.Controls); //Wenn bei der Maschine ein Trockner kaputt ist wird die Fachanzahl um 1 reduziert. if (maschine.TrocknerKaputt == true) maschine.Faecher--; //Die Position und Größe der Labels wir hier berechnet. int height = (this.Height / maschine.Faecher) - 1; Point loc = new Point(this.Width / 2 - 400, 10); //Die angezeigten Label werden erstellt zugeordnet und geholt. Je nach Maschine unterschiedlich viele. for (int i = 1; i <= maschine.Faecher; i++) { Funktionen funk = new Funktionen(); this.Controls.AddRange(funk.GetFachLabels(i, maschine, height, loc, this.Width, "Aufleger")); //Bei Maschine 1 wird das 4 Beladefach bereits an die Waschstraße übergeben. if (maschine.MaschineID == 1 & i <= 3) { foreach (Label lbl in this.Controls.OfType