vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Summe zum Datum automatisieren 
Autor: effeff
Datum: 11.11.18 12:18

Als Denkanstoß...

Du hast doch immer nur die Daten eines Tages, oder? D. h., Du wirst bei Deinen Berechnungen nie eine Tagesgrenze überschreiten.

Gehen wir vom folgenden aus: Du hast ein DateTimePicker namens "dtpBeginn" und einen namens "dtpEnde". Du hast einen Button namens "btnUebernehmen", eine ComboBox namens "cmbArt" und eine namens "cmbPrioritaet" mit entsprechenden Labels. Zudem noch ein DataGridView namens "DataGridView1".

Fangen wir an:

Public Class Form1
 
    Dim dt As New DataTable
    Dim iBasiszeit As Integer = 480
    Dim iRestzeit As Integer = 0
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        dtErstellen()
        dgvEinstellen()
        cmbArtFuellen()
        cmbPrioritaetFuellen()
    End Sub
 
    Private Sub dgvEinstellen()
        With DataGridView1
            .DataSource = dt
            .RowsDefaultCellStyle.BackColor = Color.White
            .AlternatingRowsDefaultCellStyle.BackColor = Color.Azure
            .AllowUserToAddRows = False 'Die Zeilen werden per Code hinzugefügt
        End With
    End Sub
 
    Private Sub DTPsEinstellen()
        With dtpBeginn
            .Format = DateTimePickerFormat.Custom
            .CustomFormat = "HH:mm"
            .ShowUpDown = True
        End With
        With dtpEnde
            .Format = DateTimePickerFormat.Custom
            .CustomFormat = "HH:mm"
            .ShowUpDown = True
        End With
    End Sub
 
    Private Sub dtErstellen()
        dt.TableName = "Irgendwas"
 
        Dim cID As New DataColumn
        cID.DataType = System.Type.GetType("System.Int32")
        cID.AutoIncrement = True
        cID.ColumnName = "ID"
        dt.Columns.Add(cID)
        Dim pKey(1) As DataColumn
        pKey(1) = dt.Columns("ID")
        dt.PrimaryKey = pKey
 
        Dim cBeginn As New DataColumn
        cBeginn.DataType = System.Type.GetType("System.DateTime")
        cBeginn.ColumnName = "Beginn"
        dt.Columns.Add(cBeginn)
 
        Dim cEnde As New DataColumn
        cEnde.DataType = System.Type.GetType("System.DateTime")
        cEnde.ColumnName = "Ende"
        dt.Columns.Add(cEnde)
 
        Dim cArt As New DataColumn
        cArt.DataType = System.Type.GetType("System.String")
        cArt.ColumnName = "Art"
        dt.Columns.Add("Art")
 
        Dim cPrioritaet As New DataColumn
        cPrioritaet.DataType = System.Type.GetType("System.String")
        cPrioritaet.ColumnName = "Prioritaet"
        dt.Columns.Add("Prioritaet")
 
        Dim cDauer As New DataColumn
        cDauer.DataType = System.Type.GetType("System.Int32")
        cDauer.ColumnName = "Dauer"
        dt.Columns.Add(cDauer)
 
        Dim cRestzeit As New DataColumn
        cRestzeit.DataType = System.Type.GetType("System.Int32")
        cRestzeit.ColumnName = "Restzeit"
        dt.Columns.Add(cRestzeit)
 
    End Sub
 
    Private Sub cmbArtFuellen()
        With cmbArt
            .Items.Add("Aufgabe")
            .Items.Add("Irgendwas")
            .Items.Add("Nochwas")
        End With
    End Sub
    Private Sub cmbPrioritaetFuellen()
        With cmbPrioritaet
            .Items.Add("A")
            .Items.Add("B")
            .Items.Add("C")
        End With
    End Sub
 
    Private Sub btnUebernehmen_Click(sender As Object, e As EventArgs) Handles _
      btnUebernehmen.Click
 
        If cmbArt.Text = "" Then
            MessageBox.Show("Sie müssen erst noch eine Art auswählen!", _
              "Hinweis:")
            Exit Sub
        End If
        If cmbPrioritaet.Text = "" Then
            MessageBox.Show("Sie müssen erst noch die Priorität auswählen!", _
              "Hinweis:")
            Exit Sub
        End If
        If dtpBeginn.Value = dtpEnde.Value Or dtpBeginn.Value > _
          dtpEnde.Value Then
            MessageBox.Show("Kontrollieren Sie bitte Ihre Zeiten!", "Hinweis:")
            Exit Sub
        End If
 
        Dim NewRow As DataRow = dt.NewRow
        NewRow("Beginn") = dtpBeginn.Value
        NewRow("Ende") = dtpEnde.Value
        NewRow("Art") = cmbArt.Text
        NewRow("Prioritaet") = cmbPrioritaet.Text
        dt.Rows.Add(NewRow)
        Berechnen()
 
    End Sub
 
    Private Sub Berechnen()
 
        iRestzeit = iBasiszeit
 
        Dim dtBeginn As DateTime = Nothing
        Dim dtEnde As DateTime = Nothing
        Dim iDauer As Integer = 0
 
        For Each r As DataRow In dt.Rows
            dtBeginn = r("Beginn")
            dtEnde = r("Ende")
            iDauer = DateDiff(DateInterval.Minute, dtBeginn, dtEnde)
            r("Dauer") = iDauer
            iRestzeit = iRestzeit - iDauer
            r("Restzeit") = iRestzeit
        Next
 
    End Sub
 
    Private Sub DataGridView1_UserDeletedRow(sender As Object, e As _
      DataGridViewRowEventArgs) Handles DataGridView1.UserDeletedRow
        Berechnen()
    End Sub
