Se puede tener un Combobox, con esta condición ...

Se puede tener un Combobox, con esta condición ...

Postby nanoespinoza » Thu Jun 11, 2020 5:52 pm

Estimados:

Una consulta, ¿es posible crear un Combobox, de forma que de acuerdo a una condición previa, cambie la seleccionabilidad de algunos de los elementos a mostrarse en la lista de selección (los oCbx:aItems), es decir la lista no cambiaría, pero si la seleccionabilidad de algunos de los elementos, de esta forma se los saltará con el recorrido del cursor y no se los puede seleccionar?.

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: Se puede tener un Combobox, con esta condición ...

Postby acuellar » Thu Jun 11, 2020 6:49 pm

Estimado Nano

Quizás ésto te pueda guiar
Code: Select all  Expand view  RUN

  REDEFINE COMBOBOX oCbx1 VAR nSect ID 103 OF oDlgD ITEMS aSect ON CHANGE (lugar(nSect),oCbx2:SetItems( aLugar ), oCbx2:refresh())
  REDEFINE COMBOBOX oCbx2 VAR nLug ID 104 OF oDlgD ITEMS aLugar UPDATE
 
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1644
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Se puede tener un Combobox, con esta condición ...

Postby nanoespinoza » Thu Jun 11, 2020 10:22 pm

Estimado ACuellar:

Gracias por su respuesta, la parte que me indica ya la tengo conocida; lo que quiero es que al abrirse la lista de opciones del combobox, supongamos que son 10, se muestren las 10, pero que algunas no sean elegibles, es decir estén en un modo Disable(), por tanto, no se puedan seleccionar.

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: Se puede tener un Combobox, con esta condición ...

Postby nanoespinoza » Sat Jun 13, 2020 2:32 am

Estimados:

Alguien con alguna experiencia en este tema que pueda ayudar.

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: Se puede tener un Combobox, con esta condición ...

Postby cnavarro » Sat Jun 13, 2020 2:35 pm

Fernando, lo de no permitir elegir un determinado item, basado en una condición, no es difícil, si cuando estableces la condición, creas un array con el mismo número de elementos que el array que vas a mostrar en el combo, y en la claúsula ON CHANGE valoras si el array de "condiciones" tiene .T. en esa posición ( aCondiciones[ oCbx:nAt ] ), y si está a falso te vas al siguiente ( oCbx:nAt++, aunque tendrás que controlar que no se pase del Len() del array que hay en el combobox )
Por ahí van los tiros, pienso yo
En cuanto a que aparezca en disable, lo veo más complicado, y habría que intentar implementarlo en la claúsula ON DRAWITEM del combo, pienso yo
Por ello, yo para eso, pondría un boton de action en un get y mostraría un menu POPUP, creo que te daría más facilidad de controlar lo que pretendes
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Se puede tener un Combobox, con esta condición ...

Postby acuellar » Sun Jun 14, 2020 10:18 am

Fernando

Otra opción seria cambiar el COMBOBOX por un GET con BITMAP y mostrar los item en un xBrowse
Code: Select all  Expand view  RUN

 REDEFINE GET oGet Var oDBF:ITEM ID 103 OF oDlg PICTURE "@!" BITMAP "BUSCAR";
         ACTION ( BuscaITEM(oGet,oDlg) )

....
FUNCTION BuscaITEM(oGet,oDlg)
  definir el xbrowse
Return Nil
 
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1644
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Se puede tener un Combobox, con esta condición ...

Postby Patricio Avalos Aguirre » Sat Jul 04, 2020 3:56 am

Hola yo utilizo dbcombo, eso si que tuve que hacer unos ajustes

Code: Select all  Expand view  RUN
#xcommand REDEFINE DBCOMBO [ <oCbx> VAR ] <cVar> ;
             [ <items: ITEMS> <aItems> ] ;
             [ ID <nId> ] ;
             [ <dlg:OF,WINDOW,DIALOG> <oWnd> ] ;
             [ <help:HELPID, HELP ID> <nHelpId> ] ;
             [ ON CHANGE <uChange> ] ;
         [ CONDICION <uCondicion> ] ;
         [ FINCONDICION <uEndCondicion> ] ;
         [ FOR <uFor> ] ;
         [ <lnoblank: NOBLANK> ] ;
             [ VALID   <uValid> ] ;
             [ <color: COLOR,COLORS> <nClrText> [,<nClrBack>] ] ;
             [ <update: UPDATE> ] ;
             [ MESSAGE <cMsg> ] ;
             [ WHEN <uWhen> ] ;
             [ BITMAPS <acBitmaps> ] ;
             [ ON DRAWITEM <uBmpSelect> ] ;
             [ ALIAS <cAlias> ] ;
             [ ITEMFIELD <cFldItem> ] ;
             [ LISTFIELD <cFldList> ] ;
             [ <list: LIST, PROMPTS> <aList> ] ;
       => ;
          [ <oCbx> := ] TDBCombo():ReDefine( <nId>, bSETGET(<cVar>),;
             <aItems>, <oWnd>, <nHelpId>, <{uValid}>, [{|Self|<uChange>}],;
             <nClrText>, <nClrBack>, <cMsg>, <.update.>, <{uWhen}>,;
             <acBitmaps>, [{|nItem|<uBmpSelect>}], ;
             <cAlias>, <(cFldItem)>, <(cFldList)>, <aList>, <{uCondicion}>, <{uEndCondicion}>, <{uFor}>, <.lnoblank.> )
 



Code: Select all  Expand view  RUN
REDEFINE DBCOMBO oCombo VAR dbPAR2:sucursal                                                        ;
    ID 21   OF oDlg UPDATE                                                                  ;
    ALIAS "TABLAS"                                                       ;
    ITEMFIELD "COD_TABLA"                                                   ;
    LISTFIELD "NOM_TABLA"                                                ;
    COLOR CLR_BLACK, RGB(255,255,200)                                               ;
    CONDICION ( Tablas->( OrdScope( 0, "SUC" ) ), Tablas->( OrdScope( 1, "SUC" ) ) ) ;
    FINCONDICION ( Tablas->( OrdScope( 0, NIL ) ), Tablas->( OrdScope( 1, NIL ) ) );
    FOR Tablas->cod_tabla <> "00000";
    ON CHANGE (dbPAr2:Seek( dbPAR2:Sucursal ), dbPAR2:Load(), oDlg:Update());
    NOBLANK
 
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile


Return to FiveWin para Harbour/xHarbour

Who is online

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