Yo lo soluciono de la siguiente forma:
1.- Tanto en el WebPanel como en el Procedure crear dos variables del Tipo SDT que vas a utilizar, pero una de estas variables debe ser Colección (Is Collection: True) y la otra no debe ser Colección. En el WebPanel llenas tu SDT Colección y llamas al Procedure en un Evento.
2.- Tu Procedimiento debe aceptar el SDT Colección como Parámetro de Entrada
3.- Debes especificar las caractarísticas para que te lo mande a un PDF:
3.1.- Output_file('Reporte.pdf' ,"pdf" );
3.2.- Main Program: True
3.3.- Call Protocol: HTTP
3.4.- Report output: Only to screen (podrías cambiarlo)
4.- En el SOURCE del PROCEDURE usar el comando:
FOR &sdt(no colección) IN &sdt(colección)
&Var1 = &sdt(no colección).item1
&Var2 = &sdt(no colección).item2
&Var3 = &sdt(no colección).item3
ENDFOR
5.- En el Layout colocar las variables: &Var1, &Var2 y &Var3
Espero te funcione...