2015-03-13 3 views
1

Я пытаюсь отправить предупреждение только в том случае, если значение макропеременной не равно 0 и другое предупреждение все время, как в том же скрипте.Отправка ALERT с использованием ODS в SAS

Я хочу отправить это только если значение переменной не 0.

filename myfile1 email To=&ToAddress 
subject="ALERT for &tday." TYPE="text/html"; 
ODS LISTING CLOSE; 
ODS HTML BODY=myfile1 style=BarrettsBlue; 
OPTIONS NOCENTER LINESIZE=256; 

Proc print data=Counts_6days noobs label; 
title "monitoring by Score Date"; 
run; 
ODS html close; 
ods listing; 

Я хочу послать это все времена.

filename myfile email To=&ToAddress 
subject="monitoring for &tday." CONTENT_TYPE="text/html"; 

ODS LISTING CLOSE; 
ODS HTML BODY=myfile style=BarrettsBlue; 
OPTIONS NOCENTER LINESIZE=256; 

Proc print data=COUNTS noobs label; 
title "monitoring by Score Date"; 
run; 

ODS HTML CLOSE; 
ODS LISTING; 
+2

Hi Sampath_T, ваш вопрос непонятен. С чем вы сталкиваетесь с трудностями? Вы спрашиваете, как условно выполнять код? – Joe

+0

@ Gerard-de-visser [tag: ods] не для SAS ODS, а для формата Open Document Spreadsheet. SAS ODS - это система доставки вывода, которая используется для создания не базового текстового вывода. – Joe

ответ

3

В условных макрокомандах SAS необходимо обернуть макрос. Например:

%macro example(arg); 
    %if &arg. ~= 0 %then %do; 
     /* Your conditional code here */ 
    %end; 
%mend example; 
%let var = 0; 
%example(&var.) 

Этот код создает macro называется %example, который ожидает один параметр. Макрос вызывается с %example(), после чего он вычисляет код внутри макроса. Блок %if %then %do; %end; позволяет вам выбрать, будет ли выполняться какой-либо код или нет, основываясь на условии, что условие оценивается как true или false.

В вашем случае вы можете обернуть свой первый блок макросом, подобным этому, оставив второй блок снаружи.

Смежные вопросы