Página 1 de 1

PROBLEMA CON TDBCOMBOBOX

Publicado: Mar Sep 25, 2007 3:35 am
por PEDRO DE LEON RODAS[1]
HASTA AHORITA AHI LA LLEVO CON XAILER, PEROOOOOOOOOO, ! COMO SE ME COMPLICA
CON ESTOS COMBOBOX!.
TENGO UNA TABLA LLAMADA ARTICULOS, EN LA CUAL TENGO LOS SIGUIENTES CAMPOS.
CODIGO (TIPO CARACTER Y LONGITUD DE 20)
PRECIO (TIPO NUMERICO Y LONG DE 9 CON 2 DECIMALES)
CUANDO ESTE CAMPO LO PONGO EN UN TDBCOMBOBOX LO HAGO DE LA SIGUIENTE FORMA.
METHOD codigoCreate( oSender ) CLASS mov_articulos
::Midataset:Edit()
oSender:aItems := ::::Midataset:SaveToArray( "codigo" )
RETURN Nil
HASTA AQUI TODO FUNCIONA BIEN.
Y UTILIZO EL EVENTO CHANGE
HACIENDO LO SIGUIENTE:
METHOD codigoChange( oSender, nIndex, nOldIndex ) CLASS mov_articulos
::precio:value=::Midataset:precio
RETURN Nil
PERO NO ME DA EL PRECIO CORRESPONDIENTE AL CODIGO SELECCIONADO.
POR FAVOR ALGUIEN QUE MANEJE BIEN ESTO DE LOS COMBOBOX LES PIDO ME APOYEN.
NOTA.
SIN OFENDER A LOS CREADORES DE XAILER, CREO QUE DEBERIAN HACER ALGO PARA
HACER MAS FACIL LA UTILIZACION DE LOS COMBOBOX.
LES INVITO QUE LE DEN UN VISTASO A VISUAL FOXPRO 9, EN ESTE LENGUAJE ES
MUCHO MAS FACIL Y RAPIDO PARA PRESENTAR LA INFORMACION CONTENIDA EN UN
CAMPO.
IMAGINENSE SI TUVIERA 500,000 REGISTROS EN SIERTO CAMPO Y QUISIERA
PRESENTARLOS EN UN COMBOBOX, ESTO SERIA LENTO.
OJO.
YA NO ESTOY PROGRAMANDO EN VISUL FOXPRO, AHORA ESTOY PROGRAMANDO CON XAILER
TODAS LAS APLICACIONES QUE TENGO EN FOXPRO.
MIS DISCULPAS Y GRACIAS.

PROBLEMA CON TDBCOMBOBOX

