Questa funzione è un planner che funziona alla prima chiamata, va avanti , indietro, tutto ok
ma se chiudo il form e lo riapro appare i datagrid on una sola riga, una volta risolto il problema potete usarlo se vi va
questo è il codice
Imports System.Web.UI.WebControls
Imports System.Windows.Forms.VisualStyles.VisualStyleElement
Public Class frmPlanimpa
Private Sub frmPlanimpa_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DGV2.ColumnCount = 11
DGV2.RowCount = 26
DGV2.Columns(0).Frozen = True
como_data_old = Today
como_giorno = Mid$(como_data_old, 1, 2)
como_mese = Mid$(como_data_old, 4, 2)
como_anno = Year(como_data_old)
TextBox3.Text = Today
TextBox2.Text = Today.AddDays(+30)
DGV2.Columns(0).Frozen = True
Call agenda1()
Call verifica_impegni1()
End Sub
Private Sub agenda1()
Dim ind_riga As Integer
Dim ind_col As Integer
ind_riga = 0
ind_col = 0
Me.DGV2.ColumnCount = 11
Me.DGV2.RowCount = 26
Me.DGV2.Refresh()
For y = 1 To 25
DGV2.Rows(y - 1).Height = 25
Next
gira_colonna:
ind_col = ind_col + 1
' DGV2.Col = ind_col
DGV2.Font = New Font("ms sans serif", 7, FontStyle.Bold)
DGV2.Columns(ind_col).Width = 100
DGV2.Columns(ind_col).DefaultCellStyle.BackColor = Color.AliceBlue
DGV2.Columns(ind_col).DefaultCellStyle.ForeColor = Color.DarkRed
DGV2.Columns(ind_col).HeaderText = como_giorno + "/" + como_mese + "/" + como_anno
'Testo il mese per impostare il prossimo
If CDec(como_mese) = 4 Or CDec(como_mese) = 6 Or CDec(como_mese) = 9 Or CDec(como_mese) = 11 Then
If CDec(como_giorno) = 30 Then
como_giorno = "0"
como_mese = CDec(como_mese) + 1
End If
End If
If CDec(como_mese) = 1 Or CDec(como_mese) = 3 Or CDec(como_mese) = 5 Or CDec(como_mese) = 7 Or CDec(como_mese) = 8 Or CDec(como_mese) = 10 Then
If CDec(como_giorno) = 31 Then
como_giorno = "0"
como_mese = CDec(como_mese) + 1
End If
End If
If CDec(como_mese) = 2 Then
If CDec(como_giorno) = 28 Or CDec(como_giorno) = 29 Then
como_giorno = "0"
como_mese = CDec(como_mese) + 1
End If
End If
If CDec(como_mese) = 12 Then
If CDec(como_giorno) = 31 Then
como_giorno = "0"
como_mese = "01"
como_anno = CDec(como_anno) + 1
End If
End If
If CDec(como_mese) < 10 Then
mese_como = CDec(como_mese)
como_mese = "00"
Mid$(como_mese, 2, 1) = mese_como
End If
If CDec(como_giorno) > 8 Then
como_giorno = CDec(como_giorno) + 1
Else
giorno_como = como_giorno
como_giorno = "00"
Mid$(como_giorno, 2, 1) = CDec(giorno_como) + 1
End If
If ind_col < 10 Then
GoTo gira_colonna
End If
End Sub
Private Sub verifica_impegni1()
Dim datada As String
Dim dataa As String
DGV2.ColumnCount = 11
DGV2.RowCount = 26
ind_riga = 0
ind_col = 1
i = 0
y = 0
datada = TextBox3.Text.Trim
giorno = Mid$(datada, 1, 2)
mesone = Mid$(datada, 4, 2)
anno = Mid$(datada, 7, 4)
datada = CStr(anno) + "/" + mesone + "/" + CStr(giorno)
ind_col = 10
dataa = TextBox2.Text.Trim
giorno = Mid$(dataa, 1, 2)
mesone = Mid$(dataa, 4, 2)
anno = Mid$(dataa, 7, 4)
dataa = CStr(anno) + "/" + mesone + "/" + CStr(giorno)
leggi_impegno:
Dim mtable As New DataTable
mtable.Clear()
mtable = MyDBaseM.Table("select odl.id_livello, odl.id_impianto, anag.descrizione, odl.data_lavoro, sum(tec.tempo) as tempo, tec.descrizione from (tecnici_odl as tec left join ordini_lavoro as odl on (odl.id_ordine_lavoro = tec.id_ordine_lavoro) ) left join macchinari as anag on (odl.id_livello = anag.id_livello and odl.id_impianto = anag.id_impianto) where odl.data_lavoro >= #" & datada & "# AND odl.data_lavoro <= #" & dataa & "# group by odl.id_livello, odl.id_impianto, anag.descrizione, tec.descrizione, odl.data_lavoro order by odl.id_livello, odl.id_impianto, anag.descrizione, odl.data_lavoro")
If mtable.Rows.Count < 1 Then
MessageBox.Show("Attenzione! non sono presenti impegni per questo periodo")
Exit Sub
End If
ind_riga = 0
ind_col = 0
Dim r As DataRow
r = mtable.Rows(mtable.Rows.Count - 1)
TextBox1.Text = mtable.Rows.Count
For Each r In mtable.Rows
gira_data:
ind_col = ind_col + 1
If ind_col > 10 Then
GoTo fine_impegno
End If
dataa = r("data_lavoro").ToString.Trim
giorno = Mid$(dataa, 1, 2)
mesone = Mid$(dataa, 4, 2)
anno = Mid$(dataa, 7, 4)
dataa = CStr(giorno) + "/" + mesone + "/" + CStr(anno)
If DGV2.Columns(ind_col).HeaderText <> dataa Then
GoTo gira_data
End If
IMPEGNA:
como_Col = ind_col
Dim i As Integer
DGV2.Rows(i).Height = 25
DGV2.Rows(0).Selected = True
gira_ora:
ind_riga = ind_riga + 1
i = ind_riga
DGV2.Item(0, i).Value = DGV2.Item(ind_col, i).Value + r("anag.descrizione").ToString.Trim
DGV2.Item(ind_col, i).Value = DGV2.Item(ind_col, i).Value + Str(r("tempo").ToString.Trim) + "-" + r("tec.descrizione").ToString.Trim
DGV2.Columns(ind_col).DefaultCellStyle.BackColor = Color.AliceBlue
DGV2.DefaultCellStyle.WrapMode = DataGridViewTriState.True
DGV2.Rows(i).Height = DGV2.Rows(i).Height + 5
fine_impegno:
ind_col = 0
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SW_Cale = 4
DGV2.ColumnCount = 11
DGV2.RowCount = 26
ind_riga = 0
ind_col = 1
TextBox2.Text = DGV2.Columns(ind_col).HeaderText
como_data = DGV2.Columns(ind_col).HeaderText
como_data = como_data.AddDays(-10)
TextBox3.Text = como_data.AddDays(-10)
como_giorno = Mid$(como_data, 1, 2)
como_mese = Mid$(como_data, 4, 2)
como_anno = Mid$(como_data, 7, 4)
DGV2.DataBindings.Clear()
DGV2.DataSource = Nothing
DGV2.DataMember = Nothing
DGV2.Refresh()
Call agenda1()
Call verifica_impegni1()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
SW_Cale = 4
DGV2.ColumnCount = 11
DGV2.RowCount = 26
ind_riga = 0
ind_col = 1
TextBox3.Text = DGV2.Columns(ind_col).HeaderText
como_data = DGV2.Columns(ind_col).HeaderText
como_data = como_data.AddDays(+10)
TextBox2.Text = como_data.AddDays(+10)
como_giorno = Mid$(como_data, 1, 2)
como_mese = Mid$(como_data, 4, 2)
como_anno = Mid$(como_data, 7, 4)
DGV2.DataBindings.Clear()
DGV2.DataSource = Nothing
DGV2.DataMember = Nothing
DGV2.Refresh()
Call agenda1()
Call verifica_impegni1()
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
DGV2.DataBindings.Clear()
DGV2.DataSource = Nothing
DGV2.DataMember = Nothing
Me.Close()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If Button3.Text = "Chiudi" Then
MonthCalendar1.Visible = False
Button3.Text = "Scegli Data"
Exit Sub
End If
MonthCalendar1.Visible = True
Button3.Text = "Chiudi"
End Sub
Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateSelected
como_data = MonthCalendar1.SelectionStart.ToString("dd/MM/yyyy")
MonthCalendar1.Visible = False
TextBox3.Text = ""
TextBox2.Text = ""
Button3.Text = "Scegli Data"
ind_riga = 0
ind_col = 1
como_giorno = Mid$(como_data, 1, 2)
como_mese = Mid$(como_data, 4, 2)
como_anno = Mid$(como_data, 7, 4)
TextBox3.Text = como_data
como_data = como_data.AddDays(+30)
TextBox2.Text = como_data
DGV2.DataBindings.Clear()
DGV2.DataSource = Nothing
DGV2.DataMember = Nothing
Call agenda1()
Call verifica_impegni1()
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
If Button5.Text = "Help" Then
RTB1.Visible = True
Button5.Text = "Chiudi"
Else
RTB1.Visible = False
Button5.Text = "Help"
End If
End Sub