2017-03-14 3 views
0

Ich berichte eine große Liste von Werten für Untergruppen meiner Daten. Ich habe die Daten in der Form, die ich derzeit möchte und habe nur eine kosmetische Änderung zu machen. Ich versuche einen Weg zu finden, den Wert der Untergruppe in der ersten Zeile jeder Seite zu drucken, aber für den Rest der Werte leer.Proc Bericht - Print ID in der ersten Zeile jeder Seite

Ich habe versucht, dies zu tun mehrere Möglichkeiten, um eine die ID Option in define, mit einem compute after Block, compute after _page_, eine Paginierung Säule und durch die Verwendung einer by Anweisung, aber ich kann nicht die Struktur meiner Daten mit diesen Methoden halten.

Hier einige Beispieldaten und Basis proc Bericht:

/* basic data */ 
data test; 
    input ID $ variable1 $ variable2 $; 
    datalines; 
A Lemon Yellow 
A Orange Red 
A Lemon Blue 
A Apple Green 
A Lemon Yellow 
A Orange Red 
A Lemon Blue 
A Apple Green 
A Lemon Yellow 
A Orange Pink 
A Lemon Blue 
A Apple Red 
B Lemon Yellow 
B Orange Red 
B Lemon Blue 
B Apple Green 
B Lemon Yellow 
B Orange Red 
B Lemon Blue 
B Apple Green 
B Lemon Yellow 
B Orange Pink 
B Lemon Blue 
B Apple Red 
; 
run; 

/* output several times to cover multiple pages */ 
data test2; 
set test; 
if id = "A" then do; 
output; 
output; 
output; 
end; 

output; 
run; 

/* proc report */ 
ods pdf; 
proc report data = test2 nocenter nowd ; 

define ID/order id ; 
define variable1/display; 
define variable2 /display; 

compute after ID; 
    line ''; 
    endcomp; 

run; 
ods pdf close; 

die Werte für A und B läuft über mehrere Seiten So in diesem Beispiel. Ich möchte, dass A und B bei ihrer ersten Beobachtung und der ersten Beobachtung auf einer neuen Seite erscheinen.

Jede Hilfe wird wie immer geschätzt.

+0

Was ist Ihr Ausgabedateityp PDF, RTF, Text, PowerPoint, Excel? – Reeza

+0

Ausgabe ist PDF wie im Testbericht –

+0

Probieren Sie eine BY-Gruppe mit einem Titel mit der BYVAL. – Reeza

Antwort

0

Es ist nicht klar, was genau Sie wollen, aber hier sind ein paar Optionen.

Eins: compute before _page_. Damit kannst du es als erste Zelle in den Tisch legen, aber es sieht ein bisschen komisch aus.

Zwei: Definieren Sie eine by Gruppe. Das druckt es am Anfang der by Gruppe.

*COMPUTE BEFORE _PAGE_ option; 

ods pdf file="c:\temp\test.pdf"; 
proc report data = test2 nocenter nowd ; 

define ID/order id ; 
define variable1/display; 
define variable2 /display; 

compute after ID; 
    line ''; 
    endcomp; 

compute before _page_; *prints ID here - can add more text if you want; 
    line ID $; 
endcomp; 

run; 
ods pdf close; 


*BY groups; 

ods pdf file="c:\temp\test.pdf" startpage=never; 
proc report data = test2 nocenter nowd ; 
by id;         *adding by group here; 
define ID/order id ; 
define variable1/display; 
define variable2 /display; 

compute after ID; 
    line ''; 
    endcomp; 

run; 
ods pdf close; 
Verwandte Themen