2016-02-05 116 views
0

數據集in包含4欄col1-col4。我試圖創建一個將4列分成兩部分的輸出。proc報告跨頁眉顏色

在下面的代碼,通過將假可變blank,我可以部分A和B部分之間添加一個空欄。

options missing=''; 
proc report data=in missing 
style(header)=[background=steelblue]; 
column ('Part A' col1 col2) blank ('Part B' col3 col4); 
define blank/computed ' ' style=[background=white]; 
define col1/display style[background=tan]; 
... 
compute blank; 
blank = .; 
call define(_col_,'style','style={background=white borderbottomcolor=white}'); 
endcomp; 
run; 

的問題是我需要

  1. 兩種不同的顏色跨越頭和「原始」的標題。

  2. 兩個跨頁眉之間的列應全部爲白色。

但是代碼不能達到第二個目的。

電流輸出看起來像

1st row ------  Part A  Part B (steelblue for entire row) 

2nd row ------ col1 col2  col3 col4 (col1-col4 are tan, the column between col2 and col3 and white) 

但所需的輸出是

1st row ------  Part A  Part B (steelblue for Part A & B, but the column between them should be white) 

2nd row ------ col1 col2  col3 col4 (col1-col4 are tan, the column between col2 and col3 and white) 

我發現這個職位,但我甚至無法複製辛西婭」輸出。 proc格式似乎不起作用。

Proc Report - Coloring for Spanning Headers

這是Excel相當容易 - 只需插入一個新的空欄,沒有填充該列。我如何在SAS中做到這一點?

回答

1

你沒有提到ODS目的地。這適用於HTML和PDF(有點)。 我認爲關鍵假設它實際上做你想要的是使用'a0'x ascii non-breaking space。但是這並沒有完全測試。

title; 
options missing=''; 
proc format; 
    value $color 
     'a0'x = 'white' 
     other='steelblue' 
     ; 
proc report data=sashelp.class missing 
    style(header)=[background=$color. borderbottomcolor=$color.]; 
    column ('Part A' name sex) ('a0'x blank) ('Part B' age weight height); 
    define _all_/display style=[background=tan]; 

    define blank/computed 'a0'x 
     style=[background=white borderbottomcolor=white] 
     style(header)=[background=white borderbottomcolor=white]; 

    compute blank/char length=1; 
     blank = ' '; 
     call define(_col_,'style','style={background=white borderbottomcolor=white}'); 
     endcomp; 
    run; 

enter image description here

+0

它不會對EG 6.1 .. – Lovnlust

+0

工作,如果我取代'$ color.'一些預定義的顏色,它的工作原理。因此,proc格式部分似乎不適用於輸出。 – Lovnlust

+0

它不適用於ODS tagsets.sasreport13(ID = EGSR)SAS EG報告目標,我在我的答案中暗示「這適用於HTML」 –

0

Cynthia發佈的代碼包含語法錯誤(proc報告中的標題+ style(header)行缺少;)。

有了修正,這對我的作品(SAS 9.3 AIX):

 
proc format; 
    value $color 
      'REPORT' = '#9999FF' 
      'Australia' = '#FF6600' 
      'States' = 'pink' 
      'Wombat' = 'lightgreen' 
      other = 'lightblue'; 

    value $altclr 
      'REPORT' = '#9999FF' 
      'Australia' = '#FF6600' 
      'States', 'Height', 'Weight' = 'pink' 
      'Wombat', 'Name', 'Age', 'Sex' = 'lightgreen' 
      other = 'lightblue'; 
run; 

ods listing close; 
ods tagsets.excelxp file = "%SYSFUNC(pathname(work))./Test.xml" 
    options (embedded_titles='yes') style = sansprinter; 

title 'All Headers Different Colors Based on Formats'; 
proc report data = sashelp.class(obs=3) nowd 
    style(header) = { background = $color. font_size= 10pt }; 
    column ('REPORT'('Australia' ('Wombat' name age sex)('States' height weight))); 
run; 

title 'Some Headers Same Colors Based on Formats (one header diff)'; 
proc report data = sashelp.class(obs=3) nowd 
    style(header) = { background = $altclr. font_size= 10pt }; 
    column ('REPORT'('Australia' ('Wombat' name age sex)('States' height weight))); 
    define name/'Name'; 
    define age/'Age'; 
    define sex/'Sex'; 
    define height/'Height'; 
    define weight/'Weight' style(header)={background=lightyellow}; 
run; 

ods _all_ close;