Una COMBOBOX

Post Reply
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Una COMBOBOX

Post by Armando »

Amigos:

El siguiente código

LOCAL nMes := 1
LOCAL aMeses := {"Ene","Feb","Mzo","Abr","May","Jun",Jul",;
"Ago","Sep","Oct","Nov","Dic"}

REDEFINE COMBOBOX aGets[2] VAR nMes ID 102 OF oDlg UPDATE;
PROMPTS aMeses

En Harbour el valor retornado es la posición del elemento seleccionado, por ejemplo: si el usuario selecciona JUL, el valor retornado es 7

Pero en xHarbour el valor que retorna es el texto "JUL" no su posición en el array.

Hay alguna forma de que con xHarbour me devuelva el mismo valor que con Harbour (7)

Saludos, Armando
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Post by Francisco Horta »

Armando creo que hay dos formas de poderlo hacer:
1. oCbx:nAt te da la poscion del dato seleccionado
2. usa un ASCAN(aItems,cVar) y te devuelve la poscion donde esta "Jul" y cero si no existe en el arreglo
Salu2
Paco
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Depende a que inicialices la variable que controla el combo.

Si la inicializas con un valor numerico, regresa un numero, la posicion del elemento seleccionado y si la inicializas con un valor del array, te regresa una cadena de caracteres con el valor del elemento seleccionado

En tu caso, nMeses tendria que devolver siempre el valor, si inicializas nMeses ="Ene" te regresara el valor seleccionado y no el numero
Saludos
R.F.
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post by Armando »

Amigos:

Primero agradecer sus respuestas y luego lo siguiente. Paco, de una u otra forma hay solución solo que en Harbour el manejo era muy simple y no he querido agregar más código.

René, como siempre apoyando, fijate en la siguiente línea
LOCAL nMes := 1
estoy asignando un valor a la variable pero no hay de piña, siempre me regresa una cadena y obviamente eso me provoca un error.

Un abrazo a ambos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post by Armando »

Master:

En realidad sí me devuelve un número o una cadena, dependiendo de cómo inicialize la variable, el problema esta en que el combo debería mostrar el texto del elemento seleccionado pero no es así, me muestra un 0 cuando inicializo la variable con un número y despues de elegir un nuevo elemento.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post by Armando »

Amigos:

Problema resuelto, por si a alguien le sirve la solución, el control lo tenia definido como DROPDOWN y debe ser DROPDOWN LIST

Muchas gracias por su orientación, Armando
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Post Reply