Problema con el Combobox

Post Reply
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Problema con el Combobox

Post by Pedro »

Hola a todos
En una pequeña aplicacion, en su ventana de captura de datos, tengo dos combobox, el primero definido directamente

Local oCombo := {"Si","No"}
Funciona bien, me toma sus datos, segun esten en la tabla.
El segundo combo, es un array que se rellena con los registros de otra tabla, y cuando accedo en la ventana de captura de datos, me cambia el orden de los items de manera curiosa, el 1º Item lo pone el último, el 2º lo pone el primero, el 3º lo pone el segundo...y así sucesivamente,
Con lo cual lo que informa primero es un dato que no es el que hay en la tabla.
Este es el código

Code: Select all

 REDEFINE	GET aDatos[16]	 ID 1016  PICTURE "99"  OF oDlg UPDATE 
 REDEFINE	GET aDatos[17]	 ID 1017  PICTURE "9999999999" OF oDlg UPDATE 
 REDEFINE	COMBOBOX oConcep VAR cCombo ITEMS aConceptos ID 1018  OF oDlg UPDATE
cCombo esta definido así cCombo := aConceptos[aDatos[18]]
Si pongo un msginfo de cCombo, me da correcto
El código donde cargo la tabla en el array aConceptos es este.

Code: Select all

* ------------------------------------------------------------------
FUNCTION PonConcepto()
* ------------------------------------------------------------------
Local nSele := Select()
Local n := 1   
Local aConceptos[0]

      
      dbSelectArea("CPT")
      CPT->(dbGotop())
      n := CPT->(RecCount())
      ASIZE(aConceptos,n)
      AFILL(aConceptos,"")
      n:= 1
      While CPT->(!Eof()) 
            IF CPT->(Eof())
               exit
            EndIf    
            aConceptos[n] :=  CPT->concepto
            CPT->(dbSkip())
            n++
      EndDo
      dbSelectArea(nSele)
Return(aConceptos)
Alquien me puede decir por qué me cambia el índice de los datos en el array del combobox?

Una manita y una pierna, plisssssssssssss

Gracias

Pedro
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Hola Pedro:

Yo probaría de la forma siguiente:

REDEFINE COMBOBOX oConcep VAR aDatos[18] ITEMS aConceptos ID 1018 OF oDlg UPDATE
Un saludo,
Manuel

xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Post by Pedro »

Hola Manuel

Ya lo intenté así antes de poner el post, daba lo mismo, seguía el problema y claro cuando intentaba asignar el número del item selecionado, pues salía un churro, porque no era el que estaba en la tabla.
EL problema es que el combobox ejecuta una ordenacion y por eso me coloca los items de diferente forma a como se introducen en el array

Un abrazo Manuel

Pedro
User avatar
RenOmaS
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Post by RenOmaS »

verifica en el recurso si el combobox esta setead para ordenarse (SORT)
Saludos/regards
RenOmaS

skype: americo.balboa
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Hola de nuevo Pedro:

Y has comprobado que aDatos[18] esté contenida en aConceptos exactamente igual, es decir, con el mismo número de caracteres y en la misma posición? Da la impresión de que no se posiciona en ese item por que no lo encuentra.
Pedro wrote:Hola Manuel

Ya lo intenté así antes de poner el post, daba lo mismo, seguía el problema y claro cuando intentaba asignar el número del item selecionado, pues salía un churro, porque no era el que estaba en la tabla.
EL problema es que el combobox ejecuta una ordenacion y por eso me coloca los items de diferente forma a como se introducen en el array

Un abrazo Manuel

Pedro
Un saludo,
Manuel

xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
User avatar
Ramon Paredes
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Yo los cargo asi

Post by Ramon Paredes »

Hola pedro,

La forma en que cargos mis arreglos es la siguiente y no he tenido ningun problema con el orden,

Local aConceptos = [1]

