Ayuda con Combobox

Ayuda con Combobox

Postby jose_murugosa » Fri Oct 29, 2021 5:52 pm

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
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Ayuda con Combobox

Postby armando.lagunas » Fri Oct 29, 2021 8:23 pm

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 view  RUN


...
...
   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
armando.lagunas
 
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile

Re: Ayuda con Combobox

Postby karinha » Fri Oct 29, 2021 11:49 pm

\samples\TESTGET3.PRG

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7842
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Ayuda con Combobox

Postby leandro » Fri Oct 29, 2021 11:54 pm

Otra opción puede ser dbcombo

Code: Select all  Expand view  RUN

#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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Ayuda con Combobox

Postby karinha » Sat Oct 30, 2021 1:11 am

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7842
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Ayuda con Combobox

Postby nageswaragunupudi » Sat Oct 30, 2021 4:18 pm

leandro wrote:Otra opción puede ser dbcombo

Code: Select all  Expand view  RUN

#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
nageswaragunupudi
 
Posts: 10662
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Ayuda con Combobox RESUELTO

Postby jose_murugosa » Mon Nov 01, 2021 1:01 pm

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!!"
User avatar
jose_murugosa
 
Posts: 1181
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 71 guests