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