select a
use miBasedeConceptos
miBase->(OrdSetFocus("mi_indice"))
aConceptos[1] = miBase->campo1
skip
select a
do while !eof()
aadd(aConceptos,miBase->campo1
skip
enddo
close data
return aConceptos

asi no hay forma que te distorsione el orden

Saludes desde managua,nicaragua

Ramon Paredes
... Desde la Tierra de lagos y Volcanes......
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Post by Willi Quintana »

Hola,
Apostaria que en el recurso, el combobox tiene activado la casilla SORT en modo Yes, cambia a No, eso esta en sus propiedades..
Salu2
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Post by Pedro »

RenOmas efectivamente, estaba, cero que se le puso al pasar el recurso por el visual estudio, ya que yo creo los combobox sin el CBS_SORT

Manuel, aDatos[18] es un índice númerico, que me indica que posición tiene en la tabla de conceptos de facturación el socio, ya que solo se le factura por un concepto.

Ramón da lo mismo como cargues el arreglo, si el combobox tiene la propiedad CBS_SORT te ordena el arreglo, de eso no me dí cuenta.

Willi efectivamente tenía activado el SORT y no lo pillé, por lo que le digo a RenOmas.

Gracias a todos.

Pedro
elmoiquique
Posts: 257
Joined: Wed May 16, 2007 9:40 pm
Location: Iquique Chile

Re: Problema con el Combobox

Post by elmoiquique »

Hola

Porque cambia el orden al activar la casilla SORT del recurso, siendoq que debiera ser el mismo orden

Code: Select all

   Sin Sort                  Con Sort

1   D-3200                    D3100
2   D-3200W/18            D3100W
3   D-7000W/18            D3200
4   D-90                        D-3200
5   D3100                      D-3200W/18 
6   D3100W                   D5100
7   D3200                      D5200   
8   D5100                      D7000
9   D5200                      D7000W/18 
10 D7000                      D90
11 D90                         D-90
El problema esta que al seleccionar por ejemplo el item D3200, SIN SORT lo selecciona bien y CON SORT selecciono el D3200 me muestra D-7000W/18

Cual puede ser el problema, ya cambie de editor de recurso y sigue el mismo problema, y lo necesito ocupar con el sort activado del recurso.. es un problema del combobox o del recurso

Agradeceria su ayuda
Fivewin 11.07
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Problema con el Combobox

Post by Pedro »

Si quieres usar el sort, tan sólo te puedo dar una recomendación para que al elegir salga el que deseas.
Añade un campo de ordenación al inicio de _ a usar en el combobox. en tu ejemplo : si deseas que salgan como en el sort coloca el número ordinal delante de esa manera elegirás la posición ordinal del combobox. Mi consejo es que no ordenes el combobox, si no que ordenes los items antes de sacarlos en el combobox

Code: Select all

  Sin Sort                  Con Sort

1   D-3200                1-D3100
2   D-3200W/18            2-D3100W
3   D-7000W/18            3-D3200
4   D-90                  4-D-3200
5   D3100                 5-D-3200W/18
6   D3100W                6-D5100
7   D3200                 7-D5200  
8   D5100                 8-D7000
9   D5200                 9-D7000W/18
10 D7000                 10-D90
11 D90                   11-D-90
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
elmoiquique
Posts: 257
Joined: Wed May 16, 2007 9:40 pm
Location: Iquique Chile

Re: Problema con el Combobox

Post by elmoiquique »

Gracias Pedro

Pero creo que el metodo utlizado perderia gran ventaja, ya que al presionar la tecla D, no encontraria inmediatamente la informacion.. asi que no creo que vaya por ahi la solucion..... Me imagino que el error debe ser del combobox.. porque he probado con dos editores de recurso distino al Pelles y me da el mismo problema.... y no se que podria ser...

Tambien al cargar el array lo hago de forma ordenada, pero lo muestra en forma diferente es por eso que al seleccionar el dato muestra otro diferente....., pero solo cuando llevan signos entremedios, cuando va sin _, no hay problemas..

Espero una ayudita o tendre que usar los listbox, que son mas seguros y no tienen este problema

Saludos
Fivewin 11.07
Post Reply