Publicado el :
Informes SASHELP

Generación de formulario Web dinámico para ejecución SAS

Este código también está disponible en: Deutsch English Français
Este script crea una interfaz web (formulario HTML). En primer lugar, consulta la tabla 'sashelp.orsales' para construir dinámicamente una lista desplegable de productos a través de una macro-variable. Luego, utiliza un paso DATA _NULL_ para escribir el código HTML en el flujo de salida '_webout' (típico de SAS© Stored Processes o SAS© Job Execution), integrando la lista dinámica y opciones para el formato (HTML, PDF, CSV...) y el estilo ODS.
Análisis de datos

Type : SASHELP


Los datos de origen provienen de la tabla estándar 'sashelp.orsales' para poblar la lista desplegable 'product_line'.

1 Bloque de código
PROC SQL
Explicación :
Recuperación de los valores distintos de la columna 'product_line' para crear una cadena de caracteres que contiene las etiquetas HTML <option>, almacenada en la macro-variable 'options'.
¡Copiado!
1PROC SQL ;
2 select distinct '<option value="'||strip(product_line)||'">'||strip(product_line)||'</option>'
3 into :options separated BY ' '
4 from sashelp.orsales ;
5QUIT ;
2 Bloque de código
DATA STEP
Explicación :
Escritura del contenido HTML en el fileref del sistema '_webout'. La función 'resolve' se utiliza para interpretar las macro-variables (como &options generada previamente, o las variables del sistema &_srvname) presentes en el bloque de datos brutos (cards4).
¡Copiado!
1DATA _null_ ;
2 file _webout ;
3 INPUT ;
4 line=resolve(_infile_) ;
5 put line ;
6 cards4 ;
7
8
9

Pick a report to RUN

10
"get" ACTION="http://&_srvname:&_srvport/&_url?" target="content">
11<INPUT type="hidden" name="_program" value="/User Folders/phil/My Folder/test">
12
13&options
14
15
16
17
18
19
20
21
22
23
24
25
26
27<INPUT type="checkbox" name="_debug" value="log">Show log
28<INPUT type="checkbox" name="_debug" value="time">Show time taken
29
30
31<INPUT type="submit" value="Run">
32
33
35
36
37;;;;
38RUN ;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.