2009-02-26 28 views
0

我正在基礎SAS 8.1(OpenVMS)中生成報告。我需要它有每個觀察1頁...類似於下面。我找不到任何顯示如何使用PROC PRINT或PROC REPORT執行此操作的任何內容。除了PUT語句之外,還有什麼辦法可以做到嗎?不幸的是,升級或添加模塊不是一種選擇。任何幫助表示讚賞。在基礎SAS中生成非表格佈局的報告

頭文本觀察ID 1

第1個文字----------------變量1

第2行文字--------- -------可變2

第3行文字----------------可變3

--page渡假 -

頭文本觀察ID 2

Line 1 text ---------------- variable 1

Line 2 text ---------------- variable 2

3行文字----------------變3

--page突破 -

回答

5

如果通過觀察轉數數據集,然後proc report能處理它沒有問題。心連心。

/* test data -- each obs is identified by obsId */ 
data class; 
    set sashelp.class; 
    obsId = _n_; 
run; 

/* transpose the data */ 
proc transpose 
    data=class 
    out=report(rename=(_name_=var col1=value)); 
    var _all_; 
    by obsId; 
run; 

/* change the varaible name into "Line 1 text ..." */ 
data report; 
    drop line cLine dashes; 
    length var cLine $30; 
    dashes = repeat("-", 20-1); 
    /* usual DoW */ 
    do line = 1 by 1 until (last.obsId); 
    set report; 
    by obsId; 
    cLine = put(line, best.-l); 
    var = "Line "||trim(cline)||" text "||dashes; 
    output; 
    end; 
run; 

/* print out one obs per page */ 
options nocenter; 
proc report data=report nowd; 
    column obsId var value; 
    define obsId/" " group noprint; 
    define var/" " display left; 
    define value/" " display left; 
    break after obsId/page; 
    compute before obsId; 
    id = put(obsId, best.-l); 
    len = length(id); 
    line @2 "Header Text Observation Id " iD $varying. len; 
    line " "; 
    endcomp; 
run; 

/* on lst, in part. 
Header Text Observation Id 1 

Line 1 text ------------------ Alfred 
Line 2 text ------------------ M 
Line 3 text ------------------   14 
Line 4 text ------------------   69 
Line 5 text ------------------   112.5 
Line 6 text ------------------    1 

(new page) 
Header Text Observation Id 2 

Line 1 text ------------------ Alice 
Line 2 text ------------------ F 
Line 3 text ------------------   13 
Line 4 text ------------------   56.5 
Line 5 text ------------------   84 
Line 6 text ------------------    2 

(new page) 
... 
*/ 
+0

謝謝。我會檢查這一點。我以前從未使用proc轉置。 – 2009-02-28 08:01:12