Publicado: Mar Sep 25, 2007 4:16 am
por zeasoftware
> METHOD codigoChange( oSender, nIndex, nOldIndex ) CLASS mov_articulos
Midataset:Seek(oSender:cText)
> ::precio:value=::Midataset:precio
> RETURN Nil
No veo que mandes a buscar el valor seleccionado.
Saludos.
--
Ramón Zea
01.993.194.14.27
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
"PEDRO DE LEON RODAS" <deleonpe@terra.com.mx> escribió en el mensaje news:[email=46f865db@ozsrv2.ozlan.local...]46f865db@ozsrv2.ozlan.local...[/email]
> HASTA AHORITA AHI LA LLEVO CON XAILER, PEROOOOOOOOOO, ! COMO SE ME COMPLICA
> CON ESTOS COMBOBOX!.
>
> TENGO UNA TABLA LLAMADA ARTICULOS, EN LA CUAL TENGO LOS SIGUIENTES CAMPOS.
>
> CODIGO (TIPO CARACTER Y LONGITUD DE 20)
> PRECIO (TIPO NUMERICO Y LONG DE 9 CON 2 DECIMALES)
>
> CUANDO ESTE CAMPO LO PONGO EN UN TDBCOMBOBOX LO HAGO DE LA SIGUIENTE FORMA.
>
>
> METHOD codigoCreate( oSender ) CLASS mov_articulos
>
> ::Midataset:Edit()
> oSender:aItems := ::::Midataset:SaveToArray( "codigo" )
> RETURN Nil
>
> HASTA AQUI TODO FUNCIONA BIEN.
> Y UTILIZO EL EVENTO CHANGE
> HACIENDO LO SIGUIENTE:
>
> METHOD codigoChange( oSender, nIndex, nOldIndex ) CLASS mov_articulos
> ::precio:value=::Midataset:precio
> RETURN Nil
>
> PERO NO ME DA EL PRECIO CORRESPONDIENTE AL CODIGO SELECCIONADO.
>
> POR FAVOR ALGUIEN QUE MANEJE BIEN ESTO DE LOS COMBOBOX LES PIDO ME APOYEN.
>
> NOTA.
>
> SIN OFENDER A LOS CREADORES DE XAILER, CREO QUE DEBERIAN HACER ALGO PARA
> HACER MAS FACIL LA UTILIZACION DE LOS COMBOBOX.
>
> LES INVITO QUE LE DEN UN VISTASO A VISUAL FOXPRO 9, EN ESTE LENGUAJE ES
> MUCHO MAS FACIL Y RAPIDO PARA PRESENTAR LA INFORMACION CONTENIDA EN UN
> CAMPO.
>
> IMAGINENSE SI TUVIERA 500,000 REGISTROS EN SIERTO CAMPO Y QUISIERA
> PRESENTARLOS EN UN COMBOBOX, ESTO SERIA LENTO.
>
> OJO.
> YA NO ESTOY PROGRAMANDO EN VISUL FOXPRO, AHORA ESTOY PROGRAMANDO CON XAILER
> TODAS LAS APLICACIONES QUE TENGO EN FOXPRO.
>
> MIS DISCULPAS Y GRACIAS.
>
>
>
>
>
>
>
>
--

PROBLEMA CON TDBCOMBOBOX

Publicado: Mar Sep 25, 2007 7:20 am
por jasm
No respondo a tu cuestion, pero....
>
> IMAGINENSE SI TUVIERA 500,000 REGISTROS EN SIERTO CAMPO Y QUISIERA
> PRESENTARLOS EN UN COMBOBOX, ESTO SERIA LENTO.
>
Hacer eso en un ComboBox es una barbaridad muy bárbara.... El usuario se
podrí­a vover loco para encontrar lo que necesita.
De hecho los comboboxes no deberí­an ser usados si tiene más de 10-15
opciones, lo mejor es crear un diálogo con un browse de selección.
Saludos
Jose A. Suarez

PROBLEMA CON TDBCOMBOBOX

