Ejemplo n.º 1
0
        public bool TanuloAdatBetoltes(string sorszam, string excelHelye)
        {
            bool sikerült = false;

            if (sorszam == "" || sorszam == null)
            {
                MessageBox.Show("Írj be nevet vagy sorszámot", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(sikerült);
            }
            if (excelHelye == "" || excelHelye == null)
            {
                MessageBox.Show("Válaszd ki az olvasni kívánt excel fájlt!", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(sikerült);
            }

            dataGridView1.Rows.Clear();
            dataGridView1.Refresh();
            bool elso = true;

            FileMethods.FajlOlvasas();
            List <string> adatTipusok  = new List <string>();
            List <string> kivalasztott = new List <string>();
            string        megjegyzes   = "";
            List <string> sorszamok    = new List <string>();

            if (Properties.Settings.Default.ExcelFajlHelye != null && sorszam != null)
            {
                if (Path.GetExtension(Properties.Settings.Default.ExcelFajlHelye) == ".csv")
                {
                    try
                    {
                        var fs = new FileStream(Properties.Settings.Default.ExcelFajlHelye, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                        using (var Olvas = new StreamReader(fs, Encoding.Default))
                        {
                            if (GeneralMethods.IsDigitOnly(sorszam))
                            {
                                for (int i = 0; i <= (Convert.ToInt32(sorszam)); i++)
                                {
                                    string sor = Olvas.ReadLine();
                                    if (sor == null)
                                    {
                                        MessageBox.Show("Üres a fájl", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        Visible = false;
                                        return(sikerült);
                                    }
                                    if (elso == true)
                                    {
                                        string[] Sorelemek = sor.Split(';');
                                        for (int j = 0; j < (Sorelemek.Length); j++)
                                        {
                                            adatTipusok.Add(Sorelemek[j]);
                                            elso = false;
                                        }
                                    }

                                    if (i == Convert.ToInt32(sorszam))
                                    {
                                        string[] Sorelemek = sor.Split(';');
                                        for (int j = 0; j < (Sorelemek.Length); j++)
                                        {
                                            kivalasztott.Add(Sorelemek[j].Replace("0:00:00", ""));
                                        }
                                        megjegyzes = Sorelemek.Last();
                                    }
                                }
                            }
                            else if (!GeneralMethods.IsDigitOnly(sorszam))
                            {
                                int    count = 0;
                                string nev   = sorszam.ToLower().Trim();

                                while (!Olvas.EndOfStream)
                                {
                                    string   sor       = Olvas.ReadLine();
                                    string[] Sorelemek = sor.Split(';');
                                    string   nev2      = Sorelemek[1].ToLower().Replace("0:00:00", "");

                                    if (sor == null)
                                    {
                                        MessageBox.Show("Üres a fájl", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        Visible = false;
                                        return(sikerült);
                                    }
                                    if (elso == true)
                                    {
                                        for (int j = 0; j < (Sorelemek.Length); j++)
                                        {
                                            adatTipusok.Add(Sorelemek[j]);
                                            elso = false;
                                        }
                                    }
                                    if (!Properties.Settings.Default.ekezetek)
                                    {
                                        nev  = GeneralMethods.RemoveDiacritics(nev);
                                        nev2 = GeneralMethods.RemoveDiacritics(nev2);
                                    }
                                    if (!Properties.Settings.Default.szokoz)
                                    {
                                        nev  = nev.Replace(" ", "").Replace("-", "");
                                        nev2 = nev2.Replace(" ", "").Replace("-", "");
                                    }

                                    nev  = nev.Replace("dr.", "");
                                    nev2 = nev2.Replace("dr.", "");

                                    if (nev2.Contains("("))
                                    {
                                        string[] ketNev = nev2.Split('(');
                                        nev2 = ketNev[0].Trim();
                                    }

                                    if (nev == nev2)
                                    {
                                        sorszamok.Add(Sorelemek[0]);
                                        for (int j = 0; j < (Sorelemek.Length); j++)
                                        {
                                            kivalasztott.Add(Sorelemek[j]);
                                        }
                                        megjegyzes = Sorelemek.Last();
                                        count++;
                                    }
                                }
                                if (count > 1)
                                {
                                    string sorString = String.Join(", ", sorszamok.ToArray());
                                    string uzenet    = "Több ilyen nevű tanuló is van! Használd a sorszámát.(Azonos nevűek sorszáma: " + sorString + ")";
                                    MessageBox.Show(uzenet, "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                    Visible = false;
                                    return(sikerült);
                                }
                                if (count == 0)
                                {
                                    MessageBox.Show("Nincs találat az adott excel táblázatban. Ellenőrizd a beírt nevet!", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                    Visible = false;
                                    return(sikerült);
                                }
                            }
                        }
                        fs.Close();
                        fs.Dispose();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Nem található a kiválasztott fájl.", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        Visible = false;
                        return(sikerült);
                    }
                    mentes.Visible = false;
                }

                else if (FileMethods.IsExcelComptaible(Properties.Settings.Default.ExcelFajlHelye))
                {
                    var xlWorkbook = xlWorkbooks.Open(Properties.Settings.Default.ExcelFajlMasolata);
                    Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[Properties.Settings.Default.oldalszam + 1];
                    Excel.Range      xlRange     = xlWorksheet.UsedRange;
                    int totalRows    = xlRange.Rows.Count;
                    int totalColumns = xlRange.Columns.Count;

                    if (elso == true)
                    {
                        int szam = 1;
                        var sb   = new StringBuilder();
                        for (int ColumnNum = 1; ColumnNum <= totalColumns + 1; ColumnNum++)
                        {
                            string row = Convert.ToString(xlWorksheet.Cells[szam, ColumnNum].Text);
                            if (row == null)
                            {
                                row = "";
                            }
                            sb.Append("đ");
                            sb.Append(row);
                        }
                        string[] Sorelemek = sb.ToString().Split('đ');

                        for (int j = 1; j < Sorelemek.Length; j++)
                        {
                            adatTipusok.Add(Sorelemek[j]);
                        }
                    }

                    if (GeneralMethods.IsDigitOnly(sorszam))
                    {
                        int szam = Convert.ToInt32(sorszam) + 1;
                        kivSor = szam;
                        var sb = new StringBuilder();
                        for (int ColumnNum = 1; ColumnNum <= totalColumns + 1; ColumnNum++)
                        {
                            string row = Convert.ToString(xlWorksheet.Cells[szam, ColumnNum].Text);
                            if (row == null)
                            {
                                row = "";
                            }
                            sb.Append("đ");
                            sb.Append(row.Replace("0:00:00", ""));
                        }
                        string[] Sorelemek = sb.ToString().Split('đ');

                        for (int j = 1; j < Sorelemek.Length; j++)
                        {
                            kivalasztott.Add(Sorelemek[j]);
                        }
                        megjegyzes = Sorelemek[Sorelemek.Length - 2];
                    }

                    if (!GeneralMethods.IsDigitOnly(sorszam))
                    {
                        int    count = 0;
                        string nev   = sorszam.ToLower().Trim();

                        for (int Row = 1; Row <= totalRows + 1; Row++)
                        {
                            string nev2 = Convert.ToString(xlWorksheet.Cells[Row, 2].Text);
                            if (nev2 == null)
                            {
                                nev2 = "";
                            }
                            nev2 = nev2.ToLower();
                            if (!Properties.Settings.Default.ekezetek)
                            {
                                nev  = GeneralMethods.RemoveDiacritics(nev);
                                nev2 = GeneralMethods.RemoveDiacritics(nev2);
                            }
                            if (!Properties.Settings.Default.szokoz)
                            {
                                nev  = nev.Replace(" ", "").Replace("-", "");
                                nev2 = nev2.Replace(" ", "").Replace("-", "");
                            }

                            nev  = nev.Replace("dr.", "");
                            nev2 = nev2.Replace("dr.", "");
                            if (nev2.Contains("("))
                            {
                                string[] ketNev = nev2.Split('(');
                                nev2 = ketNev[0].Trim();
                            }

                            if (nev == nev2)
                            {
                                kivSor = Row;
                                var sb = new StringBuilder();
                                for (int ColumnNum = 1; ColumnNum <= totalColumns + 1; ColumnNum++) //select starting row here
                                {
                                    string nextData = Convert.ToString(xlWorksheet.Cells[Row, ColumnNum].Text);
                                    if (nextData == null)
                                    {
                                        nextData = "";
                                    }
                                    sb.Append("đ");
                                    sb.Append(nextData.Replace("0:00:00", ""));
                                }
                                string[] Sorelemek = sb.ToString().Split('đ');

                                count++;
                                sorszamok.Add(Convert.ToString(xlWorksheet.Cells[Row, 1].Text));
                                for (int j = 1; j < Sorelemek.Length; j++)
                                {
                                    kivalasztott.Add(Sorelemek[j]);
                                }
                                megjegyzes = Sorelemek[Sorelemek.Length - 2];
                            }
                        }
                        if (count > 1)
                        {
                            string sorString = String.Join(", ", sorszamok.ToArray());
                            string uzenet    = "Több ilyen nevű tanuló is van! Használd a sorszámát.(Azonos nevűek sorszáma: " + sorString + ")";
                            MessageBox.Show(uzenet, "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            FileMethods.DisposeExcelInstance(xlWorkbook, xlWorksheet);
                            Visible = false;
                            return(sikerült);
                        }
                        if (count == 0)
                        {
                            MessageBox.Show("Nincs találat az adott excel táblázatban. Ellenőrizd a beírt nevet!", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            Visible = false;
                            return(sikerült);
                        }
                    }
                    mentes.Visible = true;
                    FileMethods.DisposeExcelInstance(xlWorkbook, xlWorksheet);
                }

                if (adatTipusok.Count > kivalasztott.Count)
                {
                    int kulonbseg = adatTipusok.Count - kivalasztott.Count;
                    for (int j = 0; j < kulonbseg; j++)
                    {
                        kivalasztott.Add("");
                    }
                }
                megjegyzesek.Text = megjegyzes;
                for (int i = 0; i < adatTipusok.Count - 2; i++)
                {
                    var index = dataGridView1.Rows.Add();
                    dataGridView1.Rows[index].Cells[0].Value = adatTipusok[i];
                    dataGridView1.Rows[index].Cells[1].Value = kivalasztott[i];
                }
                try
                {
                    dataGridView1.Rows[0].ReadOnly    = true;
                    dataGridView1.Columns[0].ReadOnly = true;
                    dataGridView1.Rows[0].DefaultCellStyle.BackColor          = Color.FromArgb(224, 224, 224);
                    dataGridView1.Rows[0].DefaultCellStyle.SelectionBackColor = Color.FromArgb(224, 224, 224);
                    dataGridView1.Rows[0].DefaultCellStyle.SelectionForeColor = Color.Black;
                }
                catch
                {
                    MessageBox.Show("Üres a fájl!", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    Visible = false;
                    return(sikerült);
                }
            }
            sikerült = true;
            BringToFront();
            Show();
            return(sikerült);
        }
Ejemplo n.º 2
0
        private void valaszt_Click_1(object sender, EventArgs e)
        {
            FileMethods.FajlOlvasas();
            if (SorSzam.Text == "" || SorSzam.Text == null)
            {
                MessageBox.Show("Írj be nevet vagy sorszámot", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (excelHelye.Text == "" || excelHelye.Text == null)
            {
                MessageBox.Show("Válaszd ki az olvasni kívánt excel fájlt!", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (mentesHelye.Text == "" || mentesHelye.Text == null)
            {
                MessageBox.Show("Válaszd ki a mentés helyét!", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            staticLoading.Visible = true;
            staticLoading.BringToFront();
            string kivalasztott = "";

            if (Properties.Settings.Default.ExcelFajlHelye != null && SorSzam.Text != null)
            {
                if (Path.GetExtension(Properties.Settings.Default.ExcelFajlHelye) == ".csv")
                {
                    try
                    {
                        var fs = new FileStream(Properties.Settings.Default.ExcelFajlHelye, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                        using (var Olvas = new StreamReader(fs, Encoding.Default))
                        {
                            if (GeneralMethods.IsDigitOnly(SorSzam.Text))
                            {
                                for (int i = 0; i <= (Convert.ToInt32(SorSzam.Text)); i++)
                                {
                                    if (i == Convert.ToInt32(SorSzam.Text))
                                    {
                                        string   Sor       = Olvas.ReadLine();
                                        string[] Sorelemek = Sor.Split(';');
                                        kivalasztott = Sorelemek[1];
                                    }
                                    else
                                    {
                                        string nem = Olvas.ReadLine();
                                    }
                                }
                            }
                            if (!GeneralMethods.IsDigitOnly(SorSzam.Text))
                            {
                                List <string> sorszamok = new List <string>();
                                var           sorString = "";
                                string        nev       = SorSzam.Text.ToLower().Trim();

                                int count = 0;
                                while (!Olvas.EndOfStream)
                                {
                                    string   sor       = Olvas.ReadLine();
                                    string[] Sorelemek = sor.Split(';');
                                    string   nev2      = Sorelemek[1].ToLower();
                                    if (!ekezetek.Checked)
                                    {
                                        nev  = GeneralMethods.RemoveDiacritics(nev);
                                        nev2 = GeneralMethods.RemoveDiacritics(nev2);
                                    }
                                    if (!szokoz.Checked)
                                    {
                                        nev  = nev.Replace(" ", "").Replace("-", "");
                                        nev2 = nev2.Replace(" ", "").Replace("-", "");
                                    }

                                    nev  = nev.Replace("dr.", "");
                                    nev2 = nev2.Replace("dr.", "");
                                    if (nev2.Contains("("))
                                    {
                                        string[] ketNev = nev2.Split('(');
                                        nev2 = ketNev[0].Trim();
                                    }

                                    if (nev == nev2)
                                    {
                                        sorszamok.Add(Sorelemek[0]);
                                        kivalasztott = Sorelemek[1];
                                        count++;
                                    }
                                }
                                if (count > 1)
                                {
                                    sorString = String.Join(", ", sorszamok.ToArray());
                                    string uzenet = "Több ilyen nevű tanuló is van! Használd a sorszámát.\n(Azonos nevűek sorszáma: " + sorString + ")";
                                    MessageBox.Show(uzenet, "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                    kivalasztott = "";
                                }
                                if (count == 0)
                                {
                                    MessageBox.Show("Nincs találat az adott excel táblázatban. Ellenőrizd a beírt nevet!", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                            }
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Nem található a kiválasztott fájl.", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                if (FileMethods.IsExcelComptaible(Properties.Settings.Default.ExcelFajlHelye))
                {
                    string          hely         = Properties.Settings.Default.ExcelFajlMasolata;
                    var             xlWorkbook   = xlWorkbooks.Open(Properties.Settings.Default.ExcelFajlMasolata);
                    Excel.Worksheet xlWorksheet  = xlWorkbook.Sheets[ExcelOldalNevek.SelectedIndex + 1];
                    Excel.Range     xlRange      = xlWorksheet.UsedRange;
                    int             totalRows    = ExcelApp.GetMinimalUsedRangeAddress(xlWorksheet);
                    int             totalColumns = xlRange.Columns.Count;

                    if (GeneralMethods.IsDigitOnly(SorSzam.Text))
                    {
                        int szam = Convert.ToInt32(SorSzam.Text) + 1;
                        kivalasztott = Convert.ToString(xlWorksheet.Cells[szam, 2].Text);
                    }
                    if (!GeneralMethods.IsDigitOnly(SorSzam.Text))
                    {
                        List <string> sorszamok = new List <string>();
                        var           sorString = "";
                        int           count     = 0;
                        string        nev       = SorSzam.Text.ToLower().Trim();

                        for (int Row = 1; Row <= totalRows; Row++)
                        {
                            string nev2 = Convert.ToString(xlWorksheet.Cells[Row, 2].Text);
                            if (nev2 == null)
                            {
                                nev2 = "";
                            }
                            nev2 = nev2.ToLower();
                            if (!ekezetek.Checked)
                            {
                                nev  = GeneralMethods.RemoveDiacritics(nev);
                                nev2 = GeneralMethods.RemoveDiacritics(nev2);
                            }
                            if (!szokoz.Checked)
                            {
                                nev  = nev.Replace(" ", "").Replace("-", "");
                                nev2 = nev2.Replace(" ", "").Replace("-", "");
                            }
                            nev  = nev.Replace("dr.", "");
                            nev2 = nev2.Replace("dr.", "");

                            if (nev2.Contains("("))
                            {
                                string[] ketNev = nev2.Split('(');
                                nev2 = ketNev[0].Trim();
                            }

                            if (nev == nev2)
                            {
                                sorszamok.Add(Convert.ToString(xlWorksheet.Cells[Row, 1].Text));
                                kivalasztott = Convert.ToString(xlWorksheet.Cells[Row, 2].Text);
                                count++;
                            }
                        }
                        if (count > 1)
                        {
                            sorString = String.Join(", ", sorszamok.ToArray());
                            string uzenet = "Több ilyen nevű tanuló is van! Használd a sorszámát.\n(Azonos nevűek sorszáma: " + sorString + ")";
                            MessageBox.Show(uzenet, "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            kivalasztott = "";
                        }
                        if (count == 0)
                        {
                            MessageBox.Show("Nincs találat. Ellenőrizd a beírt nevet!", "Figyelmeztetés", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    FileMethods.DisposeExcelInstance(xlWorkbook, xlWorksheet);
                }
            }
            if (kivalasztott.Contains("("))
            {
                string[] ketNev = kivalasztott.Split('(');
                kivalasztott = ketNev[0].Trim();
            }
            if (kivalasztott == null || kivalasztott == "")
            {
                mentettFajlNeve.Text = "Nincs találat";
            }
            else
            {
                mentettFajlNeve.Text = (kivalasztott).Replace(' ', '_');
            }
            Application.DoEvents();
            staticLoading.Visible = false;
        }