FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Crear listbox Array en tiempo de ejecucion listbox o xbrowse
Posts: 467
Joined: Fri Dec 09, 2005 12:41 AM
Crear listbox Array en tiempo de ejecucion listbox o xbrowse
Posted: Thu Jul 14, 2016 06:07 PM
Buen dia con todos

Es posible crear un listbox de un array que es una matriz que se arma en tiempo de ejecucion ?

Yo estoy haciendo esto pero no me resulta, o como podria hacerlo usando el Xbrowse, creo q es mejor alternativa por que luego quiero modiciar una de las celdas?? .

Code (fw): Select all Collapse
FUNCTION mibrow()
********************** EJEMPLO CREA LA MATRIZ POR VIZUALIZAR
local Matriz_SINO:={}
local i :=0 
LOCal j:=0 

* esto es una matriz FICTICIA , EN ESTE CASO DE 6 FILAS Y 5 COLUMNAS, ESTOS VALORES PUEDEN CAMBIAR  
FOR I = 1 TO 6
  AADD(Matriz_SINO,{"S","N","S","S","N"})
NEXT 

 VERMATRIZ(Matriz_SINO)   && LLAMO A LA FUNCION PARA VER LA MATRIZ CON UN BROWSE

return .t.  

FUNCTION VerMatriz(Matriz_SINO)
******************************
* Funcion de Mantenimiento de Vector Matriz 
************************************************
LOCAL oDlg, oBrw

local i :=0 

local V_Header:={}   && Vector de titulos 
local V_ColSize:={}  && Vector de tamaños de Columnas 
local nColumnas:= 0
local B_Line:={}

nColumnas:=LEN(Matriz_SINO[1])

*Creamos encabezados y anchos de columnas del browse
for i = 1 to  nColumnas
  AADD(V_Header ,str(i,3,0))
  AADD(V_ColSize,20)
next i  

*Creamos la macro para armar el codeblock para los campos Arrays a visalizar
* y formar  este modelo.. {|| Mat[oBrw:nAt, 1] ,Mat[oBrw:nAt, 2], Mat[oBrw:nAt, 3], ....Mat[oBrw:nAt, nColumnas]  }  
B_Line:=""
for i = 1 to nColumnas                                                
  B_Line=B_Line + "Matriz_SINO[oBrw:nAt]["+alltrim(str(i,10,0))+"]"+if(i=45,"",",") 
next i 
B_Line=  "{ || {"+B_Line+"} }"  && Se Arma el codeblock macro final 


   DEFINE DIALOG oDlg FROM 2, 2 TO 30,150 TITLE "Matriz de Si o NO "
   @ 0, 0 SAY "Matriz "  OF oDlg
   @ 1, 2 LISTBOX oBrw FIELDS ""  HEADERS "" OF oDlg   
      oBrw:aHeaders       := V_Header    && Cargo los titulos
      oBrw:aColSizes    := V_ColSize   && Cargo los anchos de culumna (Size)
      oBrw:nAt       = 1
      // bLine is a codeblock that returns an array
      // if you need a 'traditional column based browse' have a look at TcBrowse

      oBrw:bLine     := &B_Line  &&  asigno la macro { || B_Line }       AQUI FALLA !!!!  NO EXISTE VARIABLE:  Matriz_SINO 

      oBrw:bGoTop    = { || oBrw:nAt := 1 }
      oBrw:bGoBottom = { || oBrw:nAt := Eval( oBrw:bLogicLen ) }
      oBrw:bSkip     = { | nWant, nOld | nOld := oBrw:nAt, oBrw:nAt += nWant,;
                           oBrw:nAt := Max( 1, Min( oBrw:nAt, Eval( oBrw:bLogicLen ) ) ),;
                           oBrw:nAt - nOld }
      oBrw:bLogicLen = { || Len( Matriz_SINO ) }
      oBrw:cAlias    = "Array"                // Just put something

   @ 09, 04 BUTTON "&Editar" OF oDlg ACTION msginfo("estoy en la linea " + str(oBrw:nAt,10,0),"oki ")  
   @ 09, 20 BUTTON "&Salir"  OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
 RETURN nil


Muchas gracias

Lubin
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Crear listbox Array en tiempo de ejecucion listbox o xbrowse
Posted: Thu Jul 14, 2016 07:56 PM
Intentalo asi:
Code (fw): Select all Collapse
FUNCTION mibrow()
********************** EJEMPLO CREA LA MATRIZ POR VIZUALIZAR
local Matriz_SINO:={}
local i :=0 
LOCal j:=0 

