Ayuda con Combobox

Post Reply
User avatar
jose_murugosa
Posts: 1185
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Ayuda con Combobox

Post by jose_murugosa »

El control Combobox es un control que siempre lo he usado con un vector (una dimension) sin problemas, pero necesitaría utilizar una matriz de 2 columnas (2 líneas por elemento).

Quiero que en el Combobox me muestre la lista de elementos de una columna de la matriz (texto) pero devuelva a la variable del combo el elemento en la otra columna (que es numerico).

Por ejemplo un array que contiene el numero de cliente y el nombre, me muestra el nombre y pone en la variable el numero de cliente.

¿Esto se puede hacer? si no es posible con Combobox, ¿se puede hacer con otro control?

Gracias desde ya por vuestra atención.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
armando.lagunas
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: Ayuda con Combobox

Post by armando.lagunas »

Buen día:

yo utilizo un Listbox con un dbf de paso en un Get normal y un botón que lo invoque.

Code: Select all | Expand



...
...
   REDEFINE  GET oGet VAR cMaterial PICTURE "@K"  ID 21 OF oDlg
   REDEFINE BUTTON  ID 42 FILENAME "SearchReg.bmp"  OF oDlg ACTION Seek_Material (oGet,400,150 )
...
...

STATIC FUNCTION Seek_Material( oGet, nWidth, nHeight )
 LOCAL oVen, vLbx, aPoint, cBus, n, xVal , bRestore, lNormal, oDbf

 SELECT P119         ;  __dbZap()

** EN ESTA SECCION YO LLAMO MIS DATOS Y LOS TRASLADO A LA DBF DE PASO
** ADAPTA AQUI LO QUE TU UTILICES MOSTRAR

 oDbf:= oCon:Query("SELECT MA_CodeMaterial_PK, MA_NombreMaterial FROM MAE_Grupo_Materiales WHERE AND MA_Activo = 1 ")
 oDbf:Query_All()
 For n := 1 TO oDbf:nRecord
    SELECT P119      ;  dbAppend()
                        P119->MATE  := oDbf:aDataAll[n][1]
                        P119->NOMB  := oDbf:aDataAll[n][2]
 Next                ;  oDbf:End()

*** HASTA AQUI

 SELECT P119         ;  INDEX ON P119->NOMB   TAG 1 TO (".\TEMP\PASO119.CDX")
                                          SET INDEX TO (".\\PASO119.CDX")
 SELECT P119         ;  DBGOTOP()

   bRestore  := {|| IIF( !lNormal, ( oGet:VarPut( xVal ), oGet:SetFocus() ), ), oVen:End() }
   xVal      := oGet:VarGet()
   cBus      := ""
   lNormal   := .F.
   aPoint    := AdjustWnd( oGet, nWidth, nHeight )
   DEFINE WINDOW oVen FROM aPoint[1] + 1, aPoint[2] TO aPoint[1] + nHeight, aPoint[2] + nWidth pixel STYLE  nOR( DS_MODALFRAME, WS_POPUP, WS_BORDER )
      @ 0, 0 LISTBOX vLbx  FIELDS P119->MATE, P119->NOMB ;
                           HEADER "Codigo","Descripción" ALIAS "P119" FIELDSIZES 60,250  SIZE  nWidth,nHeight OF oVen ;
                           COLOR CLR_BUSCAR ;
                           FONT aWFont[23] PIXEL ON CHANGE   ( oGet:VarPut( P119->MATE ), oGet:refresh())  ;
                                                      ON DBLCLICK ( oGet:VarPut( P119->MATE ), oGet:refresh(), oGet:SetFocus(), oVen:End() )
   
      vLbx:bKeyChar   := { |nkey, nFlags| IIF(nKey >= 32,(cBus += CHR(nKey) , BuscarSeek( vLbx, cBus )),), IIF(nKey  = 8 ,(cBus := LEFT(cBus,LEN(cBus)-1), BuscarSeek( vLbx, cBus )),) }
      vLbx:bLostFocus := {|| ( oGet:VarPut( P119->MATE ), oGet:refresh()    , oGet:SetFocus() ) }
      vLbx:bKeyDown   := {|nKey| IIF( nKey = 13, (lNormal := .T., eval( bRestore ) ), IIF( nKey = 27,(lNormal := .T., eval( bRestore) ), ) ) }

   ACTIVATE WINDOW oVen ON INIT ( oVen:bLostFocus := {|| oVen:bLostFocus := nil, eval( bRestore ) } , vLbx:Refresh() ) VALID ( lNormal := .T. )

 RETURN Nil

//-------------------------------------------------------------------------

STATIC FUNCTION BuscarSeek( vLbx, cBus )
  SELECT P119          ;     SEEK cBus SOFTSEEK
  vLbx:UpStable()      ;     vLbx:Refresh()
 RETURN .T.

//-------------------------------------------------------------------------

 




Image
SkyPe: armando.lagunas@hotmail.com
Mail: armando.lagunas@gmail.com
User avatar
karinha
Posts: 7942
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Ayuda con Combobox

Post by karinha »

\samples\TESTGET3.PRG

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
leandro
Posts: 1755
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 41 times
Been thanked: 10 times
Contact:

Re: Ayuda con Combobox

Post by leandro »

Otra opción puede ser dbcombo

Code: Select all | Expand


#include "dbcombo.ch"

.....

Local aTipoCla := {"Gran Contribuyente","Régimen Común","Régimen Simplificado",;
                 "Persona Natural","Empresa Unipersonal","Extranjera","Otra"}
Local aLlavCla := {1,2,3,4,5,6,7}
.....

REDEFINE DBCOMBO oCcla VAR nTipo ITEMS aLlavCla LIST aTipoCla ID 4036 OF ::oDlgCrea UPDATE             
......
 
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
User avatar
karinha
Posts: 7942
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Ayuda con Combobox

Post by karinha »

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
nageswaragunupudi
Posts: 10722
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: Ayuda con Combobox

Post by nageswaragunupudi »

leandro wrote:Otra opción puede ser dbcombo

Code: Select all | Expand


#include "dbcombo.ch"

.....

Local aTipoCla := {"Gran Contribuyente","Régimen Común","Régimen Simplificado",;
                 "Persona Natural","Empresa Unipersonal","Extranjera","Otra"}
Local aLlavCla := {1,2,3,4,5,6,7}
.....

REDEFINE DBCOMBO oCcla VAR nTipo ITEMS aLlavCla LIST aTipoCla ID 4036 OF ::oDlgCrea UPDATE             
......
 


DBCOMBO is the right answer.
This is exactly what you need.
Regards

G. N. Rao.
Hyderabad, India
User avatar
jose_murugosa
Posts: 1185
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: Ayuda con Combobox RESUELTO

Post by jose_murugosa »

Queridos Armando, Leandro, Karinha, Mr. Rao
Muchisimas Gracias.

Estoy aplicando dos de las soluciones propuestas para dos casos distintos de mi desarrollo y estoy encantado.

Muy agradecido por el apoyo y la ayuda que siempre me brinda la comunidad.

NUEVAMENTE MUCHISIMAS GRACIAS A TODOS'!!! :D
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
Post Reply