private void buttonFahrerInfo_Click(object sender, EventArgs e) { Fahrer fahrer = (Fahrer)comboBoxFahrer.SelectedItem; Debug.WriteLine(fahrer.NameFahrer); dataGridViewTable.Rows.Clear(); ArrayList arrFahrerFahrt = new ArrayList(); ArrayList arrFahrerFahrtFazit = new ArrayList(); List <Fahrt> fahrtList = fahrer.Fahrten; int i = 1; int kmFazit = 0; float betragFahrtFazit = 0; float exstrasFahrtFazit = 0; int kmFahrerFazit = 0; float betragFahrerFazit = 0; float bemergungFazit = 0; foreach (Fahrt f in fahrtList) { arrFahrerFahrt.Clear(); arrFahrerFahrt.Add(i); arrFahrerFahrt.Add(f.Kunde.NameKunde); arrFahrerFahrt.Add(f.Fahrer.NameFahrer); arrFahrerFahrt.Add(f.Date.ToString("d")); arrFahrerFahrt.Add(f.Fahrzeug_mz); arrFahrerFahrt.Add(f.Fahrzeug_typ); arrFahrerFahrt.Add(f.AbholungPLZ); arrFahrerFahrt.Add(f.Abholung); arrFahrerFahrt.Add(f.ZustellungPLZ); arrFahrerFahrt.Add(f.Zustellung); arrFahrerFahrt.Add(f.KmFahrt); kmFazit += f.KmFahrt; arrFahrerFahrt.Add(f.PreisKmFahrt); arrFahrerFahrt.Add(f.BetragFahrt); betragFahrtFazit += f.BetragFahrt; arrFahrerFahrt.Add(f.MautFahrt); exstrasFahrtFazit += f.MautFahrt; arrFahrerFahrt.Add(f.KmFahrer); kmFahrerFazit += f.KmFahrer; arrFahrerFahrt.Add(f.BetragFahrer); betragFahrerFazit += f.BetragFahrer; arrFahrerFahrt.Add(f.BemerkungText); arrFahrerFahrt.Add(f.BemerkungPreis); bemergungFazit += f.BemerkungPreis; DataGridViewTable(arrFahrerFahrt); i++; //Debug.WriteLine(f.Kunde.NameKunde); } DataGridViewRow row = (DataGridViewRow)dataGridViewTable.Rows[0].Clone(); dataGridViewTable.Rows.Add(row); row = (DataGridViewRow)dataGridViewTable.Rows[0].Clone(); row.Cells[9].Value = "Gesamt"; row.Cells[10].Value = kmFazit; row.Cells[12].Value = betragFahrtFazit; row.Cells[13].Value = exstrasFahrtFazit; row.Cells[14].Value = kmFahrerFazit; //row.Cells[15].Value = betragFahrerFazit; //row.Cells[16].Value = "Km-Preis"; //row.Cells[17].Value = bemergungFazit; dataGridViewTable.Rows.Add(row); //arrFahrerFahrtFazit.Add(kmFazit); //arrFahrerFahrtFazit.Add(kmFazit); //arrFahrerFahrtFazit.Add(kmFazit); //arrFahrerFahrtFazit.Add(betragFahrtFazit); Bemerkung bemerkungExtras = new Bemerkung("Extras", bemergungFazit); fahrer.BemerkungList.Insert(0, bemerkungExtras); Bemerkung bemerkungBetrag = new Bemerkung("Km-Preis", betragFahrerFazit); fahrer.BemerkungList.Insert(0, bemerkungBetrag); //row = (DataGridViewRow)dataGridViewTable.Rows[0].Clone(); //dataGridViewTable.Rows.Add(row); foreach (Bemerkung b in fahrer.BemerkungList) { row = (DataGridViewRow)dataGridViewTable.Rows[0].Clone(); row.Cells[15].Value = b.Preis; row.Cells[16].Value = b.Typ; dataGridViewTable.Rows.Add(row); } }
public void ParseTable(string mount) { //Debug.WriteLine(ObjWorkSheet.Name); ObjWorkExcel = new Excel.Application(); //открыть эксель ObjWorkBook = ObjWorkExcel.Workbooks.Open(this.fahrtenTabellePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); //открыть файл Excel.Worksheet ObjWorkSheet = (Excel.Worksheet)ObjWorkBook.Sheets[mount]; var lastCell = ObjWorkSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell); progressBar1.Value = 0; int ii = 7; while (true) { string kunde = ObjWorkSheet.Cells[ii, 2].Text.ToString(); if (kunde.Equals("")) { break; } else { ii++; } } int countFahrt = ii - 7; progressBar1.Maximum = countFahrt; Debug.WriteLine(countFahrt); Regex rgx = new Regex("[^0-9,]"); ArrayList arrFahrt = new ArrayList(); int i = 7; int k = 1; for (; i < (int)lastCell.Row; i++, k++) { arrFahrt.Add(k); //Kunde string nameKunde = ObjWorkSheet.Cells[i, 2].Text.ToString(); if (nameKunde.Equals("")) { break; } Kunde einKunde = returnKunde(nameKunde); if (einKunde == null) { einKunde = new Kunde(nameKunde); kundenList.Add(einKunde); } arrFahrt.Add(einKunde.NameKunde); //Fahrer string nameFahrer = ObjWorkSheet.Cells[i, 3].Text.ToString(); Fahrer einFahrer = returnFahrer(nameFahrer); if (einFahrer == null) { einFahrer = new Fahrer(nameFahrer); fahrerList.Add(einFahrer); } arrFahrt.Add(einFahrer.NameFahrer); DateTime date = DateTime.Parse(ObjWorkSheet.Cells[i, 4].Text.ToString()); arrFahrt.Add(date.ToString("d")); string referenz = "123";//ObjWorkSheet.Cells[i, 5].Text.ToString(); string fahrzeug_mz = ObjWorkSheet.Cells[i, 6].Text.ToString(); arrFahrt.Add(fahrzeug_mz); string fahrzeug_typ = ObjWorkSheet.Cells[i, 7].Text.ToString(); arrFahrt.Add(fahrzeug_typ); string abholungPLZ = ObjWorkSheet.Cells[i, 8].Text.ToString(); arrFahrt.Add(abholungPLZ); string abholung = ObjWorkSheet.Cells[i, 9].Text.ToString(); arrFahrt.Add(abholung); string zustellungPLZ = ObjWorkSheet.Cells[i, 10].Text.ToString(); arrFahrt.Add(zustellungPLZ); string zustellung = ObjWorkSheet.Cells[i, 11].Text.ToString(); arrFahrt.Add(zustellung); int kmFahrt = Convert.ToInt32(ObjWorkSheet.Cells[i, 12].Text.ToString()); arrFahrt.Add(kmFahrt); float preisKmFahrt = 0; string preisKmFahrtStr = rgx.Replace(ObjWorkSheet.Cells[i, 13].Text.ToString(), ""); if (!preisKmFahrtStr.Equals("")) { preisKmFahrt = float.Parse(preisKmFahrtStr); arrFahrt.Add(preisKmFahrt); } else { arrFahrt.Add("-"); } float betragFahrt = float.Parse(rgx.Replace(ObjWorkSheet.Cells[i, 14].Text.ToString(), "")); arrFahrt.Add(betragFahrt); string maut = rgx.Replace(ObjWorkSheet.Cells[i, 15].Text.ToString(), ""); float mautFahrt = 0; if (!maut.Equals("")) { mautFahrt = float.Parse(maut); } arrFahrt.Add(mautFahrt); int kmFahrer = 0; float betragFahrer = 0; for (int jj = 16; jj <= 27; jj += 2) { string kmF = ObjWorkSheet.Cells[i, jj].Text.ToString(); if (!kmF.Equals("")) { kmFahrer = Convert.ToInt32(kmF); betragFahrer = float.Parse(rgx.Replace(ObjWorkSheet.Cells[i, jj + 1].Text.ToString(), "")); break; } } arrFahrt.Add(kmFahrer); arrFahrt.Add(betragFahrer); string bemerkungText = ObjWorkSheet.Cells[i, 28].Text.ToString(); arrFahrt.Add(bemerkungText); string bemerkungPreis = rgx.Replace(ObjWorkSheet.Cells[i, 29].Text.ToString(), ""); float bemerkungPreisF = 0; if (!bemerkungPreis.Equals("")) { bemerkungPreisF = float.Parse(bemerkungPreis); } arrFahrt.Add(bemerkungPreisF); Fahrt fahrt = new Fahrt(einKunde, einFahrer, date, referenz, fahrzeug_mz, fahrzeug_typ, abholungPLZ, abholung, zustellungPLZ, zustellung, kmFahrt, preisKmFahrt, betragFahrt, mautFahrt, kmFahrer, betragFahrer, bemerkungText, bemerkungPreisF, mount); fahrten.Add(fahrt); einFahrer.AddFahrt(fahrt); DataGridViewTable(arrFahrt); arrFahrt.Clear(); progressBar1.Value += 1; } //Bemerkung für Fahrer string beginn = ""; string end = ""; Debug.WriteLine("i = " + i); while (!beginn.Equals("Km-Preis")) { i++; beginn = ObjWorkSheet.Cells[i, 28].Text.ToString(); } int iii = i; Debug.WriteLine("iii = " + iii); while (!beginn.Equals("END")) { iii++; beginn = ObjWorkSheet.Cells[iii, 28].Text.ToString(); } /* * int g = 1; * while(g<40) * { * * String f = ObjWorkSheet.Cells[93, g].Text.ToString(); * Debug.WriteLine("f = " + f); * g++; * } * Debug.WriteLine("iii = " + iii); */ Regex rgx_preis = new Regex("[^0-9,-]"); while (!end.Equals("END")) { i++; k = 17; string bemerkungText = ObjWorkSheet.Cells[i, 28].Text.ToString(); //string bemerkungPreis = rgx.Replace(ObjWorkSheet.Cells[i, 29].Text.ToString(), ""); end = bemerkungText; if (end.Equals("END")) { break; } if (!end.Equals("")) { //Debug.WriteLine(i + " - " + bemerkungText); while (k < 28) { string preis_str = rgx_preis.Replace(ObjWorkSheet.Cells[i, k].Text.ToString(), ""); if (!preis_str.Equals("")) { float preis = float.Parse(preis_str); string fahrer = ObjWorkSheet.Cells[5, k - 1].Text.ToString(); Debug.WriteLine(i + "," + k + " - " + bemerkungText + " = " + preis + " : " + fahrer); Bemerkung bemerkung = new Bemerkung(bemerkungText, preis); foreach (Fahrer f in fahrerList) { if (f.NameFahrer.Equals(fahrer)) { f.AddBemerkung(bemerkung); break; } } break; } k += 2; } } } Fuellung(); ObjWorkBook.Close(0); ObjWorkExcel.Quit(); Application.DoEvents(); }