• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Przycisk button1_click w Form1.cs, należność wyświetla się jako 0,00.

Aruba Cloud - Virtual Private Server VPS
–1 głos
112 wizyt
pytanie zadane 25 maja 2024 w C# przez lukas1231233 Nowicjusz (240 p.)
zamknięte 25 maja 2024 przez lukas1231233
using System.Text;
using System.Windows.Forms;
using Projekt___serwis_samochodowy_u_pana_Zenka;



namespace Projekt___serwis_samochodowy_pana_Zenka
{
    public partial class Form1 : Form
    {
        List<Pracownik> Mechanicy = new List<Pracownik>();
        List<Samochod> Auta = new List<Samochod>();

        Pracownik pracownik;
        public Form1()
        {
            InitializeComponent();
            pracownik = new Pracownik();
        }

        private void pracownicyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            (new FormPracownicy()).ShowDialog();
        }

        private void naprawioneSamochodyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            (new FormNaprawioneSamochody()).ShowDialog();
        }

        private void button1_Click(object sender, EventArgs e)
        {


            decimal[] należność_dla_mechaników = new decimal[Pracownik.Pracownicy.Count];

            foreach (Samochod samochod in Auta)
            {
                int nr_mechanika = Pracownik.Pracownicy.IndexOf(samochod.Pracownik);
                należność_dla_mechaników[nr_mechanika] += samochod.Należność;
            }

            dataGridView1.Rows.Clear();

            foreach (Pracownik pracownik in Pracownik.Pracownicy)
            {
                dataGridView1.Rows.Add(new object[] {
                    pracownik.ToString(),
                    należność_dla_mechaników[Pracownik.Pracownicy.IndexOf(pracownik)].ToString("0.00")

                });
            }



        }



        
    }
}

Na górze plik Form1.cs

 

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 Projekt___serwis_samochodowy_pana_Zenka;

namespace WinFormsApp1
{
    public partial class FormDodajPracownika : Form
    {
        Pracownik pracownik;

        internal FormDodajPracownika(Pracownik książka)
        {
            InitializeComponent();
            this.pracownik = książka;
        }


        private void FormKsiążka_Load(object sender, EventArgs e)
        {
            textBox_imie.Text = pracownik.Imie;
            textBox_nazwisko.Text = pracownik.Nazwisko;
            textBox_rok.Text = pracownik.Rok_rozpoczecia_pracy;
            numericUpDown_stawkaZaGodzine.Value = pracownik.Stawka_za_godzine_pracy;
        }

       
        private void buttonOK_Click(object sender, EventArgs e)
        {
            pracownik.Imie = textBox_imie.Text;
            pracownik.Nazwisko = textBox_nazwisko.Text;
            pracownik.Rok_rozpoczecia_pracy = textBox_rok.Text;
            pracownik.Stawka_za_godzine_pracy = numericUpDown_stawkaZaGodzine.Value;
        }
    }
}

Plik FormDodajPracownika.cs 

 

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 Projekt___serwis_samochodowy_pana_Zenka;

namespace Projekt___serwis_samochodowy_u_pana_Zenka
{
    public partial class FormNaprawioneSamochody : Form
    {
        public FormNaprawioneSamochody()
        {
            InitializeComponent();
        }

        private void FormNaprawioneSamochody_Load(object sender, EventArgs e)
        {
            Samochod.PrepareDGV(dataGridView_samochody);
            refresh();
        }

        void refresh()
        {
            dataGridView_samochody.Rows.Clear();

            foreach (Samochod s in Samochod.samochody)
            {
                int index = dataGridView_samochody.Rows.Add(s.toObtbl);
                dataGridView_samochody.Rows[index].Tag = s;
            }
        }





        private void edytujToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (dataGridView_samochody.SelectedRows.Count < 1)
                return;

            int index = dataGridView_samochody.Rows.IndexOf(dataGridView_samochody.SelectedRows[0]);


            Samochod punktDoEdycji = (Samochod)dataGridView_samochody.SelectedRows[0].Tag;
            FormSamochody form = new FormSamochody(punktDoEdycji);
            form.ShowDialog();
           

            dataGridView_samochody.Rows[index].Selected = true;
           
