Crear dos tablas relacionadas

Hilo iniciado por Raul Garcia el 18 de noviembre de 2015

Viendo 10 entradas - de la 1 a la 10 (de un total de 10)
  • Autor
    Entradas
  • #10224
    RangoRaul GarciaRaul Garcia
    Participante
    APRENDIZ
    999 Rincoins

    Buenas tardes, 

    no soy capaz de crear dos tablas relacionadas. Creo las dos tablas sin problema, pero el problema es al crear el formulario.

    añado las dos tablas, el diseño bien, pero me falla algo que seguro es muy sencillo pero no me acuerdo.

    a ver si me explico bien.

    – una linea de la primera tabla puede tener varias lineas en la segunda tabla (como en los pedidos de compra (purchtable))

    – y cuando creo una segunda linea en la primera tabla, en el formulario la segunda tabla tendria que estar vacia para esta linea y podria crear las que quisiera para esta.

    – y al moverme por las lineas de la primera tabla solo me enseña abajo las lineas que pertenecen a la linea en la que estoy.

    Por ahora algo me falta, ya que primero creo una linea en la primera tabla, y voy a la seguna y creo una, pero no me la relaciona ya que si creo en la primera tabla otra linea sigo viendo abajo la linea de la segunda tabla.

    quiero crear algo como los pedido de compra pero mas sencillo sin botones ni nada, solo las relaciones de las lineas

    Gracias y saludos

    #10225
    RangoJuan Antonio TomásJuan Antonio Tomás
    Participante
    EXPERTO
    90.789 Rincoins

    Buenas Raul,

    – Has creado la relación entre las tablas?

    – En el formulario, has indicado en las propiedades del datasource “hijo” que tiene relación con la tabla “padre”?

    – Mira a ver también, si en el grid de la segunda tabla, tienes puesta la propiedad dataSource con la segunda tabla y no con la primera.

    Si tienes todo eso, necesitaría +info para poder ayudarte.

    Un saludo.

    #10226
    RangoXBBXBB
    Participante
    PARTICIPANTE
    1.049 Rincoins

    Creo que en el grid de la segunda tabla tienes asignado el datasource de la primera.

    Mirate la propiedad datasource del grid de las líneas, a ver si tiene asignado el valor del datasource cabecera o líneas que es el que le toca.

    #10227
    RangoRaul GarciaRaul Garcia
    Participante
    APRENDIZ
    999 Rincoins

    Muchas gracias por vuestras respuestas, al final lo consegui y me funciona perfectamente. Sin vuestra ayuda no se li lo lograria.

    Me gustaria preguntaros una ultima cosa, a ver si es posible.

    Tengo un campo en la tabla 1 que es un importe total y en la tabla 2 hay cobros parciales del importe de la tabla1

    en la tabla1 hay un campo que es importe pendiente que tendria que ser el importe de la tabla1 menos los cobros parciales de la tabla2.

    yo en el formulario en la tabla1 cree el siguiente metodo, en donde me falta calcular la suma del campo de la tabla2 y despues llevar este metodo al grid

    Display real CalcularImportePendiente(Tabla1 _Tabla1 )
    {

    real campo1, campo2, result;
    ;

    campo1=_Tabla1 .Importe;
    campo2=SUMAIMPORTETABLA2
    result=campo1-campo2;
    return result;

    }

    Seguro que es facil pero no me sale

    Gracias y saludos

    #10228
    RangoJuan Antonio TomásJuan Antonio Tomás
    Participante
    EXPERTO
    90.789 Rincoins

    Para sumar el importe de todas las líneas haría un select sum(), algo así:

    campo2 = (select sum(Importe_tabla2) from TABLA2 where TABLA2.campoRelacion == TABLA1.campoRelacion).Importe_tabla2;

    Espero te sirva, un saludo.

    #10229
    RangoRaul GarciaRaul Garcia
    Participante
    APRENDIZ
    999 Rincoins

    Buenas tardes, todo ok, solo cambie alguna cosa, pero perfecto. Asi es mucho mas facil.

    una ultima duda, yo creo un metodo en un campo dentro de un grid en un formulario, algo asi:

    public boolean leave()
    {

    XXXXXXXXXXXXXXX

    }

    ret = super();

    return true;
    }

    Esto lo uso por ejemplo escribo un campo y despues me cubre otros automaticamente. Eso me sale.

    Pero no se se puede que al pasar por un campo en un formulario ejecutara la funcion guardar, para hacerlo antes del final, creo que es facil pero nunca lo hice

    Muchas gracias

    #10230
    RangoJuan Antonio TomásJuan Antonio Tomás
    Participante
    EXPERTO
    90.789 Rincoins

    Buenas Raul,

    Me alegro que te haya servido. En cuanto a lo que comentas ahora no entiendo muy bien que es lo que necesitas…

    #10231
    RangoRaul GarciaRaul Garcia
    Participante
    APRENDIZ
    999 Rincoins

    a ver si me explico bien, soy muy torpe.

    cuando cubres datos en un formulario, cuando acabas la linea le das al boton guardar y guarda todo, yo queria ejecutar el opcion guardar al pasar de un campo determinado a otro no al finalizar la linea.

    yo lo tengo hecho por ejemplo cuando el primer campo es el NIF, lo cubro y automaticamente al pasar al campo siguiente ya me trae el nombre, apellidos, etc mediante un metodo en el campo NIF. Yo quiero lo mismo pero en vez de traer campos solo que ejecute la opcion guardar o actuliazar.

    no se si quedo bien explicado,

    saludos y gracias

    #10232
    RangoXBBXBB
    Participante
    PARTICIPANTE
    1.049 Rincoins

    Formulario > DataSource> TuDataSource > Fields > buscas tu campo > anulas el metodo modified > y despues del super esribes 

    nombreDeTuDataSource_ds.write()

    #10233
    RangoJuan Antonio TomásJuan Antonio Tomás
    Participante
    EXPERTO
    90.789 Rincoins

    Como indica profesional, puedes llamar al método write del datasource y fuerzas el guardado de los datos.

    El método modified se ejecutará automáticamente cuando abandones el campo en cuestión.

    Un saludo y suerte

Viendo 10 entradas - de la 1 a la 10 (de un total de 10)
  • Debes estar registrado para responder a este debate.
Carrito de compra