Código vb:
FUNCION QUE ME DEVUELVE LA DIFERENCIA DE DIASVer original
For i As Integer = 0 To dgListfich.Rows.Count - 1 ' RECORRO EL DATAGRID If dgListfich.Item(25, i).Value = "0" Then ' SI CUMPLE ESTA CONFICION QUE LO PINTE(EN ESTE CASO ES EL CAMPO ESTADO) Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Red Me.dgListfich.Rows(i).DefaultCellStyle.ForeColor = Color.White ElseIf dgListfich.Item(25, i).Value = "1" Then ' AQUI BIENE MI PROBLEMA ' AQUI VALIDO SI LA DIFERENCIA DE DIAS ES MENOR O IGUAL A 2 ' QUE PINTE DE COLOR NARANJA If DifDias(CDate(dgListfich.Item(20, dgListfich.CurrentRow.Index).Value)) <= 2 Then Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Orange Me.dgListfich.Rows(i).DefaultCellStyle.ForeColor = Color.White Else ' PERO SIEMPRE SALTA A ESTE ELSE, Y YO EH REVIZADO EN LO QUE ME ' DEVUELVE ESA FUNCION Y SI ES LO QUE DESEO, OSEA UN INTEGER Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Azure End If ElseIf dgListfich.Item(25, i).Value = "2" Then Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Azure ElseIf dgListfich.Item(25, i).Value = "3" Then Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.YellowGreen ElseIf dgListfich.Item(25, i).Value = "4" Then Me.dgListfich.Rows(i).DefaultCellStyle.BackColor = Color.Silver End If Next
Código vb:
Los demás ELSEIF si funcionan bien, si colorean el problema es que si entra alli dentro de ese IF siempre mostrara de ese color, osea asi la diferencia de fechas sea mínima amplia, negativa o positiva.Ver original
Public Function DifDias(ByVal dat As Date) As Integer DifDias = DateDiff(DateInterval.Day, Now.Date, dat) End Function
Espero me puedan Ayudar.