none
como cargar una cabecera y un detalle en un formulario? RRS feed

  • Pregunta

  • hola a todos , estoy por hacer una aplicacion de carga de horas de los empleados de una empresa de software. tengo una tabla llamada horas(donde cargo cliente, codigo de empleado, fecha, numero de registro y otra llamada dethora (donde cargo los detalles de trabajo que el empleado realizo como codigo de trabajo(desarrollo, analisis, correccion de error, instalacion), descripcion del trabajo, si es un error el codigo de error segun una tabla de errores y otras cosas mas.

     

    mi problema:

    tengo el formulario frmhoras donde muestro la cabecera de horas con una grilla y cuando edito o agrego un registro se me abre otro formulario llamado fabmhoras .

    en este ultimo aparte de cargar la cabecera inserte una grilla del detalle de horas (la grilla contiene los datos de la tabla dethoras).

    del formulario frmhoras al fabmhoras paso el bindingsource y bindeo los text para que halla relacion y sincronizacion, pero no se como hacer para que me muestre en la grilla los detalles solamente de ese registro de hora , y que me permita agregar a la grilla detalles de horas llamando  a otro formulario, es decir sincronizar el detalle de horas con la tabla de horas

     

    desde ya muchisimas gracias 

    miércoles, 18 de julio de 2007 13:08

Respuestas

Todas las respuestas

  • ¿Que estas utilizando? Un DataSet? En ella, las tablas están relacionadas? Por cierto, "grilla" en que idioma es?
    jueves, 19 de julio de 2007 6:29
  • hola hadi , perdon por no expresarme bien, estoy trabajando con dataset hechos con el asistente , no por codigo a mano , y en los formularios tengo datagrigview.

     

    algo logre hacer pero no se si estara bien, en el dataset que harme que se llama datasethoras tengo las tablas horas, dethoras, y algunas mas.

    en primer lugar desde el menu llamo a un formulario frmhoras que tiene el datagridview que es llenado con la tabla de horas del datasethoras, cuando abro el formulario si agrego o modifico registros hize que se abra un formulario de edicion llamado fabmhoras donde cargo en textbox la cabecera (datos como numero de registro(nroreg), fecha, usuario,etc) y en este formulario uso para bindear los textbox un databinding del formulario anterior o sea para sincronizar los datos con el formulario frmhoras.

    hasta aca todo bien, anda perfecto, ahora en este segundo formulario(fabmhoras) abajo de los textbox puse una grilla para cargar o modificar los detalles de las horas que se cargan o se modifican

     

    en el datasethoras tengo hecha la relacion de horas con dethoras pero sin hacer nada , o sea solo arrastrando la tabla dethoras del datasethoras me trae todos los registros de la tabla.

     

    lo que hice fue en el datasethoras en el tablaadapter de  dethoras agregar un nuevo metodo fillbynroreg y esta es la consulta

           SELECT     nroreg, idedetreg, codcat, codproyecto, codmenu, codsubmenu, codopt1, codopt2, tiempo, coderror, descri
              FROM         dethoras
              WHERE     (nroreg = @registro)

     

    entonces cuando abro el segundo formulario de edicion de horas(fabmhoras) cargo el datagridview con el metodo este llamandolo asi:

    creo una variable para pasarle como parametro el nroreg que es el numero de registro de horas que estoy agregando o modificando (Me.NroregTextBox.Text)

     

    Dim registro As Integer

    registro = CInt(Me.NroregTextBox.Text)

    Me.DethorasTableAdapter.FillBynroreg(Me.DataSethoras.dethoras, registro)

     

    y lleno el datagridview con el dethotasbindingsource

    Me.DethorasDataGridView.DataSource = Me.DethorasBindingSource

     

    de esta manera me trae los registros correspondientes a un registro de horas que modifico y si agrego uno nuevo la grilla esta en blanco.

    creo que de esta manera andaria porque lo probe

    solo me falta que se guarden los cambios en el bindingsource del dethoras porque si vuelvo al formulario donde esta la grilla con los registros de cabecera

    si cambie algo en el tercer formulario fabmdethoras que es llamado del segundo formulario cuando agrego o modifico detalles de horas me guarda los cambios en la grilla del formulario fabmhoras pero si salgo de este y vuelvo al formulario fabmhoras los cambios en la grilla se deshacen, como hago para aceptar los cambios en el binding source de dethoras cuando vuelvo del formulario fabmhoras al frmhoras pero sin guardar cambios en la base de datos

    jueves, 19 de julio de 2007 11:32
  • Tienes que llamar al método Update del TableAdapter. Estás haciendo eso?
    sábado, 21 de julio de 2007 14:33
  • Grilla se utiliza principalmente en Argentina para nombrar lo que aquí llamamos grid.
    domingo, 22 de julio de 2007 2:18
  •  

    En esta página puedes ver un ejemplo de cómo compartir un BindingSource entre varios formularios para así mantener una sincronía entre los datos que maneja cada uno:

     

    http://msdn2.microsoft.com/es-es/library/ms404320(VS.80).aspx

     

    Espero te sea de utilidad,

     

    Julio.

    domingo, 22 de julio de 2007 17:12