Agregar varias fichas de detalle en bloque


([N1] rickmarquez) #1

Que tal amigos,

Estoy iniciando en Velneo y estoy atorando en algo.

Tengo un formulario donde muestro una relacion tipica MAESTRO - DETALLE (historico)

Lo que quiero hacer es mientras estoy dando de alta un registro del maestro, quiero agregar desde un proceso varios registros de detalle (historicos ) en bloque.

¿Como lo puedo hacer?


([N1] aztecmexico) #2

Crea un manejador de evento en el formulario donde realizas el alta del maestro, ahi programas los bucles o todas las altas una por una que quieras dar en los detalles.

Otra sería con trigger propios de la tabla maestra, yo así lo uso, genero un maestro que por ejemplo indica que se estan registrando 500 folios de autorización, pues bien, a partir de ese maestro o cabecera, genero 500 lineas de detalle con un trigger posterior al alta del maestro mediante un bucle.

NSATCBBS Alta: Posterior a un alta de ficha

Set ( VL_FOLIO_INI, #CBB_FOL_INI )

Set ( VL_FOLIO_ASIG, #CBB_FOL_ASIG )

Set ( VL_FOLIO_FIN, VL_FOLIO_INI + VL_FOLIO_ASIG )

Set ( VL_ID_NSATCBBS, #ID )

Set ( VL_ID_SERIE, #CBB_SERIE )

Set ( VL_ID_EMP, #EMP )

Set ( VL_USR_ID, #ALT_USR )

For ( VL_CONTADOR, VL_FOLIO_INI, VL_CONTADOR < VL_FOLIO_FIN, 1 )

Crear nueva ficha en memoria ( Linea_folios, NSATCBBS_LINEAS@NEOFACTURA )

Modificar campo ( EMP, VL_ID_EMP )

Modificar campo ( ALT_USR, VL_USR_ID )

Modificar campo ( NSATCBBS, VL_ID_NSATCBBS )

Modificar campo ( CBBL_FOLIO, VL_CONTADOR )

Modificar campo ( SER, VL_ID_SERIE )

Alta de ficha ( Linea_folios )

 


([N1] rickmarquez) #3

¿Tengo que dar de alta forzosamente el registro del maestro (interfaz:guardar alta o modificacion) antes de generar el alta de registro de detalle en bloque?

 


([N1] aztecmexico) #4

Si, si no esta dado de alta el maestro entonces no existe el Id para que los históricos puedan hacer referencia a su maestro.

Si te refieres a llenar todos los posibles campos del maestro entonces la respuesta es no, forza el alta del maestro en algún punto con un evento de formulario y con eso es suficiente. Ojo, si par los históricos solo requieres el ID del maestro con eso es suficiente, si en cambio requieres otro tipo de datos del maestro que es mínimo conocer antes de generar los históricos pues lanzas al alta del maestro hasta que los campos del maestro requeridos tengan algún valor.

 


([N1] rickmarquez) #5

Mmmm… como velneo a traves de las diferentes vistas de datos puede agregar registros de detalle (historicos) sin necesidad de grabar el registro maestro… pense que existia una alternativa, pero bueno… ni modo.


([N1] aztecmexico) #6

No es lógico el planteamiento, a menos que te refieras a otra cosa.

Si tienes una rejilla donde veas montones de registros y quieres ver a sus maestros, es obvio que el maestro debe existir antes de la creación del histórico, de lo contrario te quedarian los históricos “huerfanos”.

Otra sería que puedes creas registros que en concepto son históricos de alguien, pero deseas en todo caso hacer la relación posteriormente, en ese caso puedes lanzar el proceso de creación de registros, y generarlos tal cual, sin que apunten a ningún maestro, y posteriormente por proceso, o manualmente asignarles sus maestros correspondientes.

Pero, repito, si estas editando un maestro, o creándolo, y a partir de ese registro quieres crear sus históricos, es necesario que el maestro exista antes.


([N1] rickmarquez) #7

Me refiero a que por ejemplo: abres un formulario de alta, y en este formulario existe una rejilla (o cualquier otra vista de datos) con registros de detalle… puedo perfectamente (porque ya lo he hecho) SIN GRABAR EL MAESTRO empezar a agregar registros al historicos (lanzando un formulario de alta ligado a la rejilla)… estos registros del historico se muestran perfectamente en la rejilla y el maestro aun no esta grabado… de tal forma que si oprimo el boton cancelar… desaparece el maestro junto con todos los registros de detalle que acababa de agregar… a eso me refería.

Lo que queria hacer es que en lugar de agregar los registros del historico de uno en uno (lanzado un formulario de alta ligado a la rejilla del historico)… queria hacerlo en bloque.

Ya utilice la solución que me propusiste, y funciono… gracias.