Visual Basic.NET - FOR NEXT , registro no se acumula

   
Vista:

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
hguerrerov71@hotmail.com
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:FOR NEXT , registro no se acumula

Publicado por OliBeer (391 intervenciones) el 28/10/2008 17:00:36
Hola, me gustaría ver una cuadrícula con los datos que estás manejando, para ver si por ahí está el problema.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FOR NEXT , registro no se acumula

Publicado por Hèctor G (10 intervenciones) el 31/10/2008 21:58:34
Muchas Gracias Olibeer,

Ya resolvì el problema, como ? , despuès del ELSE al termina de grabar el registro en excell agregue el siguiente codigo :

' INICIALICE LA VARIABLE ACU PARA GUARDAR el importe del primer registro del siguiente empleado

acu = reng.Table.Rows(i).Item("importe")
tordi = 0
If empleado <> reng.Table.Rows(i).Item("empleado_id") And reng.Table.Rows(i).Item("fecha") >= F1 And reng.Table.Rows(i).Item("fecha") <= F2 Then
If reng.Table.Rows(i).Item("concepto_no_id") = 104 Then
tordi = acu
End If
End If
empleado = reng.Table.Rows(i).Item("empleado_id")
fila = fila + 1

Gracias de nuevo por tus atenciones

Hèctor Guerrero
hguerrerov71@hotmail.com
Monterrey, N.L.Mèx.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar