Combobox no se actualiza. Estoy perdido y me urge.

Combobox no se actualiza. Estoy perdido y me urge.

Postby Garbi » Sat Sep 17, 2016 9:30 am

Hola tengo un Dialog en el cual existe un checkbox que al clicar en el , crear dos tablas , aunque la primera es la que sale en el combobox, pero cuando le pongo el setitems me da el siguiente error :

Error description: Error BASE/1132 Error de rango: acceso al array
Args:
[ 1] = A { ... }
[ 2] = N 0

Stack Calls
===========
Called from: .\peticion.PRG => (b)PETREPORTE(0)
Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:CHANGE(454)
Called from: .\source\classes\COMBOBOX.PRG => (b)TCOMBOBOX(140)
Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:RESET(0)
Called from: .\source\classes\COMBOBOX.PRG => (b)TCOMBOBOX(153)
Called from: .\source\classes\COMBOBOX.PRG => TCOMBOBOX:SETITEMS(0)
Called from: .\peticion.PRG => (b)PETREPORTE(0)
Called from: .\source\classes\CHECKBOX.PRG => TCHECKBOX:CLICK(142)

Os adjunto tambien el codigo por si podeis echarme una mano porque estoy perdido . Muchas Gracias.

Code: Select all  Expand view  RUN

   tcomponente := {}
   tlcomponente := {}
   vvcomponente:=1
   vlcomponente:="Todos"

-.......................

 REDEFINE checkbox ovcorte Var vcorte  ID 111 oF odimprimir on click (ponercomponente(tcomponente,tlcomponente),ovvcomponente:setItems(tcomponente),ovvcomponente:Refresh())

  REDEFINE COMBOBOX ovvcomponente Var vvcomponente ID 112 items tcomponente OF odimprimir when vcorte;
           ON CHANGE (vlcomponente:=alltrim(tlcomponente[vvcomponente]),ovlcomponente:refresh()) update

  REDEFINE get ovlcomponente Var vlcomponente ID 113 of odimprimir when lsay


Code: Select all  Expand view  RUN
static function ponercomponente(tcomponente,tlcomponente)

    asize(tcomponente,0)
    asize(tlcomponente,0)
    aadd(tcomponente,"Todos")
    aadd(tlcomponente,"Todos")

    ccomponente := OpenDbf(fcomponen,1, , , , kcomponen,"DBFCDX")
    (ccomponente)->(DbSetOrder(2))
    (ccomponente)->(Dbgotop())
    accomponente:=select()

    vcomparar:=""
    do while !eof()
       if vcomparar != (ccomponente)->componente
          aadd(tcomponente,(ccomponente)->componente)
          aadd(tlcomponente,(ccomponente)->detalle)
*          aadd(tcomponente,{(ccomponente)->componente,(ccomponente)->detalle})
          vcomparar := (ccomponente)->componente
       endif
        dbskip()
    enddo
   (ccomponente)->(dbclosearea())
   select(acpeticion)



return nil
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 341
Joined: Wed Nov 02, 2005 3:28 pm

Re: Combobox no se actualiza. Estoy perdido y me urge.

Postby Antonio Linares » Sat Sep 17, 2016 9:56 am

Prueba con:

ON CHANGE (vlcomponente:=alltrim(tlcomponente[Max( vvcomponente, 1 )]),ovlcomponente:refresh()) update
regards, saludos

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

Re: Combobox no se actualiza. Estoy perdido y me urge.

Postby Garbi » Sat Sep 17, 2016 10:23 am

Perfecto.
Muchisimas Gracias, Maestro.
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 341
Joined: Wed Nov 02, 2005 3:28 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 40 guests