Proc Report: Unterschiedlich Nachkommastellen in Zeilen
Verfasst von Ekkehard Zentgraf am 5 April, 2006 - 12:31
Da der Proc Tabulate keine unterschiedlichen Formatierungen in den einzelnen Zeilen zulässt, wollte ich es mal mit Proc Report versuchen. Dabei habe ich folgenden Weg gewählt:
PROC REPORT DATA=ENDE;
COLUMN PRBERID BEZ1 PRKATID BEZ2 RF SP01;
DEFINE PRBERID / NOPRINT;
DEFINE BEZ1 / ' ';
DEFINE PRKATID / NOPRINT;
DEFINE BEZ2 / ' ';
DEFINE RF / ' ' ;
DEFINE SP01 / 'REGION' COMPUTED;
SP01 soll nun in Abhängigkeit von PRKATID ohne, mit einer oder mit drei Nachkommastellen angezeigt werden:
COMPUTE SP01;
SP01=RF.SUM;
IF PRKATID='04'
THEN CALL DEFINE(_COL_,"FORMAT","FORMAT=COMMAX7.0");
ELSE IF '91'
»
- Anmelden oder Registrieren um Kommentare zu schreiben

Da fehlt noch was, sorry
COMPUTE SP01;
SP01=RF.SUM;
IF PRKATID='04'
THEN CALL DEFINE(_COL_,"FORMAT","FORMAT=COMMAX7.0");
ELSE IF PRKATID<'95'
THEN CALL DEFINE(_COL_,"FORMAT","FORMAT=COMMAX7.3");
ELSE CALL DEFINE(_COL_,"FORMAT","FORMAT=COMMAX7.1");
ENDCOMP;
Fehlerhinweis:
ERROR: Unable to set value for FORMAT in CALL DEFINE.
NOTE: Argument 3 to function DEFINE at line 3 column 12 is invalid.
FORMAT= weglassen
Wenn man im dritten Parameter von CALL DEFINE das "FORMAT=" weglässt, funktioniert es. Wenn ich es richtig rekonstruiere, sieht das Programm dann so aus (mit rudimentären Beispieldaten):
INPUT PRBERID $ BEZ1 $ PRKATID $ BEZ2 $ RF;
DATALINES;
01 prberbz1 04 prkatbz1 123
02 prberbz2 94 prkatbz2 124
03 prberbz3 95 prkatbz3 125
;
PROC REPORT DATA=ENDE NOWINDOWS;
COLUMN PRBERID BEZ1 PRKATID BEZ2 RF SP01;
DEFINE PRBERID / NOPRINT;
DEFINE BEZ1 / ' ';
DEFINE PRKATID / NOPRINT;
DEFINE BEZ2 / ' ';
DEFINE RF / ' ' ;
DEFINE SP01 / 'REGION' COMPUTED;
COMPUTE SP01;
SP01=RF.SUM;
IF PRKATID='04'
THEN CALL DEFINE(_COL_,"FORMAT","COMMAX7.0");
ELSE IF PRKATID<'95'
THEN CALL DEFINE(_COL_,"FORMAT","COMMAX7.3");
ELSE CALL DEFINE(_COL_,"FORMAT","COMMAX7.1");
ENDCOMP;
RUN;
und das Ergebnis ist dann
REGION prberbz1 prkatbz1 123 123 prberbz2 prkatbz2 124 124,000 prberbz3 prkatbz3 125 125,0Funktioniert super, Danke!
Funktioniert super, Danke! Existiert ein ähnlicher "Trick" auch für den Proc Tabulate?