这个问题是我上一个问题的后续问题:SAS - pdf output with changed bookmarks
我已将ODS PROCLABLE和DESCRIPTION添加到代码中,书签创建得很好。但是,如果我点击任何书签,没有任何反应 - pdf文件不会跳转到特定的图表。为什么这样?是否需要在代码中添加任何内容?
data out_i_a; set sashelp.retail; run;
data out_ii_b; set sashelp.retail; run;
data y;
length saz tef x1 x2 $100;
input saz $ tef $ x1 $ x2;
datalines;
i a desc1 desc1a
ii b desc2 desc2a
;
run;
%macro grafy();
proc sql;
select count(*) into: pocet from y;
quit;
ods _all_ close;
goptions hsize=20cm vsize=8cm;
ods pdf file="\\srv05\nt05g\TEST\GRAF\TOT_testing.pdf";
ods layout gridded columns=1;
%do i=1 %to &pocet;
data _null_;
set y (obs=&i);
call symput("saz" ,strip(saz));
call symput("tef" ,strip(tef));
call symput("x1" ,strip(x1));
call symput("x2" ,strip(x2));
run;
ods region;
ods pdf text="&saz._&tef";
symbol1 interpol=join height=10pt VALUE=NONE LINE=1 WIDTH=1 CV= _STYLE_;
symbol2 interpol=join height=10pt VALUE=NONE LINE=1 WIDTH=1 CV= _STYLE_;
Legend1 value=('SALES' 'YEAR');
axis1 label=('# sales');
axis3 label=('# year');
axis2 label=('date');
ODS PROCLABEL "&x1 &x2 SALES"; /* BOOKMARK1 */
proc gplot data= out_&saz._&tef;
plot (SALES)*DATE / overlay skipmiss
VAXIS=AXIS1
HAXIS=AXIS2 LEGEND=Legend1;
plot2 (YEAR)*DATE / overlay skipmiss
VAXIS=AXIS3
HAXIS=AXIS2 LEGEND=Legend1
DESCRIPTION="by Date";
run;
ods region;
symbol1 interpol=join height=10pt VALUE=NONE LINE=1 WIDTH=1 CV= _STYLE_;
symbol2 interpol=join height=10pt VALUE=NONE LINE=1 WIDTH=2 CV= _STYLE_;
Legend1 value=('year' 'month');
axis1 label=('in %, p.a.');
axis2 label=('date');
ODS PROCLABEL "&x1 &x2 SALES2"; /* BOOKMARK2 */
proc gplot data= out_&saz._&tef;
plot (YEAR MONTH)*DATE / overlay skipmiss
DESCRIPTION="YEAR MONTH"
VAXIS=AXIS1
HAXIS=AXIS2 LEGEND=Legend1;
run;
%end;
ods layout end;
ods pdf close;
%mend;
%grafy();
感谢您的任何建议。
答案 0 :(得分:0)
我想知道ODS LAYOUT是否存在问题。看起来TOC书签只能链接到新页面:所以如果你添加
ods pdf startpage=now;
在某些时候(比如在%do
循环结束时),您将能够跳到那一点。但是如果布局只跨越几页,那么看起来你可以在页面内链接它 - 至少就我所知。