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