            refresh();
        }

        private void dataGridView_samochody_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void dodajToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var nowy_samochod = new Samochod();
            FormSamochody form = new FormSamochody(nowy_samochod);
            DialogResult result = form.ShowDialog();

            if (result != DialogResult.OK)
            {
                return;
            }


            Samochod.samochody.Add(nowy_samochod);
            refresh();
        }

        private void usuńToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dataGridView_samochody .SelectedRows.Count < 1)
                return;


            Samochod DoUsunięcia = (Samochod)dataGridView_samochody.SelectedRows[0].Tag;

            DialogResult result = MessageBox.Show
                ("Czy na pewno usunąć rekord z listy?", "potwierdzenie"
                , MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

            if (result != DialogResult.OK)
                return;


            Samochod.samochody.Remove(DoUsunięcia);

            refresh();
        }
    }
}

FormNaprawioneSamochody.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using System.Windows.Forms;
using WinFormsApp1;

namespace Projekt___serwis_samochodowy_pana_Zenka
{
    public partial class FormPracownicy : Form
    {
        List<Pracownik> Mechanicy = new List<Pracownik>();
        public FormPracownicy()
        {
            InitializeComponent();
        }

        private void wyswietl_mechanikow()
        {
            dataGridView1.Rows.Clear();

            foreach (Pracownik pracownik in Mechanicy)
            {
                dataGridView1.Rows.Add(pracownik);
            }
        }
        private void FormPracownicy_Load(object sender, EventArgs e)
        {
            Pracownik.PrepareDGV(dataGridView1);
            refresh();
            if (MessageBox.Show("Czy chcesz załadować istniejące już dane?", "Ładowanie",
               MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                try
                {
                    openFileDialog1.ShowDialog();
                    using (FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.Open))
                    {
                        List<Pracownik> Mechanicy = JsonSerializer.Deserialize<List<Pracownik>>(fs);
                    }
                    refresh();
                }
                catch (FileNotFoundException ex)
                {
                    MessageBox.Show("Nie znaleziono pliku: " + ex.Message, "Błąd ładowania",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (JsonException ex)
                {
                    MessageBox.Show("Błąd deserializacji danych: " + ex.Message,
                    "Błąd ładowania", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Wystąpił nieoczekiwany błąd: " + ex.Message,
                    "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        void refresh()
        {
            dataGridView1.Rows.Clear();

            foreach (Pracownik p in Pracownik.Pracownicy)
            {
                int index = dataGridView1.Rows.Add(p.tbl);
                dataGridView1.Rows[index].Tag = p;
            }


        }
        private void dodajToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var nowyPracownik = new Pracownik();
            FormDodajPracownika form = new FormDodajPracownika(nowyPracownik);

            DialogResult result = form.ShowDialog();
            if (result != DialogResult.OK)
                return;

            Pracownik.Pracownicy.Add(nowyPracownik);
            refresh();
        }

        private void usuńToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count < 1)
                return;


            Pracownik DoUsunięcia = (Pracownik)dataGridView1.SelectedRows[0].Tag;

            DialogResult result = MessageBox.Show
                ("Czy na pewno usunąć rekord z listy?", "potwierdzenie"
                , MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

            if (result != DialogResult.OK)
                return;


            Pracownik.Pracownicy.Remove(DoUsunięcia);

            refresh();
        }

        private void Form_closing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("Czy chcesz zapisać wszystkie dane?",
               "Zamykanie", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
            {
                try
                {
                    saveFileDialog1.ShowDialog();
                    using (StreamWriter fs = new StreamWriter(saveFileDialog1.FileName))
                    {
                        fs.Write(JsonSerializer.Serialize(Mechanicy));
                    }
                    wyswietl_mechanikow();
                }
                catch (IOException ex)
                {
                    MessageBox.Show("Wystąpił błąd podczas zapisywania pliku: " + ex.Message,
                    "Błąd zapisu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Wystąpił nieoczekiwany błąd: " + ex.Message,
                    "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
    }
}

 

 

W Form1.cs wyświetla się w datagridview imie i nazwisko mechanika, ale nie wykonuje obliczeń bądź ich nie widzi, ponieważ jako należność wyświetla się 0,00. Bardzo proszę o pomoc to jest c# windows forms, mam nadzieję że uda się coś znaleźć. Z góry dziękuję za jakąkolwiek pomoc. Reszta plików w komentarzach

komentarz zamknięcia: Rozwiązałem problem
komentarz 25 maja 2024 przez lukas1231233 Nowicjusz (240 p.)
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 Projekt___serwis_samochodowy_pana_Zenka;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace Projekt___serwis_samochodowy_u_pana_Zenka
{
    public partial class FormSamochody : Form
    {

        Samochod samochody;

        

        internal FormSamochody(Samochod samochody)
        {
            InitializeComponent();
            this.samochody = samochody;

        }

        
        private void Zapisz_dane_samochodu_Click(object sender, EventArgs e)
        {
           

            if (comboBox_wybor_mechanika.SelectedItem == null)
                return;

            Samochod samochod = new Samochod();
            samochody.NumerRejestracyjnyPojazdu = textBox_nr_rejestracyjny.Text;
            samochody.DataRozpoczeciaNaprawy = dateTimePicker_naprawa.Text;
            samochody.KontaktDoWlasciciela = textBox_kontakt.Text;
            samochody.MechanikWykonujacyNaprawe = comboBox_wybor_mechanika.Text;
            samochody.KosztUzytychCzesciZamiennych = numericUpDown_kosztCzesci.Value;
            samochody.CzasPracyWgodzinach =(int) numericUpDown_czasPracy.Value;



            

           

        }

        private void FormSamochody_Load(object sender, EventArgs e)
        {
            

            textBox_nr_rejestracyjny.Text = samochody.NumerRejestracyjnyPojazdu;
            dateTimePicker_naprawa.Text = samochody.DataRozpoczeciaNaprawy;
            textBox_kontakt.Text = samochody.KontaktDoWlasciciela;
            comboBox_wybor_mechanika.SelectedItem = samochody.MechanikWykonujacyNaprawe;
            numericUpDown_kosztCzesci.Value = samochody.KosztUzytychCzesciZamiennych;
            numericUpDown_czasPracy.Value = (int)samochody.CzasPracyWgodzinach;



            comboBox_wybor_mechanika.DropDownStyle = ComboBoxStyle.DropDownList;

            foreach (Pracownik pracownik in Pracownik.Pracownicy)
                comboBox_wybor_mechanika.Items.Add(pracownik);
        }

      
    }
}

Do tego jeszcze FormSamochody.cs

komentarz 25 maja 2024 przez lukas1231233 Nowicjusz (240 p.)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Projekt___serwis_samochodowy_pana_Zenka
{
    internal class Pracownik
    {
       string imie;
       string nazwisko;
       string rok_rozpoczecia_pracy;
       decimal stawka_za_godzine_pracy;


        public List<Samochod> Samochody { get; set; } = new List<Samochod>();

        static List<Pracownik> pracownik = new List<Pracownik>();

       

        internal object[] tbl => new object[] { Imie, Nazwisko, Rok_rozpoczecia_pracy, Stawka_za_godzine_pracy.ToString() };

        internal string Imie { get => imie; set => imie = value; }
        internal string Nazwisko { get => nazwisko; set => nazwisko = value; }
        internal string Rok_rozpoczecia_pracy { get => rok_rozpoczecia_pracy; set => rok_rozpoczecia_pracy = value; }
        internal decimal Stawka_za_godzine_pracy { get => stawka_za_godzine_pracy; set => stawka_za_godzine_pracy = value; }

        static internal List<Pracownik> Pracownicy => pracownik;

       

        internal static void PrepareDGV(DataGridView dgv)
        {
            dgv.Rows.Clear();
            dgv.Columns.Clear();
            dgv.Columns.Add("col1", "Imię");
            dgv.Columns.Add("col2", "Nazwisko");
            dgv.Columns.Add("col3", "Rok rozpoczęcia pracy");
            dgv.Columns.Add("col4", "Stawka za godzinę pracy");
            dgv.Columns[0].Width = 180;
            dgv.Columns[1].Width = 180;
            dgv.Columns[2].Width = 250;
            dgv.Columns[3].Width = 150;

            dgv.ReadOnly = true;
            dgv.AllowUserToAddRows = false;
            dgv.RowHeadersVisible = false;
            dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dgv.MultiSelect = false;

        }

        public override string ToString()
        {
            return Imie + " " + Nazwisko;
        }

    
    }
}

Klasa Pracownik.cs

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Projekt___serwis_samochodowy_pana_Zenka
{
    
    internal class Samochod
    {
        Pracownik pracownik;
        static List<Samochod> samochod = new List<Samochod>();

        

        string numerRejestracyjnyPojazdu;
        string dataRozpoczeciaNaprawy;
        string kontaktDoWlasciciela;
        string mechanikWykonujacyNaprawe;
        decimal kosztUzytychCzesciZamiennych;
        int czasPracyWgodzinach;

        internal decimal NależnośćZaRobociznę
            => (decimal)CzasPracyWgodzinach * Pracownik.Stawka_za_godzine_pracy * 0.20m;
        internal decimal ProwizjaNaprawy => KosztUzytychCzesciZamiennych * 0.03m;
        internal decimal Należność => NależnośćZaRobociznę + ProwizjaNaprawy;
    
        internal object[] toObtbl => new object[] {NumerRejestracyjnyPojazdu, DataRozpoczeciaNaprawy, KontaktDoWlasciciela,
            MechanikWykonujacyNaprawe, KosztUzytychCzesciZamiennych, CzasPracyWgodzinach.ToString()};

        public string NumerRejestracyjnyPojazdu { get => numerRejestracyjnyPojazdu; set => numerRejestracyjnyPojazdu = value; }
        public string DataRozpoczeciaNaprawy { get => dataRozpoczeciaNaprawy; set => dataRozpoczeciaNaprawy = value; }
        public string KontaktDoWlasciciela { get => kontaktDoWlasciciela; set => kontaktDoWlasciciela = value; }
        public string MechanikWykonujacyNaprawe { get => mechanikWykonujacyNaprawe; set => mechanikWykonujacyNaprawe = value; }
        public decimal KosztUzytychCzesciZamiennych { get => kosztUzytychCzesciZamiennych; set => kosztUzytychCzesciZamiennych = value; }
        public int CzasPracyWgodzinach { get => czasPracyWgodzinach; set => czasPracyWgodzinach = value; }

        static internal List<Samochod> samochody => samochod;

        internal Pracownik Pracownik { get => pracownik; set => pracownik = value; }

        internal static void PrepareDGV(DataGridView dgv)
        {
            dgv.Rows.Clear();
            dgv.Columns.Clear();
            dgv.Columns.Add("col1", "Numer rejestracyjny pojazdu");
            dgv.Columns.Add("col2", "Data rozpoczęcia naprawy");
            dgv.Columns.Add("col3", "Kontakt do właściciela");
            dgv.Columns.Add("col4", "Mechanik wykonujący naprawę");
            dgv.Columns.Add("col5", "Koszt użytych części zamiennych");
            dgv.Columns.Add("col6", "Czas pracy w godzinach");

            dgv.Columns[0].Width = 180;
            dgv.Columns[1].Width = 180;
            dgv.Columns[2].Width = 250;
            dgv.Columns[3].Width = 150;
            dgv.Columns[4].Width = 150;
            dgv.Columns[5].Width = 150;


            dgv.ReadOnly = true;
            dgv.AllowUserToAddRows = false;
            dgv.RowHeadersVisible = false;
            dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dgv.MultiSelect = false;

        }

        public override string ToString()
        {
            return Pracownik.ToString();
        }

    
    }
}

Klasa Samochod.cs

Podobne pytania

0 głosów
2 odpowiedzi 1,255 wizyt
pytanie zadane 21 maja 2020 w C# przez zdridox Nowicjusz (210 p.)
+1 głos
3 odpowiedzi 577 wizyt
0 głosów
1 odpowiedź 1,264 wizyt
pytanie zadane 12 listopada 2016 w HTML i CSS przez evilblade Nowicjusz (120 p.)

93,327 zapytań

142,325 odpowiedzi

322,396 komentarzy

62,657 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...