Hermano contiguo sin registro


([N1] Giuseppe::Komenco) #1

Ando mirando por la documentación, pero no lo encuentro.
.
Cuando un registro tiene un campo "hermano contiguo" apuntando al siguiente registro....si no hay siguiente registro, qué ocurre?
.
En una tabla, genero varios registros de recibos para una factura, y quiero desde un evento de tabla, si la cantidad aportada es mayor a la necesitada, modifique también el siguiente (y el siguiente si corresponde).
.
Por un lado, no sé si lo estoy usando correctamente, ya que es la primera vez que uso este tipo de campo, y por otro lado, no encuentro en la documentación nada sobre, qué pasa, cuando no existe un siguiente..empieza de nuevo? o como?
.
Adjunto una captura del evento "Interno a una modif de ficha". El Hermano contiguo en cuestión, sería el campo #SIG_REC
Adjunto otra de la configuración del campo SIG_REC en cuestión, ya que, como digo, es la primera vez que lo uso, y la propiedad Partes comunes me tiene un poco liado.
.
Gracias.

[attachment=20831,1647] [attachment=20831,1648]


([N1] Pepeto) #2

Cuando un registro tiene un campo "hermano contiguo" apuntando al siguiente registro....si no hay siguiente registro, qué ocurre?

Si está bien definido, lo que ocurre debe ser lo siguiente:
Para definirlo debes crear un indice en la tabla que tenga al menos 2 componentes
El num. de partes comunes es importante para lo que preguntas, porque si lo dejas a "0", considera que todos los registros son hermanos.

1. Si utilizas estos punteros a Hermanos contiguos para calcular formulas o contenidos iniciales y no existe el siguiente registro o el anterior segun el caso, el valor debe ser inicializado a cero o vacío segun el caso.
2. Si utilizas los punteros para moverte por las fichas con un boton, al llegar al ultimo registro de un Hermano contiguo siguiente, debe moverse al primer registro siguiente (siguiendo el orden del indice utilizado para la resolucion), a no ser que limites previamente la lista que vas a recorrer con el boton.

Espero haberme explicado bien

un saludo
José Luis
http://www.ascsl.com


([N1] Giuseppe::Komenco) #3

No me queda claro :P

Yo le he puesto que el índice es por el campo DOC_ALMACEN. En el caso de un 30/60/90, tendré 3 recibos. Lo que quiero, es, si el usuario, al segundo recibo, introduce una cantidad recibida, superior al importe del recibo, el excedente, se lo ponga como recibido del siguiente recibo. Espero explicarme....
.
Pero mi duda es, ya que lo hago desde un evento de modificación de la tabla, en el tercer recibo, si la cantidad recibida es superior a la necesitada, tirará del condicional para irse al siguiente registro, y ahí, es, donde no sé, si no hay recibo, o qué.
.
Puedo controlarlo manualmente puesto en la tabla en cada registro controlo el número de recibo, y la cantidad total de recibos, pero si en el último recibo, SIG_REC no iría a parar a ninguna parte, me ahorro tener que hacerlo.
.
En el evento que he puesto, es correcto el uso del "hermano contiguo" así?


([N1] Synetic) #4

Puedes condicionar el cargar lista a si existe SIG_REG.ID