Hallo Zusammen,
Ich habe derzeit ein kleinen Wurm in der Entwicklung meines Programmes, mit dem DataGridView.
Ich habe 2 alte Funktionen:
Diese Funktionen habe Werte aus Textboxen getrennt. z.B. 12:45.Mithilfe der Funktion gabs dann eine Variabel die den Wert vor dem : beinhaltet und eine den Wert nach dem Doppelpunkt.
Die Funktionen wurden bei einem Button Klick ausgeführt.
Nun möchte ich aber nicht mehr die TextBoxen ansprechen, sondern Die einzelnden Kästchen aus dem DataGridView (31 Reihen, je 4 Spalten)
Wie aber kann ich jetzt Die Berechnungen darauflegen? Und wie ist es möglich diese Funktion hier auf das DataGridView zu beziehen?
Wenn ich das hinbekommen habe bzw. weiß wie es geht sollte ich den rest eigendlich alleine schaffen.
Liebe Grüße
Ich habe derzeit ein kleinen Wurm in der Entwicklung meines Programmes, mit dem DataGridView.
Ich habe 2 alte Funktionen:
VB.NET-Quellcode
- Private Function BerechneDauer(ByRef BeginnStr As String, ByRef EndeStr As String) As Integer
- ' gibt die Dauer aus zwei Textfeldern als Integer in Minuten zurück
- Dim Dauer1 As Integer
- Dim Dauer2 As Integer
- Dim Anfang, Ende As Integer
- 'ANFANG
- 'Stunden Anfang, WICHTIG: Stunden zweistellig!!
- Dauer1 = Convert.ToInt32(Microsoft.VisualBasic.Left(BeginnStr, 2))
- 'Minuten Anfang, WICHTIG: Minuten zweistellig!!
- Dauer2 = Convert.ToInt32(Microsoft.VisualBasic.Right(BeginnStr, 2))
- 'Anfang in Minuten umgerechnet
- 'Annahme ist, dass die Minuten in Dezimal angegeben sind, und erst umgerechnet werden müssen:
- Dim methode As New INIDatei
- methode.Pfad = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Umrechner\settings.ini"
- If methode.WertLesen("General", "Methode") = "Dezimal" Then
- Anfang = CInt(Dauer1 * 60 + Dauer2 / 100 * 60)
- Else
- Anfang = Dauer1 * 60 + Dauer2
- End If
- 'ENDE
- 'Stunden Anfang, WICHTIG: Stunden zweistellig!!
- Dauer1 = Convert.ToInt32(Microsoft.VisualBasic.Left(EndeStr, 2))
- 'Minuten Anfang, WICHTIG: Minuten zweistellig!!
- Dauer2 = Convert.ToInt32(Microsoft.VisualBasic.Right(EndeStr, 2))
- 'Ende in Minuten umgerechnet
- 'Annahme ist, dass die Minuten in Dezimal angegeben sind, und erst umgerechnet werden müssen:
- If methode.WertLesen("General", "Methode") = "Dezimal" Then
- Ende = CInt(Dauer1 * 60 + Dauer2 / 100 * 60)
- Else
- Ende = Dauer1 * 60 + Dauer2
- End If
- 'Dauer vormittag in Minuten
- BerechneDauer = Ende - Anfang
- End Function
- Private Function MinutenInStunden(ByRef Dauer As Integer) As String
- ' gibt das Ergebnis als String für die Anzeige und/oder das Abspeichern zurück
- Dim Dauer_Stunden As Integer
- Dim Dauer_Stunden_Str As String
- Dim Dauer_Minuten As Integer
- Dim Dauer_Minuten_Str As String
- Dauer_Stunden = Dauer \ 60 'ganzzahlige Division
- If Dauer_Stunden < 10 Then
- Dauer_Stunden_Str = "0" & Convert.ToString(Dauer_Stunden)
- Else
- Dauer_Stunden_Str = Convert.ToString(Dauer_Stunden)
- End If
- Dauer_Minuten = Dauer - Dauer_Stunden * 60
- If Dauer_Minuten < 10 Then
- Dauer_Minuten_Str = "0" & Convert.ToString(Dauer_Minuten)
- Else
- Dauer_Minuten_Str = Convert.ToString(Dauer_Minuten)
- End If
- MinutenInStunden = Convert.ToString(Dauer_Stunden_Str) & ":" & Convert.ToString(Dauer_Minuten_Str)
- End Function
- Private Function MinutenInStundenlohn(ByRef Dauer As Integer) As String
- ' gibt das Ergebnis als String für die Anzeige und/oder das Abspeichern zurück
- Dim Dauer_Stunden As Integer
- Dim Dauer_Stunden_Str As String
- Dim Dauer_Minuten As Integer
- Dim Dauer_Minuten_Str As String
- Dauer_Stunden = Dauer \ 60 'ganzzahlige Division
- If Dauer_Stunden < 10 Then
- Dauer_Stunden_Str = "0" & Convert.ToString(Dauer_Stunden)
- Else
- Dauer_Stunden_Str = Convert.ToString(Dauer_Stunden)
- End If
- Dauer_Minuten = Dauer - Dauer_Stunden * 60
- If Dauer_Minuten < 10 Then
- Dauer_Minuten_Str = "0" & Convert.ToString(Dauer_Minuten)
- Else
- Dauer_Minuten_Str = Convert.ToString(Dauer_Minuten)
- End If
- MinutenInStundenlohn = Convert.ToString(Dauer_Stunden_Str) & "," & Convert.ToString(Dauer_Minuten_Str)
- End Function
Diese Funktionen habe Werte aus Textboxen getrennt. z.B. 12:45.Mithilfe der Funktion gabs dann eine Variabel die den Wert vor dem : beinhaltet und eine den Wert nach dem Doppelpunkt.
Die Funktionen wurden bei einem Button Klick ausgeführt.
VB.NET-Quellcode
- Private Sub rechnen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rechnen.Click
- For Each ctl In Me.Controls.OfType(Of TextBox)()
- Console.WriteLine(ctl.Name)
- If String.IsNullOrEmpty(ctl.Text) Then
- ctl.Text = "00:00"
- End If
- Next
- 'Methode Überpfrüfen
- Dim methode As New INIDatei
- methode.Pfad = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Umrecher\settings.ini"
- Dim DauerFeld_vormittag(0 To 31) As Integer
- Dim DauerFeld_nachmittag(0 To 31) As Integer
- Dim i As Integer
- Dim Gesamtdauer As Integer
- Dim Gesamtdauerlohn As Integer
- Dim GesamtdauerStr As String
- Dim GesamtdauerStrlohn As String
- 'Dauer für vormittag in Minuten im Feld ablegen
- DauerFeld_vormittag(0) = BerechneDauer(CustomTextBox1.Text, CustomTextBox2.Text)
- DauerFeld_vormittag(1) = BerechneDauer(CustomTextBox5.Text, CustomTextBox6.Text)
- DauerFeld_vormittag(2) = BerechneDauer(CustomTextBox9.Text, CustomTextBox10.Text)
- DauerFeld_vormittag(3) = BerechneDauer(CustomTextBox13.Text, CustomTextBox14.Text)
- DauerFeld_vormittag(4) = BerechneDauer(CustomTextBox17.Text, CustomTextBox18.Text)
- DauerFeld_vormittag(5) = BerechneDauer(CustomTextBox21.Text, CustomTextBox22.Text)
- DauerFeld_vormittag(6) = BerechneDauer(CustomTextBox25.Text, CustomTextBox26.Text)
- DauerFeld_vormittag(7) = BerechneDauer(CustomTextBox29.Text, CustomTextBox30.Text)
- DauerFeld_vormittag(8) = BerechneDauer(CustomTextBox33.Text, CustomTextBox34.Text)
- DauerFeld_vormittag(9) = BerechneDauer(CustomTextBox37.Text, CustomTextBox38.Text)
- DauerFeld_vormittag(10) = BerechneDauer(CustomTextBox41.Text, CustomTextBox42.Text)
- DauerFeld_vormittag(11) = BerechneDauer(CustomTextBox45.Text, CustomTextBox46.Text)
- DauerFeld_vormittag(12) = BerechneDauer(CustomTextBox49.Text, CustomTextBox50.Text)
- DauerFeld_vormittag(13) = BerechneDauer(CustomTextBox53.Text, CustomTextBox54.Text)
- DauerFeld_vormittag(14) = BerechneDauer(CustomTextBox57.Text, CustomTextBox58.Text)
- DauerFeld_vormittag(15) = BerechneDauer(CustomTextBox61.Text, CustomTextBox62.Text)
- DauerFeld_vormittag(16) = BerechneDauer(CustomTextBox65.Text, CustomTextBox66.Text)
- DauerFeld_vormittag(17) = BerechneDauer(CustomTextBox69.Text, CustomTextBox70.Text)
- DauerFeld_vormittag(18) = BerechneDauer(CustomTextBox73.Text, CustomTextBox74.Text)
- DauerFeld_vormittag(19) = BerechneDauer(CustomTextBox77.Text, CustomTextBox78.Text)
- DauerFeld_vormittag(20) = BerechneDauer(CustomTextBox81.Text, CustomTextBox82.Text)
- DauerFeld_vormittag(21) = BerechneDauer(CustomTextBox85.Text, CustomTextBox86.Text)
- DauerFeld_vormittag(22) = BerechneDauer(CustomTextBox89.Text, CustomTextBox90.Text)
- DauerFeld_vormittag(23) = BerechneDauer(CustomTextBox93.Text, CustomTextBox94.Text)
- DauerFeld_vormittag(24) = BerechneDauer(CustomTextBox97.Text, CustomTextBox98.Text)
- DauerFeld_vormittag(25) = BerechneDauer(CustomTextBox101.Text, CustomTextBox102.Text)
- DauerFeld_vormittag(26) = BerechneDauer(CustomTextBox105.Text, CustomTextBox106.Text)
- DauerFeld_vormittag(27) = BerechneDauer(CustomTextBox109.Text, CustomTextBox110.Text)
- DauerFeld_vormittag(28) = BerechneDauer(CustomTextBox113.Text, CustomTextBox114.Text)
- DauerFeld_vormittag(29) = BerechneDauer(CustomTextBox117.Text, CustomTextBox118.Text)
- DauerFeld_vormittag(30) = BerechneDauer(CustomTextBox121.Text, CustomTextBox122.Text)
- 'Dauer für nachmittag in Minuten im Feld ablegen
- DauerFeld_nachmittag(0) = BerechneDauer(CustomTextBox3.Text, CustomTextBox4.Text)
- DauerFeld_nachmittag(1) = BerechneDauer(CustomTextBox7.Text, CustomTextBox8.Text)
- DauerFeld_nachmittag(2) = BerechneDauer(CustomTextBox11.Text, CustomTextBox12.Text)
- DauerFeld_nachmittag(3) = BerechneDauer(CustomTextBox15.Text, CustomTextBox16.Text)
- DauerFeld_nachmittag(4) = BerechneDauer(CustomTextBox19.Text, CustomTextBox20.Text)
- DauerFeld_nachmittag(5) = BerechneDauer(CustomTextBox23.Text, CustomTextBox24.Text)
- DauerFeld_nachmittag(6) = BerechneDauer(CustomTextBox27.Text, CustomTextBox28.Text)
- DauerFeld_nachmittag(7) = BerechneDauer(CustomTextBox31.Text, CustomTextBox32.Text)
- DauerFeld_nachmittag(8) = BerechneDauer(CustomTextBox35.Text, CustomTextBox36.Text)
- DauerFeld_nachmittag(9) = BerechneDauer(CustomTextBox39.Text, CustomTextBox40.Text)
- DauerFeld_nachmittag(10) = BerechneDauer(CustomTextBox43.Text, CustomTextBox44.Text)
- DauerFeld_nachmittag(11) = BerechneDauer(CustomTextBox47.Text, CustomTextBox48.Text)
- DauerFeld_nachmittag(12) = BerechneDauer(CustomTextBox51.Text, CustomTextBox52.Text)
- DauerFeld_nachmittag(13) = BerechneDauer(CustomTextBox55.Text, CustomTextBox56.Text)
- DauerFeld_nachmittag(14) = BerechneDauer(CustomTextBox59.Text, CustomTextBox60.Text)
- DauerFeld_nachmittag(15) = BerechneDauer(CustomTextBox63.Text, CustomTextBox64.Text)
- DauerFeld_nachmittag(16) = BerechneDauer(CustomTextBox67.Text, CustomTextBox68.Text)
- DauerFeld_nachmittag(17) = BerechneDauer(CustomTextBox71.Text, CustomTextBox72.Text)
- DauerFeld_nachmittag(18) = BerechneDauer(CustomTextBox75.Text, CustomTextBox76.Text)
- DauerFeld_nachmittag(19) = BerechneDauer(CustomTextBox79.Text, CustomTextBox80.Text)
- DauerFeld_nachmittag(20) = BerechneDauer(CustomTextBox83.Text, CustomTextBox84.Text)
- DauerFeld_nachmittag(21) = BerechneDauer(CustomTextBox87.Text, CustomTextBox88.Text)
- DauerFeld_nachmittag(22) = BerechneDauer(CustomTextBox91.Text, CustomTextBox92.Text)
- DauerFeld_nachmittag(23) = BerechneDauer(CustomTextBox95.Text, CustomTextBox96.Text)
- DauerFeld_nachmittag(24) = BerechneDauer(CustomTextBox99.Text, CustomTextBox100.Text)
- DauerFeld_nachmittag(25) = BerechneDauer(CustomTextBox103.Text, CustomTextBox104.Text)
- DauerFeld_nachmittag(26) = BerechneDauer(CustomTextBox107.Text, CustomTextBox108.Text)
- DauerFeld_nachmittag(27) = BerechneDauer(CustomTextBox111.Text, CustomTextBox112.Text)
- DauerFeld_nachmittag(28) = BerechneDauer(CustomTextBox115.Text, CustomTextBox116.Text)
- DauerFeld_nachmittag(29) = BerechneDauer(CustomTextBox119.Text, CustomTextBox120.Text)
- DauerFeld_nachmittag(30) = BerechneDauer(CustomTextBox123.Text, CustomTextBox124.Text)
- 'Gesamtsumme berechnen:
- Gesamtdauer = 0
- For i = 0 To 30
- Gesamtdauer = Gesamtdauer + DauerFeld_vormittag(i)
- Gesamtdauer = Gesamtdauer + DauerFeld_nachmittag(i)
- Next
- GesamtdauerStr = MinutenInStunden(Gesamtdauer)
- Dim gethour As New INIDatei
- Dim grammatik As String
- Dim grammatik1 As String
- gethour.Pfad = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Umrechner\settings.ini"
- If CDbl(gethour.WertLesen("General", "Hours")) = 1 Then
- grammatik = " Stunde"
- grammatik1 = " wurde "
- Else
- grammatik = " Stunden"
- grammatik1 = " wurden "
- End If
- Dim altestunden = Convert.ToInt32(Microsoft.VisualBasic.Left(GesamtdauerStr, 2))
- Dim altemin = Convert.ToInt32(Microsoft.VisualBasic.Right(GesamtdauerStr, 2))
- Dim berechnungneuerstd = altestunden - CInt(gethour.WertLesen("General", "Hours"))
- ergebnis.Text = "Stunden: " & berechnungneuerstd & ":" & altemin
- txtabzug.Text = "Es" & grammatik1 & gethour.WertLesen("General", "Hours") & grammatik & " abgezogen"
- gesammt.Text = "Gesammtstunden: " & altestunden & ":" & altemin
- For i = 0 To 30
- Gesamtdauerlohn = Gesamtdauerlohn + DauerFeld_vormittag(i)
- Gesamtdauerlohn = Gesamtdauerlohn + DauerFeld_nachmittag(i)
- Next
- GesamtdauerStrlohn = MinutenInStundenlohn(Gesamtdauerlohn)
- Dim INI As New INIDatei
- INI.Pfad = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Umrechner\settings.ini"
- INI.WertSchreiben("Berechnung", "Ergebnis", GesamtdauerStrlohn)
- Dim neuerwert As Double = CDbl(GesamtdauerStrlohn) - CDbl(INI.WertLesen("General", "Hours"))
- INI.WertSchreiben("Berechnung", "Ueberstunden", CStr(neuerwert))
- Dim ininull As New INIDatei
- ininull.Pfad = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Umrechner\settings.ini"
- If ininull.WertLesen("General", "NullClear") = "Yes" Then
- For Each ctl In Me.Controls.OfType(Of TextBox)()
- Console.WriteLine(ctl.Name)
- If ctl.Text = "00:00" Then
- ctl.Text = ""
- End If
- Next
- End If
- lohnrechnen.Enabled = True
- End Sub
Nun möchte ich aber nicht mehr die TextBoxen ansprechen, sondern Die einzelnden Kästchen aus dem DataGridView (31 Reihen, je 4 Spalten)
Wie aber kann ich jetzt Die Berechnungen darauflegen? Und wie ist es möglich diese Funktion hier auf das DataGridView zu beziehen?
Wenn ich das hinbekommen habe bzw. weiß wie es geht sollte ich den rest eigendlich alleine schaffen.
Liebe Grüße