<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Include macro condition in report in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518385#M140289</link>
    <description>&lt;P&gt;Let's back up for a moment.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You have two sections of code, one when &amp;amp;LINEAR is true and one when it is false.&amp;nbsp; Yet the code for both of them is identical.&amp;nbsp; Why are there two sections of code instead of one?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is NON_SEGMENT a variable within PERF, or is it a macro variable?&lt;/P&gt;</description>
    <pubDate>Tue, 04 Dec 2018 13:57:18 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2018-12-04T13:57:18Z</dc:date>
    <item>
      <title>Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518364#M140281</link>
      <description>&lt;P&gt;Below is the small piece of code to get reports in excel.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;%if &amp;amp;linear %then %do;
ods excel options(sheet_name="vol");
proc print data=perf;
id direction segment;
var accts;
run;
%end;
%else %do;
ods excel options(sheet_name="vol");
proc print data=perf; 
id direction segment;
var accts;
run;
%end;


Direction segment     accts
 A          model     17177
 A          booked     567
 A          unbooked   5676
 B          model     17177
 B          booked     567
 B          unbooked   5676&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;If segments are not available i will get report as below&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;   Direction   segment    accts
     A          model     17177
     A          1         17177
     B          model     17177
     B          1         17177&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Iam planing to introduce two macro variables&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;%let dir =A;
%let Non_segment=y;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Based on value for direction it should give only those direction and if there no segment(Non_segment=y;), it should have only first observation. So the output will looks like below for Non_segment=y&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;Direction  segment    accts
 A          model     17177&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 04 Dec 2018 12:43:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518364#M140281</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-04T12:43:43Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518368#M140284</link>
      <description>&lt;P&gt;And the question is?&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Remembering that macro is nothing more than a find/replace system, what would the code look like without all the macro?&amp;nbsp; Once that is running then macrotise it.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Dec 2018 12:52:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518368#M140284</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-12-04T12:52:31Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518377#M140286</link>
      <description>I trying to include these two macros in the codes without disturbing it much to get the required output</description>
      <pubDate>Tue, 04 Dec 2018 13:25:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518377#M140286</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-04T13:25:16Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518385#M140289</link>
      <description>&lt;P&gt;Let's back up for a moment.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You have two sections of code, one when &amp;amp;LINEAR is true and one when it is false.&amp;nbsp; Yet the code for both of them is identical.&amp;nbsp; Why are there two sections of code instead of one?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is NON_SEGMENT a variable within PERF, or is it a macro variable?&lt;/P&gt;</description>
      <pubDate>Tue, 04 Dec 2018 13:57:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518385#M140289</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-12-04T13:57:18Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518387#M140291</link>
      <description>&lt;P&gt;I don't understand what you are asking.&lt;/P&gt;
&lt;P&gt;The first part makes no sense because the macro code is not doing anything. It is generating the exact same code in the THEN and ELSE branches.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The second part also doesn't make a lot of sense.&amp;nbsp; Perhaps you have left out a step?&lt;/P&gt;
&lt;P&gt;Do you just want to exclude the rows where SEGMENT='1'?&lt;/P&gt;
&lt;P&gt;Do you want to do that conditionally?&amp;nbsp; Or all of the time?&lt;/P&gt;</description>
      <pubDate>Tue, 04 Dec 2018 14:01:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518387#M140291</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-12-04T14:01:51Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518391#M140294</link>
      <description>actually it’s small bit of code. I didn’t include every variables and code. If it is linear it gives different report and for non linear different report but both looks almost same. Iam just trying include linear with non segment and non linear with non segment in the code using macro definition( will change macro definition based on non segment or segment before running the code)</description>
      <pubDate>Tue, 04 Dec 2018 14:10:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518391#M140294</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-04T14:10:51Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518392#M140295</link>
      <description>Non segment is macro variable which works only when I define it as Y</description>
      <pubDate>Tue, 04 Dec 2018 14:11:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518392#M140295</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-04T14:11:49Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518398#M140298</link>
      <description>&lt;P&gt;Using macro language, this sort of thing is not difficult once you have seen it.&amp;nbsp; For example, this code could be inserted within PROC PRINT:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%if %length(&amp;amp;dir) %then %do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;where direction = "&amp;amp;dir";&lt;/P&gt;
&lt;P&gt;%end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Depending on whether &amp;amp;DIR has a value or not, macro language is able to insert a WHERE statement within PROC PRINT.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The basic idea is that you have to know what the final SAS code should look like, and then get macro language to generate the appropriate SAS code.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Dec 2018 14:16:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518398#M140298</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-12-04T14:16:23Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518401#M140299</link>
      <description>&lt;P&gt;What are you trying to use the macro variable NON_SEGMENT to do?&amp;nbsp; How you use it determines how you should set its value. (or if instead you know what values it will have that will determine how you use it).&lt;/P&gt;
