Как запретить Proc report печатать пустую страницу, когда переменная переходит на следующую страницу из-за слишком большого количества текста?

#sas

#sas

Вопрос:


Я использую приведенный ниже код proc report для создания списка, а переменная «m» содержит несколько записей с очень длинным текстом. Поэтому иногда она переходит на следующую страницу. Когда это происходит, proc report создает пустую страницу перед печатью этой переменной на следующей странице. Как я могу запретить печать этой пустой страницы в моем итоговом отчете? Я создаю этот отчет в формате листинга. Заранее спасибо за вашу помощь.

 proc printto file="amp;outputpathname." new;
run;

ods escapechar='^';

%macro lafootnote(num,string);

footnoteamp;num amp;string "%sysfunc(repeat(%str( ),250)))";

%mend;

%let undl=%sysfunc(repeat(_, 165));

options ps=58 ls=165 nodate center nonumber spool ;
    title1 "title1";
    title2 j=center "title2";
    title3 j=center "title3";

%lafootnote(1, "Program: amp;loc/amp;pgmname     Draft      
    %sysfunc(date(), yymmdd10.) %sysfunc(time(), tod5.)"   "         page#  ");

proc report data=amp;datain. nowd missing headskip headline split='@' formchar(2)='_';
  column ("amp;undl" a b c d e f g h i j k l n m);
  define a /order order=internal noprint;
  define b /order order=internal noprint;
  define c /order order=internal noprint;
  define d /order flow left width=7  'd';
  define e /display flow left width=12 'e';
  define f /display flow left width=10 'f';
  define g /display flow left width=13 'g';
  define h /display flow left width=12 'h';
  define i /display flow left width=10 'i';
  define j /display flow left width=11 'j';
  define k /display flow left width=12 'k' ;
  define l /display flow left width=12 'l';
  define n /display flow left width=14 'n';
  define m /display flow left width=158 'm' page;

  break after a /page;
      
  compute after _page_;
    line @1 165*'_';
  endcomp;
run;
   
proc printto;
run;
 

Примерные данные

 data have;
  input a b c d e f g h i j k l n m;
datalines4;
...
... place your CSV sample data here
...
;;;;
 

Комментарии:

1. Можете ли вы показать некоторые данные?

2. Привет, Ричард, Да, я могу. Я не вижу возможности прикрепить файл .CSV для его предоставления. Можно ли прикрепить сюда такие файлы? Спасибо, что ответили на мой вопрос.

3. Отредактируйте свой вопрос и скопируйте некоторые данные CSV в область, которую я подготовил для вас в нижней части вопроса. Только достаточно данных, которые заставили бы процесс воспроизвести проблему.

4. Если вы можете позволить себе напечатать больше символов в строке, попробуйте options linesize=250; использовать любое число, которое вам подходит.