adicinar datos en combo

1,309 views
Skip to first unread message

Juan Rojas C

unread,
Oct 22, 2010, 12:53:14 PM10/22/10
to mundovisualfoxpro
Buenos dias:
 
Ante todo gracias, por la atencion.
 
Tengo un combo que muestra la columna nro_pedido de un cursor, asi seleciono que pedido quiero ver (postgresql - vfp9) y recien cargo en el formulario ese numero de pedido con todos sus items, esto funciona OK, pero, quisiera que cuando el numero de pedido no exista, yo en ese combo le ponga el numero y pueda capturar el valor ingresado (numero de pedido nuevo), actualmente no puedo capturar el valor, ya que al tratar de hacerlo me arroja en blanco el numero de pedido.
 
GRACIAS
 
JRCORONA

Yvan GMAIL

unread,
Oct 22, 2010, 12:55:00 PM10/22/10
to mundovis...@googlegroups.com

Si no me equivoco lo captures con la propiedad text..

--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com

Fabricio

unread,
Oct 22, 2010, 9:53:11 PM10/22/10
to Mundo Visual FoxPro
Hola Juan, para que el combo acepte valores diferentes a los que tiene
en la lista debes poner la propiedad Style=0 que corresponde a cuadro
desplegable, y a nivel de código, en este caso en el método valid,
puedes agregar el registro al cursor.

Debes agregar el registro al cursor por que este es el origen del
control, y luego le haces un requery si quieres y le asignas el valor
para actualizarlo.

Espero eso sea lo que buscas.

Juan Rojas C

unread,
Oct 23, 2010, 8:08:47 PM10/23/10
to mundovis...@googlegroups.com
Gracias, por la atencion, pondre en practica lo que me suigieren.
 
JRCORONA

Juan Rojas C

unread,
Oct 23, 2010, 8:10:54 PM10/23/10
to mundovis...@googlegroups.com
He probado, hacer lo que me sugieres Fabricio, pero no me toma el valor, me lo regresa en blanco, no se si pudieras darme un pequeño ejemplo
 
Gracias
 
JRCORONA

Cristobal

unread,
Oct 24, 2010, 9:00:50 AM10/24/10
to mundovis...@googlegroups.com
Para agregar datos a un combo
 

FOR

lnItem = 1 TO 20

*-- Agregar datos a una sola columna

This.combo1.AddItem("Elemento " + TRANSFORM(lnItem), lnItem, 1)

*-- Agregar datos cuando hay mas de una columna

*-- Si es el caso, la propiedad columns del combo de tener

*-- el numero de columnas y, el columnswidth los anchos de cada columna

This.combo1.AddListItem("Elemento " + TRANSFORM(lnItem), lnItem, 2)

ENDFOR

*- La propiedad Style del Combo, sirve para permitir al usuario

*- escribir en el combo o que simplemente seleccione un elemento de este.

Fabricio

unread,
Oct 24, 2010, 7:48:53 PM10/24/10
to Mundo Visual FoxPro
Yo utilizo este método para agregar nuevos registros a mis combos de
Clientes, Proyectos, etc. Me gusta que el combo siempre aparezca como
lista desplegable para facilitar la búsqueda, le doy al usuario la
posibilidad de agregar un nuevo registro presionando la tecla [Ins], o
eliminar un registro presionando la tecla [Supr].

En en primer caso, para agregar un nuevo registro, en el evento
keypress capturo la llamada, cambio propiedad Style=0, inicializo el
valor del combo, en mi caso Value=0, restablezco el modo de escritura
InsMode(!InsMode()).

Entonces el usuario ahora puede escribir el nuevo registro que quiere
adicionar al combo, cuando presiona [Enter], en el método valid
verifico que .Value esté vacío y que .Text no esté vacío. Si se cumple
guardo el valor de .Text en una variable, cambio la propiedad Style=2,
le pregunto si realmente quiere agregar el registro, si responde que
si, inserto el registro en la tabla correspondiente, le hago
un .Requery al combo, y por ultimo le asigno a la popiedad Value el
valor que previamente habia guardado en la variable. LISTO, en mi
tabla ya está el nuevo registro, el combo lo tiene como uno de sus
elementos y además lo tiene seleccionado.

