152 lines
5.9 KiB
Plaintext
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 |