&lt;P&gt;For example if you wanted to allow both Y and y as the value of NON_SEGMENT then your macro logic might look like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%if %upcase(&amp;amp;non_segment)=Y %then %do;
....
%end;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 04 Dec 2018 14:20:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518401#M140299</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-12-04T14:20:30Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518405#M140300</link>
      <description>Yes if it is Y then output only first observation</description>
      <pubDate>Tue, 04 Dec 2018 14:25:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518405#M140300</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-04T14:25:59Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518408#M140301</link>
      <description>So I want include non segment and direction in both linear and non linear</description>
      <pubDate>Tue, 04 Dec 2018 14:27:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518408#M140301</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-04T14:27:15Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518426#M140309</link>
      <description>&lt;P&gt;In every case, you need to know what the SAS code would look like (without any macro language involved).&amp;nbsp; The role of macro language will be to generate the proper SAS code.&amp;nbsp; For example, you might decide that this would be the way to print the first observation only:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc print data=perf (obs=1);
id direction segment;
var accts;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In that case, you could modify your code using macro language to look like this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc print data=perf 
   %if &amp;amp;Non_segment = Y %then (obs=1);
   ;
id direction segment;
var accts;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So if you want to include nonsegment and direction, what would the SAS code look like without macro language?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Dec 2018 14:50:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518426#M140309</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-12-04T14:50:54Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518430#M140312</link>
      <description>From above I can understand that I can use if condition in proc print</description>
      <pubDate>Tue, 04 Dec 2018 14:58:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518430#M140312</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-04T14:58:35Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518467#M140321</link>
      <description>&lt;P&gt;You can never use an if condition in PROC PRINT.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can use macro language (including %if %then) to construct the statements that become part of your program.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Macro language is a tool unto itself.&amp;nbsp; It's not something you can learn by asking a few questions here and there.&amp;nbsp; It typically takes two full days in a classroom to cover an introduction to macro language.&amp;nbsp; There is good documentation available, if it is something you want to learn on your own.&amp;nbsp; It is advisable that you have a good grasp of SAS language first, because the whole purpose of macro language is to build a SAS program.&amp;nbsp; You have to be able to envision what the SAS program should look like, for macro language to be useful.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Dec 2018 16:18:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/518467#M140321</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-12-04T16:18:39Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519735#M140827</link>
      <description>&lt;P&gt;I am getting below error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="sasSource"&gt;proc print data=new;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;89 %if &amp;amp;Non_segment = Y %then (obs=1);&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: Expected %DO not found.&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: Skipping to next %END statement.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;90 ;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;91 id direction segment;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;92 var accts;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;93 run;&lt;/DIV&gt;</description>
      <pubDate>Sun, 09 Dec 2018 06:12:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519735#M140827</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-09T06:12:18Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519738#M140828</link>
      <description>&lt;P&gt;I tried below code.&lt;/P&gt;&lt;P&gt;%macro isblank(var);&lt;BR /&gt;%if %symexist(&amp;amp;var) %then 1; %*not exist*;&lt;BR /&gt;%else %if %sysevalf(%superq(&amp;amp;var)=,boolean) %then 1; %*blank*;&lt;BR /&gt;%else 0;&lt;BR /&gt;%mend isblank;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%let dir =A;&lt;BR /&gt;%let Non_segment=y;&lt;/P&gt;&lt;P&gt;proc print data=new;&lt;BR /&gt;%if %isblank(Non_segment) %then %do; obs=1;&lt;BR /&gt;id direction segment;&lt;BR /&gt;var acct;&lt;BR /&gt;%end;&lt;BR /&gt;%else %do;&lt;BR /&gt;proc print data =new;&lt;BR /&gt;id direction segment;&lt;BR /&gt;var acct;%end;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Getting below error&lt;/P&gt;&lt;DIV class="dijitContentPane dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignCenter dijitContentPaneSingleChild"&gt;&lt;DIV class="dijitBorderContainer dijitContainer row-fluid dijitLayoutContainer"&gt;&lt;DIV class="dijitContentPane dijitAlignCenter dijitContentPaneSingleChild dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane"&gt;&lt;DIV class="tabs dijitBorderContainer dijitContainer dojoDndTarget sasStudioTabsParentContainer dijitLayoutContainer dojoDndContainerOver"&gt;&lt;DIV class="dijitTabContainer dijitTabContainerTop dijitContainer dijitLayoutContainer tabStrip-disabled sasStudioTabsTabContainer sasStudioTabsTabContainerVertical sasStudioTabsTop dijitBorderContainer-child dijitBorderContainer-dijitTabContainerTop dijitBorderContainerPane dijitAlignCenter"&gt;&lt;DIV class="dijitTabPaneWrapper dijitTabContainerTop-container dijitAlignCenter"&gt;&lt;DIV class="dijitTabContainerTopChildWrapper dijitVisible"&gt;&lt;DIV class="dijitBorderContainer dijitContainer sasStudioTabsTabContainerChild dijitTabPane dijitTabContainerTop-child dijitTabContainerTop-dijitBorderContainer dijitLayoutContainer"&gt;&lt;DIV class="dijitBorderContainer dijitContainer dojoDndTarget dijitBorderContainer-child dijitBorderContainer-dijitBorderContainer dijitBorderContainerPane dijitAlignCenter dijitLayoutContainer dojoDndContainerOver"&gt;&lt;DIV class="dijitTabContainer dijitTabContainerTop dijitContainer dijitLayoutContainer tabStrip-disabled sasSuiteTabs dijitBorderContainer-child dijitBorderContainer-dijitTabContainerTop dijitBorderContainerPane dijitAlignCenter"&gt;&lt;DIV class="dijitTabPaneWrapper dijitTabContainerTop-container dijitAlignCenter"&gt;&lt;DIV class="dijitTabContainerTopChildWrapper dijitVisible"&gt;&lt;DIV class="dijitBorderContainer dijitContainer dijitTabPane dijitTabContainerTop-child dijitTabContainerTop-dijitBorderContainer dijitLayoutContainer"&gt;&lt;DIV class="dijitBorderContainer dijitContainer dijitBorderContainer-child dijitBorderContainer-dijitBorderContainer dijitBorderContainerPane dijitAlignCenter dijitLayoutContainer"&gt;&lt;DIV class="dijitContentPane dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignCenter"&gt;&lt;DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;74 %let dir =A;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;75 %let Non_segment=y;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;76&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class="sasSource"&gt;77 proc print data=new;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;78 %if %isblank(Non_segment) %then %do; obs=1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;78 %if %isblank(Non_segment) %then %do; obs=1;&lt;/DIV&gt;&lt;DIV class="sasError"&gt;___&lt;/DIV&gt;&lt;DIV class="sasError"&gt;180&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;79 id direction segment;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;80 var acct;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;81 %end;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;82 %else %do;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;83 proc print data =new;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;84 id direction segment;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;85 var acct;%end;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;86 run;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: PROCEDURE PRINT used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.99 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;cpu time 0.30 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;87&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;88 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;101&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="dijitContentPane statusBar dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignBottom"&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Sun, 09 Dec 2018 08:19:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519738#M140828</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-09T08:19:41Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519767#M140843</link>
      <description>&lt;P&gt;This error is happening because you are not picturing what the SAS program needs to look like.&amp;nbsp; Your macro code has the capability of generating this SAS program:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc print data=new;&lt;/P&gt;
