2014-05-15 1 views
1

나는 sas 출력을 가지며 각 사람마다 약간의 정보가 있습니다. 그러나 각 사람은 인쇄 할 때 별도의 페이지에 있어야합니다. 즉 PDF는 각 사람마다 한 페이지가되어야합니다. 내 코드에서 매크로를 사용하지 않았습니다. 또한 나는 매크로를 만드는 방법을 모른다. 매크로를 사용하지 않고 페이지를 분리 할 수있는 방법이 있습니까?출력 할 때 별도의 보고서 페이지

코드 :

data _null_; 
set maingroup; 
call execute('%bygroup(' || trim(maingroup) || ')'); 
run; 

이 코드는 각 페이지에 사람들을 구분합니다. 하지만 매크로가 없으므로 코드를 조금 변경했습니다. 아래의 리포트를 확인하십시오. :

Ayda Ceyhan: 325 
    1258 458 
Grade:3.0 
Issues: Test 
    ------- 
Justin Costay: 526 
1568 132 
Grade:3.5 
Issues: NA 

이것은 출력이며 여기에는 두 사람이 있습니다. 인쇄 할 때 각 페이지마다 구분해야합니다.

+0

이미 시도한 바가 있습니까? 몇 가지 예제 코드와 문제 해결을위한 노력을 보여 주면 좋은 응답을받을 가능성이 더 커집니다. –

답변

2

이는 실제 보고서에 크게 좌우됩니다. 일반적으로 매크로를 사용하는 대신 그룹별로 사용할 수 있어야합니다.

간단한 예 :

ods pdf file="c:\temp\test.pdf" startpage=bygroup; 
proc report data=sashelp.class nowd; 
by name; 
columns age sex height weight; 
run; 
ods pdf close; 

startpage=bygroup 그룹에 의해 각각의 새로운 페이지를 인쇄 할 PDF 엔진을 알려줍니다. by 변수를 정렬 할 수없는 경우 notsorted을 사용해야 할 수도 있습니다. 이는 보고서를 작성하는 방법에 따라 원하는 것을 정확하게 수행 할 수도 그렇지 않을 수도 있습니다.

데이터 스텝 프로그래밍으로이 작업을 수행하는 경우 매크로를 수행하는 매크로에 액세스하지 않아도 힘들어 질 수 있습니다. 나는 솔직히 데이터 스텝 프로그래밍을 사용하지 않을 것이다. 요즘, proc report/tabulate/etc. 원하는 형식으로 보고서를 작성하는 데 매우 뛰어나며 데이터 스텝 프로그래밍보다 훨씬 강력합니다.

간단한 예제에서 ods pdf startpage=now; 명령을 호출하여 execute를 호출 한 다음 원래 ods pdf 문에 startpage=never을 사용할 수 있습니다.

관련 문제