Kalender Fehltage fĂźr Mitarbeiter
Basis-Code zum Erstellen des Kalender Grids fßr Mitarbeiter Einträge
using System; using System.Collections.Generic; using System.Globalization; //*Kalenderwoche using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes;
namespace Schichtplaner { /// <summary> /// Kaldender, in welchem man die Fehltage wie Urlaub oder Gleitzeit eintraegt /// </summary> public partial class Page_Kalender_Fehltage : Page { #region Variablen //=============< region: Variablen >============= private dbConnectionString db; DateTime _Date_Start;
int _Breite_Tag = 30; int _Breite_Mitarbeiter = 100; int _row_Height = 30; int _Button_Height = 30; string _Color_Header_Days = "#55ffdd38"; string _sColor_Header_Mitarbeiter = "#55F0F0F0"; string _sColor_Cell = "#55999999";
//private int iDay; //=============</ region: Variablen >============= #endregion
#region Form //=============< region: Form >============= public Page_Kalender_Fehltage() { InitializeComponent(); db = new dbConnectionString(); if (db.Database.Connection.State == System.Data.ConnectionState.Closed || db.Database.Connection.State == System.Data.ConnectionState.Broken) db.Database.Connection.Open();
//--< init >-- _Date_Start = DateTime.Today.AddDays(-1 * DateTime.Today.Day).AddDays(1);
Show_Kalender(); //--</ init >-- } //=============</ region: Form >============= #endregion
#region Buttons //=============< region: Buttons >============= private void BtnPrevious_Click(object sender, RoutedEventArgs e) {
_Date_Start = _Date_Start.AddMonths(-1); Show_Kalender(); }
private void BtnNext_Click(object sender, RoutedEventArgs e) { _Date_Start = _Date_Start.AddMonths(1); Show_Kalender(); } //=============</ region: Buttons >============= #endregion
#region Methoden //=============< region: Methoden >============= private void Show_Kalender() { Kalender_Textfeld_anzeigen();
Grid_Plan_laden(); Grid_Plan_Eintraege_fuellen(); //</ planungen > }
private void Kalender_Textfeld_anzeigen() { TbxMonat.Text = _Date_Start.ToString("MMMM yyyy"); }
public void Set_Position_of_Element_in_a_Grid(UIElement element, int rowNr, int colNr, int rowSpan = 1, int colSpan = 1) { Grid.SetRow(element, rowNr); Grid.SetRowSpan(element, rowSpan); Grid.SetColumn(element, colNr); Grid.SetColumnSpan(element, colSpan); }
public void Insert_Label_in_Grid_Plan(string sLabel, int rowNr, int colNr, int rowSpan = 1, int colSpan = 1, string sColor = "#F0F0F0F0", HorizontalAlignment align_Horizontal = HorizontalAlignment.Center) { Insert_Label_in_Grid(Grid_Plan, sLabel, rowNr, colNr, rowSpan, colSpan, sColor, align_Horizontal); }
public void Insert_Label_in_Grid(Grid grid, string sLabel, int rowNr, int colNr, int rowSpan = 1, int colSpan = 1, string sColor = "#F0F0F0F0", HorizontalAlignment align_Horizontal = HorizontalAlignment.Center) { //-------------< Insert_Label_in_Grid() >------------- //-< day_background >- Border pnlBackground = new Border(); Color color = (Color)ColorConverter.ConvertFromString(sColor); pnlBackground.Background = new SolidColorBrush(color); pnlBackground.Margin = new Thickness(1); Set_Position_of_Element_in_a_Grid(pnlBackground, rowNr, colNr, rowSpan, colSpan); grid.Children.Add(pnlBackground); //-< day_background >-
Label lblSchicht = new Label(); lblSchicht.Content = sLabel; lblSchicht.HorizontalAlignment = align_Horizontal; Set_Position_of_Element_in_a_Grid(lblSchicht, rowNr, colNr, rowSpan, colSpan);
grid.Children.Add(lblSchicht); //-</ day_label >- //-------------</ Insert_Label_in_Grid() >------------- }
public void Add_Row_Grid_Plan() { RowDefinition row = new RowDefinition(); row.Height = new GridLength(_row_Height); Grid_Plan.RowDefinitions.Add(row); }
//=============</ region: Methoden >============= #endregion
#region Grid_Plan //=============< region: Grid_Plan >============= private void Grid_Plan_laden() { //---------------------< Grid_Plan_laden() >--------------------- Grid_Plan_Clear_Children(); //Grid_Plan_Panels_einfuegen(); Grid_Plan_Column0_laden(); Grid_Plan_Row_Header_fuellen(); Grid_Plan_Mitarbeiter_fuellen(); //---------------------</ Grid_Plan_laden() >--------------------- }
private void Grid_Plan_Clear_Children() { //---------------------< Grid_Plan_clear() >--------------------- Grid_Plan.Children.Clear(); Grid_Plan.RowDefinitions.Clear(); Grid_Plan.ColumnDefinitions.Clear();
//---------------------</ Grid_Plan_clear() >--------------------- }
private void Grid_Plan_Column0_laden() { //---------------------< Grid_Plan_Columns_laden() >--------------------- //--------< Columns >-------- //< column_Maschinen > ColumnDefinition column = new ColumnDefinition(); column.Name = "col_Mitarbeiter"; column.Width = new GridLength(_Breite_Mitarbeiter); Grid_Plan.ColumnDefinitions.Add(column); //</ column_Maschinen >
//---------------------</ Grid_Plan_Columns_laden() >--------------------- }
private void Grid_Plan_Row_Header_fuellen() { //--------< Grid_Plan_Row1_fuellen() >------------ Add_Row_Grid_Plan(); //Tag rowNr=0 Add_Row_Grid_Plan(); //Schicht rowNr=1
//------< Header_Tage_fuellen >------ int iDaysMonth = (int) (_Date_Start.AddMonths(1) - _Date_Start).TotalDays ; for (int iDay = 0; iDay < iDaysMonth; iDay++) { DateTime day = _Date_Start.AddDays(iDay);
//-< day_Header >- Insert_Label_in_Grid_Plan(day.ToString("dd"), 0, 1 + iDay , 1, 1, _Color_Header_Days); int intSpalteDay = iDay ; string sDatePlan = day.ToString("yyyyMMdd"); //-</ day_Header >-
//< column > ColumnDefinition column = new ColumnDefinition(); column = new ColumnDefinition(); column.Width = new GridLength(_Breite_Tag); column.Name = "col_DatePlan_" + sDatePlan ; column.ToolTip = column.Name; Grid_Plan.ColumnDefinitions.Add(column); //</ column > //---</ Schicht >--- //----</ day_TagesSchichten >----
} //------</ Header_Tage_fuellen >------
//--------</ Grid_Plan_Row1_fuellen() >------------ }
private void Grid_Plan_Mitarbeiter_fuellen() { //--------< Grid_Plan_Mitarbeiter_fuellen() >------------
//< Header_Maschinen > Insert_Label_in_Grid_Plan("Tage:", 0, 0, 1, 1,_Color_Header_Days, HorizontalAlignment.Right); Insert_Label_in_Grid_Plan("Mitarbeiter",1, 0, 1, 1); //</ Header_Maschinen >
int rowNr = Grid_Plan.RowDefinitions.Count - 1;
//--< Maschinen_holen >-- var query_Mitarbeiter = (from tbl in db.tblBase_Mitarbeiter orderby tbl.SortierNr ascending select tbl); //--</ Maschinen_holen >--
//------< Loop@: Maschinen >------ foreach (var mitarabeiter in query_Mitarbeiter) { //----< Maschine >---- rowNr++;
//< Label_Mitarbeiter > Add_Row_Grid_Plan(); Insert_Label_in_Grid_Plan(mitarabeiter.Nachname, rowNr, 0, 1, 1, _sColor_Header_Mitarbeiter); //</ Label_Mitarbeiter >
int nColumns = Grid_Plan.ColumnDefinitions.Count(); for (int iColNr = 1; iColNr < nColumns; iColNr++) //0=maschinen { //----< insert_CellBorder >---- //--< Spalte_berechnen >-- string sColumnName = Grid_Plan.ColumnDefinitions[iColNr].Name; string sDatePlan = clsSchichtplan.berechne_DatePlan_aus_ColumnName(sColumnName); //--</ Spalte_berechnen >--
//-< panel >- Border cellBorder = new Border(); Color color = (Color)ColorConverter.ConvertFromString(_sColor_Cell); cellBorder.Background = new SolidColorBrush(color); cellBorder.Margin = new Thickness(1); //cellBorder.MouseDown += CellBorder_Clicked;
//--< Cell_name >-- string sCellBorder_Name = "cellBorder_IDMitarbeiter_" + mitarabeiter.IDMitarbeiter + "_DatePlan_" + sDatePlan ; cellBorder.Name = sCellBorder_Name;
//--</ Cell_name >-- Set_Position_of_Element_in_a_Grid(cellBorder, rowNr, iColNr); Grid_Plan.Children.Add(cellBorder); //-</ panel >- //----</ insert_CellBorder >---- } } //--</ @Loop: Mitarbeiter >--
//--------</ Grid_Plan_Mitarbeiter_fuellen() >------------ }
private void Grid_Plan_Eintraege_fuellen() { //--------< Grid_Plan_Eintraege_fuellen() >------------
////--< Maschinen_holen >-- //var query_Eintraege = (from tbl in db.tbl_Schichtplan orderby tbl.IDSchichtplan descending select tbl); ////--</ Maschinen_holen >--
////------< Loop@: Eintraege >------ //foreach (var eintrag in query_Eintraege) //{ // //------< MaschinenGruppen >------ // //< get_Eintrag > // int IDSchichtplan = eintrag.IDSchichtplan; // int IDMaschine = eintrag.IDMaschine ?? 0; // int IDSchicht = eintrag.IDSchicht ?? 0; // int IDMitarbeiter = eintrag.IDMitarbeiter ?? 0; // int PosBesetzung = eintrag.PosBesetzung ?? 0; // DateTime DatePlan = eintrag.Date_Plan ?? DateTime.Today; // string sDatePlan = DatePlan.ToString("yyyyMMdd"); // //< get_Eintrag >
// string sCellBorder_Name = "cellBorder_IDMaschine_" + IDMaschine + "_DatePlan_" + sDatePlan + "_IDSchicht_" + IDSchicht + "_PosBesetzung_" + PosBesetzung ; // //Test: cellBorder_IDMaschine_6_IDSchicht_1_PosBesetzung_1_DatePlan_20190117 // //Test: var element = Grid_Plan.FindName("cellBorder_IDMaschine_6_IDSchicht_1_PosBesetzung_2_DatePlan_20190119");
// Border target_panel = find_Element(Grid_Plan, sCellBorder_Name); // //----< insert_CellBorder >---- // if (target_panel != null) // { // var mitarbeiter = db.tblBase_Mitarbeiter.FirstOrDefault(tbl => tbl.IDMitarbeiter == IDMitarbeiter); // if (mitarbeiter!=null) // { // string sMitarbeitername = mitarbeiter.Nachname;
// Button btnMitarbeiter_Schicht = new Button(); // string sColor = "#FFFF0000"; // btnMitarbeiter_Schicht.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString(sColor)); // btnMitarbeiter_Schicht.Content = sMitarbeitername; // btnMitarbeiter_Schicht.Name = "button_IDSchichtplan_" + IDSchichtplan; // //btnMitarbeiter_Schicht.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(Start_Drag_Event);
// target_panel.Child = btnMitarbeiter_Schicht; // } // }
// //------</ Eintrag >------ //} ////------</ Loop@: Eintraege >------
//--------</ Grid_Plan_Eintraege_fuellen() >------------ }
private Border find_Element(Grid parent, string name_of_ChildControl) { //----------------< find_UserControl() >---------------- foreach (FrameworkElement element in parent.Children) { if (element.Name == name_of_ChildControl) { //--< found >-- //*return and break return element as Border; //--</ found >-- } } return null; //----------------</ find_UserControl() >---------------- } //=============</ region: Grid_Plan >============= #endregion /Grid_Plan
} }
|