Un saluto al forum,
dovrei sottrarre da una listview dove carico i totali in anni mesi e giorni in base alla percentuale dalla più grande alla più piccola.
Faccio un esempio:
nella listview1 carico i totali delle mansioni di ogni lavoratore raggruppati per percentuale:
Mansione: SALDATORE Percentuale Mansione: 0,75% Periodo Lavorato ANNI 5 MESI 3 GIORNI 5
Mansione: MULETTISTA Percentuale Mansione: 1,75% Periodo Lavorato ANNI 5 MESI 4 GIORNI 15
Mansione: CONDUCENTE VEICOLI STRADALI Percentuale Mansione: 2,25% Periodo Lavorato ANNI 3 MESI 0 GIORNI 0
Mansione: COLLAUDATORE DI MEZZI Percentuale Mansione: 4,25% Periodo Lavorato ANNI 0 MESI 6 GIORNI 8
il totale di tutti i periodi è di ANNI 14 MESI 1 GIORNI 28
considerato che l'azienda paga a cadenza annuale per un massimo di anni 20 e solo gli anni interi dovrei detrarre MESi 1 GIORNI 28 dal periodo con la percentuale
minore mantenendo inalterati i periodi con percentuale superiore.
e visualizzare i periodi cosi ricalcolati nella listview2
Mansione: SALDATORE Percentuale Mansione: 0,75% Periodo Lavorato ANNI 5 MESI 1 GIORNI 7
Mansione: MULETTISTA Percentuale Mansione: 1,75% Periodo Lavorato ANNI 5 MESI 4 GIORNI 15
Mansione: CONDUCENTE VEICOLI STRADALI Percentuale Mansione: 2,25% Periodo Lavorato ANNI 3 MESI 0 GIORNI 0
Mansione: COLLAUDATORE DI MEZZI Percentuale Mansione: 4,25% Periodo Lavorato ANNI 0 MESI 6 GIORNI 8
per un totale di anni 14 mesi 0 giorni 0
Chiedo un aiuto grazie
Ho fatto cosi:
For i As Integer = 0 To Me.ListView2.Items.Count - 1
Dim anni As Integer = ListView2.Items(i).SubItems(2).Text
Dim mesi As Integer = ListView2.Items(i).SubItems(3).Text
Dim giorni As Integer = ListView2.Items(i).SubItems(4).Text
Dim GiorniTotali As Integer = (CInt(anni) * 365) + (CInt(mesi) * 30) + CInt(giorni)
Dim Max As Integer
Select Case ((Math.Truncate(Fix(GiorniTotali) / 365)) * 365)
Case Is > 7295
Max = 7295
Case Is < 7295
Max = ((Math.Truncate(Fix(GiorniTotali) / 365)) * 365)
End Select
Dim Maxvalore As Integer = Max
Dim totale As Integer = GiorniTotali
Dim Differenza As Integer = totale - Maxvalore
If totale > Maxvalore Then
If GiorniTotali > Differenza Then
GiorniTotali = GiorniTotali - Differenza
Differenza = 0
Else
Differenza = Differenza - GiorniTotali
GiorniTotali = 0
End If
End If
'Trasformo anni mesi e giorni
Dim wY As Integer = Math.Truncate(GiorniTotali / 365)
Dim wM As Integer = Math.Truncate((GiorniTotali - (wY * 365)) / 30)
Dim wD As Integer = (GiorniTotali - ((wY * 365) + (wM * 30)))
ListView3.Items.Add(ListView2.Items(i).SubItems(0).Text)
ListView3.Items(i).SubItems.Add(ListView2.Items(i).SubItems(1).Text)
ListView3.Items(i).SubItems.Add(wY)
ListView3.Items(i).SubItems.Add(wM)
ListView3.Items(i).SubItems.Add(wD)
Next
ListView3.Columns.Add("MANSIONE", 250, HorizontalAlignment.Left)
ListView3.Columns.Add("MAGG. %", 70, HorizontalAlignment.Center)
ListView3.Columns.Add("ANNI", 70, HorizontalAlignment.Center)
ListView3.Columns.Add("MESI", 70, HorizontalAlignment.Center)
ListView3.Columns.Add("GIORNI", 70, HorizontalAlignment.Center)
il problema è che non fa i calcoli che deve fare in base alla percentuale.
altra cosa nel ciclo devo omettere la prima riga della listview2
Mau67