&lt;P&gt;obs=1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now clearly that would generate an error.&amp;nbsp; You can't stick "obs=1;" in the middle of a PROC PRINT.&amp;nbsp; What you can do within PROC PRINT is:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc print data=new (obs=1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To do that, this is the macro code that would be most similar to your program:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc print data=one %if %isblank(Non_segment) %then (obs=1);&lt;/P&gt;
&lt;P&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The rest of it doesn't need to be part of the macro condition since it is the same whether the %ISBLANK condition is true or false:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;id direction segment;&lt;/P&gt;
&lt;P&gt;var acct;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Sun, 09 Dec 2018 19:41:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519767#M140843</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-12-09T19:41:57Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519972#M140942</link>
      <description>&lt;P&gt;I tried running below code&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="sasSource"&gt;&lt;DIV class="dijitContentPane dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignCenter dijitContentPaneSingleChild"&gt;&lt;DIV class="dijitBorderContainer dijitContainer row-fluid dijitLayoutContainer"&gt;&lt;DIV class="dijitContentPane dijitAlignCenter dijitContentPaneSingleChild dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane"&gt;&lt;DIV class="tabs dijitBorderContainer dijitContainer dojoDndTarget sasStudioTabsParentContainer dijitLayoutContainer dojoDndContainerOver"&gt;&lt;DIV class="dijitTabContainer dijitTabContainerTop dijitContainer dijitLayoutContainer tabStrip-disabled sasStudioTabsTabContainer sasStudioTabsTabContainerVertical sasStudioTabsTop dijitBorderContainer-child dijitBorderContainer-dijitTabContainerTop dijitBorderContainerPane dijitAlignCenter"&gt;&lt;DIV class="dijitTabPaneWrapper dijitTabContainerTop-container dijitAlignCenter"&gt;&lt;DIV class="dijitTabContainerTopChildWrapper dijitVisible"&gt;&lt;DIV class="dijitBorderContainer dijitContainer sasStudioTabsTabContainerChild dijitTabPane dijitTabContainerTop-child dijitTabContainerTop-dijitBorderContainer dijitLayoutContainer"&gt;&lt;DIV class="dijitBorderContainer dijitContainer dojoDndTarget dijitBorderContainer-child dijitBorderContainer-dijitBorderContainer dijitBorderContainerPane dijitAlignCenter dijitLayoutContainer dojoDndContainerOver"&gt;&lt;DIV class="dijitTabContainer dijitTabContainerTop dijitContainer dijitLayoutContainer tabStrip-disabled sasSuiteTabs dijitBorderContainer-child dijitBorderContainer-dijitTabContainerTop dijitBorderContainerPane dijitAlignCenter"&gt;&lt;DIV class="dijitTabPaneWrapper dijitTabContainerTop-container dijitAlignCenter"&gt;&lt;DIV class="dijitTabContainerTopChildWrapper dijitVisible"&gt;&lt;DIV class="dijitBorderContainer dijitContainer dijitTabPane dijitTabContainerTop-child dijitTabContainerTop-dijitBorderContainer dijitLayoutContainer"&gt;&lt;DIV class="dijitBorderContainer dijitContainer dijitBorderContainer-child dijitBorderContainer-dijitBorderContainer dijitBorderContainerPane dijitAlignCenter dijitLayoutContainer"&gt;&lt;DIV class="dijitContentPane dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignCenter"&gt;&lt;DIV&gt;&lt;DIV class="sasSource"&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let dir =A;
