<?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 Macro results not showing in SAS Studio</title>
    <link>https://communities.sas.com/t5/SAS-Studio/Macro-results-not-showing/m-p/723511#M9831</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I posted this same macro question in my previous post and 2 people made comments on that. I have corrected the work based on their comments but the problem persists; I am unable to see the results of the macro and the log gives no error message.&lt;/P&gt;
&lt;P&gt;Help needed, please.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My data, code and log are given below:&lt;/P&gt;
&lt;P&gt;Thans for in advance for your help.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ak.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;BR /&gt;/***MACRO*/&lt;BR /&gt;&lt;BR /&gt;data full_tdata;&lt;BR /&gt;input id$ 1-6 job 7-8 jobyrin 9-11 jobyrout 18-20  icode$ 23-27  lung$ 29-35;&lt;BR /&gt;datalines;&lt;BR /&gt;OSa13	3	73	      78	  6191	 cacase&lt;BR /&gt;OSa30	1	39	      46	  7181	 cacase&lt;BR /&gt;OSa30	3	56	      64	  6191	 cacase&lt;BR /&gt;OSa73	1	23	      31	  7181	 popcon&lt;BR /&gt;OSa73	2	31	      42	  5130	 popcon&lt;BR /&gt;OSa86	3	46	      60	  6198	 cacon&lt;BR /&gt;OSa86	4	60	      70	  5130	 cacon&lt;BR /&gt;OSa93	3	68	      72	  6121	 popcon&lt;BR /&gt;OSf26	1	54	      54	  6198	 popcon&lt;BR /&gt;OSf26	2	70	      70	  6191	 popcon&lt;BR /&gt;OSh77	1	63	      66	  6121	 cacon&lt;BR /&gt;OSh77	2	66	      70	  6121	 cacon&lt;BR /&gt;OSh77	3	70	      71	  6121	 cacon&lt;BR /&gt;OSi84	1	67	      75	  6191	 cacase&lt;BR /&gt;OSi84	2	75	      81	  6191	 cacase&lt;BR /&gt;OSj17	3	60	      75	  6191	 cacase&lt;BR /&gt;OSj17	4	65	      70	  6191	 cacase&lt;BR /&gt;;&lt;BR /&gt;&lt;BR /&gt;proc print data=full_tdata;&lt;BR /&gt;&lt;BR /&gt;data small_tdata; set full_tdata; drop lung;&lt;BR /&gt;&lt;BR /&gt;proc freq data=small_tdata;&lt;BR /&gt;tables job; run;  &lt;BR /&gt;&lt;BR /&gt;proc print data=small_tdata;&lt;BR /&gt;run;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; /* MACRO TEST*/&lt;BR /&gt;&lt;BR /&gt;*max 4 jobs per subject;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;%macro duration(database=small_tdata, icode=icode, Job_title="baker");&lt;BR /&gt;&lt;BR /&gt;*Creating a dataset containing all the jobs with selected icode;&lt;BR /&gt;&lt;BR /&gt;data &amp;amp;Job_title;&lt;BR /&gt;set &amp;amp;database;&lt;BR /&gt;if icode = "&amp;amp;6191";&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;*transposing dataset so that the YEARIN and YEAROUT of all jobs held by a subject are in the same row;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;*YEARIN;&lt;BR /&gt;&lt;BR /&gt;proc transpose data = &amp;amp;Job_title out = &amp;amp;Job_title._yearin prefix = YEARIN;&lt;BR /&gt;by ID;&lt;BR /&gt;var jobyrin;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data = &amp;amp;Job_title._yearin;&lt;BR /&gt;by id;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;*YEAROUT;&lt;BR /&gt;&lt;BR /&gt;proc transpose data = &amp;amp;Job_title out = &amp;amp;Job_title._yearout prefix = YEAROUT;&lt;BR /&gt;by ID;&lt;BR /&gt;var jobyrout;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data = &amp;amp;Job_title._yearout;&lt;BR /&gt;by id;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;data &amp;amp;Job_title._final;&lt;BR /&gt;merge &amp;amp;Job_title._yearin &amp;amp;Job_title._yearout;&lt;BR /&gt;by ID;&lt;BR /&gt;&lt;BR /&gt;array YEARIN (3) YEARIN1 YEARIN2 YEARIN3;&lt;BR /&gt;array YEAROUT (3) YEAROUT1 YEAROUT2 YEAROUT3;&lt;BR /&gt;&lt;BR /&gt;array YEARINv2 (3) YEARIN2 YEARIN3 YEARIN4 ;&lt;BR /&gt;array YEAROUTv2 (3) YEAROUT2 YEAROUT3 YEAROUT4;&lt;BR /&gt;&lt;BR /&gt;array YEARIN_F (4) YEARIN1 YEARIN2 YEARIN3 YEARIN4;&lt;BR /&gt;array YEAROUT_F (4) YEAROUT1 YEAROUT2 YEAROUT3 YEAROUT4;&lt;BR /&gt;&lt;BR /&gt;Array duration (4) Dur1 Dur2 Dur3 Dur4;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;do i = 1 to 3;&lt;BR /&gt;&lt;BR /&gt;if yearin(i) ne . and  yearinv2(i) ne . and yearinv2(i) le yearout(i) and yearoutv2(i) ge yearout(i) then do; yearinv2(i) = yearin(i); yearin(i) = .;yearout(i) = .;end;&lt;BR /&gt;else if  yearin(i) ne . and  yearinv2(i) ne . and yearinv2(i) le yearout(i) and yearoutv2(i) lt yearout(i) then do; yearinv2(i) = yearin(i);yearoutv2(i) = yearout(i); yearin(i) = .;yearout(i) = .;end;&lt;BR /&gt;&lt;BR /&gt;end;&lt;BR /&gt;&lt;BR /&gt;do i = 1 to 4;&lt;BR /&gt;&lt;BR /&gt;if YEARIN_F(i) = . then  YEARIN_F(i) = 0;&lt;BR /&gt;if YEAROUT_F(i) = . then  YEAROUT_F(i) = 0;&lt;BR /&gt;&lt;BR /&gt;duration(i) = YEAROUT_F(i) - YEARIN_F(i);&lt;BR /&gt;if YEARIN_F(i) ne 0 and YEAROUT_F(i) = YEARIN_F(i) then duration(i) = 0.5;&lt;BR /&gt;end;&lt;BR /&gt;&lt;BR /&gt;&amp;amp;Job_title._dur = Dur1 + Dur2 + Dur3 + Dur4;&lt;BR /&gt;&lt;BR /&gt;&amp;amp;Job_title._ever = 1;&lt;BR /&gt;&lt;BR /&gt;keep ID &amp;amp;Job_title._dur &amp;amp;Job_title._ever;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;/* Display the macro results*//*????? I am stuck here, please*/&lt;BR /&gt;&lt;BR /&gt;%duration(database=small_tdata,icode=icode, Job_title=baker);&lt;BR /&gt;&lt;BR /&gt;proc print data=&amp;amp;Job_title_final;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;%MEND duration;&lt;BR /&gt; &lt;/PRE&gt;
&lt;DIV class="sasSource"&gt;1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;2 TITLE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;3 FOOTNOTE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;4 OPTIONS LOCALE=en_US DFLANG=LOCALE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;5 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;6 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;7 OPTIONS VALIDVARNAME=V7;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;8 OPTIONS VALIDMEMNAME=EXTEND;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;9 FILENAME _HTMLOUT TEMP;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;10 FILENAME _RTFOUT TEMP ENCODING='UTF-8';&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;11 FILENAME _PDFOUT TEMP;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;12 FILENAME _GSFNAME TEMP;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;13 FILENAME _DATAOUT TEMP;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;14 %LET SYSCC=0;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;15 %LET _CLIENTAPP='SAS Studio';&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;16 %LET _CLIENTAPPABREV=Studio;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;17 %LET _CLIENTAPPVERSION=3.8;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;18 %LET _CLIENTVERSION=3.8;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;19 %LET _CLIENTMODE=basic;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;20 %LET _SASSERVERNAME=%BQUOTE(localhost);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;21 %LET _SASHOSTNAME=%BQUOTE(localhost);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;22 %LET _SASPROGRAMFILEHOST=%BQUOTE(localhost);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;23 %LET _CLIENTUSERID=%BQUOTE(sasdemo);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;24 %LET _CLIENTUSERNAME=%BQUOTE(sasdemo);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;25 %LET CLIENTMACHINE=%BQUOTE(10.0.2.2);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;26 %LET _CLIENTMACHINE=%BQUOTE(10.0.2.2);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;27 %let SASWORKLOCATION="%sysfunc(getoption(work))/";&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;28 FILENAME _CWD '.';&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;29 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;30 CALL SYMPUT('_SASWORKINGDIR',PATHNAME('_CWD'));&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;31 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;32 FILENAME _CWD;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;33&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;34 %LET _SASPROGRAMFILE = %NRQUOTE(%NRSTR(/folders/myfolders/multisitedata/Occup_Macro_ZM19.sas));&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;35 %LET _BASEURL = %BQUOTE(http://localhost:10080/SASStudio/);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;36 %LET _EXECENV=SASStudio;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;37 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;38 CALL SYMPUT("GRAPHINIT","");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;39 CALL SYMPUT("GRAPHTERM","");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;40 RC=TSLVL('SASXGOPT','N');&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;41 _ERROR_=0;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;42 IF (RC^=' ') THEN DO;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;43 CALL SYMPUT("GRAPHINIT","GOPTIONS RESET=ALL GSFNAME=_GSFNAME;");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;44 CALL SYMPUT("GRAPHTERM","GOPTIONS NOACCESSIBLE;");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;45 END;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;46 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;47 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;48 RC=SYSPROD("PRODNUM002");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;49 IF (RC^=1) THEN DO;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;50 CALL SYMPUT("GRAPHINIT","");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;51 CALL SYMPUT("GRAPHTERM","");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;52 END;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;53 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;54 %LET _DATAOUT_MIME_TYPE=;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;55 %LET _DATAOUT_NAME=;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;56 %LET _DATAOUT_TABLE=;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;57 %LET _DATAOUT_URL=;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;58 %SYMDEL _DATAOUT_MIME_TYPE _DATAOUT_NAME _DATAOUT_URL _DATAOUT_TABLE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;59 %LET _SASWS_ = %BQUOTE(/folders/myfolders);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;60 %LET _SASWSTEMP_=%BQUOTE(/folders/myfolders/.sasstudio/.images/717c6288-07d7-4390-9c85-69b0718d63f4);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;61 ODS LISTING CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;62 ODS AUTONAVIGATE OFF;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;63 ODS GRAPHICS ON;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;64 ODS HTML5 (ID=WEB) DEVICE=PNG GPATH="&amp;amp;_SASWSTEMP_" ENCODING=utf8 FILE=_HTMLOUT (TITLE='Results: Occup_Macro_ZM19.sas')&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;64 ! STYLE=Htmlblue OPTIONS(BITMAP_MODE='INLINE' OUTLINE='ON' SVG_MODE='INLINE'&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;64 ! CSS_PREFIX='.ods_717c6288-07d7-4390-9c85-69b0718d63f4' BODY_ID='div_717c6288-07d7-4390-9c85-69b0718d63f4' );&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;65 ODS RTF (ID=WEB) STYLE=Rtf FILE=_RTFOUT sasdate;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;66 ODS PDF (ID=WEB) STYLE=Pearl FILE=_PDFOUT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;67 &amp;amp;GRAPHINIT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;68 OPTIONS FIRSTOBS=1;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;69 OPTIONS OBS=MAX;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;70 OPTIONS DTRESET DATE NUMBER NOTES;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;71 OPTIONS NOTES STIMER SOURCE NOSYNTAXCHECK;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;72&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;73&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;74 /***MACRO*/&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;75&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;76 data full_tdata;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;77 input id$ 1-6 job 7-8 jobyrin 9-11 jobyrout 18-20 icode$ 23-27 lung$ 29-35;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;78 datalines;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;79 OSa13373 78 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;80 OSa30139 46 7181 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;81 OSa30356 64 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;82 OSa73123 31 7181 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;83 OSa73231 42 5130 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;84 OSa86346 60 6198 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;85 OSa86460 70 5130 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;86 OSa93368 72 6121 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;87 OSf26154 54 6198 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;88 OSf26270 70 6191 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;89 OSh77163 66 6121 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;90 OSh77266 70 6121 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;91 OSh77370 71 6121 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;92 OSi84167 75 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;93 OSi84275 81 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;94 OSj17360 75 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;95 OSj17465 70 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;96 ;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;97&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;98 proc print data=full_tdata;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;99&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;100 data small_tdata; set full_tdata; drop lung;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;101&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;102 proc freq data=small_tdata;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;103 tables job; run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;104&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;105 proc print data=small_tdata;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;106 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;107&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;108&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;109 /* MACRO TEST*/&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;110&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;111 *max 4 jobs per subject;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;112&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;113&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;114 %macro duration(database=small_tdata, icode=icode, Job_title="baker");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;115&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;116 *Creating a dataset containing all the jobs with selected icode;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;117&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;118 data &amp;amp;Job_title;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;119 set &amp;amp;database;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;120 if icode = "&amp;amp;6191";&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;121 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;122&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;123&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;124 *transposing dataset so that the YEARIN and YEAROUT of all jobs held by a subject are in the same row;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;125&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;126&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;127 *YEARIN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;128&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;129 proc transpose data = &amp;amp;Job_title out = &amp;amp;Job_title._yearin prefix = YEARIN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;130 by ID;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;131 var jobyrin;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;132 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;133&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;134 proc sort data = &amp;amp;Job_title._yearin;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;135 by id;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;136 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;137&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;138 *YEAROUT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;139&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;140 proc transpose data = &amp;amp;Job_title out = &amp;amp;Job_title._yearout prefix = YEAROUT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;141 by ID;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;142 var jobyrout;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;143 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;144&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;145 proc sort data = &amp;amp;Job_title._yearout;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;146 by id;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;147 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;148&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;149&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;150&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;151 data &amp;amp;Job_title._final;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;152 merge &amp;amp;Job_title._yearin &amp;amp;Job_title._yearout;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;153 by ID;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;154&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;155 array YEARIN (3) YEARIN1 YEARIN2 YEARIN3;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;156 array YEAROUT (3) YEAROUT1 YEAROUT2 YEAROUT3;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;157&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;158 array YEARINv2 (3) YEARIN2 YEARIN3 YEARIN4 ;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;159 array YEAROUTv2 (3) YEAROUT2 YEAROUT3 YEAROUT4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;160&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;161 array YEARIN_F (4) YEARIN1 YEARIN2 YEARIN3 YEARIN4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;162 array YEAROUT_F (4) YEAROUT1 YEAROUT2 YEAROUT3 YEAROUT4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;163&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;164 Array duration (4) Dur1 Dur2 Dur3 Dur4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;165&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;166&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;167&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;168 do i = 1 to 3;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;169&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;170 if yearin(i) ne . and yearinv2(i) ne . and yearinv2(i) le yearout(i) and yearoutv2(i) ge yearout(i) then do; yearinv2(i)&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;170 ! = yearin(i); yearin(i) = .;yearout(i) = .;end;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;171 else if yearin(i) ne . and yearinv2(i) ne . and yearinv2(i) le yearout(i) and yearoutv2(i) lt yearout(i) then do;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;171 ! yearinv2(i) = yearin(i);yearoutv2(i) = yearout(i); yearin(i) = .;yearout(i) = .;end;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;172&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;173 end;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;174&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;175 do i = 1 to 4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;176&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;177 if YEARIN_F(i) = . then YEARIN_F(i) = 0;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;178 if YEAROUT_F(i) = . then YEAROUT_F(i) = 0;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;179&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;180 duration(i) = YEAROUT_F(i) - YEARIN_F(i);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;181 if YEARIN_F(i) ne 0 and YEAROUT_F(i) = YEARIN_F(i) then duration(i) = 0.5;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;182 end;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;183&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;184 &amp;amp;Job_title._dur = Dur1 + Dur2 + Dur3 + Dur4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;185&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;186 &amp;amp;Job_title._ever = 1;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;187&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;188 keep ID &amp;amp;Job_title._dur &amp;amp;Job_title._ever;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;189 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;190&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;191 /* Display the macro results*//*????? I am stuck here, please*/&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;192&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;193 %duration(database=small_tdata,icode=icode, Job_title=baker);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;194&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;195 proc print data=&amp;amp;Job_title_final;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;196 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;197&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;198 %MEND duration;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;199&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;200&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;201 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;202 ODS HTML CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;203 &amp;amp;GRAPHTERM; ;*';*";*/;RUN;QUIT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;204 QUIT;RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;205 ODS HTML5 (ID=WEB) CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;206&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;207 ODS RTF (ID=WEB) CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;208 ODS PDF (ID=WEB) CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;209 FILENAME _GSFNAME;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;210 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;211 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;212 OPTIONS NOTES STIMER SOURCE SYNTAXCHECK;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;213&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;Please I am expecting the macro to print out the results of all the necessary variables:&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;id yearin yearout yearin_f yearout_f job_title_dur job_title_ever.......&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;Thank you.&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;ak.&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 04 Mar 2021 17:01:14 GMT</pubDate>
    <dc:creator>ak2011</dc:creator>
    <dc:date>2021-03-04T17:01:14Z</dc:date>
    <item>
      <title>Macro results not showing</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Macro-results-not-showing/m-p/723511#M9831</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I posted this same macro question in my previous post and 2 people made comments on that. I have corrected the work based on their comments but the problem persists; I am unable to see the results of the macro and the log gives no error message.&lt;/P&gt;
&lt;P&gt;Help needed, please.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My data, code and log are given below:&lt;/P&gt;
&lt;P&gt;Thans for in advance for your help.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ak.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;BR /&gt;/***MACRO*/&lt;BR /&gt;&lt;BR /&gt;data full_tdata;&lt;BR /&gt;input id$ 1-6 job 7-8 jobyrin 9-11 jobyrout 18-20  icode$ 23-27  lung$ 29-35;&lt;BR /&gt;datalines;&lt;BR /&gt;OSa13	3	73	      78	  6191	 cacase&lt;BR /&gt;OSa30	1	39	      46	  7181	 cacase&lt;BR /&gt;OSa30	3	56	      64	  6191	 cacase&lt;BR /&gt;OSa73	1	23	      31	  7181	 popcon&lt;BR /&gt;OSa73	2	31	      42	  5130	 popcon&lt;BR /&gt;OSa86	3	46	      60	  6198	 cacon&lt;BR /&gt;OSa86	4	60	      70	  5130	 cacon&lt;BR /&gt;OSa93	3	68	      72	  6121	 popcon&lt;BR /&gt;OSf26	1	54	      54	  6198	 popcon&lt;BR /&gt;OSf26	2	70	      70	  6191	 popcon&lt;BR /&gt;OSh77	1	63	      66	  6121	 cacon&lt;BR /&gt;OSh77	2	66	      70	  6121	 cacon&lt;BR /&gt;OSh77	3	70	      71	  6121	 cacon&lt;BR /&gt;OSi84	1	67	      75	  6191	 cacase&lt;BR /&gt;OSi84	2	75	      81	  6191	 cacase&lt;BR /&gt;OSj17	3	60	      75	  6191	 cacase&lt;BR /&gt;OSj17	4	65	      70	  6191	 cacase&lt;BR /&gt;;&lt;BR /&gt;&lt;BR /&gt;proc print data=full_tdata;&lt;BR /&gt;&lt;BR /&gt;data small_tdata; set full_tdata; drop lung;&lt;BR /&gt;&lt;BR /&gt;proc freq data=small_tdata;&lt;BR /&gt;tables job; run;  &lt;BR /&gt;&lt;BR /&gt;proc print data=small_tdata;&lt;BR /&gt;run;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; /* MACRO TEST*/&lt;BR /&gt;&lt;BR /&gt;*max 4 jobs per subject;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;%macro duration(database=small_tdata, icode=icode, Job_title="baker");&lt;BR /&gt;&lt;BR /&gt;*Creating a dataset containing all the jobs with selected icode;&lt;BR /&gt;&lt;BR /&gt;data &amp;amp;Job_title;&lt;BR /&gt;set &amp;amp;database;&lt;BR /&gt;if icode = "&amp;amp;6191";&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;*transposing dataset so that the YEARIN and YEAROUT of all jobs held by a subject are in the same row;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;*YEARIN;&lt;BR /&gt;&lt;BR /&gt;proc transpose data = &amp;amp;Job_title out = &amp;amp;Job_title._yearin prefix = YEARIN;&lt;BR /&gt;by ID;&lt;BR /&gt;var jobyrin;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data = &amp;amp;Job_title._yearin;&lt;BR /&gt;by id;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;*YEAROUT;&lt;BR /&gt;&lt;BR /&gt;proc transpose data = &amp;amp;Job_title out = &amp;amp;Job_title._yearout prefix = YEAROUT;&lt;BR /&gt;by ID;&lt;BR /&gt;var jobyrout;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;proc sort data = &amp;amp;Job_title._yearout;&lt;BR /&gt;by id;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;data &amp;amp;Job_title._final;&lt;BR /&gt;merge &amp;amp;Job_title._yearin &amp;amp;Job_title._yearout;&lt;BR /&gt;by ID;&lt;BR /&gt;&lt;BR /&gt;array YEARIN (3) YEARIN1 YEARIN2 YEARIN3;&lt;BR /&gt;array YEAROUT (3) YEAROUT1 YEAROUT2 YEAROUT3;&lt;BR /&gt;&lt;BR /&gt;array YEARINv2 (3) YEARIN2 YEARIN3 YEARIN4 ;&lt;BR /&gt;array YEAROUTv2 (3) YEAROUT2 YEAROUT3 YEAROUT4;&lt;BR /&gt;&lt;BR /&gt;array YEARIN_F (4) YEARIN1 YEARIN2 YEARIN3 YEARIN4;&lt;BR /&gt;array YEAROUT_F (4) YEAROUT1 YEAROUT2 YEAROUT3 YEAROUT4;&lt;BR /&gt;&lt;BR /&gt;Array duration (4) Dur1 Dur2 Dur3 Dur4;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;do i = 1 to 3;&lt;BR /&gt;&lt;BR /&gt;if yearin(i) ne . and  yearinv2(i) ne . and yearinv2(i) le yearout(i) and yearoutv2(i) ge yearout(i) then do; yearinv2(i) = yearin(i); yearin(i) = .;yearout(i) = .;end;&lt;BR /&gt;else if  yearin(i) ne . and  yearinv2(i) ne . and yearinv2(i) le yearout(i) and yearoutv2(i) lt yearout(i) then do; yearinv2(i) = yearin(i);yearoutv2(i) = yearout(i); yearin(i) = .;yearout(i) = .;end;&lt;BR /&gt;&lt;BR /&gt;end;&lt;BR /&gt;&lt;BR /&gt;do i = 1 to 4;&lt;BR /&gt;&lt;BR /&gt;if YEARIN_F(i) = . then  YEARIN_F(i) = 0;&lt;BR /&gt;if YEAROUT_F(i) = . then  YEAROUT_F(i) = 0;&lt;BR /&gt;&lt;BR /&gt;duration(i) = YEAROUT_F(i) - YEARIN_F(i);&lt;BR /&gt;if YEARIN_F(i) ne 0 and YEAROUT_F(i) = YEARIN_F(i) then duration(i) = 0.5;&lt;BR /&gt;end;&lt;BR /&gt;&lt;BR /&gt;&amp;amp;Job_title._dur = Dur1 + Dur2 + Dur3 + Dur4;&lt;BR /&gt;&lt;BR /&gt;&amp;amp;Job_title._ever = 1;&lt;BR /&gt;&lt;BR /&gt;keep ID &amp;amp;Job_title._dur &amp;amp;Job_title._ever;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;/* Display the macro results*//*????? I am stuck here, please*/&lt;BR /&gt;&lt;BR /&gt;%duration(database=small_tdata,icode=icode, Job_title=baker);&lt;BR /&gt;&lt;BR /&gt;proc print data=&amp;amp;Job_title_final;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;%MEND duration;&lt;BR /&gt; &lt;/PRE&gt;
&lt;DIV class="sasSource"&gt;1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;2 TITLE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;3 FOOTNOTE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;4 OPTIONS LOCALE=en_US DFLANG=LOCALE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;5 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;6 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;7 OPTIONS VALIDVARNAME=V7;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;8 OPTIONS VALIDMEMNAME=EXTEND;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;9 FILENAME _HTMLOUT TEMP;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;10 FILENAME _RTFOUT TEMP ENCODING='UTF-8';&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;11 FILENAME _PDFOUT TEMP;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;12 FILENAME _GSFNAME TEMP;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;13 FILENAME _DATAOUT TEMP;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;14 %LET SYSCC=0;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;15 %LET _CLIENTAPP='SAS Studio';&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;16 %LET _CLIENTAPPABREV=Studio;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;17 %LET _CLIENTAPPVERSION=3.8;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;18 %LET _CLIENTVERSION=3.8;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;19 %LET _CLIENTMODE=basic;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;20 %LET _SASSERVERNAME=%BQUOTE(localhost);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;21 %LET _SASHOSTNAME=%BQUOTE(localhost);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;22 %LET _SASPROGRAMFILEHOST=%BQUOTE(localhost);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;23 %LET _CLIENTUSERID=%BQUOTE(sasdemo);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;24 %LET _CLIENTUSERNAME=%BQUOTE(sasdemo);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;25 %LET CLIENTMACHINE=%BQUOTE(10.0.2.2);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;26 %LET _CLIENTMACHINE=%BQUOTE(10.0.2.2);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;27 %let SASWORKLOCATION="%sysfunc(getoption(work))/";&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;28 FILENAME _CWD '.';&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;29 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;30 CALL SYMPUT('_SASWORKINGDIR',PATHNAME('_CWD'));&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;31 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;32 FILENAME _CWD;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;33&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;34 %LET _SASPROGRAMFILE = %NRQUOTE(%NRSTR(/folders/myfolders/multisitedata/Occup_Macro_ZM19.sas));&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;35 %LET _BASEURL = %BQUOTE(http://localhost:10080/SASStudio/);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;36 %LET _EXECENV=SASStudio;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;37 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;38 CALL SYMPUT("GRAPHINIT","");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;39 CALL SYMPUT("GRAPHTERM","");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;40 RC=TSLVL('SASXGOPT','N');&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;41 _ERROR_=0;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;42 IF (RC^=' ') THEN DO;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;43 CALL SYMPUT("GRAPHINIT","GOPTIONS RESET=ALL GSFNAME=_GSFNAME;");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;44 CALL SYMPUT("GRAPHTERM","GOPTIONS NOACCESSIBLE;");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;45 END;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;46 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;47 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;48 RC=SYSPROD("PRODNUM002");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;49 IF (RC^=1) THEN DO;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;50 CALL SYMPUT("GRAPHINIT","");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;51 CALL SYMPUT("GRAPHTERM","");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;52 END;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;53 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;54 %LET _DATAOUT_MIME_TYPE=;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;55 %LET _DATAOUT_NAME=;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;56 %LET _DATAOUT_TABLE=;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;57 %LET _DATAOUT_URL=;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;58 %SYMDEL _DATAOUT_MIME_TYPE _DATAOUT_NAME _DATAOUT_URL _DATAOUT_TABLE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;59 %LET _SASWS_ = %BQUOTE(/folders/myfolders);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;60 %LET _SASWSTEMP_=%BQUOTE(/folders/myfolders/.sasstudio/.images/717c6288-07d7-4390-9c85-69b0718d63f4);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;61 ODS LISTING CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;62 ODS AUTONAVIGATE OFF;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;63 ODS GRAPHICS ON;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;64 ODS HTML5 (ID=WEB) DEVICE=PNG GPATH="&amp;amp;_SASWSTEMP_" ENCODING=utf8 FILE=_HTMLOUT (TITLE='Results: Occup_Macro_ZM19.sas')&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;64 ! STYLE=Htmlblue OPTIONS(BITMAP_MODE='INLINE' OUTLINE='ON' SVG_MODE='INLINE'&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;64 ! CSS_PREFIX='.ods_717c6288-07d7-4390-9c85-69b0718d63f4' BODY_ID='div_717c6288-07d7-4390-9c85-69b0718d63f4' );&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;65 ODS RTF (ID=WEB) STYLE=Rtf FILE=_RTFOUT sasdate;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;66 ODS PDF (ID=WEB) STYLE=Pearl FILE=_PDFOUT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;67 &amp;amp;GRAPHINIT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;68 OPTIONS FIRSTOBS=1;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;69 OPTIONS OBS=MAX;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;70 OPTIONS DTRESET DATE NUMBER NOTES;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;71 OPTIONS NOTES STIMER SOURCE NOSYNTAXCHECK;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;72&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;73&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;74 /***MACRO*/&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;75&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;76 data full_tdata;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;77 input id$ 1-6 job 7-8 jobyrin 9-11 jobyrout 18-20 icode$ 23-27 lung$ 29-35;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;78 datalines;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;79 OSa13373 78 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;80 OSa30139 46 7181 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;81 OSa30356 64 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;82 OSa73123 31 7181 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;83 OSa73231 42 5130 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;84 OSa86346 60 6198 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;85 OSa86460 70 5130 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;86 OSa93368 72 6121 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;87 OSf26154 54 6198 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;88 OSf26270 70 6191 popcon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;89 OSh77163 66 6121 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;90 OSh77266 70 6121 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;91 OSh77370 71 6121 cacon&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;92 OSi84167 75 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;93 OSi84275 81 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;94 OSj17360 75 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;95 OSj17465 70 6191 cacase&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;96 ;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;97&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;98 proc print data=full_tdata;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;99&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;100 data small_tdata; set full_tdata; drop lung;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;101&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;102 proc freq data=small_tdata;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;103 tables job; run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;104&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;105 proc print data=small_tdata;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;106 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;107&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;108&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;109 /* MACRO TEST*/&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;110&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;111 *max 4 jobs per subject;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;112&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;113&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;114 %macro duration(database=small_tdata, icode=icode, Job_title="baker");&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;115&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;116 *Creating a dataset containing all the jobs with selected icode;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;117&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;118 data &amp;amp;Job_title;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;119 set &amp;amp;database;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;120 if icode = "&amp;amp;6191";&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;121 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;122&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;123&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;124 *transposing dataset so that the YEARIN and YEAROUT of all jobs held by a subject are in the same row;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;125&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;126&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;127 *YEARIN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;128&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;129 proc transpose data = &amp;amp;Job_title out = &amp;amp;Job_title._yearin prefix = YEARIN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;130 by ID;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;131 var jobyrin;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;132 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;133&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;134 proc sort data = &amp;amp;Job_title._yearin;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;135 by id;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;136 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;137&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;138 *YEAROUT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;139&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;140 proc transpose data = &amp;amp;Job_title out = &amp;amp;Job_title._yearout prefix = YEAROUT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;141 by ID;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;142 var jobyrout;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;143 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;144&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;145 proc sort data = &amp;amp;Job_title._yearout;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;146 by id;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;147 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;148&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;149&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;150&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;151 data &amp;amp;Job_title._final;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;152 merge &amp;amp;Job_title._yearin &amp;amp;Job_title._yearout;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;153 by ID;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;154&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;155 array YEARIN (3) YEARIN1 YEARIN2 YEARIN3;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;156 array YEAROUT (3) YEAROUT1 YEAROUT2 YEAROUT3;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;157&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;158 array YEARINv2 (3) YEARIN2 YEARIN3 YEARIN4 ;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;159 array YEAROUTv2 (3) YEAROUT2 YEAROUT3 YEAROUT4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;160&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;161 array YEARIN_F (4) YEARIN1 YEARIN2 YEARIN3 YEARIN4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;162 array YEAROUT_F (4) YEAROUT1 YEAROUT2 YEAROUT3 YEAROUT4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;163&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;164 Array duration (4) Dur1 Dur2 Dur3 Dur4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;165&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;166&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;167&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;168 do i = 1 to 3;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;169&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;170 if yearin(i) ne . and yearinv2(i) ne . and yearinv2(i) le yearout(i) and yearoutv2(i) ge yearout(i) then do; yearinv2(i)&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;170 ! = yearin(i); yearin(i) = .;yearout(i) = .;end;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;171 else if yearin(i) ne . and yearinv2(i) ne . and yearinv2(i) le yearout(i) and yearoutv2(i) lt yearout(i) then do;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;171 ! yearinv2(i) = yearin(i);yearoutv2(i) = yearout(i); yearin(i) = .;yearout(i) = .;end;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;172&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;173 end;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;174&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;175 do i = 1 to 4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;176&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;177 if YEARIN_F(i) = . then YEARIN_F(i) = 0;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;178 if YEAROUT_F(i) = . then YEAROUT_F(i) = 0;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;179&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;180 duration(i) = YEAROUT_F(i) - YEARIN_F(i);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;181 if YEARIN_F(i) ne 0 and YEAROUT_F(i) = YEARIN_F(i) then duration(i) = 0.5;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;182 end;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;183&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;184 &amp;amp;Job_title._dur = Dur1 + Dur2 + Dur3 + Dur4;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;185&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;186 &amp;amp;Job_title._ever = 1;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;187&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;188 keep ID &amp;amp;Job_title._dur &amp;amp;Job_title._ever;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;189 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;190&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;191 /* Display the macro results*//*????? I am stuck here, please*/&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;192&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;193 %duration(database=small_tdata,icode=icode, Job_title=baker);&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;194&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;195 proc print data=&amp;amp;Job_title_final;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;196 run;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;197&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;198 %MEND duration;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;199&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;200&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;201 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;202 ODS HTML CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;203 &amp;amp;GRAPHTERM; ;*';*";*/;RUN;QUIT;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;204 QUIT;RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;205 ODS HTML5 (ID=WEB) CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;206&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;207 ODS RTF (ID=WEB) CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;208 ODS PDF (ID=WEB) CLOSE;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;209 FILENAME _GSFNAME;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;210 DATA _NULL_;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;211 RUN;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;212 OPTIONS NOTES STIMER SOURCE SYNTAXCHECK;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;213&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;Please I am expecting the macro to print out the results of all the necessary variables:&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;id yearin yearout yearin_f yearout_f job_title_dur job_title_ever.......&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;Thank you.&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;ak.&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="sasSource"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Mar 2021 17:01:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Macro-results-not-showing/m-p/723511#M9831</guid>
      <dc:creator>ak2011</dc:creator>
      <dc:date>2021-03-04T17:01:14Z</dc:date>
    </item>
    <item>
      <title>Re: Macro results not showing</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Macro-results-not-showing/m-p/723515#M9832</link>
      <description>&lt;P&gt;You defined a macro named DURATION.&lt;/P&gt;
&lt;P&gt;But you never called it. So it never ran.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Mar 2021 17:06:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Macro-results-not-showing/m-p/723515#M9832</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2021-03-04T17:06:19Z</dc:date>
    </item>
    <item>
      <title>Re: Macro results not showing</title>
      <link>https://communities.sas.com/t5/SAS-Studio/Macro-results-not-showing/m-p/723519#M9833</link>
      <description>&lt;P&gt;You can't run&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%duration ( )&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;from inside the macro definition, it has to be after the macro definition. Something like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro duration( );
... your code ...
%mend;

%duration( )&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 04 Mar 2021 17:14:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Studio/Macro-results-not-showing/m-p/723519#M9833</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2021-03-04T17:14:00Z</dc:date>
    </item>
  </channel>
</rss>

