%STPBEGIN and %STPEND
%STPBEGIN和%STPEND为从存储过程产生和输出提供了一个标准的功能
它允许你用最小代码写一个产生多变内容和样式的输出,宏 %STPBEGIN 会自动根据不同的客户端产生不同的代码以适应输出
一个典型的存储过程是有下面宏
/* *****************************************************
* Header comment documenting your
* stored process and input parameters.
* ************************************************** */
%global input parameters;
*ProcessBody;
... any pre-processing of input parameters ...
%stpbegin;
... stored process body ...
%stpend;
%STPBEGIN 宏初始化ODS到产生输出的存储过程. %STPEND 宏结束ods处理并完成输出到客户端,这2个宏必须配对使用
如果存储过程没有使用ods产生输出则不应使用这些宏或者设置_odsdest=NONE,以禁止ods初始化
ODS 选项
ods选项是一些特定的全局宏变量,这些参数通常通过输入参数来设置,但也能在存储过程中修改,下面这些变量会影响ods输出
_ENCODING
_GOPT_DEVICE
_GOPT_HSIZE
_GOPT_VSIZE
_GOPT_XPIXELS
_GOPT_YPIXELS
_GOPTIONS
_ODSDEST
_ODSOPTIONS
_ODSSTYLE
_ODSSTYLESHEET
_ODSDEST 变量是一个比较重要的变量,它允许存储过程产生什么类型的输出,如html,pdf,ps或者其他各式
Overriding Input Parameters
宏变量被%STPBEGIN 重新组织且在存储过程中设置和修改,通常用来拒绝或者限制客户端输入参数,如
%global _ODSSTYLE;
*ProcessBody;
%let _ODSSTYLE=MyStyle;
%stpbegin;
上面例子无论客户端传送什么样的样式都不会起作用