No es habitual emplear SAS BASE para crear menús o ventanas, aunque con el PROC PMENU se han hecho maravillas. Hoy vamos a poner un ejemplo sencillo de uso de %WINDOW para hacer el menú más simple posible con SAS BASE: nuestro objetivo es consultar los datos de un cliente sobre una tabla. Creamos unos datos aleatorios para ilustrar el ejemplo y una macro para hacer consultas:

data aleatorio(index = (id_cliente));
  do id_cliente = 1 to 11000;
    importe = ranuni(56) * 450;
    output;
  end;
run;

%macro selecciona(cli=);
  proc sql;
    select a.*
    from aleatorio a
    where id_cliente = &cli.;
  quit;
%mend;

Partimos de una tabla con 2 variables, id_cliente e importe, y deseamos crear un menú en el que nos liste los datos para un id_cliente. Lo más sencillo que podemos hacer con SAS BASE es:

%window consulta color=grey
  #2 @2 'Seleccionar id_cliente:'
  #3 @26 id 8 attr=underline ;

%display consulta;

%selecciona(cli=&id.);

Creamos la ventana consulta donde añadimos un texto en la línea (#) 2, posición (@) 2, y leemos la macrovariable global id con longitud 8 en la línea 3, columna 26; ponemos un subrayado para que quede claro dónde está. Posteriormente, llamamos a la macro selecciona y, como parámetro, le pasamos el id. No es muy complicado, pero tampoco podemos hacer grandes cosas. Saludos.