Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
jordimtb
Contributor III
Contributor III

Cargar valores de una tabla a un array

Sí, una pregunta muy elemental...

Necesito cargar datos de una tabla cargada previamente a un array para usarlo luego en una función de script NetWorkDays

Tengo esto:

temp_festius:
LOAD
    data_festiu as data
FROM [lib://Repositori_General/Dies festius.xlsx]
(ooxml, embedded labels, table is festius);

Let vFestes=;

For i=1 to NoOfRows('temp_festius') step 1
	vFestes= Peek('data',i,'temp_festius');
Next

Drop Table temp_festius;

 

Evidemente el problema está en la hora de cargar los datos al array vFestes. No sé como hacerlo en script de QlikSense... 

Muchas gracias.

 

 

1 Solution

Accepted Solutions
rubenmarin

Otra cosa que he visto: el peek empieza en 0, eso hace que también tengas que quitar 1 al NoOfRows(), que sí empieza en 1:

For i=0 to NoOfRows('temp_festius')-1
  LET vFestes= '$(vFestes)' & If(Len('$(vFestes)')>0, ',') & Peek('data',$(i),'temp_festius');
Next

View solution in original post

3 Replies
rubenmarin

Hola Jordi, si quieres añadir valores a una variable tienes que añadir lo que ya tuviese la variable y añadirle el nuevo valor, además tienes que poner el LET, y por último seguramente necesitarás un separador, por ejemplo usando una coma:

 

LET vFestes= '$(vFestes)' & If(Len('$(vFestes)')>0, ',') & Peek('data',i,'temp_festius');

 

Saludos.

rubenmarin

Otra cosa que he visto: el peek empieza en 0, eso hace que también tengas que quitar 1 al NoOfRows(), que sí empieza en 1:

For i=0 to NoOfRows('temp_festius')-1
  LET vFestes= '$(vFestes)' & If(Len('$(vFestes)')>0, ',') & Peek('data',$(i),'temp_festius');
Next
jordimtb
Contributor III
Contributor III
Author

Muchas gracias!!! aunque veo que para que acepten las fechas, hay q entrecomillarlas asi que las he puesto mediante Chr(39)

 

LET vFestes= '$(vFestes)' & If(Len('$(vFestes)')>0, ',') & Chr(39) & Peek('data',$(i),'temp_festius') & Chr(39);

 

Ahora mi problema es otro que no me cuentan correctamente los días festivos ya que la función NetWorkDays interpreta fechas como períodos, no por días. Ya abriré otro hilo si fuese necesario.

Muchas gracias.