Publicado: Mar Sep 25, 2007 9:55 am
por ignacio
Pedro,
El TDBComboBox se enlaza con el campo que usted le indique EN SU VALOR, NO
EN LOS ELEMENTOS QUE LO COMPONEN. Podriamos haber hecho que además la lista
de elementos se rellenase con el campo de otro dataset, pero nos parecio
sencillamente poco útil y sobre todo provocaría desconcierto entre los
usuarios la existencia de dos propiedades más.
Estoy con José Alfonso cuando dice que es una barbaridad muy barbara el
mostrar un combobox con tantos elementos, y en cualquier caso, no se
confunda, desconozco VFP pero le aseguro que si utiliza Comboboxes estándar
(que seguro que así es) necesariamente tiene que cargar la totalidad de
elementos de la tabla en la matriz que muestra el ComboBox, por lo tanto los
presuntos problemas de velocidad que indica con tablas grandes se han de
producir exactamente igual que con Xailer.
El evento OnChange se evalua antes de que el valor del Combo cambie, PERO su
parametro NINDEX y NOLDINDEX le indican claramente el actual y nuevo valor
que tendrá el Combo, por lo tanto su código cambiaría de la siguiente forma:
METHOD codigoChange( oSender, nIndex, nOldIndex ) CLASS mov_articulos
IF ::Precio:Seek( oSender:aItems[ nIndex ] )
::precio:value=::Midataset:precio
ENDIF
RETURN Nil
Por otra parte usted está presumiendo que cada vez que se cambia el valor
del ComboBox, el dataset está cambiando de registro y no es cierto.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PEDRO DE LEON RODAS" <deleonpe@terra.com.mx> escribió en el mensaje
news:[email=46f865db@ozsrv2.ozlan.local...]46f865db@ozsrv2.ozlan.local...[/email]
> HASTA AHORITA AHI LA LLEVO CON XAILER, PEROOOOOOOOOO, ! COMO SE ME
> COMPLICA CON ESTOS COMBOBOX!.
>
> TENGO UNA TABLA LLAMADA ARTICULOS, EN LA CUAL TENGO LOS SIGUIENTES
> CAMPOS.
>
> CODIGO (TIPO CARACTER Y LONGITUD DE 20)
> PRECIO (TIPO NUMERICO Y LONG DE 9 CON 2 DECIMALES)
>
> CUANDO ESTE CAMPO LO PONGO EN UN TDBCOMBOBOX LO HAGO DE LA SIGUIENTE
> FORMA.
>
>
> METHOD codigoCreate( oSender ) CLASS mov_articulos
>
> ::Midataset:Edit()
> oSender:aItems := ::::Midataset:SaveToArray( "codigo" )
> RETURN Nil
>
> HASTA AQUI TODO FUNCIONA BIEN.
> Y UTILIZO EL EVENTO CHANGE
> HACIENDO LO SIGUIENTE:
>
> METHOD codigoChange( oSender, nIndex, nOldIndex ) CLASS mov_articulos
> ::precio:value=::Midataset:precio
> RETURN Nil
>
> PERO NO ME DA EL PRECIO CORRESPONDIENTE AL CODIGO SELECCIONADO.
>
> POR FAVOR ALGUIEN QUE MANEJE BIEN ESTO DE LOS COMBOBOX LES PIDO ME APOYEN.
>
> NOTA.
>
> SIN OFENDER A LOS CREADORES DE XAILER, CREO QUE DEBERIAN HACER ALGO PARA
> HACER MAS FACIL LA UTILIZACION DE LOS COMBOBOX.
>
> LES INVITO QUE LE DEN UN VISTASO A VISUAL FOXPRO 9, EN ESTE LENGUAJE ES
> MUCHO MAS FACIL Y RAPIDO PARA PRESENTAR LA INFORMACION CONTENIDA EN UN
> CAMPO.
>
> IMAGINENSE SI TUVIERA 500,000 REGISTROS EN SIERTO CAMPO Y QUISIERA
> PRESENTARLOS EN UN COMBOBOX, ESTO SERIA LENTO.
>
> OJO.
> YA NO ESTOY PROGRAMANDO EN VISUL FOXPRO, AHORA ESTOY PROGRAMANDO CON
> XAILER TODAS LAS APLICACIONES QUE TENGO EN FOXPRO.
>
> MIS DISCULPAS Y GRACIAS.
>
>
>
>
>
>
>
>

PROBLEMA CON TDBCOMBOBOX

