Hi Cynthia, Really thanks for your input. I agree your way to code PROC DOCUMENT, but this is a simple example, so I just try the simplest code. I have a long listing with more than 100 records, and only want to show 20 records in every physical page, which I think can be done by BY or BREAK in PROC REPORT. And I want only one bookmark shown in the first physical page. Am I explaining my need clear? Your paper is quite detailed, but it hasn't offer an idea how to remove the bookmarks in every physical page after first page but not remove page break. If using BY in PROC REPORT for page break, copy the level-3 path (path of Type=Table) after first physical page is useless, due to the bookmark is still there. If using BREAK in PROC REPORT for page break, copy the level-3 path (only one can see in the path, but bookmarks show in every physical page) to new structure cannot change anything, the bookmarks still show in each physical page. I test in this way: proc document name=reorder; list / levels=all; run; quit; proc document; doc name=work.neworder(write); make report; dir \; dir report; dir; copy \work.reorder\Report#1\Report#1 to ^; copy \work.reorder\Report#1\Report#1\Report#1 to \work.reorder\Report#1\Report#1; ods pdf file="testpdf.pdf"; replay; run; ods pdf close; run; quit; ods _all_ close; Thanks a lot.
... View more