FOR NEXT , registro no se acumula
Publicado por Hèctor Guerrero (10 intervenciones) el 27/10/2008 20:56:22
Buenas tardes,
Tengo un ciclo FOR NEXT , con el cual acumulo en una variable los importes de cada registro de empleado de cierto rango de fechas ; el problema es que detecto que algunos registros que cumplen con la condicion los brinca y no los acumula a la variable (detecte que es el primer registro del empleado; estarè haciendo un brinco de màs?); mediante un messagebox pude ver que es al momento de cambiar de empleado y no he encontrado la soluciòn
Lo curioso del asunto que son 1020 registros , de los cuales los ùltimos 35 son los del problema ya que si me acumulan otros conceptos e inclusive del mismo concepto solo el primer registro del rango de fecha no y solo el ùltimo empleado no me despliega nada de registro
Le anexo el codigo :
' ASIGNO VALOR A LAS VARIBLES
reng = dsreg.Tables.Item(0).Rows(0)
empleado = reng.Table.Rows(i).Item("empleado_id")
' INICIO EL CICLO
For i = 0 To dsreg.Tables(0).Rows.Count - 1
' VALIDO SI ES EL MISMO EMPLEADO
If empleado = reng.Table.Rows(i).Item("empleado_id") Then
' VALIDO EL RANGO DE FECHAS
If reng.Table.Rows(i).Item("FECHA") >= Form1.DateTimePicker1.Value And reng.Table.Rows(i).Item("FECHA") <= Form1.DateTimePicker4.Value Then
' VALIDO LOS CONCEPTOS , EN ESTE CONCEPTO_NO_ID (104) TENGO EL PROBLEMA NO ME ACUMULA EL 1ER REGISTRO DEL RANGO DE FECHA
If reng.Table.Rows(i).Item("concepto_no_id") = 104 Then
tordi = tordi + reng.Table.Rows(i).Item("importe")
End If
If reng.Table.Rows(i).Item("concepto_no_id") = 8658 Then
tpdom = tpdom + reng.Table.Rows(i).Item("importe")
End If
If reng.Table.Rows(i).Item("concepto_no_id") = 8680 Then
tpres = tpres + reng.Table.Rows(i).Item("importe")
End If
End If
Else
' CUANDO ES OTRO EMPLEADO GRABO A EXCELL E INICIALIZO VARIABLES
objHojaExcel.Cells(fila, "A") = empleado
objHojaExcel.Cells(fila, "I") = tordi
objHojaExcel.Cells(fila, "W") = tpdom
objHojaExcel.Cells(fila, "X") = tpres
empleado = reng.Table.Rows(i).Item("empleado_id")
tordi = 0
tpdom = 0
tpres = 0
fila = fila + 1
End If
Next i
Gracias de antemano por su valioso apoyo
Hèctor Guerrero
[email protected]
Tengo un ciclo FOR NEXT , con el cual acumulo en una variable los importes de cada registro de empleado de cierto rango de fechas ; el problema es que detecto que algunos registros que cumplen con la condicion los brinca y no los acumula a la variable (detecte que es el primer registro del empleado; estarè haciendo un brinco de màs?); mediante un messagebox pude ver que es al momento de cambiar de empleado y no he encontrado la soluciòn
Lo curioso del asunto que son 1020 registros , de los cuales los ùltimos 35 son los del problema ya que si me acumulan otros conceptos e inclusive del mismo concepto solo el primer registro del rango de fecha no y solo el ùltimo empleado no me despliega nada de registro
Le anexo el codigo :
' ASIGNO VALOR A LAS VARIBLES
reng = dsreg.Tables.Item(0).Rows(0)
empleado = reng.Table.Rows(i).Item("empleado_id")
' INICIO EL CICLO
For i = 0 To dsreg.Tables(0).Rows.Count - 1
' VALIDO SI ES EL MISMO EMPLEADO
If empleado = reng.Table.Rows(i).Item("empleado_id") Then
' VALIDO EL RANGO DE FECHAS
If reng.Table.Rows(i).Item("FECHA") >= Form1.DateTimePicker1.Value And reng.Table.Rows(i).Item("FECHA") <= Form1.DateTimePicker4.Value Then
' VALIDO LOS CONCEPTOS , EN ESTE CONCEPTO_NO_ID (104) TENGO EL PROBLEMA NO ME ACUMULA EL 1ER REGISTRO DEL RANGO DE FECHA
If reng.Table.Rows(i).Item("concepto_no_id") = 104 Then
tordi = tordi + reng.Table.Rows(i).Item("importe")
End If
If reng.Table.Rows(i).Item("concepto_no_id") = 8658 Then
tpdom = tpdom + reng.Table.Rows(i).Item("importe")
End If
If reng.Table.Rows(i).Item("concepto_no_id") = 8680 Then
tpres = tpres + reng.Table.Rows(i).Item("importe")
End If
End If
Else
' CUANDO ES OTRO EMPLEADO GRABO A EXCELL E INICIALIZO VARIABLES
objHojaExcel.Cells(fila, "A") = empleado
objHojaExcel.Cells(fila, "I") = tordi
objHojaExcel.Cells(fila, "W") = tpdom
objHojaExcel.Cells(fila, "X") = tpres
empleado = reng.Table.Rows(i).Item("empleado_id")
tordi = 0
tpdom = 0
tpres = 0
fila = fila + 1
End If
Next i
Gracias de antemano por su valioso apoyo
Hèctor Guerrero
[email protected]
Valora esta pregunta


0