Publicado: Mar Sep 25, 2007 10:07 am
por ignacio
Correción al código:
METHOD codigoChange( oSender, nIndex, nOldIndex ) CLASS mov_articulos
IF ::Midataset:Seek( oSender:aItems[ nIndex ] )
::precio:value=::Midataset:precio
ENDIF
RETURN Nil
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:46f8bedc$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Pedro,
>
> El TDBComboBox se enlaza con el campo que usted le indique EN SU VALOR, NO
> EN LOS ELEMENTOS QUE LO COMPONEN. Podriamos haber hecho que además la
> lista de elementos se rellenase con el campo de otro dataset, pero nos
> parecio sencillamente poco útil y sobre todo provocaría desconcierto entre
> los usuarios la existencia de dos propiedades más.
>
> Estoy con José Alfonso cuando dice que es una barbaridad muy barbara el
> mostrar un combobox con tantos elementos, y en cualquier caso, no se
> confunda, desconozco VFP pero le aseguro que si utiliza Comboboxes
> estándar (que seguro que así es) necesariamente tiene que cargar la
> totalidad de elementos de la tabla en la matriz que muestra el ComboBox,
> por lo tanto los presuntos problemas de velocidad que indica con tablas
> grandes se han de producir exactamente igual que con Xailer.
>
> El evento OnChange se evalua antes de que el valor del Combo cambie, PERO
> su parametro NINDEX y NOLDINDEX le indican claramente el actual y nuevo
> valor que tendrá el Combo, por lo tanto su código cambiaría de la
> siguiente forma:
>
> METHOD codigoChange( oSender, nIndex, nOldIndex ) CLASS mov_articulos
> IF ::Precio:Seek( oSender:aItems[ nIndex ] )
> ::precio:value=::Midataset:precio
> ENDIF
> RETURN Nil
>
> Por otra parte usted está presumiendo que cada vez que se cambia el valor
> del ComboBox, el dataset está cambiando de registro y no es cierto.
>
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "PEDRO DE LEON RODAS" <deleonpe@terra.com.mx> escribió en el mensaje
> news:[email=46f865db@ozsrv2.ozlan.local...]46f865db@ozsrv2.ozlan.local...[/email]
>> HASTA AHORITA AHI LA LLEVO CON XAILER, PEROOOOOOOOOO, ! COMO SE ME
>> COMPLICA CON ESTOS COMBOBOX!.
>>
>> TENGO UNA TABLA LLAMADA ARTICULOS, EN LA CUAL TENGO LOS SIGUIENTES
>> CAMPOS.
>>
>> CODIGO (TIPO CARACTER Y LONGITUD DE 20)
>> PRECIO (TIPO NUMERICO Y LONG DE 9 CON 2 DECIMALES)
>>
>> CUANDO ESTE CAMPO LO PONGO EN UN TDBCOMBOBOX LO HAGO DE LA SIGUIENTE
>> FORMA.
>>
>>
>> METHOD codigoCreate( oSender ) CLASS mov_articulos
>>
>> ::Midataset:Edit()
>> oSender:aItems := ::::Midataset:SaveToArray( "codigo" )
>> RETURN Nil
>>
>> HASTA AQUI TODO FUNCIONA BIEN.
>> Y UTILIZO EL EVENTO CHANGE
>> HACIENDO LO SIGUIENTE:
>>
>> METHOD codigoChange( oSender, nIndex, nOldIndex ) CLASS mov_articulos
>> ::precio:value=::Midataset:precio
>> RETURN Nil
>>
>> PERO NO ME DA EL PRECIO CORRESPONDIENTE AL CODIGO SELECCIONADO.
>>
>> POR FAVOR ALGUIEN QUE MANEJE BIEN ESTO DE LOS COMBOBOX LES PIDO ME
>> APOYEN.
>>
>> NOTA.
>>
>> SIN OFENDER A LOS CREADORES DE XAILER, CREO QUE DEBERIAN HACER ALGO PARA
>> HACER MAS FACIL LA UTILIZACION DE LOS COMBOBOX.
>>
>> LES INVITO QUE LE DEN UN VISTASO A VISUAL FOXPRO 9, EN ESTE LENGUAJE ES
>> MUCHO MAS FACIL Y RAPIDO PARA PRESENTAR LA INFORMACION CONTENIDA EN UN
>> CAMPO.
>>
>> IMAGINENSE SI TUVIERA 500,000 REGISTROS EN SIERTO CAMPO Y QUISIERA
>> PRESENTARLOS EN UN COMBOBOX, ESTO SERIA LENTO.
>>
>> OJO.
>> YA NO ESTOY PROGRAMANDO EN VISUL FOXPRO, AHORA ESTOY PROGRAMANDO CON
>> XAILER TODAS LAS APLICACIONES QUE TENGO EN FOXPRO.
>>
>> MIS DISCULPAS Y GRACIAS.
>>
>>
>>
>>
>>
>>
>>
>>
>
>