¿como puedo hacer para poder visualizar el listbox hijo de un fichero ?
quiero mostrar un fichero de compras con su cabecera y sus lineas de esa compra
tengo
*------------------------------
STATIC FUNCTION Compras()
*------------------------------
LOCAL oFont, oLbx
LOCAL o := Array( O_LON )
LOCAL v := Array( O_LON )
LOCAL cAlias := aDbf[ DBF_LINENTRA]
Comp_IniVar( o, v )
oLbx := TWBrowse():New( 50, 100 )
DEFINE FONT oFont NAME "Arial" SIZE 0, -12
DEFINE DIALOG o[ O_DLG ] RESOURCE "NUEVACOMPRA"
REDEFINE GET o[ O_NUMERO ] VAR v[ O_NUMERO ] ID 200 OF o[ O_DLG ] PICTURE '999999'
REDEFINE GET o[ O_FECHA ] VAR v[ O_FECHA ] ID 114 OF o[ O_DLG ]
REDEFINE GET o[ O_PROVEEDOR ] VAR v[ O_PROVEEDOR ] ID 115 OF o[ O_DLG ]
REDEFINE LISTBOX oLbx ;
FIELDS str(( cAlias )->articulo) , ( cAlias )->nombarti ;
HEADERS "Articulo", "Nombr. Arti" ;
ALIAS cAlias ;
ID 500 OF o[ O_DLG ]
ACTIVATE DIALOG o[ O_DLG ] CENTERED ;
ON INIT ( comp_Bar( o, v ), .f. )
_ numero , fecha y proveedor del get son del fichero compras y el listbox son del fichero hijo
¿deberia funcionar asi?
las bases de datos las abro antes con
USE ( CurDir() + "\COMPRAS" ) NEW
INDEX ON STR(COMPRAS->NUMERO) TO ( CurDir() + "\COMPRA1" )
aDbf[ DBF_COMPRAS ] := Alias()
USE ( CurDir() + "\LINENTRA" ) NEW
INDEX ON STR(LINENTRA->COMPRAS) TO ( CurDir() + "\LINENTR1" )
aDbf[ DBF_LINENTRA ] := Alias()
pero no me acaba de funcionar
para operar con las 2 podria referirme a una con
LOCAL cAlias := aDbf[ DBF_LINENTRA]
y a la otra con
LOCAL cAlias1:= aDbf[ DBF_COMPRAS]
gracias por la colaboración
saludos
Antonio
visualizar listbox hijo
-
- Posts: 20
- Joined: Sat Jul 22, 2006 12:34 pm
- Location: Madrid - España
visualizar listbox hijo
Antonio
Madrid
España
Madrid
España
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 20
- Joined: Sat Jul 22, 2006 12:34 pm
- Location: Madrid - España
Gracias Antonio
lo que no consigo es que el olbx, me muestre solo las lineas que necesito
solo quiero visualizar las lineas del olbx , que sean hijas del registro de cabecera
he probado con dbfilter , con select y con WHEN
declaro una variable publica m1filtro y despues intento que solo se visualicen esas lineas , pero no lo consigo
REDEFINE LISTBOX oLbx ;
FIELDS str(( cAlias )->articulo) , ( cAlias )->nombarti ;
HEADERS "Articulo", "Nombr. Arti" ;
ALIAS cAlias ;
ID 500 OF o[ O_DLG ]
lineas probadas entre ALIAS E ID
* SELECT ( cAlias )->compras FOR m1filtro ;
* WHEN (( cAlias )->compras = m1filtro ) ;
¿con que opción puedo filtrar o limitar las lineas visualizadas en el olbx?
saludos
Antonio
lo que no consigo es que el olbx, me muestre solo las lineas que necesito
solo quiero visualizar las lineas del olbx , que sean hijas del registro de cabecera
he probado con dbfilter , con select y con WHEN
declaro una variable publica m1filtro y despues intento que solo se visualicen esas lineas , pero no lo consigo
REDEFINE LISTBOX oLbx ;
FIELDS str(( cAlias )->articulo) , ( cAlias )->nombarti ;
HEADERS "Articulo", "Nombr. Arti" ;
ALIAS cAlias ;
ID 500 OF o[ O_DLG ]
lineas probadas entre ALIAS E ID
* SELECT ( cAlias )->compras FOR m1filtro ;
* WHEN (( cAlias )->compras = m1filtro ) ;
¿con que opción puedo filtrar o limitar las lineas visualizadas en el olbx?
saludos
Antonio
Antonio
Madrid
España
Madrid
España
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 20
- Joined: Sat Jul 22, 2006 12:34 pm
- Location: Madrid - España
pero el comando SET FILTER TO
no me lo admite en el REDIFINE LISTBOX
lo tengo que poner al abrir la base de datos
¿como puede volver abrir la base de datos y hacer el filtro si he definido la base de datos con cAlias?
lo he intentado hacer son SET FILTER TO CAMPO = VARIABLE PUBLICA, pero no me funciona
este es el codigo el set filter lo hago antes en
USE ( CurDir() + "\LINENTRA" ) NEW
INDEX ON STR(LINENTRA->COMPRAS) TO ( CurDir() + "\LINENTR1" )
aDbf[ DBF_LINENTRA ] := Alias()
SET FILTER TO m1filtro = LINENTRA->COMPRAS
depues en otra funcion hago
LOCAL cAlias := aDbf[ DBF_LINENTRA]
Comp_IniVar( o, v )
DEFINE FONT oFont NAME "Arial" SIZE 0, -12
DEFINE DIALOG o[ O_DLG ] RESOURCE "NUEVACOMPRA"
REDEFINE GET o[ O_NUMERO ] VAR v[ O_NUMERO ] ID 200 OF o[ O_DLG ] PICTURE '999999'
REDEFINE GET o[ O_FECHA ] VAR v[ O_FECHA ] ID 114 OF o[ O_DLG ]
REDEFINE GET o[ O_PROVEEDOR ] VAR v[ O_PROVEEDOR ] ID 115 OF o[ O_DLG ]
m1filtro := o[ O_NUMERO ]
REDEFINE LISTBOX oLbx ;
FIELDS str(( cAlias )->articulo) , ( cAlias )->nombarti ;
HEADERS "Articulo", "Nombr. Arti" ;
ALIAS cAlias ;
ID 500 OF o[ O_DLG ]
no me lo admite en el REDIFINE LISTBOX
lo tengo que poner al abrir la base de datos
¿como puede volver abrir la base de datos y hacer el filtro si he definido la base de datos con cAlias?
lo he intentado hacer son SET FILTER TO CAMPO = VARIABLE PUBLICA, pero no me funciona
este es el codigo el set filter lo hago antes en
USE ( CurDir() + "\LINENTRA" ) NEW
INDEX ON STR(LINENTRA->COMPRAS) TO ( CurDir() + "\LINENTR1" )
aDbf[ DBF_LINENTRA ] := Alias()
SET FILTER TO m1filtro = LINENTRA->COMPRAS
depues en otra funcion hago
LOCAL cAlias := aDbf[ DBF_LINENTRA]
Comp_IniVar( o, v )
DEFINE FONT oFont NAME "Arial" SIZE 0, -12
DEFINE DIALOG o[ O_DLG ] RESOURCE "NUEVACOMPRA"
REDEFINE GET o[ O_NUMERO ] VAR v[ O_NUMERO ] ID 200 OF o[ O_DLG ] PICTURE '999999'
REDEFINE GET o[ O_FECHA ] VAR v[ O_FECHA ] ID 114 OF o[ O_DLG ]
REDEFINE GET o[ O_PROVEEDOR ] VAR v[ O_PROVEEDOR ] ID 115 OF o[ O_DLG ]
m1filtro := o[ O_NUMERO ]
REDEFINE LISTBOX oLbx ;
FIELDS str(( cAlias )->articulo) , ( cAlias )->nombarti ;
HEADERS "Articulo", "Nombr. Arti" ;
ALIAS cAlias ;
ID 500 OF o[ O_DLG ]
Antonio
Madrid
España
Madrid
España
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio,
La llamada a SET FILTER TO ... la tienes que hacer despues de haber abierto la DBF con USE. Y estando situado en ese area de trabajo, no en otra area de trabajo.
Aqui puedes revisar la documentación de SET FILTER ... y de todos los demás comandos y funciones de Clipper:
http://www.ousob.com/ng/clguide/nga2c64.php
De todas formas, haz todas las preguntas que necesites que estamos aqui para ayudarte
La llamada a SET FILTER TO ... la tienes que hacer despues de haber abierto la DBF con USE. Y estando situado en ese area de trabajo, no en otra area de trabajo.
Aqui puedes revisar la documentación de SET FILTER ... y de todos los demás comandos y funciones de Clipper:
http://www.ousob.com/ng/clguide/nga2c64.php
De todas formas, haz todas las preguntas que necesites que estamos aqui para ayudarte