none
Problema con el refresco de formularios RRS feed

  • Pregunta

  • Hola

    Tengo una aplicacion tipica de gestion de personal.En un momento dado,,saco un listado de turnos de trabajo,de ahi la ficha de cada turno y en otro formulario llamado desde el de la ficha de turno,el de asignacion de personal.lLa ficha de turnos tiene un datagridview con el personal asignado a ese turno..El problema es el siguienteTongue Tiedi yo creo los formularios con dim nuevoform as formulario_ficha,me lo crea,pero luego no soy capaz de refrescar el datagridview al cambiar el personal asignado al turno.Si hago solamente formulario_feciah.show(),no hay problemas.

    Resumiendo,solo tengo por ahora dos opciones:

    • Sacrifico la opcion de abrir la ficha de varios turnos a la vez.Al tener solo un formulario de ficha,haciendo form_ficha.tableadapter.fill(),refresca perfectamente
    • Sacrifico el refresco.No es probable que se abran mas de una ficha de turno a la vez,pero si puede pasar que se quieran comparar algun datos.Si uso esta opcion,me lleva a otra pregunta:como controlo cuando me cambia la ficha?es decir,si modifico por ejemplo la hora de entrada a un turno y luego abro otro turno,se pierden todas las modificaciones.
    Gracias


    jueves, 14 de febrero de 2008 15:57

Respuestas

  •  

    la opcion más correcta es la segunda, pero ten claro que el tiempo de vida de formularioturno esta limitado al metodo desde donde lo has declarado y que al asignar una nueva instancia asi:

     

    Code Snippet

    Dim formularioturno As New Form_ficha_turno

     

     

    estas reasignando la rewferencia del form... por lo cual el resto de informaicon s epierde...

     

    en fin...

     

    si vas crear un numero indeterminado de Forms y necesitas operarlos  desde un form principal, lo ideal es conservar la referencia a cada uno de ellos en una coleccion de forms...

     

    no se si me hago entender----

     

    tambien  pareciera que el table adapter que estas utilizando es el mismo para cada nuevo form... y deberia ser uno distinto por cada nuevo form...

    viernes, 15 de febrero de 2008 16:15

Todas las respuestas

  • la verdad... no me quedo claro... trata de concretar,

     

    viernes, 15 de febrero de 2008 4:43
  • Hola

    A ver,quizas me lie un poco

    Tengo tres formularios:
    • form_listado_turnos:los turnos de trabajo de la empresa
    • form_ficha_turno:muestra la ficha de cada turno.Tiene un datagridview enlazado a los trabajadores asignados al turno seleccionado
    • form_asignacion_trabajador:me permite asignar un trabajo a un turno

    Ahora mismo,desde form_listado_turnos llamado a form_ficha_turno de esta forma:

    Code Snippet

    Form_ficha_turno.MdiParent = MDIParent1
       Form_ficha_turno.Show()
          Form_ficha_turno.Activate()

     

     


    De esta forma funciona bien,me muestra un turno y puedo asignaar trabajadores al turno,refrescando el datagriview que tiene el formulario de turnos en tiempo real.Que problema tiene?Que no puedo abrir mas de una ficha de turno a la vez.No solo esoTongue Tiedi intento abrir una nueva,me borra cualquier modificacion que haya hecho en la ficha del turno anterior.

    La otra opcion es la siguiente

    Code Snippet
            'Dim formularioturno As New Form_ficha_turno
            'formularioturno .MdiParent = MDIParent1
            'formularioturno .Show()
            'formularioturno .Activate()

     

     



    Este es al reves:no tengo refresco en tiempo real (si llamo a form_ficha_turno.tableadapter no hace nada.Y si llamo a formularioturno.tableadapter me dice que no existe),pero puedo abrir varios a la vez

    No hay ninguna otra opcion?

    Saludos

     

    viernes, 15 de febrero de 2008 16:03
  •  

    la opcion más correcta es la segunda, pero ten claro que el tiempo de vida de formularioturno esta limitado al metodo desde donde lo has declarado y que al asignar una nueva instancia asi:

     

    Code Snippet

    Dim formularioturno As New Form_ficha_turno

     

     

    estas reasignando la rewferencia del form... por lo cual el resto de informaicon s epierde...

     

    en fin...

     

    si vas crear un numero indeterminado de Forms y necesitas operarlos  desde un form principal, lo ideal es conservar la referencia a cada uno de ellos en una coleccion de forms...

     

    no se si me hago entender----

     

    tambien  pareciera que el table adapter que estas utilizando es el mismo para cada nuevo form... y deberia ser uno distinto por cada nuevo form...

    viernes, 15 de febrero de 2008 16:15
  • Como te fue con esto?

    si alguno de los comentarios te fue de ayuda no okvides marcarlo como respuesta.

     

    lunes, 3 de marzo de 2008 16:43
  • Buenos días,

    Si he entendido bien, el problema es que desde la primera ventana no puedes ver "refrescados" los cambios que hagas en las ventanas que abres después, no es cierto?

    Si te ocurre esto, creo que la mejor solución para hacerlo sería utilizar sólo una fuente de datos, pasarla por referencia a los formularios que abras, y a través del filtrado de (por ejemplo, un dataview) muestres la información que te interese.

    Lo demás sería que, cuando obtenga el foco una ventana, refresques el control, porque los datos que tendras en el origen de datos serán los correctos en todos los casos.


    Si el problema es el que yo he entendido, creo que esta solución podría valerte y ahorrarte muchos dolores de cabeza después.


    Recibe un cordial saludo,

    Antonio J. del Águila Sánchez
    ajdelaguila@intelligentsoft.es
    jueves, 6 de marzo de 2008 10:42