<?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: Modifying SAS program  to macro enable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194675#M36606</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You will need a where condition based on the macro parameter.&lt;/P&gt;&lt;P&gt;Also, proc print supports by group processing, so you could do everything in one sweep, without wrapping it in a macro.&lt;/P&gt;&lt;P&gt;You may also take a look at proc report for generating complex reports, including by group processing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you still feel you need to do it with macro language, consult this:&lt;/P&gt;&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/mcrolref/68140/HTML/default/viewer.htm#titlepage.htm" title="http://support.sas.com/documentation/cdl/en/mcrolref/68140/HTML/default/viewer.htm#titlepage.htm"&gt;SAS(R) 9.4 Macro Language: Reference, Third Edition&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 05 Mar 2015 09:30:22 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2015-03-05T09:30:22Z</dc:date>
    <item>
      <title>Modifying SAS program  to macro enable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194672#M36603</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;How can I modify the program to create a macro call cust?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;What macro variable should i create?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Requirements:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. I want to use ID as the dataset name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. I want to use macro parameter to set the default value&lt;/P&gt;&lt;P&gt;%cust(m_ID=A999999, m_loanamt=2000000, m_loandate=12325, m_int=0.02, m_remainperiod=300, m_period=300)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://mega.co.nz/#!3JlmjQTZ!Kc8DLXWUOpNAiLXlCfpliVSquXb6L4nsyjbpcXNMQwM" title="https://mega.co.nz/#!3JlmjQTZ!Kc8DLXWUOpNAiLXlCfpliVSquXb6L4nsyjbpcXNMQwM"&gt;https://mega.co.nz/#!3JlmjQTZ!Kc8DLXWUOpNAiLXlCfpliVSquXb6L4nsyjbpcXNMQwM&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data ID;&lt;/P&gt;&lt;P&gt;&amp;nbsp; year=period/12;&lt;/P&gt;&lt;P&gt;&amp;nbsp; sch_pay=((int/12)*loanamt*((1+int/12)**(period)))/((1+int/12)**(period)-1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; total_int_paid=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; balance=loanamt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; a=remainperiod;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to period;&lt;/P&gt;&lt;P&gt;&amp;nbsp; payment_date=intnx('month',loandate,i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; paidint=round(balance*int/12);&lt;/P&gt;&lt;P&gt;&amp;nbsp; principal=round(sch_pay-paidint);&lt;/P&gt;&lt;P&gt;&amp;nbsp; balance=balance-principal;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if balance&amp;lt;0 then balance=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; total_int_paid=total_int_paid+paidint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; remainperiod=period-i;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if remainperiod&amp;lt;a then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop a i;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Mar 2015 23:10:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194672#M36603</guid>
      <dc:creator>556</dc:creator>
      <dc:date>2015-03-04T23:10:23Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying SAS program  to macro enable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194673#M36604</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Define your macro like that:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro cust(m_ID,m_loanamt,m_loandate,m_int=,m_remainperiod,m_period);&lt;/P&gt;&lt;P&gt;data &amp;amp;m_ID;&lt;/P&gt;&lt;P&gt;&amp;nbsp; year=&amp;amp;m_period/12;&lt;/P&gt;&lt;P&gt;&amp;nbsp; sch_pay=((int/12)*&amp;amp;m_loanamt*((1+int/12)**(&amp;amp;m_period)))/((1+int/12)**(&amp;amp;m_period)-1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; total_int_paid=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; balance=&amp;amp;m_loanamt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; a=&amp;amp;m_remainperiod;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to &amp;amp;m_period;&lt;/P&gt;&lt;P&gt;&amp;nbsp; payment_date=intnx('month',&amp;amp;m_loandate,i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; paidint=round(balance*int/12);&lt;/P&gt;&lt;P&gt;&amp;nbsp; principal=round(sch_pay-paidint);&lt;/P&gt;&lt;P&gt;&amp;nbsp; balance=balance-principal;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if balance&amp;lt;0 then balance=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; total_int_paid=total_int_paid+paidint;&lt;/P&gt;&lt;P&gt;&amp;nbsp; remainperiod=period-i;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if remainperiod&amp;lt;a then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; drop a i;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Mar 2015 07:28:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194673#M36604</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2015-03-05T07:28:28Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying SAS program  to macro enable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194674#M36605</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;THANKS!!!!&lt;/P&gt;&lt;P&gt;I just have one more question...&lt;/P&gt;&lt;P&gt;I have a dataset name Customer(&lt;A href="https://mega.co.nz/#!bEdT1YDL!ClZbMH870hsNb7PecJRUt9GAlrYVM8EK6YgYQOSVios" title="https://mega.co.nz/#!bEdT1YDL!ClZbMH870hsNb7PecJRUt9GAlrYVM8EK6YgYQOSVios"&gt;https://mega.co.nz/#!bEdT1YDL!ClZbMH870hsNb7PecJRUt9GAlrYVM8EK6YgYQOSVios&lt;/A&gt;)&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(0, 0, 0); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; color: rgb(255, 255, 255); padding: 2px; background-color: rgb(102, 144, 188);" valign="middle"&gt;A1.Customer&lt;/TH&gt;&lt;TH style="text-align: center; color: rgb(255, 255, 255); padding: 2px; background-color: rgb(102, 144, 188);" valign="middle"&gt;&lt;STRONG&gt;ID&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; color: rgb(255, 255, 255); padding: 2px; background-color: rgb(102, 144, 188);" valign="middle"&gt;&lt;STRONG&gt;NAME&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; color: rgb(255, 255, 255); padding: 2px; background-color: rgb(102, 144, 188);" valign="middle"&gt;LOANAMT&lt;/TH&gt;&lt;TH style="text-align: center; color: rgb(255, 255, 255); padding: 2px; background-color: rgb(102, 144, 188);" valign="middle"&gt;LOANDATE&lt;/TH&gt;&lt;TH style="text-align: center; color: rgb(255, 255, 255); padding: 2px; background-color: rgb(102, 144, 188);" valign="middle"&gt;INT&lt;/TH&gt;&lt;TH style="text-align: center; color: rgb(255, 255, 255); padding: 2px; background-color: rgb(102, 144, 188);" valign="middle"&gt;&lt;STRONG&gt;PERIOD&lt;BR /&gt;&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; color: rgb(255, 255, 255); padding: 2px; background-color: rgb(102, 144, 188);" valign="middle"&gt;REMAINPERIOD&lt;/TH&gt;&lt;TH style="text-align: center; color: rgb(255, 255, 255); padding: 2px; background-color: rgb(102, 144, 188);" valign="middle"&gt;YEAR&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;1&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;A2015539C&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;CHAN TAT MAN&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;2568287&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;1/18/2011&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;0.02&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;360&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;180&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;30&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;2&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;A2013223H&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;HUNG BA NAM&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;4200000&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;05/01/2014&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;.&lt;/TD&gt;&lt;TD style="padding: 2px; text-align: center;"&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to create another macro call amort&lt;/P&gt;&lt;P&gt;How can I modify the program below to create a new macro call amort and apply the previous macro %cust to generate a report for EACH customer by using %amort only?&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set A1.Customer;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if int=. then int=0.02;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if period=. then do; &lt;/P&gt;&lt;P&gt;&amp;nbsp; year=25;&lt;/P&gt;&lt;P&gt;&amp;nbsp; remain=year*12;&lt;/P&gt;&lt;P&gt;&amp;nbsp; period=year*12;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;proc print data=ID label;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; title "Loan amortization for NAME";&lt;/P&gt;&lt;P&gt;&amp;nbsp; format payment_date date9.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; label payment_date='Date of payment';&lt;/P&gt;&lt;P&gt;&amp;nbsp; var payment_date sch_pay total_int_paid balance paidint principal;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Mar 2015 09:12:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194674#M36605</guid>
      <dc:creator>556</dc:creator>
      <dc:date>2015-03-05T09:12:21Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying SAS program  to macro enable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194675#M36606</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You will need a where condition based on the macro parameter.&lt;/P&gt;&lt;P&gt;Also, proc print supports by group processing, so you could do everything in one sweep, without wrapping it in a macro.&lt;/P&gt;&lt;P&gt;You may also take a look at proc report for generating complex reports, including by group processing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you still feel you need to do it with macro language, consult this:&lt;/P&gt;&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/mcrolref/68140/HTML/default/viewer.htm#titlepage.htm" title="http://support.sas.com/documentation/cdl/en/mcrolref/68140/HTML/default/viewer.htm#titlepage.htm"&gt;SAS(R) 9.4 Macro Language: Reference, Third Edition&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Mar 2015 09:30:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194675#M36606</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2015-03-05T09:30:22Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying SAS program  to macro enable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194676#M36607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;(This question specifically ask us to create a new macro call amort)&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;I tried but i cannot solve the problem by myself&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro amort;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set sasuser.Customer end=final;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if int=. then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int=0.02;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if period=. then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; year=25;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; remainperiod=year*12;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; period=year*12;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if final then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('m_n', _n_);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not final then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('m_ID'!!left(_n_), ID);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('m_loanamt'!!left(_n_), loanamt);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('m_loandate'!!left(_n_), loandate);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('m_int'!!left(_n_), int);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('m_remainperiod'!!left(_n_), remainperiod);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('m_period'!!left(_n_), period);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('m_name'!!left(_n_), name);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put _user_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to &amp;amp;m_n;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %cust(&amp;amp;&amp;amp;m_ID&amp;amp;i, &amp;amp;&amp;amp;m_loanamt&amp;amp;i, &amp;amp;&amp;amp;m_loandate&amp;amp;i, &amp;amp;&amp;amp;m_int&amp;amp;i,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp;m_remainperiod&amp;amp;i, &amp;amp;&amp;amp;m_period&amp;amp;i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc print data=&amp;amp;&amp;amp;m_ID&amp;amp;i label;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; title "Loan amortation for &amp;amp;&amp;amp;m_name&amp;amp;i";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var payment_date sch_pay total_int_paid balance paidint principal;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; format payment_date date9.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; label payment_date='Date of payment';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%mend amort;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I use %amort(), my program stopped here&lt;/P&gt;&lt;P class="sasWarning" id="sasLogWarning1_1425554824486" style="color: #008000;"&gt;&lt;/P&gt;&lt;P class="sasWarning" style="color: #008000;"&gt;LOG:&lt;/P&gt;&lt;P class="sasWarning" style="color: #008000;"&gt;WARNING: Apparent invocation of macro CUST not resolved.&lt;/P&gt;&lt;P class="sasSource" style="color: #000000;"&gt;%cust(&amp;amp;&amp;amp;m_ID&amp;amp;i, &amp;amp;&amp;amp;m_loanamt&amp;amp;i, &amp;amp;&amp;amp;m_loandate&amp;amp;i, &amp;amp;&amp;amp;m_int&amp;amp;i, &amp;amp;&amp;amp;m_remainperiod&amp;amp;i, &amp;amp;&amp;amp;m_period&amp;amp;i);&lt;/P&gt;&lt;P class="sasError" style="color: #ff0000;"&gt;&amp;nbsp; _&lt;/P&gt;&lt;P class="sasError" style="color: #ff0000;"&gt;&amp;nbsp; 180&lt;/P&gt;&lt;P class="sasSource" style="color: #000000;"&gt;proc print data=&amp;amp;&amp;amp;m_ID&amp;amp;i label; title "Loan amortation for &amp;amp;&amp;amp;m_name&amp;amp;i"; var payment_date&lt;/P&gt;&lt;P class="sasSource" style="color: #000000;"&gt;sch_pay&lt;/P&gt;&lt;P class="sasError" id="sasLogError1_1425554824486" style="color: #ff0000;"&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Mar 2015 11:30:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194676#M36607</guid>
      <dc:creator>556</dc:creator>
      <dc:date>2015-03-05T11:30:52Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying SAS program  to macro enable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194677#M36608</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That error is telling you that the macro code for cust has not been run(or sucessfully).&amp;nbsp; Can I suggest to read up on macro language if you go down that route, however I agree with KurtBremser, I see no need to use any macro code here, there a basic coding options, e.g. #byval, by group processing etc.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Mar 2015 12:23:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194677#M36608</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-03-05T12:23:48Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying SAS program  to macro enable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194678#M36609</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Solved... Just by restarting SAS software= =&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Mar 2015 13:09:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-SAS-program-to-macro-enable/m-p/194678#M36609</guid>
      <dc:creator>556</dc:creator>
      <dc:date>2015-03-05T13:09:13Z</dc:date>
    </item>
  </channel>
</rss>

