Within the scope
of a template definition, GTL supports the DYNAMIC statement for declaring
dynamic variables, and the MVAR and NMVAR statements for declaring
macro variables. These statements must appear after the DEFINE statement
and before the BEGINGRAPH block. The following syntax shows the overall
template structure:
PROC TEMPLATE;
DEFINE STATGRAPH template-name;
DYNAMIC variable-1 <"text-1"> <...variable-n<"text-n">>;
MVAR variable-1 <"text-1"> <...variable-n<"text-n">>;
NMVAR variable-1 <"text-1"> <...variable-n<"text-n">>;
BEGINGRAPH;
GTL statements;
ENDGRAPH;
END;
RUN;
The difference between the MVAR and NMVAR declaration
of macro variables is that NMVAR always converts the supplied value
to a numeric token (like the SYMGETN function of the DATA step). Macro
variables that are defined by MVAR resolve to strings (like the SYMGET
function of the DATA step).
Each of
the DYNAMIC, MVAR, and NMVAR statements can define multiple variables
and an optional text string that denotes its purpose or usage:
dynamic YVAR "required" YLABEL "optional";
mvar LOCATE "can be INSIDE or OUTSIDE" SYSDATE;
nmvar TRANS "transparency factor";
Note: To make the
template code more readable, it is helpful to adopt a naming convention
for these variables to distinguish them from actual option values
or column names. Common conventions include capitalization or adding
leading or trailing underscores to their names. The examples in this
document use capitalization to indicate a dynamic or macro variable.