<?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: how to dynamic html with long mixed datas set (lots of special characters) in Developers</title>
    <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/454565#M5662</link>
    <description>&lt;P&gt;I'm able to output to the macro facility&amp;nbsp;below is the solution for output to macro facility by building off the before mentioned table made via proc sql.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm not sure how to&amp;nbsp;handle special characters using this approach.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For instance we have quotes marks and lots of other fun items in the COMMENT column&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proc sql ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tr name = ""row",rwnm,""" &amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""ln",rwnm,""" type=""text"" value =""", rwnm ,""" size=""3"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""ct",rwnm ,""" type=""text"" value =""", trim(CODE_TYPE) ,""" size=""10"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""cd",rwnm ,""" type=""text"" value =""", trim(CODE) ,""" size=""10"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""md",rwnm ,""" type=""text"" value =""", trim(MODIFIER) ,""" size=""6"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""dc",rwnm ,"""type=""text"" value =""", trim(DESCRIPTION) ,""" size=""100"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD &amp;gt;&amp;lt;select name=""asp" ,rwnm,""" style=""width: 200px;"" &amp;gt; &amp;lt;option value=""" , trim(RESPONSE) , """&amp;gt;" ,&amp;nbsp; trim(RESPONSE) , "&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD &amp;gt;&amp;lt;select name=""acd" ,rwnm,""" style=""width: 50px;"" &amp;gt; &amp;lt;option value=""" , trim(ADD_CODE) , """&amp;gt;" ,&amp;nbsp; trim(ADD_CODE) , "&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""amd",rwnm ,""" type=""text"" value =""" , trim(ADD_MODIFIER) ,""" size=""6"" /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""aln",rwnm ,""" type=""text"" value =""" , ADD_LINE_NUMBER ,""" size=""2"" /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""asC",rwnm ,""" type=""text"" value =""" , trim(COMMENT) ,""" size=""60"" &amp;gt;&amp;lt;/tD&amp;gt;';")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;into &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:rw_lst1 - :rw_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:ln_lst1 - :ln_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:ct_lst1 - :ct_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:cd_lst1 - :cd_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:md_lst1 - :md_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:dc_lst1 - :dc_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:asp_lst1 - :asp_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:acd_lst1 - :acd_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:amd_lst1 - :amd_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:aln_lst1 - :aln_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:asc_lst1 -&amp;nbsp; :asc_lst&amp;amp;m_ln&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;from %bquote(usr_dat.)&amp;amp;_USERNAME;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;quit;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;and later it is called back into the macro processor as shown where m_ln is the number of observations in the data set.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%do q= 1 %to &amp;amp;m_ln;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;rw_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;ln_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;ct_lst&amp;amp;q &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;cd_lst&amp;amp;q &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;md_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;dc_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;asp_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;acd_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;amd_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;aln_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;asc_lst&amp;amp;q&lt;BR /&gt;%end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 16 Apr 2018 20:23:27 GMT</pubDate>
    <dc:creator>TimMandell</dc:creator>
    <dc:date>2018-04-16T20:23:27Z</dc:date>
    <item>
      <title>how to dynamic html with long mixed datas set (lots of special characters)</title>
      <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/454553#M5661</link>
      <description>&lt;P&gt;I've create a table in a stored process like the following&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proc sql ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;create table %bquote(usr_dat.)&amp;amp;_USERNAME as&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;monotonic() as rwnm,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trim(CODE_TYPE) as code_type, &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trim(CODE)as code,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trim(MODIFIER)as modifier,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trim(DESCRIPTION) as description, &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trim(RESPONSE) as response,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trim(ADD_CODE) as add_code,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trim(ADD_MODIFIER) as add_modifier,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADD_LINE_NUMBER,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trim(COMMENT) as comment&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;from dat.rvw_data&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;whr1 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;quit;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I would like output&amp;nbsp;to the macro processor&amp;nbsp;that is like:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD&amp;gt;&amp;lt;input name=""ln",monotonic() ,""" type=""text"" value =""", monotonic() ,""" size=""3"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD&amp;gt;&amp;lt;input name=""ct",monotonic() ,""" type=""text"" value =""", trim(CODE_TYPE) ,""" size=""10"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD&amp;gt;&amp;lt;input name=""cd",monotonic() ,""" type=""text"" value =""", trim(CODE) ,""" size=""10"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD&amp;gt;&amp;lt;input name=""md",monotonic() ,""" type=""text"" value =""", trim(MODIFIER) ,""" size=""6"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD&amp;gt;&amp;lt;input name=""dc",monotonic() ,"""type=""text"" value =""", trim(DESCRIPTION) ,""" size=""100"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD &amp;gt;&amp;lt;select name=""asp" ,monotonic(),""" style=""width: 200px;"" &amp;gt; &amp;lt;option value=""" , trim(RESPONSE) , """&amp;gt;" ,&amp;nbsp; trim(RESPONSE) , "&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD &amp;gt;&amp;lt;select name=""acd" ,monotonic(),""" style=""width: 50px;"" &amp;gt; &amp;lt;option value=""" , trim(ADD_CODE) , """&amp;gt;" ,&amp;nbsp; trim(ADD_CODE) , "&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD&amp;gt;&amp;lt;input name=""amd",monotonic() ,""" type=""text"" value =""" , trim(ADD_MODIFIER) ,""" size=""6"" /&amp;gt;&amp;lt;/tD&amp;gt;';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD&amp;gt;&amp;lt;input name=""aln",monotonic() ,""" type=""text"" value =""" , ADD_LINE_NUMBER ,""" size=""2"" /&amp;gt;&amp;lt;/tD&amp;gt;';&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;put '&amp;lt;tD&amp;gt;&amp;lt;input name=""asC",monotonic() ,""" type=""text"" value =""" , trim(COMMENT) ,""" size=""60"" &amp;gt;&amp;lt;/tD&amp;gt;';&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can do something like this in proc SQL with CAT as calling the variable&amp;nbsp;but I run into the buffer issue&lt;/P&gt;