* esto es una matriz FICTICIA , EN ESTE CASO DE 6 FILAS Y 5 COLUMNAS, ESTOS VALORES PUEDEN CAMBIAR  
FOR I = 1 TO 6
  AADD(Matriz_SINO,{"S","N","S","S","N"})
NEXT 

 XBROWSE(Matriz_SINO,"ANALIZANDO Matriz")

return .t.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 467
Joined: Fri Dec 09, 2005 12:41 AM
Re: Crear listbox Array en tiempo de ejecucion listbox o xbrowse
Posted: Fri Jul 15, 2016 04:37 AM

Francisco

No me fucnciona en la complilacion, creo que podria ser por tener un fivewin antiguo , pero adiconal a eso , mi deseo es no solo mostrarlo si no poder editar sus celdas
con otros valores,

No hay forma de manejarlo con lineas de programacion, ??

Gracias por tu tiempo en la respuestas
Lubin

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Crear listbox Array en tiempo de ejecucion listbox o xbrowse
Posted: Fri Jul 15, 2016 05:33 PM
Lubin, prueba esta codigo ejemplo (funcional)

Code (fw): Select all Collapse
FUNCTION mibrow()
********************** EJEMPLO CREA LA MATRIZ POR VIZUALIZAR
local Matriz_SINO:={}
local i :=0 
LOCal j:=0 

* esto es una matriz FICTICIA , EN ESTE CASO DE 6 FILAS Y 5 COLUMNAS, ESTOS VALORES PUEDEN CAMBIAR  
FOR I = 1 TO 6
  AADD(Matriz_SINO,{"S","N","S","S","N"})
NEXT 

 VERMATRIZ(Matriz_SINO)   && LLAMO A LA FUNCION PARA VER LA MATRIZ CON UN BROWSE

return .t.  

FUNCTION VerMatriz(Matriz_SINO)
******************************
* Funcion de Mantenimiento de Vector Matriz 
************************************************
LOCAL oDlg, oBrw

local i :=0 

local V_Header:={}   && Vector de titulos 
local V_ColSize:={}  && Vector de tamaños de Columnas 
local nColumnas:= 0
local B_Line:={}

nColumnas:=LEN(Matriz_SINO[1])

*Creamos encabezados y anchos de columnas del browse
for i = 1 to  nColumnas
  AADD(V_Header ,str(i,3,0))
  AADD(V_ColSize,20)
next i  


   DEFINE DIALOG oDlg FROM 2, 2 TO 400,600 TITLE "Matriz de Si o NO " PIXEL
   @ 0, 0 SAY "Matriz "  OF oDlg

   @ 1, 2 XBROWSE oBrw OF oDlg  SIZE 200,100 ;
          AUTOCOLS ;
          HEADERS V_Header ;
          SIZES  V_ColSize ;
          ARRAY Matriz_SINO ;
          FOOTERS LINES CELL

    WITH OBJECT oBrw:aCols[3]
         :nEditType := 1  //editable    2= No editable
         :cToolTip := "Hola Lubin, esta col es editable"
    END   

    oBrw:CreateFromCode()

    oBrw:bLDblClick := {|| MsgInfo("Tu function") }

    oBrw:bChange := {|| if(oBrw:nArrayAt = 3, MsgInfo("Hola, saludos desde la fila 3"),) }

   @ 09, 04 BUTTON "&Editar" OF oDlg ACTION msginfo("estoy en la linea " + str(oBrw:nArrayAt),"oki ")  
   @ 09, 20 BUTTON "&Salir"  OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
 RETURN nil

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 467
Joined: Fri Dec 09, 2005 12:41 AM
Re: Crear listbox Array en tiempo de ejecucion listbox o xbrowse
Posted: Sat Jul 23, 2016 08:06 PM

Gracias Francisco por tu respuesta y disculpa la demora de mi comentario

Hice las prueba de tu inicacion y a mi no me funciona, creo que el problema soy Yo pues tengo un five win muy viejito "Fivewin-marzo 2008" :( y quiza la clase xbrowse no me reconoce ciertos comandos.
Estoy seguro que a ti es 100% operativo como dices, primero debo resolver el tema de la version me parece :oops:

Gracias
Lubin

Continue the discussion