Página 1 de 1

Ejemplo Reindex

Publicado: Mar Nov 01, 2016 7:56 pm
por jvtecheto
Buenas tardes:

El ejemplo Reindex de DBFs. contiene un método que selecciona todos los elementos del Listbox.

es este:

METHOD btnTodosClick( oSender ) CLASS TFrmReindex

local aSel

with object ::olbFicheros
aSel := Array( Len( :aItems ) )
Aeval( aSel, {|v,j| aSel[ j ] := j } )
:SetSelItems( aSel )
end with

RETURN Nil

Entiendo todo solo me descoloca el parámetro del codeblock v , yo no veo que haga nada , sin embargo si lo quitas da error.
¿Alquien puede explicarme la tarea que desempeña ?

Supongo que será fácil de explicar para vosotros.

Os estoy muy agradecido.

Saludos.

Jose Vte.

Re: Ejemplo Reindex

Publicado: Mar Nov 01, 2016 8:37 pm
por jfgimenez
José Vicente,

v y j son los parámetros del codeblock. En este caso, la función AEval() ejecuta un codeblock pasándole como parámetros el elemento a tratar y la posición que ocupa en el array. Es decir, si p.ej. ponemos:

Código: Seleccionar todo

AEval( { "Uno", "Dos", "Tres" }, {| elemento, posicion | LogDebug( elemento, posicion ) } )
Lo que se mostrará en la ventana del debugger es:

Código: Seleccionar todo

Uno 1
Dos 2
Tres 3
Ahora bien, si quitas el primer parámetro del codeblock, es normal que te de error, porque entonces j sería el elemento, no la posición. Por eso tiene que estar v, aunque después no se use.

Re: Ejemplo Reindex

Publicado: Mar Nov 01, 2016 8:43 pm
por jvtecheto
Jose:

Muchas gracias, no sabia que se podía pasar: elemento, posición.

Bufff.

Saludos.

Jose Vte.