&lt;P&gt;200 characters in WHERE clauses and/or PROC SQL.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like to learn how to accomplish this in macro processor so I can take full advantage of:&lt;/P&gt;
&lt;P&gt;65534 characters when called from the macro processor.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2018 19:51:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/454553#M5661</guid>
      <dc:creator>TimMandell</dc:creator>
      <dc:date>2018-04-16T19:51:31Z</dc:date>
    </item>
    <item>
      <title>Re: how to dynamic html with long mixed datas set (lots of special characters)</title>
      <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/454565#M5662</link>
      <description>&lt;P&gt;I'm able to output to the macro facility&amp;nbsp;below is the solution for output to macro facility by building off the before mentioned table made via proc sql.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm not sure how to&amp;nbsp;handle special characters using this approach.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For instance we have quotes marks and lots of other fun items in the COMMENT column&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proc sql ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tr name = ""row",rwnm,""" &amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""ln",rwnm,""" type=""text"" value =""", rwnm ,""" size=""3"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""ct",rwnm ,""" type=""text"" value =""", trim(CODE_TYPE) ,""" size=""10"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""cd",rwnm ,""" type=""text"" value =""", trim(CODE) ,""" size=""10"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""md",rwnm ,""" type=""text"" value =""", trim(MODIFIER) ,""" size=""6"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""dc",rwnm ,"""type=""text"" value =""", trim(DESCRIPTION) ,""" size=""100"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD &amp;gt;&amp;lt;select name=""asp" ,rwnm,""" style=""width: 200px;"" &amp;gt; &amp;lt;option value=""" , trim(RESPONSE) , """&amp;gt;" ,&amp;nbsp; trim(RESPONSE) , "&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD &amp;gt;&amp;lt;select name=""acd" ,rwnm,""" style=""width: 50px;"" &amp;gt; &amp;lt;option value=""" , trim(ADD_CODE) , """&amp;gt;" ,&amp;nbsp; trim(ADD_CODE) , "&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""amd",rwnm ,""" type=""text"" value =""" , trim(ADD_MODIFIER) ,""" size=""6"" /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""aln",rwnm ,""" type=""text"" value =""" , ADD_LINE_NUMBER ,""" size=""2"" /&amp;gt;&amp;lt;/tD&amp;gt;';"),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""asC",rwnm ,""" type=""text"" value =""" , trim(COMMENT) ,""" size=""60"" &amp;gt;&amp;lt;/tD&amp;gt;';")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;into &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:rw_lst1 - :rw_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:ln_lst1 - :ln_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:ct_lst1 - :ct_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:cd_lst1 - :cd_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:md_lst1 - :md_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:dc_lst1 - :dc_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:asp_lst1 - :asp_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:acd_lst1 - :acd_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:amd_lst1 - :amd_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:aln_lst1 - :aln_lst&amp;amp;m_ln,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:asc_lst1 -&amp;nbsp; :asc_lst&amp;amp;m_ln&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;from %bquote(usr_dat.)&amp;amp;_USERNAME;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;quit;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;and later it is called back into the macro processor as shown where m_ln is the number of observations in the data set.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%do q= 1 %to &amp;amp;m_ln;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;rw_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;ln_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;ct_lst&amp;amp;q &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;cd_lst&amp;amp;q &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;md_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;dc_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;asp_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;acd_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;amd_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;aln_lst&amp;amp;q&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;asc_lst&amp;amp;q&lt;BR /&gt;%end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2018 20:23:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/454565#M5662</guid>
      <dc:creator>TimMandell</dc:creator>
      <dc:date>2018-04-16T20:23:27Z</dc:date>
    </item>
    <item>
      <title>Re: how to dynamic html with long mixed datas set (lots of special characters)</title>
      <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/454576#M5663</link>
      <description>&lt;P&gt;I urge you to avoid such quoting gymnastics&amp;nbsp;entirely by&amp;nbsp;separating your data extraction (backend) from the presentation layer (frontend).&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;See tip 1 of these &lt;A href="https://www.linkedin.com/pulse/5-tips-sas-app-developers-allan-bowe/" target="_self"&gt;5 Tips for SAS App Developers&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The macro language simply cannot handle certain special characters - for instance those used to enquote (&lt;A href="http://support.sas.com/kb/36/916.html" target="_blank"&gt;http://support.sas.com/kb/36/916.html&lt;/A&gt;).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You'll save yourself much&amp;nbsp;head banging by keeping your COMMENT column in the PDV and writing it to your frontend using `proc json` (or with the &lt;A href="https://github.com/Boemska/h54s" target="_self"&gt;Boemska h54s Adapter&lt;/A&gt;).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2018 20:58:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/454576#M5663</guid>
      <dc:creator>AllanBowe</dc:creator>
      <dc:date>2018-04-16T20:58:13Z</dc:date>
    </item>
    <item>
      <title>Re: how to dynamic html with long mixed datas set (lots of special characters)</title>
      <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/454726#M5664</link>
      <description>&lt;P&gt;I agree there should be one macro for representation and another for data side though the entirety of the "app" will be deployed in SAS Stored Procedure server.&amp;nbsp; So to me one macro v. many macros doesn't change the fundamentals just the read ability.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using JSON and later JQUERY to interact the data with HTML is a leaning curve it seems I'll have to get passed to overcome special characters.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Given:&lt;/P&gt;
&lt;P&gt;"The macro language simply cannot handle certain special characters - for instance those used to enquote (&lt;A href="http://support.sas.com/kb/36/916.html" target="_blank" rel="nofollow noopener noreferrer"&gt;http://support.sas.com/kb/36/916.html&lt;/A&gt;)."&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm not sure there is a really solution due to the environment I'm working in.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Apr 2018 13:13:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/454726#M5664</guid>
      <dc:creator>TimMandell</dc:creator>
      <dc:date>2018-04-17T13:13:43Z</dc:date>
    </item>
    <item>
      <title>Re: how to dynamic html with long mixed datas set (lots of special characters)</title>
      <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/455390#M5665</link>
      <description>&lt;P&gt;I couldn't follow the json path it just didn't click.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The below code&amp;nbsp;represents how to loop through macro variable in a put statement thus forgoing CAT and the buffer issue of trying to use put in the SQL statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Still having problems when special characters,&amp;nbsp;esp quotes, that&amp;nbsp;are in the macro&amp;nbsp;array variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;asc_LST array that has all kinds of characters due to being a results from user free text entries.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%nrbquote() is something I'm testing that does not work on the asc_LST array and&amp;nbsp;have not proven that is works on all values from each of the other&amp;nbsp;arrays.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All assistance is greatly appreciated. Thank you&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR /&gt;%if %sysevalf(%superq( prov1 ) ne , boolean)&amp;nbsp; &lt;BR /&gt;&amp;nbsp;and %sysevalf(%superq( mrn1 ) ne , boolean)&amp;nbsp; &lt;BR /&gt;&amp;nbsp;and %sysevalf(%superq( dos1 ) ne , boolean)&amp;nbsp;&amp;nbsp; %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;put&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %DO L =1 %TO &amp;amp;M_LN;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmt = htmlencode("&amp;amp;&amp;amp;asc_LST&amp;amp;L");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'&amp;lt;tr name = "row' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" &amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;tD&amp;gt;&amp;lt;input type="text" name="ln' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" value ="' "%nrbquote(&amp;amp;&amp;amp;LN_LST&amp;amp;L)" '" size="3" tabindex="-1" readonly /&amp;gt;&amp;lt;/tD&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;tD&amp;gt;&amp;lt;input type="text" name="ct' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" value ="' "%nrbquote(&amp;amp;&amp;amp;ct_LST&amp;amp;L)" '" size="10" tabindex="-1" readonly /&amp;gt;&amp;lt;/tD&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tD&amp;gt;&amp;lt;input type="text" name="cd' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" value ="' "%nrbquote(&amp;amp;&amp;amp;cd_LST&amp;amp;L)" '" size="10" tabindex="-1" readonly /&amp;gt;&amp;lt;/td&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tD&amp;gt;&amp;lt;input type="text" name="md' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" value ="' "%nrbquote(&amp;amp;&amp;amp;md_LST&amp;amp;L)" '" size="6" tabindex="-1" readonly /&amp;gt;&amp;lt;/td&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tD&amp;gt;&amp;lt;input type="text" name="dc' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" value ="' "%nrbquote(&amp;amp;&amp;amp;dc_LST&amp;amp;L)" '" size="100" tabindex="-1" readonly /&amp;gt;&amp;lt;/td&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tD &amp;gt;&amp;lt;select name="asp' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" style= "width: 200px;"&amp;gt;&amp;lt;option value="' "%nrbquote(&amp;amp;&amp;amp;asp_LST&amp;amp;L)" '"&amp;gt;' "%nrbquote(&amp;amp;&amp;amp;asp_LST&amp;amp;L)" '&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/td&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tD &amp;gt;&amp;lt;select name="acd' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" style= "width: 50px;"&amp;gt;&amp;lt;option value="' "%nrbquote(&amp;amp;&amp;amp;acd_LST&amp;amp;L)" '"&amp;gt;' "%nrbquote(&amp;amp;&amp;amp;acd_LST&amp;amp;L)" '&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/td&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tD&amp;gt;&amp;lt;input type="text" name="amd' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" value ="' "%nrbquote(&amp;amp;&amp;amp;amd_LST&amp;amp;L)" '"size="6" /&amp;gt;&amp;lt;/td&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tD&amp;gt;&amp;lt;input type="text" name="aln' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" value ="' "%nrbquote(&amp;amp;&amp;amp;aln_LST&amp;amp;L)" '"size="2" /&amp;gt;&amp;lt;/td&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tD&amp;gt;&amp;lt;input type="text" name="asC' "&amp;amp;&amp;amp;LN_LST&amp;amp;L" '" value ="' "&amp;amp;&amp;amp;asc_LST&amp;amp;L" '"size="100" /&amp;gt;&amp;lt;/td&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/tr&amp;gt;'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;%END;&lt;BR /&gt;;&lt;BR /&gt;%end;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Wed, 18 Apr 2018 20:07:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/455390#M5665</guid>
      <dc:creator>TimMandell</dc:creator>
      <dc:date>2018-04-18T20:07:54Z</dc:date>
    </item>
    <item>
      <title>Re: how to dynamic html with long mixed datas set (lots of special characters)</title>
      <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/455881#M5666</link>
      <description>&lt;P&gt;My point was - rather than trying to write a HTML file directly, try hosting your front end (HTML, CSS, JavaScript) on the mid-tier and sending data to it via the HTML5 for SAS &lt;A href="https://github.com/Boemska/h54s" target="_self"&gt;Adapter&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A quick guide to this approach is here:&amp;nbsp; &lt;A href="https://www.rawsas.com/2015/12/building-web-apps-with-sas/" target="_self"&gt;https://www.rawsas.com/2015/12/building-web-apps-with-sas/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Apr 2018 10:53:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/455881#M5666</guid>
      <dc:creator>AllanBowe</dc:creator>
      <dc:date>2018-04-20T10:53:02Z</dc:date>
    </item>
    <item>
      <title>Re: how to dynamic html with long mixed datas set (lots of special characters)</title>
      <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/455906#M5667</link>
      <description>&lt;P&gt;I don't disagree with your approach it&amp;nbsp;doesn't seem to&amp;nbsp;fit into our set up.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We only have&amp;nbsp;a managed&amp;nbsp;SAS BI interface for our web interface.&lt;/P&gt;
&lt;P&gt;Managed meaning security and environment&amp;nbsp;are a request to tech support and not&amp;nbsp;direct - no SAS BI&amp;nbsp;Management Console available to&amp;nbsp;developers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;No Apache server or the like.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To my understanding of SAS BI&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The "middle tier"&amp;nbsp;is the&amp;nbsp;Stored process because it is the only method to get SAS BI to accept all web languages in a programmable way with the most flexibility being the&amp;nbsp;" data _null_;&amp;nbsp;file _webout; " method.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this fashion everything&amp;nbsp;should be called by macro processor to allow divisions of work. This can be portioned by creating many stored processes and call to each from a master stored process or all macro's in one file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When reading over the website provided I'm not certain how it fits into our setup but it does give examples of using Java that is greatly appreciated.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Apr 2018 13:05:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/455906#M5667</guid>
      <dc:creator>TimMandell</dc:creator>
      <dc:date>2018-04-20T13:05:14Z</dc:date>
    </item>
    <item>
      <title>Re: how to dynamic html with long mixed datas set (lots of special characters)</title>
      <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/456058#M5668</link>
      <description>&lt;P&gt;I found a method to handle the special characters. BUT I'm too much of a rookie to get the data back into the macro processor with out it being reinterpreted.&amp;nbsp; Ideas?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; data hmm ;
 set  dt;
 length a10 $32767;
  a1 = strip(rwnm);
  a2 = strip(CODE_TYPE);
  a3 = strip(htmlencode(CODE,'quot amp gt lt apos 7bit'));
  a4 = strip(MODIFIER);
  a5 = strip(DESCRIPTION);
  a6 = strip(htmlencode(RESPONSE,'quot amp gt lt apos 7bit'));
  a7 = strip(ADD_CODE);
  a8 = strip(ADD_MODIFIER);
  a9 = strip(ADD_LINE_NUMBER);
  a10 = strip(htmlencode(COMMENT,'quot amp gt lt apos 7bit'));
 Run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried the following but it&amp;nbsp;just reads the &amp;amp;quot; and other replaced characters as sas code&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; proc sql;
 select
  cat("put '&amp;lt;tr name = ""row", strip(a1) ,""" &amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""ln", strip(a1) ,""" type=""text"" value =""" , strip(a1) ,""" size=""3"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""ct", strip(a1) ,""" type=""text"" value =""" , strip(a2) ,""" size=""10"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""cd", strip(a1) ,""" type=""text"" value =""" , strip(a3) ,""" size=""10"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""md", strip(a1) ,""" type=""text"" value =""" , strip(a4) ,""" size=""6"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""dc", strip(a1) ,"""type=""text"" value =""" , strip(a5) ,""" size=""100"" tabindex=""-1"" readonly /&amp;gt;&amp;lt;/tD&amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;select name=""asp", strip(a1) ,""" style=""width: 200px,"" &amp;gt; &amp;lt;option value =""" , strip(a6)  , """&amp;gt;" ,  strip(a6) , "&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;select name=""acd", strip(a1) ,""" style=""width: 50px,"" &amp;gt;  &amp;lt;option value =""" , strip(a7) , """&amp;gt;" ,  strip(a7) , "&amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""amd", strip(a1) ,""" type=""text"" value =""" , strip(a8) ,""" size=""6"" /&amp;gt;&amp;lt;/tD&amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""aln", strip(a1) ,""" type=""text"" value =""" , strip(a9) ,""" size=""2"" /&amp;gt;&amp;lt;/tD&amp;gt;';"),
  cat("put '&amp;lt;tD&amp;gt;&amp;lt;input name=""asC", strip(a1) ,""" type=""text"" value =""" , strip(a10) ,""" size=""60"" &amp;gt;&amp;lt;/tD&amp;gt; &amp;lt;/tr&amp;gt;';")
 into 
  :rw_lst1- :rw_lst&amp;amp;m_ln,
  :ln_lst1 - :ln_lst&amp;amp;m_ln,
  :ct_lst1 - :ct_lst&amp;amp;m_ln,
  :cd_lst1 - :cd_lst&amp;amp;m_ln,
  :md_lst1 - :md_lst&amp;amp;m_ln,
  :dc_lst1 - :dc_lst&amp;amp;m_ln,
  :asp_lst1 - :asp_lst&amp;amp;m_ln,
  :acd_lst1 - :acd_lst&amp;amp;m_ln,
  :amd_lst1 - :amd_lst&amp;amp;m_ln,
  :aln_lst1 - :aln_lst&amp;amp;m_ln,
  :asc_lst1 - :asc_lst&amp;amp;m_ln 
 from hmm;

%do q = 1 %to &amp;amp;m_ln;
  &amp;amp;&amp;amp;rw_lst&amp;amp;q;
  &amp;amp;&amp;amp;ln_lst&amp;amp;q;
  &amp;amp;&amp;amp;ct_lst&amp;amp;q;
  &amp;amp;&amp;amp;cd_lst&amp;amp;q;
  &amp;amp;&amp;amp;md_lst&amp;amp;q;
  &amp;amp;&amp;amp;dc_lst&amp;amp;q; 
  &amp;amp;&amp;amp;asp_lst&amp;amp;q;
  &amp;amp;&amp;amp;acd_lst&amp;amp;q;
  &amp;amp;&amp;amp;amd_lst&amp;amp;q;
  &amp;amp;&amp;amp;aln_lst&amp;amp;q;
  &amp;amp;&amp;amp;asc_lst&amp;amp;q;

%end;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 20 Apr 2018 20:06:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/456058#M5668</guid>
      <dc:creator>TimMandell</dc:creator>
      <dc:date>2018-04-20T20:06:55Z</dc:date>
    </item>
    <item>
      <title>Re: how to dynamic html with long mixed datas set (lots of special characters)</title>
      <link>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/458260#M5669</link>
      <description>&lt;P&gt;thanks to:&lt;/P&gt;
&lt;P style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;FONT color="#000000" face="Microsoft Sans Serif"&gt;Russ Tyndall&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;FONT color="#000000" face="Microsoft Sans Serif"&gt;SAS Technical Support Analyst&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;FONT color="#000000" face="Microsoft Sans Serif"&gt;SAS Certified Advanced Programmer for SAS 9&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin: 0in 0in 0pt;"&gt;&lt;SPAN style="font-size: 10pt;"&gt;at SAS support here is&amp;nbsp;a complete answer:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin: 0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;*as before handle the special characters in a data step while creating the macro varables;
			data _null_;
				set  dt;
						call symputx('b'||LEFT(_N_),strip(rwnm));
						call symputx('c'||LEFT(_N_),strip(CODE_TYPE));
						call symputx('d'||LEFT(_N_),strip(htmlencode(CODE,'quot amp gt lt apos 7bit')));
						call symputx('e'||LEFT(_N_),strip(MODIFIER));
						call symputx('f'||LEFT(_N_),strip(DESCRIPTION));
						call symputx('g'||LEFT(_N_),strip(htmlencode(RESPONSE,'quot amp gt lt apos 7bit')));
						call symputx('h'||LEFT(_N_),strip(ADD_CODE));
						call symputx('i'||LEFT(_N_),strip(ADD_MODIFIER));
						call symputx('j'||LEFT(_N_),strip(ADD_LINE_NUMBER));
						call symputx('k'||LEFT(_N_),strip(htmlencode(COMMENT,'quot amp gt lt apos 7bit')));
			Run;

*now use Tslit and %NRBQUOTE liberally to handle the quoting that is needed around the final statement;

		%do q = 1 %to &amp;amp;m_ln;
put %tslit(&amp;lt;tr name ="row&amp;amp;&amp;amp;b&amp;amp;q" &amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;input name="ln&amp;amp;&amp;amp;b&amp;amp;q" type="text" value ="&amp;amp;&amp;amp;b&amp;amp;q" size="3" tabindex="-1" readonly /&amp;gt;&amp;lt;/tD&amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;input name="ct&amp;amp;&amp;amp;b&amp;amp;q" type="text" value ="&amp;amp;&amp;amp;c&amp;amp;q" size="10" tabindex="-1" readonly /&amp;gt;&amp;lt;/tD&amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;input name="cd&amp;amp;&amp;amp;b&amp;amp;q" type="text" value ="%NRBQUOTE(&amp;amp;&amp;amp;d&amp;amp;q)" size="10" tabindex="-1" readonly /&amp;gt;&amp;lt;/tD&amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;input name="md&amp;amp;&amp;amp;b&amp;amp;q" type="text" value ="&amp;amp;&amp;amp;e&amp;amp;q" size="6" tabindex="-1" readonly /&amp;gt;&amp;lt;/tD&amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;input name="dc&amp;amp;&amp;amp;b&amp;amp;q" type="text" value ="&amp;amp;&amp;amp;f&amp;amp;q" size="100" tabindex="-1" readonly /&amp;gt;&amp;lt;/tD&amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;select name="asp&amp;amp;&amp;amp;b&amp;amp;q" style="width: 200px," &amp;gt; &amp;lt;option value ="%NRBQUOTE(&amp;amp;&amp;amp;g&amp;amp;q)" &amp;gt;%NRBQUOTE(&amp;amp;&amp;amp;g&amp;amp;q) &amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;select name="acd&amp;amp;&amp;amp;b&amp;amp;q" style="width: 50px," &amp;gt; &amp;lt;option value ="&amp;amp;&amp;amp;h&amp;amp;q"&amp;gt;&amp;amp;&amp;amp;h&amp;amp;q &amp;lt;/option&amp;gt; &amp;lt;/select&amp;gt;&amp;lt;/tD&amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;input name="amd&amp;amp;&amp;amp;b&amp;amp;q" type="text" value ="&amp;amp;&amp;amp;i&amp;amp;q" size="6" /&amp;gt;&amp;lt;/tD&amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;input name="aln&amp;amp;&amp;amp;b&amp;amp;q" type="text" value ="%NRBQUOTE(&amp;amp;&amp;amp;j&amp;amp;q)" size="2" /&amp;gt;&amp;lt;/tD&amp;gt;);
put %tslit(&amp;lt;tD&amp;gt;&amp;lt;input name="asC&amp;amp;&amp;amp;b&amp;amp;q" type="text" value ="%NRBQUOTE(&amp;amp;&amp;amp;k&amp;amp;q)" size="60" &amp;gt;&amp;lt;/tD&amp;gt; &amp;lt;/tr&amp;gt;);
	%end;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 27 Apr 2018 20:41:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/how-to-dynamic-html-with-long-mixed-datas-set-lots-of-special/m-p/458260#M5669</guid>
      <dc:creator>TimMandell</dc:creator>
      <dc:date>2018-04-27T20:41:14Z</dc:date>
    </item>
  </channel>
</rss>

