不幸的是,我对如何做到这一点没有一个好的答案,尽管它可能存在。
我确实认为 GTL 并没有完全听你的。例如:
proc template;
define style llama;
parent=styles.fancyPrinter;
style CustomFonts from GraphFonts /
'GraphValueFont'=("<sans-serif>, <MTsans-serif>",25pt,italic)
;
style graphUnicodeText from GraphValueText /
color=red;
style graphValueText from GraphValueText/
color=green;
end;
run;
proc template;
define statgraph entry;
begingraph;
layout overlay;
entry halign=right "First entry statement" /
valign=top textattrs=graphValueText;
histogram weight;
entry halign=right "Second entry statement" /
textattrs=graphUnicodeText;
entry halign=right "Third entry statement" /
valign=bottom pad=(bottom=40px);
endlayout;
endgraph;
end;
run;
ods _all_ close;
ods html file="c:\temp\test.html" path="" gpath="c:\temp\" style=llama;
proc sgrender data=sashelp.class template=entry;
run;
ods html close;
请注意,您不会收到有关 GraphUnicodeText 的任何错误...但您也不会从中获得任何影响。我的猜测是,GTL 在做它的工作时只对风格有部分认识,因此不能总是尊重你要求它做的事情。
我的建议(至少直到/除非 Sanjay 或 Dan 或类似的可以帮助您找到更好的)是为此目的使用宏变量和/或动态变量。
proc template;
define style llama;
parent=styles.fancyPrinter;
style CustomFonts from GraphFonts /
'GraphValueFont'=("<sans-serif>, <MTsans-serif>",25pt,italic)
;
style graphUnicodeText from GraphValueText /
color=red;
style graphValueText from GraphValueText/
color=green;
end;
run;
proc template;
define statgraph entry;
begingraph;
layout overlay;
dynamic entrycolor;
entry halign=right "First entry statement" /
valign=top;
histogram weight;
entry halign=right "Second entry statement" /
textattrs=(color=entrycolor);
entry halign=right "Third entry statement" /
valign=bottom pad=(bottom=40px);
endlayout;
endgraph;
end;
run;
ods _all_ close;
ods html file="c:\temp\test.html" path="" gpath="c:\temp\" style=llama;
proc sgrender data=sashelp.class template=entry;
dynamic entrycolor="red";
run;
ods html close;
然后,您可以entrycolor
在模板中的多个位置重用,并允许用户在运行时指定它。这并不理想,但它确实有效,至少......