Отчет по процессу: добавить отступ для подгруппы

В отчете по процессам у меня возникают трудности с получением отступа до второго уровня (термин высокого уровня 1) или до третьего уровня и так далее.

введите описание изображения здесь

Когда я использую style(column)=[ячейка =6,5 см JUST=LEFT asis=on], я получаю отступ, но следующая непрерывная строка начинается с начала из-за длины предложения. Например:

введите описание изображения здесь

Есть ли способ выровнять отступы для разных уровней?

Вот моя программа отчетов про:

proc report data=final nowindows  split='~' headline headskip contents='' formchar(2)='_' missing spacing=1;
    *by seq seq_c1 seq_trt;
    columns  sqn seq ord cat _c1 - _c6;

    define sqn / group order=data noprint;
    define seq / group order=data noprint;
    define ord /display order=data noprint;

    define cat     / display  order=data style(column)=[cellwidth=6.5 cm JUST=LEFT asis=on]  style(header)=[JUST=LEFT] flow ;

    define _c1  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center] ;
    define _c2  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];
    define _c3  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];
    define _c4  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];
    define _c5  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];
    define _c6  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];

    compute cat;
        if ord=3 then  do; cat='   '||cat;  end;
        if ord=4 then do; cat='      '||cat;  end;
    endcomp;

    compute after sqn;
        line '';
    endcomp;

run;

Спасибо.

Вот небольшой код для генерации данных:

data check;
length sqn 8. cat $100.;
input  sqn   cat $;
datalines;
1   Uncoded
2   Uncoded
3   ABNORMAL-MENSTRUATION-DIAGNOSTIC-CURETTAGE-OF-THE-UTERINE-CAVITY.
3   ANXIETY
3   CARPAL-TUNNEL-SYNDROME
3   EXACERBATION
 ;
run;

1 ответ

Решение

Я бы решил это, используя фактические элементы стиля, а не добавляя пробелы вручную. Вот LEFTMARGIN это, вероятно, правильный путь, хотя есть INDENT стиль, который иногда предпочтительнее; Я думаю LEFTMARGIN получает то, что вы хотите.

Вы можете увидеть некоторые вопросы на http://communities.sas.com/, такие как этот, с похожими запросами и ответами (я использовал этот вопрос в качестве ссылки для этого ответа).

data check;
length sqn 8. cat $100 _c1-_c6 $16;
array _c[6] $ (6*"TestingText");
input  sqn   cat $;
seq=_n_;
ord = _n_;
datalines;
1   Uncoded
2   Uncoded
3   ABNORMAL-MENSTRUATION-DIAGNOSTIC-CURETTAGE-OF-THE-UTERINE-CAVITY.
3   ANXIETY
3   CARPAL-TUNNEL-SYNDROME
3   EXACERBATION
 ;
run;
ods pdf file="c:\temp\test.pdf";
proc report data=check nowindows  split='~' headline headskip contents='' formchar(2)='_' missing spacing=1;
    *by seq seq_c1 seq_trt;
    columns  sqn seq ord cat _c1 - _c6;

    define sqn / group order=data noprint;
    define seq / group order=data noprint;
    define ord /display order=data noprint;

    define cat     / display  order=data style(column)=[cellwidth=6.5 cm JUST=LEFT asis=on]  style(header)=[JUST=LEFT] flow ;

    define _c1  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center] ;
    define _c2  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];
    define _c3  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];
    define _c4  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];
    define _c5  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];
    define _c6  / display order = data style(column)=[cellwidth=2.8 cm JUST=LEFT] style(header)=[JUST=Center];

    compute cat;
        if ord=3 then  call define('cat','style','style={leftmargin=0.1in}');
        if ord=4 then  call define('cat','style','style={leftmargin=0.2in}');      
    endcomp;

    compute after sqn;
        line '';
    endcomp;

run;
ods pdf close;
Другие вопросы по тегам