#1
|
|||
|
|||
Screen Painter
Saludos, estoy haciendo un programa de mantenimiento a una tabla de empleados, todo lo manejo en una tabla interna y luego lo paso a la tabla de la BD.
En la primera pantalla de mi programa tengo una tabla q muestra todos los empleados (esta dibujada desde el screen painter), se puede crear uno nuevo como seleccionar uno existente y de alli se pasa a visualizarlo, editarlo, eliminarlo segun que se escoja. Mi problema es que cuando creo un nuevo empleado y regreso a la pantalla inicial este no figura en la tabla, pero cuando paso a otras pantallas (como editarlo o eliminarlo) y regreso la tabla si esta actualizada. Se debe hacer algun tipo de refrescamiento especial para el caso en que hago insert o que me recomiendan? nota: incluso he intentado despues del insert hacer nuevamente un select para llenar nuevamente la tabla, pero el resultado es el mismo, el nuevo empleado solo figura cuando salgo del programa y vuelvo a entrar Úlima edición por sandrotirado fecha: 11/09/06 a las 16:47:49. |
#2
|
|||
|
|||
hola
Luego de hacer un insert a la tabla de Bd debes hacer un commit work esto para garantizar que se realizo la escritura del nuevo registro en la base de datos. Creo que con esto solucionas tu problema. Saludos
__________________
GregoryG |
#3
|
|||
|
|||
tambien pense que podria ser eso, pero no soluciono mi problema
|
#4
|
||||
|
||||
Pregunta, cuando haces el commit work, es inmediatamente después de hacer el insert, también te aseguras de que este termine con sy-subrc = 0 (sin error), puedes probar 2 opciones, la primera es limpiar tu tabla interna y realizar de nuevo la selección asegurándote que el nuevo registro sea incluido, la otra es asegúrate que la información es incluida en tu tabla interna (append), te sugiero realices un SORT, para que se acomode en su lugar, es posible que se encuentre en el último registro por el APPEND.
|
#5
|
|||
|
|||
tambien lo he hecho
INSERT zstemp. IF sy-subrc NE 0. MESSAGE ID sy-msgid TYPE 'E' NUMBER sy-msgno WITH text-m01. LEAVE TO SCREEN '0'. ELSE. COMMIT WORK. ENDIF. el registro se llega a insertar, el problema es que no sale en mi tabla del programa una vez creado el empleado, solo se ve cuando salgo del programa y vuelvo a entrar |
#6
|
|||
|
|||
Respuesta
Puedes probar ha hacer un commit work despues del insert si sigue sin funcionar prueba a poner un retardo antes de hacer la select de nuevo puede ser que la grabacion aun no se haya echo en el servidor y tu select sea mas rapida que el servidor en grabar.
Espero que te ayude. Un saludo.
__________________
franochoa |
#7
|
|||
|
|||
como hago para poner un retraso?
eso si no lo se hacer |
#8
|
|||
|
|||
Yo creo que el problema lo tienes en la pantalla inicial. le deberías poner un modulo en pBO para que relea la tabla y actualices tus campos.
espero sea seo |
Herramientas | Buscar en Tema |
Desplegado | |
|
|