%let Non_segment=y;
%let linear=1;
 
%if &amp;amp;linear %then %do;
ods excel options(sheet_name="vol");
proc print data=new %if %isblank(Non_segment) %then (obs=1);
;
id direction segment;
var acct;
run;
%end;
%else %do;
ods excel options(sheet_name="vol");
proc print data=new; 
var  direction segment acct;
run;
%end;&lt;/CODE&gt;&lt;/PRE&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;93 %let dir =A;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;94 %let Non_segment=y;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;95 %let linear=1;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;96&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;97 %if &amp;amp;linear %then %do;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;98 ods excel options(sheet_name="vol");&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;99 proc print data=new %if %isblank(Non_segment) %then (obs=1);&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: Nesting of %IF statements in open code is not supported. %IF ignored.&lt;/DIV&gt;&lt;DIV class="sasError"&gt;ERROR: Skipping to next %END statement.&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;100 ;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;101 id direction segment;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;102 var acct;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;103 run;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: There were 6 observations read from the data set WORK.NEW.&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;NOTE: PROCEDURE PRINT used (Total process time):&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;real time 0.13 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;cpu time 0.11 seconds&lt;/DIV&gt;&lt;DIV class="sasNote"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;104 %end;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;105 %else %do;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;106 ods excel options(sheet_name="vol");&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;107 proc print data=new;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;108 var direction segment acct;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;109 run;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;110 %end;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;111&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;112 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;125&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="dijitContentPane statusBar dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignBottom"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="sasSource"&gt;What is the significance of having two semicolons&lt;/DIV&gt;</description>
      <pubDate>Mon, 10 Dec 2018 15:05:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519972#M140942</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-10T15:05:13Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519980#M140945</link>
      <description>&lt;P&gt;You need to semi-colon because there are two statements. One macro statement and one SAS statement. Each one needs a semi-colon.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You cannot use nested %IF statements in open code. And you cannot use %IF without %DO in open code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you really want to do that in OPEN code that put the optional part into a macro variable and use the %IF blocks to decide what is in the macro variable.&amp;nbsp; Otherwise create a macro and call the macro.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let obs= ;
%if &amp;amp;linear %then %do;
  %let obs= obs=1 ;
%end;

ods excel options(sheet_name="vol");
proc print data=new ( &amp;amp;obs );
%if &amp;amp;linear %then %do;
  id direction segment;
  var acct;
%end;
%else %do;
  var  direction segment acct;
%end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Dec 2018 15:16:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519980#M140945</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-12-10T15:16:42Z</dc:date>
    </item>
    <item>
      <title>Re: Include macro condition in report</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519988#M140950</link>
      <description>&lt;P&gt;I think my logic is different, number of observation is based on Non-segment value&lt;/P&gt;</description>
      <pubDate>Mon, 10 Dec 2018 15:25:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Include-macro-condition-in-report/m-p/519988#M140950</guid>
      <dc:creator>suresh123</dc:creator>
      <dc:date>2018-12-10T15:25:32Z</dc:date>
    </item>
  </channel>
</rss>

