Bueno,, Resulta que tengo tres Tablas: GRUPOS, USUARIOS, USR2GRP.
1.- En un TdbEdit, hago las actualizaciones de los Grupos pero quiero
mostrar en un TDBBrowser, a los usuarios correspondiente a ese Grupo.
2.- Quiero que cuando me mueva por la Barra de Navegacion, se vaya mostrando
en el Brow solo aquellos usuarios que pertenecen al Grupo en curso.
La Relaciones que tengo es la siguiente:
WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
:oDataSource := ::oCdxDS
:cProcess := "GENERAL"
:cName := "Grupos.dbf"
:lOpen := .T.
:Create()
:AddTag("BYIDGRP","IDGRUPO")
:AddTag("BYNAME","NOMBRE")
:OrdSetFocus("BYIDGRP")
:Reindex()
END
WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
:oDataSource := ::oCdxDS
:cProcess := "GENERAL"
:cName := "USUARIOS.Dbf"
:lOpen := .T.
:Create()
:AddTag("BYID","IDUSUARIO")
:AddTag("BYNAME","NOMBRE")
:OrdSetFocus("BYID")
:Reindex()
END
WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
:oDataSource := ::oCdxDS
:cProcess := "GENERAL"
:cName := "Usr2Grp.dbf"
:lOpen := .T.
:Create()
:AddTag("BYUSER","IDUSUARIO+IDGRUPO")
:AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
:AddTag("IDUSUARIO","IDUSUARIO")
:AddTag("IDGRUPO","IDGRUPO")
:Reindex()
END
::oDS2:Select(2)
::oDS2:OrdSetFocus("IDUSUARIO")
::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
::oDS1:Select(1)
::oDS1:OrdSetFocus("IDGRUPO")
::oDS1:SetRelation("IDGRUPO",::oDS3,.T.)
Diganme por favor que hago mal, que me falta, que debo agregar al
Navigator,,
Gracias
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Relaciones de Tablas
- ignacio
- Site Admin
- Mensajes: 9442
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Relaciones de Tablas
Carlos,
Supongamos dos browses, uno con clientes, y otro con facturas de dichos
clientes. Parar hace que el segundo browse de facturas se actualice cuando
modificacmos de cliente en el primer browse haremos lo siguiente:
En el browse de clientes:
METHOD BrwClientesChange( oSender, lBookMarkChanged )
if lBookMarkChanged
::oDataSetFactura:SetScope( ::oDataSetCliente:Codigo )
::oBrwFactura:Refresh( .t. )
endif
RETURN nil
Logicamente la tabla de facturas debé estar indexada por código de cliente.
Un saludo,
"Carlos Cedeño Vera" <carlosijc@gmail.com> escribió en el mensaje
news:[email=423733d3@ozsrv2.ozlan.local...]423733d3@ozsrv2.ozlan.local...[/email]
> Bueno,, Resulta que tengo tres Tablas: GRUPOS, USUARIOS, USR2GRP.
>
> 1.- En un TdbEdit, hago las actualizaciones de los Grupos pero quiero
> mostrar en un TDBBrowser, a los usuarios correspondiente a ese Grupo.
>
> 2.- Quiero que cuando me mueva por la Barra de Navegacion, se vaya
> mostrando
> en el Brow solo aquellos usuarios que pertenecen al Grupo en curso.
>
> La Relaciones que tengo es la siguiente:
>
> WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "Grupos.dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYIDGRP","IDGRUPO")
> :AddTag("BYNAME","NOMBRE")
> :OrdSetFocus("BYIDGRP")
> :Reindex()
> END
> WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "USUARIOS.Dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYID","IDUSUARIO")
> :AddTag("BYNAME","NOMBRE")
> :OrdSetFocus("BYID")
> :Reindex()
> END
>
> WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "Usr2Grp.dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYUSER","IDUSUARIO+IDGRUPO")
> :AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
> :AddTag("IDUSUARIO","IDUSUARIO")
> :AddTag("IDGRUPO","IDGRUPO")
> :Reindex()
> END
>
> ::oDS2:Select(2)
> ::oDS2:OrdSetFocus("IDUSUARIO")
> ::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
> ::oDS1:Select(1)
> ::oDS1:OrdSetFocus("IDGRUPO")
> ::oDS1:SetRelation("IDGRUPO",::oDS3,.T.)
>
> Diganme por favor que hago mal, que me falta, que debo agregar al
> Navigator,,
>
> Gracias
>
>
>
>
Supongamos dos browses, uno con clientes, y otro con facturas de dichos
clientes. Parar hace que el segundo browse de facturas se actualice cuando
modificacmos de cliente en el primer browse haremos lo siguiente:
En el browse de clientes:
METHOD BrwClientesChange( oSender, lBookMarkChanged )
if lBookMarkChanged
::oDataSetFactura:SetScope( ::oDataSetCliente:Codigo )
::oBrwFactura:Refresh( .t. )
endif
RETURN nil
Logicamente la tabla de facturas debé estar indexada por código de cliente.
Un saludo,
"Carlos Cedeño Vera" <carlosijc@gmail.com> escribió en el mensaje
news:[email=423733d3@ozsrv2.ozlan.local...]423733d3@ozsrv2.ozlan.local...[/email]
> Bueno,, Resulta que tengo tres Tablas: GRUPOS, USUARIOS, USR2GRP.
>
> 1.- En un TdbEdit, hago las actualizaciones de los Grupos pero quiero
> mostrar en un TDBBrowser, a los usuarios correspondiente a ese Grupo.
>
> 2.- Quiero que cuando me mueva por la Barra de Navegacion, se vaya
> mostrando
> en el Brow solo aquellos usuarios que pertenecen al Grupo en curso.
>
> La Relaciones que tengo es la siguiente:
>
> WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "Grupos.dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYIDGRP","IDGRUPO")
> :AddTag("BYNAME","NOMBRE")
> :OrdSetFocus("BYIDGRP")
> :Reindex()
> END
> WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "USUARIOS.Dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYID","IDUSUARIO")
> :AddTag("BYNAME","NOMBRE")
> :OrdSetFocus("BYID")
> :Reindex()
> END
>
> WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "Usr2Grp.dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYUSER","IDUSUARIO+IDGRUPO")
> :AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
> :AddTag("IDUSUARIO","IDUSUARIO")
> :AddTag("IDGRUPO","IDGRUPO")
> :Reindex()
> END
>
> ::oDS2:Select(2)
> ::oDS2:OrdSetFocus("IDUSUARIO")
> ::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
> ::oDS1:Select(1)
> ::oDS1:OrdSetFocus("IDGRUPO")
> ::oDS1:SetRelation("IDGRUPO",::oDS3,.T.)
>
> Diganme por favor que hago mal, que me falta, que debo agregar al
> Navigator,,
>
> Gracias
>
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Relaciones de Tablas
Mira Ignacio,, El caso es el siguiente,Ñ
Tengo un TdbEdit, con el Codigo de Grupo, otro con el Nombre de GRUPO, otros
con las Notas, y un DBNavigator asociado al mismo DaTaSet, o sea a la Tabla
GRUPOS, ahora bien, tengo un DBBrow, que muestras los usuarios,, pero quiero
que solo se muestren los usuarios asignados a cada uno de los grupos, que
cada vez que yo adelante con la flecha para adelante, para atras, para donde
sea,, que el brow me muestre los usuarios que pertenecen a este Grupo.
Las Tablas que tengo son:
GRUPOS USUARIOS
USR2GRP
idgrupo C(4) idx, UNICO IdUsuario C(4) UNICO
idUsuario
Nombre C(25) Nombre C(25)
idGrupo
Nota M() Clave C(8)
etc. .....
Las relaciones ya te la envie, de todas las maneras te digo que
WITH OBJECT ::oCdxDS := TCdxDataSource():New( Self )
:cConnect := "C:SeguridadDatos"
:lConnected := .T.
END
WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
:oDataSource := ::oCdxDS
:cProcess := "GENERAL"
:cName := "Grupos.dbf"
:lOpen := .T.
:Create()
:AddTag("BYIDGRP","IDGRUPO")
:AddTag("BYNAME","NOMBRE")
:OrdSetFocus("BYIDGRP")
:Reindex()
END
WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
:oDataSource := ::oCdxDS
:cProcess := "GENERAL"
:cName := "USUARIOS.Dbf"
:lOpen := .T.
:Create()
:AddTag("BYID","IDUSUARIO")
:AddTag("BYNAME","NOMBRE")
:OrdSetFocus("BYID")
:Reindex()
END
WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
:oDataSource := ::oCdxDS
:cProcess := "GENERAL"
:cName := "Usr2Grp.dbf"
:lOpen := .T.
:Create()
:AddTag("BYUSER","IDUSUARIO+IDGRUPO")
:AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
:AddTag("IDUSUARIO","IDUSUARIO")
:AddTag("IDGRUPO","IDGRUPO")
:Reindex()
END
::oDS3:Select(3)
::oDS3:OrdSetFocus("IDGRUPO")
::oDS3:SetRelation("IDGRUPO",::oDS1,.T.)
::oDS2:Select(2)
::oDS2:OrdSetFocus("BYID")
::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
Bueno, de todas las maneras,, si no me explico te hice llegar a tu correo,
el ejemplo, seguridad.rar
GRacias
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:4238091d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Carlos,
>
> Supongamos dos browses, uno con clientes, y otro con facturas de dichos
> clientes. Parar hace que el segundo browse de facturas se actualice cuando
> modificacmos de cliente en el primer browse haremos lo siguiente:
>
> En el browse de clientes:
>
> METHOD BrwClientesChange( oSender, lBookMarkChanged )
>
> if lBookMarkChanged
> ::oDataSetFactura:SetScope( ::oDataSetCliente:Codigo )
> ::oBrwFactura:Refresh( .t. )
> endif
>
> RETURN nil
>
> Logicamente la tabla de facturas debé estar indexada por código de
cliente.
>
> Un saludo,
>
> "Carlos Cedeño Vera" <carlosijc@gmail.com> escribió en el mensaje
> news:[email=423733d3@ozsrv2.ozlan.local...]423733d3@ozsrv2.ozlan.local...[/email]
> > Bueno,, Resulta que tengo tres Tablas: GRUPOS, USUARIOS, USR2GRP.
> >
> > 1.- En un TdbEdit, hago las actualizaciones de los Grupos pero quiero
> > mostrar en un TDBBrowser, a los usuarios correspondiente a ese Grupo.
> >
> > 2.- Quiero que cuando me mueva por la Barra de Navegacion, se vaya
> > mostrando
> > en el Brow solo aquellos usuarios que pertenecen al Grupo en curso.
> >
> > La Relaciones que tengo es la siguiente:
> >
> > WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
> > :oDataSource := ::oCdxDS
> > :cProcess := "GENERAL"
> > :cName := "Grupos.dbf"
> > :lOpen := .T.
> > :Create()
> > :AddTag("BYIDGRP","IDGRUPO")
> > :AddTag("BYNAME","NOMBRE")
> > :OrdSetFocus("BYIDGRP")
> > :Reindex()
> > END
> > WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
> > :oDataSource := ::oCdxDS
> > :cProcess := "GENERAL"
> > :cName := "USUARIOS.Dbf"
> > :lOpen := .T.
> > :Create()
> > :AddTag("BYID","IDUSUARIO")
> > :AddTag("BYNAME","NOMBRE")
> > :OrdSetFocus("BYID")
> > :Reindex()
> > END
> >
> > WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
> > :oDataSource := ::oCdxDS
> > :cProcess := "GENERAL"
> > :cName := "Usr2Grp.dbf"
> > :lOpen := .T.
> > :Create()
> > :AddTag("BYUSER","IDUSUARIO+IDGRUPO")
> > :AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
> > :AddTag("IDUSUARIO","IDUSUARIO")
> > :AddTag("IDGRUPO","IDGRUPO")
> > :Reindex()
> > END
> >
> > ::oDS2:Select(2)
> > ::oDS2:OrdSetFocus("IDUSUARIO")
> > ::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
> > ::oDS1:Select(1)
> > ::oDS1:OrdSetFocus("IDGRUPO")
> > ::oDS1:SetRelation("IDGRUPO",::oDS3,.T.)
> >
> > Diganme por favor que hago mal, que me falta, que debo agregar al
> > Navigator,,
> >
> > Gracias
> >
> >
> >
> >
>
>
Tengo un TdbEdit, con el Codigo de Grupo, otro con el Nombre de GRUPO, otros
con las Notas, y un DBNavigator asociado al mismo DaTaSet, o sea a la Tabla
GRUPOS, ahora bien, tengo un DBBrow, que muestras los usuarios,, pero quiero
que solo se muestren los usuarios asignados a cada uno de los grupos, que
cada vez que yo adelante con la flecha para adelante, para atras, para donde
sea,, que el brow me muestre los usuarios que pertenecen a este Grupo.
Las Tablas que tengo son:
GRUPOS USUARIOS
USR2GRP
idgrupo C(4) idx, UNICO IdUsuario C(4) UNICO
idUsuario
Nombre C(25) Nombre C(25)
idGrupo
Nota M() Clave C(8)
etc. .....
Las relaciones ya te la envie, de todas las maneras te digo que
WITH OBJECT ::oCdxDS := TCdxDataSource():New( Self )
:cConnect := "C:SeguridadDatos"
:lConnected := .T.
END
WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
:oDataSource := ::oCdxDS
:cProcess := "GENERAL"
:cName := "Grupos.dbf"
:lOpen := .T.
:Create()
:AddTag("BYIDGRP","IDGRUPO")
:AddTag("BYNAME","NOMBRE")
:OrdSetFocus("BYIDGRP")
:Reindex()
END
WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
:oDataSource := ::oCdxDS
:cProcess := "GENERAL"
:cName := "USUARIOS.Dbf"
:lOpen := .T.
:Create()
:AddTag("BYID","IDUSUARIO")
:AddTag("BYNAME","NOMBRE")
:OrdSetFocus("BYID")
:Reindex()
END
WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
:oDataSource := ::oCdxDS
:cProcess := "GENERAL"
:cName := "Usr2Grp.dbf"
:lOpen := .T.
:Create()
:AddTag("BYUSER","IDUSUARIO+IDGRUPO")
:AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
:AddTag("IDUSUARIO","IDUSUARIO")
:AddTag("IDGRUPO","IDGRUPO")
:Reindex()
END
::oDS3:Select(3)
::oDS3:OrdSetFocus("IDGRUPO")
::oDS3:SetRelation("IDGRUPO",::oDS1,.T.)
::oDS2:Select(2)
::oDS2:OrdSetFocus("BYID")
::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
Bueno, de todas las maneras,, si no me explico te hice llegar a tu correo,
el ejemplo, seguridad.rar
GRacias
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:4238091d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Carlos,
>
> Supongamos dos browses, uno con clientes, y otro con facturas de dichos
> clientes. Parar hace que el segundo browse de facturas se actualice cuando
> modificacmos de cliente en el primer browse haremos lo siguiente:
>
> En el browse de clientes:
>
> METHOD BrwClientesChange( oSender, lBookMarkChanged )
>
> if lBookMarkChanged
> ::oDataSetFactura:SetScope( ::oDataSetCliente:Codigo )
> ::oBrwFactura:Refresh( .t. )
> endif
>
> RETURN nil
>
> Logicamente la tabla de facturas debé estar indexada por código de
cliente.
>
> Un saludo,
>
> "Carlos Cedeño Vera" <carlosijc@gmail.com> escribió en el mensaje
> news:[email=423733d3@ozsrv2.ozlan.local...]423733d3@ozsrv2.ozlan.local...[/email]
> > Bueno,, Resulta que tengo tres Tablas: GRUPOS, USUARIOS, USR2GRP.
> >
> > 1.- En un TdbEdit, hago las actualizaciones de los Grupos pero quiero
> > mostrar en un TDBBrowser, a los usuarios correspondiente a ese Grupo.
> >
> > 2.- Quiero que cuando me mueva por la Barra de Navegacion, se vaya
> > mostrando
> > en el Brow solo aquellos usuarios que pertenecen al Grupo en curso.
> >
> > La Relaciones que tengo es la siguiente:
> >
> > WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
> > :oDataSource := ::oCdxDS
> > :cProcess := "GENERAL"
> > :cName := "Grupos.dbf"
> > :lOpen := .T.
> > :Create()
> > :AddTag("BYIDGRP","IDGRUPO")
> > :AddTag("BYNAME","NOMBRE")
> > :OrdSetFocus("BYIDGRP")
> > :Reindex()
> > END
> > WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
> > :oDataSource := ::oCdxDS
> > :cProcess := "GENERAL"
> > :cName := "USUARIOS.Dbf"
> > :lOpen := .T.
> > :Create()
> > :AddTag("BYID","IDUSUARIO")
> > :AddTag("BYNAME","NOMBRE")
> > :OrdSetFocus("BYID")
> > :Reindex()
> > END
> >
> > WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
> > :oDataSource := ::oCdxDS
> > :cProcess := "GENERAL"
> > :cName := "Usr2Grp.dbf"
> > :lOpen := .T.
> > :Create()
> > :AddTag("BYUSER","IDUSUARIO+IDGRUPO")
> > :AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
> > :AddTag("IDUSUARIO","IDUSUARIO")
> > :AddTag("IDGRUPO","IDGRUPO")
> > :Reindex()
> > END
> >
> > ::oDS2:Select(2)
> > ::oDS2:OrdSetFocus("IDUSUARIO")
> > ::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
> > ::oDS1:Select(1)
> > ::oDS1:OrdSetFocus("IDGRUPO")
> > ::oDS1:SetRelation("IDGRUPO",::oDS3,.T.)
> >
> > Diganme por favor que hago mal, que me falta, que debo agregar al
> > Navigator,,
> >
> > Gracias
> >
> >
> >
> >
>
>
Relaciones de Tablas
Carlos,
Creo que lo mejor es que te haga yo un proyecto donde puedas ver como se
hace. Dame tiempo, espero tenerlo lo antes posible.
Un saludo,
Ignacio Ortiz de Zúñiga
http://www.xailer.com
> Mira Ignacio,, El caso es el siguiente,í‘
>
> Tengo un TdbEdit, con el Codigo de Grupo, otro con el Nombre de GRUPO,
> otros con las Notas, y un DBNavigator asociado al mismo DaTaSet, o
> sea a la Tabla GRUPOS, ahora bien, tengo un DBBrow, que muestras los
> usuarios,, pero quiero que solo se muestren los usuarios asignados a
> cada uno de los grupos, que cada vez que yo adelante con la flecha
> para adelante, para atras, para donde sea,, que el brow me muestre los
> usuarios que pertenecen a este Grupo.
>
> Las Tablas que tengo son:
>
> GRUPOS USUARIOS
> USR2GRP
> idgrupo C(4) idx, UNICO IdUsuario C(4) UNICO
> idUsuario
> Nombre C(25) Nombre C(25)
> idGrupo
> Nota M() Clave C(8)
> etc.
> .....
> Las relaciones ya te la envie, de todas las maneras te digo que
> WITH OBJECT ::oCdxDS := TCdxDataSource():New( Self )
> :cConnect := "C:SeguridadDatos"
> :lConnected := .T.
> END
> WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "Grupos.dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYIDGRP","IDGRUPO")
> :AddTag("BYNAME","NOMBRE")
> :OrdSetFocus("BYIDGRP")
> :Reindex()
> END
> WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "USUARIOS.Dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYID","IDUSUARIO")
> :AddTag("BYNAME","NOMBRE")
> :OrdSetFocus("BYID")
> :Reindex()
> END
> WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "Usr2Grp.dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYUSER","IDUSUARIO+IDGRUPO")
> :AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
> :AddTag("IDUSUARIO","IDUSUARIO")
> :AddTag("IDGRUPO","IDGRUPO")
> :Reindex()
> END
> ::oDS3:Select(3)
> ::oDS3:OrdSetFocus("IDGRUPO")
> ::oDS3:SetRelation("IDGRUPO",::oDS1,.T.)
> ::oDS2:Select(2)
> ::oDS2:OrdSetFocus("BYID")
> ::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
> Bueno, de todas las maneras,, si no me explico te hice llegar a tu
> correo, el ejemplo, seguridad.rar
>
> GRacias
>
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el
> mensaje news:4238091d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
>> Carlos,
>>
>> Supongamos dos browses, uno con clientes, y otro con facturas de
>> dichos clientes. Parar hace que el segundo browse de facturas se
>> actualice cuando modificacmos de cliente en el primer browse haremos
>> lo siguiente:
>>
>> En el browse de clientes:
>>
>> METHOD BrwClientesChange( oSender, lBookMarkChanged )
>>
>> if lBookMarkChanged
>> ::oDataSetFactura:SetScope( ::oDataSetCliente:Codigo )
>> ::oBrwFactura:Refresh( .t. )
>> endif
>> RETURN nil
>>
>> Logicamente la tabla de facturas debé estar indexada por código de
>>
> cliente.
>
>> Un saludo,
>>
>> "Carlos Cedeño Vera" <carlosijc@gmail.com> escribió en el mensaje
>> news:[email=423733d3@ozsrv2.ozlan.local...]423733d3@ozsrv2.ozlan.local...[/email]
>>
>>> Bueno,, Resulta que tengo tres Tablas: GRUPOS, USUARIOS, USR2GRP.
>>>
>>> 1.- En un TdbEdit, hago las actualizaciones de los Grupos pero
>>> quiero mostrar en un TDBBrowser, a los usuarios correspondiente a
>>> ese Grupo.
>>>
>>> 2.- Quiero que cuando me mueva por la Barra de Navegacion, se vaya
>>> mostrando
>>> en el Brow solo aquellos usuarios que pertenecen al Grupo en curso.
>>> La Relaciones que tengo es la siguiente:
>>>
>>> WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
>>> :oDataSource := ::oCdxDS
>>> :cProcess := "GENERAL"
>>> :cName := "Grupos.dbf"
>>> :lOpen := .T.
>>> :Create()
>>> :AddTag("BYIDGRP","IDGRUPO")
>>> :AddTag("BYNAME","NOMBRE")
>>> :OrdSetFocus("BYIDGRP")
>>> :Reindex()
>>> END
>>> WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
>>> :oDataSource := ::oCdxDS
>>> :cProcess := "GENERAL"
>>> :cName := "USUARIOS.Dbf"
>>> :lOpen := .T.
>>> :Create()
>>> :AddTag("BYID","IDUSUARIO")
>>> :AddTag("BYNAME","NOMBRE")
>>> :OrdSetFocus("BYID")
>>> :Reindex()
>>> END
>>> WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
>>> :oDataSource := ::oCdxDS
>>> :cProcess := "GENERAL"
>>> :cName := "Usr2Grp.dbf"
>>> :lOpen := .T.
>>> :Create()
>>> :AddTag("BYUSER","IDUSUARIO+IDGRUPO")
>>> :AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
>>> :AddTag("IDUSUARIO","IDUSUARIO")
>>> :AddTag("IDGRUPO","IDGRUPO")
>>> :Reindex()
>>> END
>>> ::oDS2:Select(2)
>>> ::oDS2:OrdSetFocus("IDUSUARIO")
>>> ::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
>>> ::oDS1:Select(1)
>>> ::oDS1:OrdSetFocus("IDGRUPO")
>>> ::oDS1:SetRelation("IDGRUPO",::oDS3,.T.)
>>> Diganme por favor que hago mal, que me falta, que debo agregar al
>>> Navigator,,
>>>
>>> Gracias
>>>
Creo que lo mejor es que te haga yo un proyecto donde puedas ver como se
hace. Dame tiempo, espero tenerlo lo antes posible.
Un saludo,
Ignacio Ortiz de Zúñiga
http://www.xailer.com
> Mira Ignacio,, El caso es el siguiente,í‘
>
> Tengo un TdbEdit, con el Codigo de Grupo, otro con el Nombre de GRUPO,
> otros con las Notas, y un DBNavigator asociado al mismo DaTaSet, o
> sea a la Tabla GRUPOS, ahora bien, tengo un DBBrow, que muestras los
> usuarios,, pero quiero que solo se muestren los usuarios asignados a
> cada uno de los grupos, que cada vez que yo adelante con la flecha
> para adelante, para atras, para donde sea,, que el brow me muestre los
> usuarios que pertenecen a este Grupo.
>
> Las Tablas que tengo son:
>
> GRUPOS USUARIOS
> USR2GRP
> idgrupo C(4) idx, UNICO IdUsuario C(4) UNICO
> idUsuario
> Nombre C(25) Nombre C(25)
> idGrupo
> Nota M() Clave C(8)
> etc.
> .....
> Las relaciones ya te la envie, de todas las maneras te digo que
> WITH OBJECT ::oCdxDS := TCdxDataSource():New( Self )
> :cConnect := "C:SeguridadDatos"
> :lConnected := .T.
> END
> WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "Grupos.dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYIDGRP","IDGRUPO")
> :AddTag("BYNAME","NOMBRE")
> :OrdSetFocus("BYIDGRP")
> :Reindex()
> END
> WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "USUARIOS.Dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYID","IDUSUARIO")
> :AddTag("BYNAME","NOMBRE")
> :OrdSetFocus("BYID")
> :Reindex()
> END
> WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
> :oDataSource := ::oCdxDS
> :cProcess := "GENERAL"
> :cName := "Usr2Grp.dbf"
> :lOpen := .T.
> :Create()
> :AddTag("BYUSER","IDUSUARIO+IDGRUPO")
> :AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
> :AddTag("IDUSUARIO","IDUSUARIO")
> :AddTag("IDGRUPO","IDGRUPO")
> :Reindex()
> END
> ::oDS3:Select(3)
> ::oDS3:OrdSetFocus("IDGRUPO")
> ::oDS3:SetRelation("IDGRUPO",::oDS1,.T.)
> ::oDS2:Select(2)
> ::oDS2:OrdSetFocus("BYID")
> ::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
> Bueno, de todas las maneras,, si no me explico te hice llegar a tu
> correo, el ejemplo, seguridad.rar
>
> GRacias
>
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el
> mensaje news:4238091d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
>> Carlos,
>>
>> Supongamos dos browses, uno con clientes, y otro con facturas de
>> dichos clientes. Parar hace que el segundo browse de facturas se
>> actualice cuando modificacmos de cliente en el primer browse haremos
>> lo siguiente:
>>
>> En el browse de clientes:
>>
>> METHOD BrwClientesChange( oSender, lBookMarkChanged )
>>
>> if lBookMarkChanged
>> ::oDataSetFactura:SetScope( ::oDataSetCliente:Codigo )
>> ::oBrwFactura:Refresh( .t. )
>> endif
>> RETURN nil
>>
>> Logicamente la tabla de facturas debé estar indexada por código de
>>
> cliente.
>
>> Un saludo,
>>
>> "Carlos Cedeño Vera" <carlosijc@gmail.com> escribió en el mensaje
>> news:[email=423733d3@ozsrv2.ozlan.local...]423733d3@ozsrv2.ozlan.local...[/email]
>>
>>> Bueno,, Resulta que tengo tres Tablas: GRUPOS, USUARIOS, USR2GRP.
>>>
>>> 1.- En un TdbEdit, hago las actualizaciones de los Grupos pero
>>> quiero mostrar en un TDBBrowser, a los usuarios correspondiente a
>>> ese Grupo.
>>>
>>> 2.- Quiero que cuando me mueva por la Barra de Navegacion, se vaya
>>> mostrando
>>> en el Brow solo aquellos usuarios que pertenecen al Grupo en curso.
>>> La Relaciones que tengo es la siguiente:
>>>
>>> WITH OBJECT ::oDS1 := TDbfDataSet():New( Self )
>>> :oDataSource := ::oCdxDS
>>> :cProcess := "GENERAL"
>>> :cName := "Grupos.dbf"
>>> :lOpen := .T.
>>> :Create()
>>> :AddTag("BYIDGRP","IDGRUPO")
>>> :AddTag("BYNAME","NOMBRE")
>>> :OrdSetFocus("BYIDGRP")
>>> :Reindex()
>>> END
>>> WITH OBJECT ::oDS2 := TDbfDataSet():New( Self )
>>> :oDataSource := ::oCdxDS
>>> :cProcess := "GENERAL"
>>> :cName := "USUARIOS.Dbf"
>>> :lOpen := .T.
>>> :Create()
>>> :AddTag("BYID","IDUSUARIO")
>>> :AddTag("BYNAME","NOMBRE")
>>> :OrdSetFocus("BYID")
>>> :Reindex()
>>> END
>>> WITH OBJECT ::oDS3 := TDbfDataSet():New( Self )
>>> :oDataSource := ::oCdxDS
>>> :cProcess := "GENERAL"
>>> :cName := "Usr2Grp.dbf"
>>> :lOpen := .T.
>>> :Create()
>>> :AddTag("BYUSER","IDUSUARIO+IDGRUPO")
>>> :AddTag("BYGRUPO","IDGRUPO+IDUSUARIO")
>>> :AddTag("IDUSUARIO","IDUSUARIO")
>>> :AddTag("IDGRUPO","IDGRUPO")
>>> :Reindex()
>>> END
>>> ::oDS2:Select(2)
>>> ::oDS2:OrdSetFocus("IDUSUARIO")
>>> ::oDS2:SetRelation("IDUSUARIO",::oDS3,.T.)
>>> ::oDS1:Select(1)
>>> ::oDS1:OrdSetFocus("IDGRUPO")
>>> ::oDS1:SetRelation("IDGRUPO",::oDS3,.T.)
>>> Diganme por favor que hago mal, que me falta, que debo agregar al
>>> Navigator,,
>>>
>>> Gracias
>>>