End Class

EALA FREYA FRESENA

Beitrag wurde zuletzt am 11.11.18 um 12:19:18 editiert.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Summe zum Datum automatisieren1.409ERBRU09.11.18 19:53
Re: Summe zum Datum automatisieren812Kuno6009.11.18 21:23
Re: Summe zum Datum automatisieren823ERBRU09.11.18 22:00
Re: Summe zum Datum automatisieren814Franki10.11.18 03:49
Re: Summe zum Datum automatisieren823ERBRU10.11.18 17:13
Re: Summe zum Datum automatisieren807ERBRU10.11.18 17:54
Re: Summe zum Datum automatisieren820effeff10.11.18 19:58
Re: Summe zum Datum automatisieren789ERBRU10.11.18 20:07
Re: Summe zum Datum automatisieren799effeff11.11.18 12:18
Re: Summe zum Datum automatisieren805ERBRU11.11.18 13:15
Re: Summe zum Datum automatisieren796ERBRU11.11.18 20:14
Re: Summe zum Datum automatisieren812effeff11.11.18 21:20
Re: Summe zum Datum automatisieren781ERBRU11.11.18 21:33
Re: Summe zum Datum automatisieren779Franki12.11.18 02:35
Re: Summe zum Datum automatisieren790effeff11.11.18 22:35
Re: Summe zum Datum automatisieren835ERBRU12.11.18 06:10
Re: Summe zum Datum automatisieren792Franki13.11.18 03:34
Re: Summe zum Datum automatisieren798ERBRU13.11.18 06:44
Re: Summe zum Datum automatisieren771Franki14.11.18 04:36
Re: Summe zum Datum automatisieren791ERBRU14.11.18 17:26
Re: Summe zum Datum automatisieren787Franki15.11.18 04:05
Re: Summe zum Datum automatisieren768ERBRU16.11.18 19:23
Re: Summe zum Datum automatisieren750Franki17.11.18 00:43
Re: Summe zum Datum automatisieren752ERBRU18.11.18 11:47
Re: Summe zum Datum automatisieren757ERBRU20.11.18 20:13
Re: Summe zum Datum automatisieren796ERBRU13.11.18 19:55
Re: Summe zum Datum automatisieren791ERBRU13.11.18 14:27
Re: Summe zum Datum automatisieren815effeff13.11.18 23:33
Re: Summe zum Datum automatisieren811ERBRU15.11.18 10:59
Re: Summe zum Datum automatisieren793ERBRU21.11.18 11:00

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel