Ayuda con 2 Combobox ???

Ayuda con 2 Combobox ???

Postby remtec » Fri Aug 12, 2022 1:48 pm

Amigos Buen dia para todos.

Tengo un problema, pretendo en forma simple cargar 2 Combobox con Array, seleccionando en el primero un elemento, vaya a cargar el 2 Array, cada Array tiene Codigo y Descripcion.
El segundo se carga correctamente con los datos en la funcion Carga_Comuna, pero al volver no muestra los datos en el 2 combobox y arroja error.

Ademas, trato de hacer busqueda incremental y solo permite digiar la primera letra.

Dejo Error y Codigo.

Muchos saludos

Antonio

Error:
Code: Select all  Expand view  RUN

   Compiler version: Harbour 3.2.0dev (r2008190002)
   FiveWin  version: FWH 22.03
   C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
   Windows version: 5.1, Build 2600 Service Pack 3

   Time from start: 0 hours 0 mins 19 secs
   Error occurred at: 12/08/2022, 09:45:22
   Error description: Error BASE/1132  Error de rango: acceso al array
   Args:
     [   1] = A   {0,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,315,316,317,318,319 ... } length: 33
     [   2] = N   0

Stack Calls
===========
   Called from: .\Actu_Ficha_Gene.PRG => (b)ACTUA_FICHA_GRAL( 172 )
   Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:CHANGE( 581 )
   Called from: .\source\classes\COMBOBOX.PRG => (b)TCOMBOBOX( 160 )
   Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:RESET( 0 )
   Called from: .\source\classes\COMBOBOX.PRG => (b)TCOMBOBOX( 173 )
   Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:SETITEMS( 0 )
   Called from: .\Actu_Ficha_Gene.PRG => (b)ACTUA_FICHA_GRAL( 167 )
   Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:CHANGE( 581 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1824 )
   Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:HANDLEEVENT( 923 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3560 )
   Called from:  => SENDMESSAGE( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:COMMAND( 453 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 1140 )
   Called from:  => DIALOGBOXINDIRECT( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 304 )
   Called from: .\Actu_Ficha_Gene.PRG => ACTUA_FICHA_GRAL( 232 )
   Called from: .\Estetica.PRG => (b)MENU( 281 )
   Called from: .\source\classes\MENU.PRG => TMENU:COMMAND( 1563 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:COMMAND( 1141 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3560 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1097 )
   Called from: .\Estetica.PRG => MAIN( 229 )

System
======
   CPU type: Pentium(R) Dual-Core  CPU      E6600  @ 3.06GHz 3058 Mhz
   Hardware memory: 2010 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 10
      1 ,                                                                                                    
      2 , C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202
      3 , C:\WINDOWS\system32\COMCTL32.DLL                                                                    
      4 , C:\WINDOWS\system32\SHLWAPI.dll                                                                    
      5 , E:\desa\Estetica\Estetica.exe                                                                      
      6 DDE Server Window, C:\WINDOWS\system32\OLE32.DLL                                                                      
      7 GDI+ Window, C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.6002.23084_x-ww_f3f35550\GDIPLU
      8 M, C:\WINDOWS\system32\msctfime.ime                                                                    
      9 MCI command handling window, C:\WINDOWS\system32\WINMM.DLL                                                                      
     10 SysFader, C:\WINDOWS\system32\SHELL32.dll                                                                    

Variables in use
================
   Procedure     Type   Value
   ==========================
   (b)ACTUA_FICHA_GRAL
     Param   1:    O    Class: ERROR
   TCOMBOBOX:CHANGE
     Param   1:    O    Class: TCOMBOBOX
     Param   2:    C    ""
     Local   1:    N    0
     Local   2:    U    
     Local   3:    U    
     Local   4:    S    
   (b)TCOMBOBOX
     Local   1:    C    ""
     Local   2:    N    0
     Local   3:    U    
   TCOMBOBOX:RESET
     Param   1:    O    Class: TCOMBOBOX
     Param   2:    U    
   (b)TCOMBOBOX
     Param   1:    U    
   TCOMBOBOX:SETITEMS
     Param   1:    O    Class: TCOMBOBOX
     Param   2:    L    .T.
     Local   1:    U    
   (b)ACTUA_FICHA_GRAL
     Param   1:    L    .T.
   TCOMBOBOX:CHANGE
     Param   1:    O    Class: TCOMBOBOX
     Param   2:    C    "SANTIAGO                      "
   TCONTROL:HANDLEEVENT
     Local   1:    C    "SANTIAGO                      "
     Local   2:    N    46
     Local   3:    U    
   TCOMBOBOX:HANDLEEVENT
     Param   1:    N    2053
     Param   2:    N    0
     Param   3:    N    0
     Local   1:    U    
   _FWH
     Param   1:    N    2053
     Param   2:    N    0
     Param   3:    N    0
   SENDMESSAGE
     Param   1:    N    0
     Param   2:    N    2053
     Param   3:    N    0
     Param   4:    N    0
     Param   5:    N    53
     Local   1:    O    Class: TCOMBOBOX
   TDIALOG:COMMAND
     Param   1:    N    69884
     Param   2:    N    2053
     Param   3:    N    0
     Param   4:    N    0
   TWINDOW:HANDLEEVENT
     Param   1:    N    65693
     Param   2:    N    69884
     Local   1:    U    
     Local   2:    N    1
     Local   3:    N    157
     Local   4:    N    69884
     Local   5:    U    
   TDIALOG:HANDLEEVENT
     Param   1:    N    273
     Param   2:    N    65693
     Param   3:    N    69884
   DIALOGBOXINDIRECT
     Param   1:    N    273
     Param   2:    N    65693
     Param   3:    N    69884
   TDIALOG:ACTIVATE
     Param   1:    N    4194304
     Param   2:    C    "  @    )   ‡         P    K   „ z S T A T I C     M A E S T R O   D E   P A C I E N T E S         P        e` { B U T T O N         P      t eR | B U T T O N         P      à e } B U T T O N         P      A
 ~ S T A T I C   N r o .   F i c h a       P    Ã  A
  S T A T I C   F e c h a   d e   I n g r e s o       P      A
 € S T A T I C   R . u . t .       P    d  d
  S T A T I C   ( E j .   9 9 9 9 9 9 9 9 - 9 )       P    Ô  3
 ‚ S T A T I C   P a s a p o r t e         P     - A
 ƒ S T A T I C   N o m b r e s         P     < A
 „ S T A T I C   A p e l l i d o s         P     K A
 … S T A T I C   F e c h a   N a c i .         P    ‘ K 
 † S T A T I C   E d a d       P    ¾ K #
 ‡ S T A T I C   A ñ o s       P     Z A
 ˆ S T A T I C   S e x o       P     i A
 ‰ S T A T I C   E s t a d o   C i v i l        P    œ i (
 Š S T A T I C   H i j o s         P     } A
 ‹ S T A T I C   N a c i o n a l i d a d       P     Œ A
 Œ S T A T I C   D i r e c c i ó n         P     › A
  S T A T I C   C i u d a d       P    ¯ › A
 Ž S T A T I C   C o m u n a       P     ª A
  S T A T I C   C e l u l a r   P e r s o n a l       P    ¯ ª A
  S T A T I C   C e l u l a r   C o n t a c .         P     ¹ A
 ‘ S T A T I C   C o r r e o   E l e c t r o n i c o       P     Í A
 ’ S T A T I C   O c u p a c i ó n         P    ú Í
 
 “ T B T N B M P           €P    U  -
 ” S T A T I C                     1       €P     2
 • S T A T I C   1 2 / 0 8 / 2 0 2 2     € P    U  <
 – E D I T       .       .               ˆ P     P — E D I T                                       ˆ P    U - – ˜ E D I T                                                           ˆ P    U < – ™ E D I T                                                           € P    U K 2 š E D I T       /     /               €P    ´ K  › S T A T I C   0       ¡P    U Z 7 Z œ C O M B O B O X       ¡P    U › Z }  C O M B O B O X       ¡P    ú › Z } ž C O M B O B O X         P    
 é C- Ÿ B U T T O N         P    d ó     T B T N B M P   G R A B A       P     ó   ¡ T B T N B M P   M O D I F I         P    ú ó   ¢ T B T N B M P   S A L I R     "

     Param   3:    N    528434
     Param   4:    O    Class: TDIALOG
   ACTUA_FICHA_GRAL
     Param   1:    U    
     Param   2:    U    
     Param   3:    U    
     Param   4:    L    .T.
     Param   5:    U    
     Param   6:    L    .T.
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    L    .F.
     Param  13:    O    Class: TDIALOG
     Param  14:    U    
     Local   1:    N    528434
     Local   2:    S    
     Local   3:    O    Class: TDIALOG
   (b)MENU
     Local   1:    O    Class: TDIALOG
     Local   2:    O    Class: TFONT
     Local   3:    O    Class: TFONT
     Local   4:    O    Class: TFONT
     Local   5:    O    Class: TFONT
     Local   6:    O    Class: TFONT
     Local   7:    O    Class: TBTNBMP
     Local   8:    O    Class: TGROUP
     Local   9:    O    Class: TGROUP
     Local  10:    O    Class: TGET
     Local  11:    O    Class: TGET
     Local  12:    O    Class: TGET
     Local  13:    O    Class: TGET
     Local  14:    O    Class: TGET
     Local  15:    O    Class: TSAY
     Local  16:    O    Class: TCOMBOBOX
     Local  17:    O    Class: TCOMBOBOX
     Local  18:    O    Class: TCOMBOBOX
     Local  19:    O    Class: TSAY
     Local  20:    O    Class: TSAY
   TMENU:COMMAND
     Param   1:    O    Class: TMENUITEM
   TWINDOW:COMMAND
     Param   1:    N    20017
     Local   1:    O    Class: TMENUITEM
   TWINDOW:HANDLEEVENT
     Param   1:    N    20017
     Param   2:    N    0
     Local   1:    N    0
     Local   2:    N    20017
     Local   3:    N    0
     Local   4:    U    
   _FWH
     Param   1:    N    273
     Param   2:    N    20017
     Param   3:    N    0
   WINRUN
     Param   1:    N    0
     Param   2:    N    273
     Param   3:    N    20017
     Param   4:    N    0
     Param   5:    N    1
     Local   1:    O    Class: TWINDOW
   TWINDOW:ACTIVATE
     Param   1:    N    528434
   MAIN
     Param   1:    C    "MAXIMIZED"
     Param   2:    U    
     Param   3:    U    
     Param   4:    U    
     Param   5:    U    
     Param   6:    U    
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    U    
     Param  13:    U    
     Param  14:    U    
     Param  15:    U    
     Param  16:    U    
     Param  17:    B    {|| ... }
     Param  18:    U    
     Param  19:    U    
     Param  20:    L    .F.
     Local   1:    O    Class: TWINDOW
     Local   2:    U    
     Local   3:    U    

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFCDX
 


Codigo:
Code: Select all  Expand view  RUN

     @ 310,170 ComboBox oGet8 Var nCiud Items ArrTranspose(aCiudades)[2] SIZE 180,250 PIXEL OF oDlg2       FONT oFont6
           
                        oGet8:bChange := { || aItemsGet9:=Carga_Comu(ArrTranspose(aCiudades)[1][oGet8:nAt])    ,;
                         oGet9:SetItems(aItemsGet9)        ,;
                         oGet9:Refresh()  }


     @ 310,500 ComboBox oGet9 Var nComu Items ArrTranspose(aComunas)[2] SIZE 180,250 PIXEL OF oDlg2       FONT oFont6;
                         ON CHANGE (Cod_Com1:=ArrTranspose(aComunas)[1][oGet9:nAt])


Function Carga_Comu(Cod_Ciu1)
        aComunas  := {}
        Abre_dbf("Comunas",2,.f.,"")
        set inde to comunas
        DbSetorder(2)
        DbGoTop()
        AADD( aComunas,{ 0,"         "})
        Do While !Eof()
            If Cod_Prov=Cod_Ciu1
                    Aadd(aComunas, { b->Cod_Com,b->Nom_Com})
            Endif
        DbSkip()
        EndDo
        Dbclosearea()

        Return .t.

 
Last edited by remtec on Sat Aug 13, 2022 2:47 pm, edited 1 time in total.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda con 2 Combobox

Postby karinha » Fri Aug 12, 2022 5:46 pm

Antonio, ponga un ejemplo completo en formato .ZIP ó .RAR porfa.

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

Re: Ayuda con 2 Combobox

Postby remtec » Sat Aug 13, 2022 2:18 am

Hola João

Muchas gracias por responder.

Veo que este es un problema que se ha requerido desde hacer muchas versiones y aun usando la ultima versión, aun no podemos contar con un ComboBox anidado de 2 elementos, se pierde tanto tiempo investigando o que alguien tenga la solución, aun cuando unos colegas me dieron una solución hace mucho tiempo atrás, creo que debiera ser mas simple de aplicar.

Un uso tan normal como un Combobox Ciudades y que el segundo muestre solo las comunas de esa ciudad, puede ser tan complicado encontrar una solución, la verdad no entiendo. Quizás esta necesidad se solucione de otra forma, pero tampoco la se.

Saludos

Antonio
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda con 2 Combobox ???

Postby Antonio Linares » Sat Aug 13, 2022 3:34 pm

Estimado Antonio,

Provincias y ciudades lo entiendo, pero ciudades y "comunas" es la primera vez que lo oigo.

Puedes proporcionar ambos arrays y asi te construyo el ejemplo ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42113
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Ayuda con 2 Combobox ???

Postby Antonio Linares » Sat Aug 13, 2022 4:16 pm

Aqui tienes un ejemplo funcionando con provincias y ciudades, solo he rellenado las "ciudades" de las tres primeras y con datos no reales.

Puedes probarlo y ver que funciona correctamente :-)
Code: Select all  Expand view  RUN
#include "FiveWin.ch"

function Main()

   local oDlg, cProvincia := "Almeria", oCiudades, cCiudad := "Uno"
   local aProvincias := { "Almeria", "Cadiz", "Cordoba", "Granada", "Huelva", "Jaen", "Malaga", "Sevilla" }
   local aCiudades := { { "Uno", "Dos", "Tres" }, { "Cuatro", "Cinco", "Seis" }, { "Siete", "Ocho", "Nueve" } }

   DEFINE DIALOG oDlg TITLE "Seleccione provincia y ciudad"

   @ 1,  3 COMBOBOX cProvincia ITEMS aProvincias ;
      ON CHANGE ( oCiudades:SetItems( aCiudades[ AScan( aProvincias, cProvincia ) ] ), oCiudades:Set( oCiudades:aItems[ 1 ] ) )

   @ 1, 12 COMBOBOX oCiudades VAR cCiudad ITEMS aCiudades[ 1 ]  

   @ 3,  3 BUTTON "Mostrar seleccionado" ACTION MsgInfo( cProvincia, cCiudad )

   ACTIVATE DIALOG oDlg CENTERED

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42113
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Ayuda con 2 Combobox ???

Postby remtec » Sat Aug 13, 2022 4:26 pm

Buen dia Maestro Antonio.

En Chile la estructura normal es:

Codigo Pais:
Codigo Ciudades: (Son las Ciudades que tiene el Pais)
Codigo Comunas: (Cada Ciudad tiene una o mas Comunas)


En mi caso necesito que cuando se seleccione la Ciudad en el Primer Combobox, se cargue el 2do Array con las comunas de la ciudad seleccionada.


Muchas gracias

Antonio

Code: Select all  Expand view  RUN


Array de aCiudades
     @ 310,170 ComboBox oGet10 Var nCiud Items ArrTranspose(aCiudades)[2] SIZE 180,250 PIXEL OF oDlg2    COLOR RGB(0,0,128), RGB(159,233,255)   FONT oFont6;
                         ON CHANGE (Cod_Ciu1:=ArrTranspose(aCiudades)[1][oGet10:nAt],Carga_Comu(Cod_Ciu1, @nComu, @aComunas, oGet11 ))       // Aqui mando a cargar las Comunas

Array de aComunas     (Este Array no se muestra con las comunas cargadas)
     @ 310,500 ComboBox oGet11 Var nComu Items ArrTranspose(aComunas)[2] SIZE 180,250 PIXEL OF oDlg2   COLOR RGB(0,0,128), RGB(159,233,255)    FONT oFont6;
                            ON CHANGE (Cod_Com1:=ArrTranspose(aComunas)[1][oGet11:nAt])




Function Carga_Comu(Cod_Ciu1, nComu, aComunas, oGet9)
        if Cod_Ciu1#0
                aComunas  := {}
                Abre_dbf("Comunas",2,.f.,"")
                set inde to comunas
                DbSetorder(2)
                DbGoTop()
                Do While !Eof()
                    If Cod_Prov=Cod_Ciu1
                            Aadd(aComunas, { b->Cod_Com,b->Nom_Com})
                    Endif
                DbSkip()
                EndDo
                Dbclosearea()
        Else
                aComunas  := {}

             AADD( aComunas,{ 0,"         "})
        Endif
        oGet9:SetItems(aComunas)
        nComu := 1
        oGet9:Refresh()

                ** Reviso y el "aComunas" y carga correctamente todas las comunas de la ciudad seleccionada **

        Return .t.


 
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda con 2 Combobox ???

Postby remtec » Sat Aug 13, 2022 4:35 pm

Antonio Linares wrote:Aqui tienes un ejemplo funcionando con provincias y ciudades, solo he rellenado las "ciudades" de las tres primeras y con datos no reales.

Puedes probarlo y ver que funciona correctamente :-)
Code: Select all  Expand view  RUN
#include "FiveWin.ch"

function Main()

   local oDlg, cProvincia := "Almeria", oCiudades, cCiudad := "Uno"
   local aProvincias := { "Almeria", "Cadiz", "Cordoba", "Granada", "Huelva", "Jaen", "Malaga", "Sevilla" }
   local aCiudades := { { "Uno", "Dos", "Tres" }, { "Cuatro", "Cinco", "Seis" }, { "Siete", "Ocho", "Nueve" } }

   DEFINE DIALOG oDlg TITLE "Seleccione provincia y ciudad"

   @ 1,  3 COMBOBOX cProvincia ITEMS aProvincias ;
      ON CHANGE ( oCiudades:SetItems( aCiudades[ AScan( aProvincias, cProvincia ) ] ), oCiudades:Set( oCiudades:aItems[ 1 ] ) )

   @ 1, 12 COMBOBOX oCiudades VAR cCiudad ITEMS aCiudades[ 1 ]  

   @ 3,  3 BUTTON "Mostrar seleccionado" ACTION MsgInfo( cProvincia, cCiudad )

   ACTIVATE DIALOG oDlg CENTERED

return nil



Maestro Antonio

Muchas gracias por responder.

Al probar su ejemplo, me arroja el mismo error que he tenido en mis pruebas en mi codigo.

Saludos
Antonio


Error:
Code: Select all  Expand view  RUN

Application
===========
   Path and name: C:\Desa\Estetica\Estetica.exe (32 bits)
   Size: 6,311,424 bytes
   Compiler version: Harbour 3.2.0dev (r2008190002)
   FiveWin  version: FWH 22.03
   C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
   Windows version: 6.2, Build 9200

   Time from start: 0 hours 0 mins 15 secs
   Error occurred at: 13/08/2022, 12:32:02
   Error description: Error BASE/1132  Error de rango: acceso al array
   Args:
     [   1] = A   {{"Uno","Dos","Tres"},{"Cuatro","Cinco","Seis"},{"Siete","Ocho","Nueve"}} length: 3
     [   2] = N   4

Stack Calls
===========
   Called from: .\Actu_Ficha_Gene.PRG => (b)PRUE( 388 )
   Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:CHANGE( 581 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1824 )
   Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:HANDLEEVENT( 923 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3560 )
   Called from:  => SENDMESSAGE( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:COMMAND( 453 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 1140 )
   Called from:  => DIALOGBOXINDIRECT( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 304 )
   Called from: .\Actu_Ficha_Gene.PRG => PRUE( 394 )
   Called from: .\Actu_Ficha_Gene.PRG => ACTUA_FICHA_GRAL( 26 )
   Called from: .\Estetica.PRG => (b)MENU( 281 )
   Called from: .\source\classes\MENU.PRG => TMENU:COMMAND( 1563 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:COMMAND( 1141 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3560 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1097 )
   Called from: .\Estetica.PRG => MAIN( 229 )

System
======
   CPU type: Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz 2594 Mhz
   Hardware memory: 8085 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 5
      1 ,                                                                                                    
      2 , C:\Desa\Estetica\Estetica.exe                                                                      
      3 , C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.17763.1577_none_b4b5a
      4 DDE Server Window, C:\WINDOWS\System32\OLE32.DLL                                                                      
      5 G, C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.17763.1577_none_570c6e10c25746

Variables in use
================
   Procedure     Type   Value
   ==========================
   (b)PRUE
     Param   1:    O    Class: ERROR
   TCOMBOBOX:CHANGE
     Param   1:    O    Class: TCOMBOBOX
     Param   2:    C    "Granada"
     Local   1:    O    Class: TCOMBOBOX
     Local   2:    A    Len:    3
     Local   3:    N    4
     Local   4:    U    
     Local   5:    U    
     Local   6:    S    
   TCONTROL:HANDLEEVENT
     Local   1:    C    "Granada"
     Local   2:    N    4
     Local   3:    U    
   TCOMBOBOX:HANDLEEVENT
     Param   1:    N    2053
     Param   2:    N    0
     Param   3:    N    0
     Local   1:    U    
   _FWH
     Param   1:    N    2053
     Param   2:    N    0
     Param   3:    N    0
   SENDMESSAGE
     Param   1:    N    0
     Param   2:    N    2053
     Param   3:    N    0
     Param   4:    N    0
     Param   5:    N    17
     Local   1:    O    Class: TCOMBOBOX
   TDIALOG:COMMAND
     Param   1:    N    10617982
     Param   2:    N    2053
     Param   3:    N    0
     Param   4:    N    0
   TWINDOW:HANDLEEVENT
     Param   1:    N    65658
     Param   2:    N    10617982
     Local   1:    U    
     Local   2:    N    1
     Local   3:    N    122
     Local   4:    N    10617982
     Local   5:    U    
   TDIALOG:HANDLEEVENT
     Param   1:    N    273
     Param   2:    N    65658
     Param   3:    N    10617982
   DIALOGBOXINDIRECT
     Param   1:    N    273
     Param   2:    N    65658
     Param   3:    N    10617982
   TDIALOG:ACTIVATE
     Param   1:    N    4194304
     Param   2:    C    "€ È€       Ÿ L     S e l e c c i o n e   p r o v i n c i a   y   c i u d a d    ¡P      ( < z C O M B O B O X       ¡P    `  ( < { C O M B O B O X         P     6 y  | B U T T O N   M o s t r a r   s e l e c c i o n a d o     "
     Param   3:    N    18744386
     Param   4:    O    Class: TDIALOG
   PRUE
     Param   1:    U    
     Param   2:    U    
     Param   3:    U    
     Param   4:    L    .T.
     Param   5:    U    
     Param   6:    L    .T.
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    L    .F.
     Param  13:    O    Class: TDIALOG
     Param  14:    U    
     Local   1:    N    18744386
     Local   2:    S    
     Local   3:    O    Class: TDIALOG
   ACTUA_FICHA_GRAL
     Local   1:    O    Class: TDIALOG
     Local   2:    C    "Granada"
     Local   3:    O    Class: TCOMBOBOX
     Local   4:    C    "Uno"
     Local   5:    A    Len:    8
     Local   6:    A    Len:    3
   (b)MENU
     Local   1:    U    
     Local   2:    U    
     Local   3:    U    
     Local   4:    U    
     Local   5:    U    
     Local   6:    U    
     Local   7:    U    
     Local   8:    U    
     Local   9:    U    
     Local  10:    U    
     Local  11:    U    
     Local  12:    U    
     Local  13:    U    
     Local  14:    U    
     Local  15:    U    
     Local  16:    U    
     Local  17:    U    
     Local  18:    U    
     Local  19:    U    
     Local  20:    U    
     Local  21:    U    
     Local  22:    U    
     Local  23:    U    
     Local  24:    U    
     Local  25:    U    
     Local  26:    U    
   TMENU:COMMAND
     Param   1:    O    Class: TMENUITEM
   TWINDOW:COMMAND
     Param   1:    N    20016
     Local   1:    O    Class: TMENUITEM
   TWINDOW:HANDLEEVENT
     Param   1:    N    20016
     Param   2:    N    0
     Local   1:    N    0
     Local   2:    N    20016
     Local   3:    N    0
     Local   4:    U    
   _FWH
     Param   1:    N    273
     Param   2:    N    20016
     Param   3:    N    0
   WINRUN
     Param   1:    N    0
     Param   2:    N    273
     Param   3:    N    20016
     Param   4:    N    0
     Param   5:    N    1
     Local   1:    O    Class: TWINDOW
   TWINDOW:ACTIVATE
     Param   1:    N    18744386
   MAIN
     Param   1:    C    "MAXIMIZED"
     Param   2:    U    
     Param   3:    U    
     Param   4:    U    
     Param   5:    U    
     Param   6:    U    
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    U    
     Param  13:    U    
     Param  14:    U    
     Param  15:    U    
     Param  16:    U    
     Param  17:    B    {|| ... }
     Param  18:    U    
     Param  19:    U    
     Param  20:    L    .F.
     Local   1:    O    Class: TWINDOW
     Local   2:    U    
     Local   3:    U    

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFCDX
   DBFNTX

DataBases in use
================

Classes in use:
===============
     1 ERROR
     2 HBCLASS
     3 HBOBJECT
     4 TCURSOR
     5 TFONT
     6 TWINDOW
     7 TDIALOG
     8 TBRUSH
     9 TMDIFRAME
    10 TMENU
    11 TREG32
    12 TMDICLIENT
    13 TRECT
    14 TCONTROL
    15 TGET
    16 TSAY
    17 GET
    18 TCLIPGET
    19 TBTNBMP
    20 TMENUITEM
    21 TBAR
    22 TMSGBAR
    23 TMSGITEM
    24 TTIMER
    25 TCOMBOBOX
    26 TBUTTON
    27 TSTRUCT

Memory Analysis
===============
      741 Static variables

   Dynamic memory consume:
      Actual  Value:    1769472 bytes
      Highest Value:    1769472 bytes

 
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda con 2 Combobox ???

Postby Antonio Linares » Sat Aug 13, 2022 4:49 pm

Te envio el EXE por email
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42113
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Ayuda con 2 Combobox ???

Postby remtec » Sat Aug 13, 2022 5:39 pm

Antonio Linares wrote:Te envio el EXE por email



Maestro Antonio.

Muchas gracias.

Después de ejecutar su EXE y seleccionar en los Combobox y moverse mas de una vez, arroja el siguiente error.

Ejecutado en Windows 10

Muchos Saludos

Anotnio

Error:
Code: Select all  Expand view  RUN

Application
===========
   Path and name: C:\Users\Miguel Rivera\Downloads\provincias.exe (32 bits)
   Size: 4,870,144 bytes
   Compiler version: Harbour 3.2.0dev (r2004201301)
   FiveWin  version: FWH 22.06
   C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
   Windows 10 64 Bits, version: 6.2, Build 9200

   Time from start: 0 hours 0 mins 39 secs
   Error occurred at: 08/13/22, 13:36:12
   Error description: Error BASE/1132  Bound error: array access
   Args:
     [   1] = A   {{"Uno","Dos","Tres"},{"Cuatro","Cinco","Seis"},{"Siete","Ocho","Nueve"}} length: 3
     [   2] = N   5

Stack Calls
===========
   Called from: provincias.prg => (b)MAIN( 12 )
   Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:CHANGE( 581 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1826 )
   Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:HANDLEEVENT( 923 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3680 )
   Called from:  => SENDMESSAGE( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:COMMAND( 520 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 1211 )
   Called from:  => DIALOGBOXINDIRECT( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 307 )
   Called from: provincias.prg => MAIN( 18 )

System
======
   CPU type: Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz 2594 Mhz
   Hardware memory: 8085 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 6
      1 ,                                                                                                    
      2 , C:\Users\Miguel Rivera\Downloads\provincias.exe                                                    
      3 , C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.17763.1577_none_b4b5a
      4 , C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17763.1577_none_26217b
      5 DDE Server Window, C:\WINDOWS\System32\OLE32.DLL                                                                      
      6 G, C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.17763.1577_none_570c6e10c25746

Variables in use
================
   Procedure     Type   Value
   ==========================
   (b)MAIN
     Param   1:    O    Class: ERROR
   TCOMBOBOX:CHANGE
     Param   1:    O    Class: TCOMBOBOX
     Param   2:    C    "Huelva"
     Local   1:    O    Class: TCOMBOBOX
     Local   2:    A    Len:    3
     Local   3:    N    5
     Local   4:    U    
     Local   5:    U    
     Local   6:    S    
   TCONTROL:HANDLEEVENT
     Local   1:    C    "Huelva"
     Local   2:    N    5
     Local   3:    U    
   TCOMBOBOX:HANDLEEVENT
     Param   1:    N    2053
     Param   2:    N    0
     Param   3:    N    0
     Local   1:    U    
   _FWH
     Param   1:    N    2053
     Param   2:    N    0
     Param   3:    N    0
   SENDMESSAGE
     Param   1:    N    0
     Param   2:    N    2053
     Param   3:    N    0
     Param   4:    N    0
     Param   5:    N    2
     Local   1:    O    Class: TCOMBOBOX
   TDIALOG:COMMAND
     Param   1:    N    2688108
     Param   2:    N    2053
     Param   3:    N    0
     Param   4:    N    0
   TWINDOW:HANDLEEVENT
     Param   1:    N    65637
     Param   2:    N    2688108
     Local   1:    U    
     Local   2:    N    1
     Local   3:    N    101
     Local   4:    N    2688108
     Local   5:    U    
   TDIALOG:HANDLEEVENT
     Param   1:    N    273
     Param   2:    N    65637
     Param   3:    N    2688108
   DIALOGBOXINDIRECT
     Param   1:    N    273
     Param   2:    N    65637
     Param   3:    N    2688108
   TDIALOG:ACTIVATE
     Param   1:    N    4194304
     Param   2:    C    "€ È€         Ÿ L     S e l e c c i o n e   p r o v i n c i a   y   c i u d a d   ‡ ¡P      ( < e C O M B O B O X       ¡P    `  ( < f C O M B O B O X         P     6 y  g B U T T O N   M o s t r a r   s e l e c c i o n a d o     "
     Param   3:    N    0
     Param   4:    O    Class: TDIALOG
   MAIN
     Param   1:    U    
     Param   2:    U    
     Param   3:    U    
     Param   4:    L    .T.
     Param   5:    U    
     Param   6:    L    .T.
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    L    .F.
     Param  13:    O    Class: TDIALOG
     Param  14:    U    
     Local   1:    N    0
     Local   2:    S    
     Local   3:    O    Class: TDIALOG

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFCDX
   DBFNTX

DataBases in use
================

Classes in use:
===============
     1 ERROR
     2 HBCLASS
     3 HBOBJECT
     4 TWINDOW
     5 TDIALOG
     6 TBRUSH
     7 TCONTROL
     8 TCOMBOBOX
     9 TFONT
    10 TREG32
    11 TGET
    12 GET
    13 TCLIPGET
    14 TBUTTON
    15 TRECT
    16 TSTRUCT

Memory Analysis
===============
      700 Static variables

   Dynamic memory consume:
      Actual  Value:    1048576 bytes
      Highest Value:    1048576 bytes

 
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda con 2 Combobox ???

Postby Antonio Linares » Sun Aug 14, 2022 1:09 am

Como te he indicado, en el ejemplo, solo he proporcionado datos para las 3 primeras ciudades.

Añade la información que necesites, y te aseguro que funciona bien :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42113
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Ayuda con 2 Combobox ???

Postby remtec » Sun Aug 14, 2022 5:24 pm

Maestro Antonio.

Muy buen dia.

En mi caso, uso combobox que debe contener la siguiente estructura, ambos usan como 1era columna el código a almacenar y 2da columna es la que se muestra en el combobox, no se si será lo mas adecuado, pero siempre he usado los combobox así, solo que en este caso, el 2do combobox, debe mostrar solo los datos que corresponden a la ciudad seleccionada en el 1er combobox 1.

Muchos Saludos.

Dejo los arreglos con los datos y explicación de su contenido.
Code: Select all  Expand view  RUN

// Ciudades
        /*
         1era Columna = Codigo de Ciudad
         2da  Columna = Nombre de la Ciudad
        */

        // Para Combobox 1
aCiudades :={ {1,'ARICA'},;
                    { 2,'PARINACOTA'},;
                    { 3,'IQUIQUE'},;
                    { 4,'TAMARUGAL'},;
                    { 5,'ANTOFAGASTA'},;
                    { 49,'SANTIAGO'},;
                    { 54,'TALAGANTE'} }



//////////////
// Comunas
        /*
         1era Columna = Codigo de Comuna
         2da  Columna = Cod. Provi o Ciudad
         3era Columna = Nombre de la Comuna
        */


        /*
         Al Seleccionar Ciudad, con su codigo, debo seleccionar todas las comunas igual codigo de ciudad:
                Columna 2 de aComunas = Columna 1 de aCiudades.
                Con esta seleccion lleno y muestro Combobox 2
         */

         // Combobox 2
aComunas:={{ 1,1,'ARICA'},;
                { 2,1,'CAMARONES'},;
                { 3,2,'PUTRE'},;
                { 4,2,'GENERAL LAGOS'},;
                { 5,3,'IQUIQUE'},;
                { 6,3,'ALTO HOSPICIO'},;
                { 7,4,'POZO ALMONTE'},;
                { 8,4,'CAMIÑA'},;
                { 9,4,'COLCHANE'},;
                { 10,4,'HUARA'},;
                { 11,4,'PICA'},;
                { 12,5,'ANTOFAGASTA'},;
                { 13,5,'MEJILLONES'},;
                { 14,5,'SIERRA GORDA'},;
                { 15,5,'TALTAL'},;
                { 295,49,'SANTIAGO'},;
                { 296,49,'CERRILLOS'},;
                { 297,49,'CERRO NAVIA'},;
                { 298,49,'CONCHALÍ'},;
                { 299,49,'EL BOSQUE'},;
                { 300,49,'ESTACIÓN CENTRAL'},;
                { 301,49,'HUECHURABA'},;
                { 302,49,'INDEPENDENCIA'},;
                { 303,49,'LA CISTERNA'},;
                { 304,49,'LA FLORIDA'},;
                { 305,49,'LA GRANJA'},;
                { 306,49,'LA PINTANA'},;
                { 307,49,'LA REINA'},;
                { 308,49,'LAS CONDES'},;
                { 309,49,'LO BARNECHEA'},;
                { 310,49,'LO ESPEJO'},;
                { 311,49,'LO PRADO'},;
                { 312,49,'MACUL'},;
                { 313,49,'MAIPÚ'},;
                { 314,49,'ÑUÑOA'},;
                { 315,49,'PEDRO AGUIRRE CERDA'},;
                { 316,49,'PEÑALOLÉN'},;
                { 317,49,'PROVIDENCIA'},;
                { 318,49,'PUDAHUEL'},;
                { 319,49,'QUILICURA'},;
                { 320,49,'QUINTA NORMAL'},;
                { 321,49,'RECOLETA'},;
                { 322,49,'RENCA'},;
                { 323,49,'SAN JOAQUÍN'},;
                { 324,49,'SAN MIGUEL'},;
                { 325,49,'SAN RAMÓN'},;
                { 326,49,'VITACURA'},;
                { 342,54,'TALAGANTE'},;
                { 343,54,'EL MONTE'},;
                { 344,54,'ISLA DE MAIPO'},;
                { 345,54,'PADRE HURTADO'},;
                { 346,54,'PEÑAFLOR'} }

 
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda con 2 Combobox ???

Postby FranciscoA » Sun Aug 14, 2022 8:43 pm

Antonio, mira si este codigo, adaptado del codigo de AL y tus arrays, te sirve de guia:

Code: Select all  Expand view  RUN
//------------------------------------------------//
//4o EJEMPLO DE 2 COMBOBOX CON ARRAYS
//------------------------------------------------//
function Fap4_2Arrays()   //Main()
   local oDlg, cCiudad, cComuna, oComuna
   local aCiudades, aComunas, aArr

   aArr := CrearArrays()
   aCiudades := aArr[1]  
   aComunas  := aArr[2]  

   cCiudad := aCiudades[1]
   cComuna := aComunas[1,1]

   DEFINE DIALOG oDlg FROM 1,1 TO 300, 600 PIXEL TITLE "Seleccione Ciudad y Comuna"

   @ 20, 10 COMBOBOX cCiudad ITEMS aCiudades SIZE 130,200 PIXEL OF oDlg ;
            ON CHANGE ( oComuna:SetItems( aComunas[ AScan( aCiudades, cCiudad ) ] ), oComuna:Set( oComuna:aItems[ 1 ] ) )

   @ 20,160 COMBOBOX oComuna VAR cComuna ITEMS aComunas[ 1 ] SIZE 130,200 PIXEL OF oDlg

   @ 100,(300/2)-(100/2) BUTTON "Mostrar seleccionado" SIZE 100, 20 PIXEL OF oDlg ;
            ACTION MsgInfo( cCiudad, cComuna )

   ACTIVATE DIALOG oDlg CENTERED

return nil
//----------------------------------------//
Function CrearArrays()
   local aArray1 := {}, aArray2 := {}, aItems := {}, nVar, n

   local aCiudades:={ { 1,'ARICA'},;
                { 2,'PARINACOTA'},;
                { 3,'IQUIQUE'},;
                { 4,'TAMARUGAL'},;
                { 5,'ANTOFAGASTA'},;
                { 49,'SANTIAGO'},;
                { 54,'TALAGANTE'} }

   local aComunas:= { { 1,1,'ARICA'},;
                { 2,1,'CAMARONES'},;
                { 3,2,'PUTRE'},;
                { 4,2,'GENERAL LAGOS'},;
                { 5,3,'IQUIQUE'},;
                { 6,3,'ALTO HOSPICIO'},;
                { 7,4,'POZO ALMONTE'},;
                { 8,4,'CAMIÑA'},;
                { 9,4,'COLCHANE'},;
                { 10,4,'HUARA'},;
                { 11,4,'PICA'},;
                { 12,5,'ANTOFAGASTA'},;
                { 13,5,'MEJILLONES'},;
                { 14,5,'SIERRA GORDA'},;
                { 15,5,'TALTAL'},;
                { 295,49,'SANTIAGO'},;
                { 296,49,'CERRILLOS'},;
                { 297,49,'CERRO NAVIA'},;
                { 298,49,'CONCHALÍ'},;
                { 299,49,'EL BOSQUE'},;
                { 300,49,'ESTACIÓN CENTRAL'},;
                { 301,49,'HUECHURABA'},;
                { 302,49,'INDEPENDENCIA'},;
                { 303,49,'LA CISTERNA'},;
                { 304,49,'LA FLORIDA'},;
                { 305,49,'LA GRANJA'},;
                { 306,49,'LA PINTANA'},;
                { 307,49,'LA REINA'},;
                { 308,49,'LAS CONDES'},;
                { 309,49,'LO BARNECHEA'},;
                { 310,49,'LO ESPEJO'},;
                { 311,49,'LO PRADO'},;
                { 312,49,'MACUL'},;
                { 313,49,'MAIPÚ'},;
                { 314,49,'ÑUÑOA'},;
                { 315,49,'PEDRO AGUIRRE CERDA'},;
                { 316,49,'PEÑALOLÉN'},;
                { 317,49,'PROVIDENCIA'},;
                { 318,49,'PUDAHUEL'},;
                { 319,49,'QUILICURA'},;
                { 320,49,'QUINTA NORMAL'},;
                { 321,49,'RECOLETA'},;
                { 322,49,'RENCA'},;
                { 323,49,'SAN JOAQUÍN'},;
                { 324,49,'SAN MIGUEL'},;
                { 325,49,'SAN RAMÓN'},;
                { 326,49,'VITACURA'},;
                { 342,54,'TALAGANTE'},;
                { 343,54,'EL MONTE'},;
                { 344,54,'ISLA DE MAIPO'},;
                { 345,54,'PADRE HURTADO'},;
                { 346,54,'PEÑAFLOR'} }

  For n := 1 To Len(aCiudades)
      aadd(aArray1, aCiudades[n,2])
      nVar := aCiudades[n,1]
      aItems := {}
      AEval( aComunas, {|a| if(a[2] == nVar, aadd(aItems, a[3]),) } )
      if( len(aItems) = 0, aadd(aItems,"Sin Valor"), nil )
      aadd(aArray2, aItems)
  Next

  SysRefresh()

Return { aArray1, aArray2 }
//------------------------------------------------//
//FIN 4o EJEMPLO DE 2 COMBOBOX CON ARRAYS
//------------------------------------------------//
 

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda con 2 Combobox ???

Postby remtec » Mon Aug 15, 2022 12:44 am

FranciscoA wrote:Antonio, mira si este codigo, adaptado del codigo de AL y tus arrays, te sirve de guia:

Code: Select all  Expand view  RUN
//------------------------------------------------//
//4o EJEMPLO DE 2 COMBOBOX CON ARRAYS
//------------------------------------------------//
function Fap4_2Arrays()   //Main()
   local oDlg, cCiudad, cComuna, oComuna
   local aCiudades, aComunas, aArr

   aArr := CrearArrays()
   aCiudades := aArr[1]  
   aComunas  := aArr[2]  

   cCiudad := aCiudades[1]
   cComuna := aComunas[1,1]

   DEFINE DIALOG oDlg FROM 1,1 TO 300, 600 PIXEL TITLE "Seleccione Ciudad y Comuna"

   @ 20, 10 COMBOBOX cCiudad ITEMS aCiudades SIZE 130,200 PIXEL OF oDlg ;
            ON CHANGE ( oComuna:SetItems( aComunas[ AScan( aCiudades, cCiudad ) ] ), oComuna:Set( oComuna:aItems[ 1 ] ) )

   @ 20,160 COMBOBOX oComuna VAR cComuna ITEMS aComunas[ 1 ] SIZE 130,200 PIXEL OF oDlg

   @ 100,(300/2)-(100/2) BUTTON "Mostrar seleccionado" SIZE 100, 20 PIXEL OF oDlg ;
            ACTION MsgInfo( cCiudad, cComuna )

   ACTIVATE DIALOG oDlg CENTERED

return nil
//----------------------------------------//
Function CrearArrays()
   local aArray1 := {}, aArray2 := {}, aItems := {}, nVar, n

   local aCiudades:={ { 1,'ARICA'},;
                { 2,'PARINACOTA'},;
                { 3,'IQUIQUE'},;
                { 4,'TAMARUGAL'},;
                { 5,'ANTOFAGASTA'},;
                { 49,'SANTIAGO'},;
                { 54,'TALAGANTE'} }

   local aComunas:= { { 1,1,'ARICA'},;
                { 2,1,'CAMARONES'},;
                { 3,2,'PUTRE'},;
                { 4,2,'GENERAL LAGOS'},;
                { 5,3,'IQUIQUE'},;
                { 6,3,'ALTO HOSPICIO'},;
                { 7,4,'POZO ALMONTE'},;
                { 8,4,'CAMIÑA'},;
                { 9,4,'COLCHANE'},;
                { 10,4,'HUARA'},;
                { 11,4,'PICA'},;
                { 12,5,'ANTOFAGASTA'},;
                { 13,5,'MEJILLONES'},;
                { 14,5,'SIERRA GORDA'},;
                { 15,5,'TALTAL'},;
                { 295,49,'SANTIAGO'},;
                { 296,49,'CERRILLOS'},;
                { 297,49,'CERRO NAVIA'},;
                { 298,49,'CONCHALÍ'},;
                { 299,49,'EL BOSQUE'},;
                { 300,49,'ESTACIÓN CENTRAL'},;
                { 301,49,'HUECHURABA'},;
                { 302,49,'INDEPENDENCIA'},;
                { 303,49,'LA CISTERNA'},;
                { 304,49,'LA FLORIDA'},;
                { 305,49,'LA GRANJA'},;
                { 306,49,'LA PINTANA'},;
                { 307,49,'LA REINA'},;
                { 308,49,'LAS CONDES'},;
                { 309,49,'LO BARNECHEA'},;
                { 310,49,'LO ESPEJO'},;
                { 311,49,'LO PRADO'},;
                { 312,49,'MACUL'},;
                { 313,49,'MAIPÚ'},;
                { 314,49,'ÑUÑOA'},;
                { 315,49,'PEDRO AGUIRRE CERDA'},;
                { 316,49,'PEÑALOLÉN'},;
                { 317,49,'PROVIDENCIA'},;
                { 318,49,'PUDAHUEL'},;
                { 319,49,'QUILICURA'},;
                { 320,49,'QUINTA NORMAL'},;
                { 321,49,'RECOLETA'},;
                { 322,49,'RENCA'},;
                { 323,49,'SAN JOAQUÍN'},;
                { 324,49,'SAN MIGUEL'},;
                { 325,49,'SAN RAMÓN'},;
                { 326,49,'VITACURA'},;
                { 342,54,'TALAGANTE'},;
                { 343,54,'EL MONTE'},;
                { 344,54,'ISLA DE MAIPO'},;
                { 345,54,'PADRE HURTADO'},;
                { 346,54,'PEÑAFLOR'} }

  For n := 1 To Len(aCiudades)
      aadd(aArray1, aCiudades[n,2])
      nVar := aCiudades[n,1]
      aItems := {}
      AEval( aComunas, {|a| if(a[2] == nVar, aadd(aItems, a[3]),) } )
      if( len(aItems) = 0, aadd(aItems,"Sin Valor"), nil )
      aadd(aArray2, aItems)
  Next

  SysRefresh()

Return { aArray1, aArray2 }
//------------------------------------------------//
//FIN 4o EJEMPLO DE 2 COMBOBOX CON ARRAYS
//------------------------------------------------//
 

Saludos.


Hola Amigo Francisco.

Como estas?

Muchas gracias por responder y por tu ayuda.

Probé tu código, el boton, solo muestra la Ciudad, aunque seleccione alguna comuna, esta no se muestra, trate de poner un ON CHANGE, pero me genera el mismo error que con mi código publicado.

Muchos Saludos.

Muchos Saludos

Antonio
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda con 2 Combobox ???

Postby FranciscoA » Mon Aug 15, 2022 1:00 am

remtec wrote:Probé tu código, el boton, solo muestra la Ciudad, aunque seleccione alguna comuna, esta no se muestra,


Que raro, Antonio, a mi me funciona bien. Uso Windows 10 y XHarbour. La comuna se muestra como el titulo del MsgInfo()
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda con 2 Combobox ???

Postby remtec » Mon Aug 15, 2022 5:35 pm

Amigo Francisco.

Mil disculpas, tienes toda la razón.

Solo que mi equipo me con Windows 10, me estaba jugando una mala jugada, tenia muchos días sin resetearlo y muchas cosas y programas abiertos.

Lo apague y lo encendí y todo funciono, ya que primero lo decidí probarlo en un pc con Windows 7 y funciono perfecto.

Ahora lo incorporo a mi aplicación y listo.

Mil gracias y mil disculpas.

Saludos.

Antonio.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 46 guests