Si acaso el usuario cuando escribe, digita un valor que ya existe,
entonces el combo toma el valor de la lista, cambio la propiedad
Style=2 y no pasa nada.

En el caso de haber presionado Suprimir o Delete, verifico que este un
elemento seleccionado, !Empty(.Value), hago las verificaciones del
caso para no dejar registros huerfanos en otras tablas, si hay
registros relacionados le mando aviso que no puede borrarlo, de lo
contrario le pido me confirme si quiere borrarlo, si responde si,
elimino el registro de la tabla, le hago un .Requery al combo, y
asunto acabado.

Espero que ahora si me comprendas un poco lo que había dicho en el
mensaje anterior.

Saludos y siempre para servirte.

Fabricio




On 23 oct, 18:10, Juan Rojas C <jrsist...@gmail.com> wrote:
> He probado, hacer lo que me sugieres Fabricio, pero no me toma el valor, me
> lo regresa en blanco, no se si pudieras darme un pequeño ejemplo
>
> Gracias
>
> JRCORONA
>
> El 23 de octubre de 2010 19:08, Juan Rojas C <jrsist...@gmail.com> escribió:
>
>
>
>
>
>
>
> > Gracias, por la atencion, pondre en practica lo que me suigieren.
>
> > JRCORONA
>
> > El 22 de octubre de 2010 20:53, Fabricio <fabricio.sando...@hotmail.com>escribió:
>
> > Hola Juan, para que el combo acepte valores diferentes a los que tiene
> >> en la lista debes poner la propiedad Style=0 que corresponde a cuadro
> >> desplegable, y a nivel de código, en este caso en el método valid,
> >> puedes agregar el registro al cursor.
>
> >> Debes agregar el registro al cursor por que este es el origen del
> >> control, y luego le haces un requery si quieres y le asignas el valor
> >> para actualizarlo.
>
> >> Espero eso sea lo que buscas.
>
> >> --
> >> _______________________________________________________________
> >> Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
> >> FoxPro" de Grupos de Google.
>
> >> Para anular la suscripción a este grupo, envía un mensaje a:
> >> mundovisualfox...@googlegroups.com<mundovisualfoxpro%2Bunsubscr i...@googlegroups.com>

Fabricio

unread,
Oct 24, 2010, 8:18:58 PM10/24/10
to Mundo Visual FoxPro
Se me olvido decirte que la opcion no desaparece, simplemente se
desactiva, impidiendole al usuario acceder a ella.

Otros hacen algo parecido a lo que te explique, con la diferencia que
cuando el usuario da clic en la opcion, buscan el permiso, si no tiene
permiso emiten un mensaje, esa forma no me gusta, perfiero desactivar
la opcion de menu.

tangocaracasivan

unread,
Oct 24, 2010, 11:25:31 PM10/24/10
to mundovis...@googlegroups.com
Normalmente la inclusion de un nuevo codigo u opcion implica mucho mas.
Por esta razon muestro el combo box como solo lectura (solo selección) y al
lado pongo un boton que accesa el programa que muestra toda la pantalla
asociada a ese codigo. (Pantalla de Actualizacion Clientes, Productos,
Proveedores, (ABM))
Logicamente si es procedente y permitido según sea el usuario.

Ivan Martinez

>>>-----Mensaje original-----
>>>De: mundovis...@googlegroups.com
>>>[mailto:mundovis...@googlegroups.com] En nombre de Fabricio
>>>Enviado el: Domingo, 24 de Octubre de 2010 07:19 p.m.
>>>Para: Mundo Visual FoxPro
>>>Asunto: [Mundo Visual FoxPro] Re: adicinar datos en combo

>>>> >> mundovisualfoxpro+unsubscr i...@googlegroups.com>

Juan Rojas C

unread,
Oct 25, 2010, 1:54:29 PM10/25/10
to mundovis...@googlegroups.com
Gracias, pondre en practica todo lo sugerido.
 
Dios los Tenga siempre bien.
 
JRCORONA

Reply all
Reply to author
Forward
0 new messages