SetRelation con dos DbBrowser
Publicado: Mié Ago 24, 2005 2:35 pm
Saludos
En la pantalla que ajunto se aprecian dos Browser que tienen
relacionados dos campos que se llaman N_Zona, lo que necesito y no he
conseguido por falta de experiencia es que cuando en el primer Bbrowse se
seleccione un registro en la otra solo se muestren los registros cuya Zona
sea la seleccionada en el primero no que se vean todos.
Este es el codigo que tengo implementado de momento.
CLASS TFormZonas FROM TForm
COMPONENT oDataSourceZonas
COMPONENT oDataSetZonas
COMPONENT oDataSourceClub
COMPONENT oDataSetClub
COMPONENT oDBClub
COMPONENT oDBZonas
COMPONENT oLabel1
COMPONENT oLabel2
COMPONENT oN_Zona
COMPONENT oNombre
METHOD CreateForm()
METHOD FormInitialize( oSender )
METHOD DBZonasChange( oSender, lBookMarkChanged )
ENDCLASS
#include "FormZonas.xfm"
//---------------------------------------------------------- --------------------
METHOD FormInitialize( oSender ) CLASS TFormZonas
*
** Inicializa la base de datos de Zonas
WITH OBJECT ::oDataSetZonas
:cName := 'BasesZONAS.dbf'
:lOpen := .T.
END
** Inicializa la base de datos de Club
WITH OBJECT ::oDataSetClub
** Inicializa la base de datos de Club
:cName := 'BasesCLUB.dbf'
:lOpen := .T.
END
** Relación de las DataSet de Zonas con Club
IF ::oDataSetZonas:lOpen
WITH OBJECT ::oDataSetZonas
:OrdSetFocus( "ZONAS" )
END
ENDIF
** Relacion de las DataSet de Club
IF ::oDataSetClub:lOpen
WITH OBJECT ::oDataSetClub
:OrdSetFocus( "CLUB3" )
END
ENDIF
** Unir el Browser a la DataSet
WITH OBJECT ::oDBZonas
:oDataSet := ::oDataSetZonas
//:Refresh()
END
** Unir el Browser a la DataSet
WITH OBJECT ::oDBClub
:oDataSet := ::oDataSetClub
//:Refresh()
END
** Unir el Campo a la DataSet
WITH OBJECT ::oN_Zona
:oDataSet := ::oDataSetZonas
END
** Unir el Campo a la DataSet
WITH OBJECT ::oNombre
:oDataSet := ::oDataSetZonas
END
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD DBZonasChange( oSender, lBookMarkChanged ) CLASS TFormZonas
WITH OBJECT ::oDBClub
:oDataSet := ::oDataSetClub
END
RETURN Nil
Attached files Zonas.zip (5.3 KB)Â
En la pantalla que ajunto se aprecian dos Browser que tienen
relacionados dos campos que se llaman N_Zona, lo que necesito y no he
conseguido por falta de experiencia es que cuando en el primer Bbrowse se
seleccione un registro en la otra solo se muestren los registros cuya Zona
sea la seleccionada en el primero no que se vean todos.
Este es el codigo que tengo implementado de momento.
CLASS TFormZonas FROM TForm
COMPONENT oDataSourceZonas
COMPONENT oDataSetZonas
COMPONENT oDataSourceClub
COMPONENT oDataSetClub
COMPONENT oDBClub
COMPONENT oDBZonas
COMPONENT oLabel1
COMPONENT oLabel2
COMPONENT oN_Zona
COMPONENT oNombre
METHOD CreateForm()
METHOD FormInitialize( oSender )
METHOD DBZonasChange( oSender, lBookMarkChanged )
ENDCLASS
#include "FormZonas.xfm"
//---------------------------------------------------------- --------------------
METHOD FormInitialize( oSender ) CLASS TFormZonas
*
** Inicializa la base de datos de Zonas
WITH OBJECT ::oDataSetZonas
:cName := 'BasesZONAS.dbf'
:lOpen := .T.
END
** Inicializa la base de datos de Club
WITH OBJECT ::oDataSetClub
** Inicializa la base de datos de Club
:cName := 'BasesCLUB.dbf'
:lOpen := .T.
END
** Relación de las DataSet de Zonas con Club
IF ::oDataSetZonas:lOpen
WITH OBJECT ::oDataSetZonas
:OrdSetFocus( "ZONAS" )
END
ENDIF
** Relacion de las DataSet de Club
IF ::oDataSetClub:lOpen
WITH OBJECT ::oDataSetClub
:OrdSetFocus( "CLUB3" )
END
ENDIF
** Unir el Browser a la DataSet
WITH OBJECT ::oDBZonas
:oDataSet := ::oDataSetZonas
//:Refresh()
END
** Unir el Browser a la DataSet
WITH OBJECT ::oDBClub
:oDataSet := ::oDataSetClub
//:Refresh()
END
** Unir el Campo a la DataSet
WITH OBJECT ::oN_Zona
:oDataSet := ::oDataSetZonas
END
** Unir el Campo a la DataSet
WITH OBJECT ::oNombre
:oDataSet := ::oDataSetZonas
END
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD DBZonasChange( oSender, lBookMarkChanged ) CLASS TFormZonas
WITH OBJECT ::oDBClub
:oDataSet := ::oDataSetClub
END
RETURN Nil
Attached files Zonas.zip (5.3 KB)Â