Files
Lehrlingsparcours/_archiv/LP/.svn/pristine/29/29007f9888e79138c3cd8b4665179fc32c948c1c.svn-base
2019-12-21 10:58:30 +01:00

152 lines
5.9 KiB
Plaintext

Imports System.Data.SQLite
Public Class FrmZuteilung
Dim datenbank As String = My.Settings.LPConnectionString
Dim allg As New clsAllgemein
Private Sub FrmZuteilung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ds As New DataSet
Dim daten As New DataSet
Dim SQLconnect As New SQLite.SQLiteConnection()
SQLconnect.ConnectionString = Globals.datenbank
SQLconnect.Open()
Dim da As New SQLiteDataAdapter("", SQLconnect)
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = "delete from zuteilung"
sqlcmd.ExecuteNonQuery()
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = "SELECT * FROM FirmaBeruf where aktiv=1 order by berufnr, zeitnr, firmanr"
da.SelectCommand = sqlcmd
da.Fill(ds, "FirmaBeruf")
daten.Tables.Add(ds.Tables(0).Copy)
ds.Tables.Clear()
If Me.chkSelection.Checked = True Then
sqlcmd.CommandText = allg.Get_SQLAbfrage_Statement(8)
Else
sqlcmd.CommandText = allg.Get_SQLAbfrage_Statement(9)
End If
'sqlcmd.CommandText = "SELECT * FROM SchuelerBeruf where aktiv=1 order by prioritaet, berufnr "
da.SelectCommand = sqlcmd
da.Fill(ds, "SchuelerBeruf")
daten.Tables.Add(ds.Tables(0).Copy)
Me.ProgressBar1.Value = 0
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = daten.Tables("SchuelerBeruf").Rows.Count * 2
daten.Tables("FirmaBeruf").Columns.Add("Zugeteilt")
For Each r As DataRow In daten.Tables("FirmaBeruf").Rows
r.Item("Zugeteilt") = 0
Next
'Prio 1
For Each r As DataRow In daten.Tables("SchuelerBeruf").Rows
Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
Application.DoEvents()
If r.Item("Prioritaet") = 1 Then
Zuteilung(r, daten.Tables("FirmaBeruf"))
End If
Next
For Each r As DataRow In daten.Tables("SchuelerBeruf").Rows
Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
Application.DoEvents()
If r.Item("Prioritaet") <> 1 Then
Zuteilung(r, daten.Tables("FirmaBeruf"))
End If
Next
sqlcmd.Dispose()
SQLconnect.Close()
MsgBox("Die Automatische Zuteilung wurde abgeschlossen.")
Me.Close()
End Sub
Private Sub Zuteilung(ByRef r As DataRow, ByRef FirmaBeruf As DataTable)
Dim dv As New DataView(FirmaBeruf, "BerufNr=" & r.Item("BerufNr") & " and zugeteilt < anzahl", "", DataViewRowState.CurrentRows)
Dim lpdataset As New LPDataSet
Dim lpzuteilungadapter = New LPDataSetTableAdapters.ZuteilungTableAdapter
Dim i As Integer = 0
Dim counter As Integer = 0
Dim counter1 As Integer = 1
Dim zuteilungrow As LPDataSet.ZuteilungRow
If dv.Count > 0 Then
For i = 0 To dv.Count - 1
Dim ds As New DataSet
Dim daten As New DataSet
Dim SQLconnect As New SQLite.SQLiteConnection()
SQLconnect.ConnectionString = Globals.Datenbank
SQLconnect.Open()
Dim da As New SQLiteDataAdapter("", SQLconnect)
Dim sqlcmd As New SQLiteCommand
sqlcmd.Connection = SQLconnect
sqlcmd.CommandType = CommandType.Text
sqlcmd.CommandText = "select count(*) from zuteilung where schuelernr=" + r.Item("Schuelernr").ToString + " and zeitnr=" + dv.Item(i).Item("Zeitnr").ToString
da.SelectCommand = sqlcmd
da.Fill(ds, "Counter")
counter = ds.Tables(0).Rows(0).Item(0)
If counter = 0 Then Exit For
Next
Dim ds1 As New DataSet
Dim SQLconnect1 As New SQLite.SQLiteConnection()
SQLconnect1.ConnectionString = Globals.Datenbank
SQLconnect1.Open()
Dim da1 As New SQLiteDataAdapter("", SQLconnect1)
Dim sqlcmd1 As New SQLiteCommand
sqlcmd1.Connection = SQLconnect1
sqlcmd1.CommandType = CommandType.Text
sqlcmd1.CommandText = "select count(*) from zuteilung where schuelernr=" + r.Item("Schuelernr").ToString
da1.SelectCommand = sqlcmd1
da1.Fill(ds1, "Counter")
counter1 = ds1.Tables(0).Rows(0).Item(0)
If counter1 > 2 Then Exit Sub
If counter <> 0 Then Exit Sub
zuteilungrow = lpdataset.Zuteilung.NewRow
zuteilungrow.FirmaBerufNr = dv.Item(i).Item("FirmaBerufNr")
zuteilungrow.SchuelerBerufNr = r.Item("SchuelerBerufnr")
zuteilungrow.SchuelerNr = r.Item("SchuelerNr")
zuteilungrow.Zeitnr = dv.Item(i).Item("Zeitnr")
zuteilungrow.Ansprechpartnernr = dv.Item(i).Item("Ansprechpartnernr")
zuteilungrow.Prioritaet = r.Item("Prioritaet")
zuteilungrow.aktiv = True
zuteilungrow.erstellt_am = Now
zuteilungrow.mutiert_am = Now
zuteilungrow.Bemerkung = ""
lpdataset.Zuteilung.AddZuteilungRow(zuteilungrow)
lpzuteilungadapter.Update(lpdataset.Zuteilung)
dv.Item(i).Item("Zugeteilt") = dv.Item(i).Item("Zugeteilt") + 1
End If
End Sub
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
End Class