¿Cómo mantener el diseño de una textarea HTML cuando pasa en la variable macro SAS? -- html campo con sas campo con textarea campo con sas-macro camp Relacionados El problema

How keep the layout of an HTML textarea when past in SAS macro variable?


2
vote

problema

Español

He creo un formulario de entrada personalizado para un proceso almacenado SAS que produce un informe y envíelo en un correo.

En una primera pantalla, se muestra un formulario y tengo un área de texto donde el usuario podrá escribir algunos textos y este texto se mostrará por encima del informe. El código de área de texto es así:

  <!DOCTYPE html>   <html>  <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>Index</title> <meta name="description" content="app" /> <meta name="viewport" content="width=device-width,initial-scale=1" />      <link href="/BusinessPoint/css/bootstrap.min.css" rel="stylesheet" />     <link rel="stylesheet" href="/BusinessPoint/css/bootstrap.css" />     <link rel="stylesheet" href="/BusinessPoint/css/bootstrap-responsive.css" />     <link rel="stylesheet" href="/BusinessPoint/css/bootstrap-responsive.min.css" />     <script src="/BusinessPoint/js/modernizr-2.0.6.min.js" type="text/javascript"></script>     <script src="/BusinessPoint/js/bootstrap.min.js" type="text/javascript"></script>     <script src="/BusinessPoint/js/bootstrap.js" type="text/javascript"></script>     <script src="/BusinessPoint/js/bootstrap-modal.js"></script>      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> </head>  <body> <div class="navbar">               <div class="navbar-inner">                 <div class="container">                   <a class="btn btn-navbar" data-toggle="collapse" data-target=".navbar-responsive-collapse">                     <span class="icon-bar"></span>                     <span class="icon-bar"></span>                     <span class="icon-bar"></span>                   </a>                   <a class="brand" href="#">Laud</a>                   <div class="nav-collapse collapse navbar-responsive-collapse">                       <ul class="nav pull-right">                          <li><a href="/BusinessPoint/sign_in">Sign in</a></li>                       <li class="divider-vertical"></li>                       <li><a href="">Register</a></li>                       <li><a href="#myModal">Register company</a></li>                     </ul>                   </div>                 </div>               </div><!-- /navbar-inner -->             </div>    <h1>July 31, 2013 4:24:24 PM CEST</h1>    <div id="w" class="container center">  <!-- first modal window -->     <div id="modalwin" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">       <header class="modal-header">         <a href="#" class="close" data-dismiss="modal">x</a>         <h3>Prepare to be Amazed <small>or easily amused :]</small></h3>       </header>         </div>   <a href="#modalwin" data-toggle="modal" class="btn btn-large">Display Window</a> ?  </div> </body> </html> 111  

Así, por ejemplo, si mi usuario quiere que Writte:

  <!DOCTYPE html>   <html>  <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>Index</title> <meta name="description" content="app" /> <meta name="viewport" content="width=device-width,initial-scale=1" />      <link href="/BusinessPoint/css/bootstrap.min.css" rel="stylesheet" />     <link rel="stylesheet" href="/BusinessPoint/css/bootstrap.css" />     <link rel="stylesheet" href="/BusinessPoint/css/bootstrap-responsive.css" />     <link rel="stylesheet" href="/BusinessPoint/css/bootstrap-responsive.min.css" />     <script src="/BusinessPoint/js/modernizr-2.0.6.min.js" type="text/javascript"></script>     <script src="/BusinessPoint/js/bootstrap.min.js" type="text/javascript"></script>     <script src="/BusinessPoint/js/bootstrap.js" type="text/javascript"></script>     <script src="/BusinessPoint/js/bootstrap-modal.js"></script>      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> </head>  <body> <div class="navbar">               <div class="navbar-inner">                 <div class="container">                   <a class="btn btn-navbar" data-toggle="collapse" data-target=".navbar-responsive-collapse">                     <span class="icon-bar"></span>                     <span class="icon-bar"></span>                     <span class="icon-bar"></span>                   </a>                   <a class="brand" href="#">Laud</a>                   <div class="nav-collapse collapse navbar-responsive-collapse">                       <ul class="nav pull-right">                          <li><a href="/BusinessPoint/sign_in">Sign in</a></li>                       <li class="divider-vertical"></li>                       <li><a href="">Register</a></li>                       <li><a href="#myModal">Register company</a></li>                     </ul>                   </div>                 </div>               </div><!-- /navbar-inner -->             </div>    <h1>July 31, 2013 4:24:24 PM CEST</h1>    <div id="w" class="container center">  <!-- first modal window -->     <div id="modalwin" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">       <header class="modal-header">         <a href="#" class="close" data-dismiss="modal">x</a>         <h3>Prepare to be Amazed <small>or easily amused :]</small></h3>       </header>         </div>   <a href="#modalwin" data-toggle="modal" class="btn btn-large">Display Window</a> ?  </div> </body> </html> 2  

Pero después del procesamiento, en el texto Ingrese por usuario y pase en la variable macro <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>Index</title> <meta name="description" content="app" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link href="/BusinessPoint/css/bootstrap.min.css" rel="stylesheet" /> <link rel="stylesheet" href="/BusinessPoint/css/bootstrap.css" /> <link rel="stylesheet" href="/BusinessPoint/css/bootstrap-responsive.css" /> <link rel="stylesheet" href="/BusinessPoint/css/bootstrap-responsive.min.css" /> <script src="/BusinessPoint/js/modernizr-2.0.6.min.js" type="text/javascript"></script> <script src="/BusinessPoint/js/bootstrap.min.js" type="text/javascript"></script> <script src="/BusinessPoint/js/bootstrap.js" type="text/javascript"></script> <script src="/BusinessPoint/js/bootstrap-modal.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> </head> <body> <div class="navbar"> <div class="navbar-inner"> <div class="container"> <a class="btn btn-navbar" data-toggle="collapse" data-target=".navbar-responsive-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="brand" href="#">Laud</a> <div class="nav-collapse collapse navbar-responsive-collapse"> <ul class="nav pull-right"> <li><a href="/BusinessPoint/sign_in">Sign in</a></li> <li class="divider-vertical"></li> <li><a href="">Register</a></li> <li><a href="#myModal">Register company</a></li> </ul> </div> </div> </div><!-- /navbar-inner --> </div> <h1>July 31, 2013 4:24:24 PM CEST</h1> <div id="w" class="container center"> <!-- first modal window --> <div id="modalwin" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <header class="modal-header"> <a href="#" class="close" data-dismiss="modal">x</a> <h3>Prepare to be Amazed <small>or easily amused :]</small></h3> </header> </div> <a href="#modalwin" data-toggle="modal" class="btn btn-large">Display Window</a> ? </div> </body> </html> 3 en SAS, Blanqueck se comprime y no se considera (eso es normal en SAS). Así que la pantalla de texto en el informe cuando el formulario se envía no es como deseo, es solo una línea.

  <!DOCTYPE html>   <html>  <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>Index</title> <meta name="description" content="app" /> <meta name="viewport" content="width=device-width,initial-scale=1" />      <link href="/BusinessPoint/css/bootstrap.min.css" rel="stylesheet" />     <link rel="stylesheet" href="/BusinessPoint/css/bootstrap.css" />     <link rel="stylesheet" href="/BusinessPoint/css/bootstrap-responsive.css" />     <link rel="stylesheet" href="/BusinessPoint/css/bootstrap-responsive.min.css" />     <script src="/BusinessPoint/js/modernizr-2.0.6.min.js" type="text/javascript"></script>     <script src="/BusinessPoint/js/bootstrap.min.js" type="text/javascript"></script>     <script src="/BusinessPoint/js/bootstrap.js" type="text/javascript"></script>     <script src="/BusinessPoint/js/bootstrap-modal.js"></script>      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> </head>  <body> <div class="navbar">               <div class="navbar-inner">                 <div class="container">                   <a class="btn btn-navbar" data-toggle="collapse" data-target=".navbar-responsive-collapse">                     <span class="icon-bar"></span>                     <span class="icon-bar"></span>                     <span class="icon-bar"></span>                   </a>                   <a class="brand" href="#">Laud</a>                   <div class="nav-collapse collapse navbar-responsive-collapse">                       <ul class="nav pull-right">                          <li><a href="/BusinessPoint/sign_in">Sign in</a></li>                       <li class="divider-vertical"></li>                       <li><a href="">Register</a></li>                       <li><a href="#myModal">Register company</a></li>                     </ul>                   </div>                 </div>               </div><!-- /navbar-inner -->             </div>    <h1>July 31, 2013 4:24:24 PM CEST</h1>    <div id="w" class="container center">  <!-- first modal window -->     <div id="modalwin" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">       <header class="modal-header">         <a href="#" class="close" data-dismiss="modal">x</a>         <h3>Prepare to be Amazed <small>or easily amused :]</small></h3>       </header>         </div>   <a href="#modalwin" data-toggle="modal" class="btn btn-large">Display Window</a> ?  </div> </body> </html> 4  

Además, mi usuario puede reactualizar el formulario para ver el resultado antes de enviar, y en el área de texto se usa el contenido de la macro-variable. Tan el mismo problema.

Entonces, ¿cómo superar el comportamiento SAS?

i aunque esa función de codificación / decodificación HTML sería una solución pero no. También me encarguizo que un programa macro para recrear muchas macro-variables (una por oraciones) sería una solución, pero es difícil asegurar lo que se utilizaría como delimitador de oración por usuario. Así que renuncié a esta idea.

Si alguien tiene una idea o una solución, estaré muy agradecido.

Original en ingles

I create a custom input form for a SAS Stored Process which produce a report and send it in a mail.

In a first screen, a form is display and I have a text area where user will be able to write some texts and this text will be display above the report. Code of text area is like this :

<textarea col=10 row=10 name='textarea'> </textarea>  

So for example if my user want to writte :

-Hello this is my first line. -And my second line without point for example - and a third. 

But after processing, in the text enter by user and pass in the macro variable &textarea in SAS, blanck are compress and not considered (that is Normal in SAS). So text display in report when the form is submit is not as wish, it is just one line.

-Hello this is my first line. -And my second line without point for example - and a third. 

Moreover, my user can reactualize the form to see the result before sending, and in the text area the content of the macro-variable is used. So same problem.

So how overpass the SAS behavior ?

I though that html encode/decode function would be a solution but not. I also tought that a macro program to recreate many macro-variables (one per sentences) would be a solution, but it is difficult to ensure what would be used as delimiter of sentence by user. So I gave up this idea.

If someone has an idea or a solution, i will be very grateful.

           
   
   

Lista de respuestas

0
 
vote

Debe agregar un poco de sundayView7 a su código como:

  sundayView8  

No estoy seguro de lo que estoy diciendo, ¡pero pruébalo, entonces dígame pls!

 

You should add some <br /> to your code like :

<textarea col=10 row=10 name='textarea'>   <br /></textarea>  

Not sure of what am i saying but try it out then tell me pls !

 
 
0
 
vote

La aplicación web de proceso almacenada SAS para ejecutar procesos almacenados will Mantener CR / LF como se ingresó en un sundayView9

Considere este proceso almacenado, almacenado en la carpeta de metadatos del servidor SAS viewDidLayoutSubviews0 , que captura un comentario en un área de texto:

  viewDidLayoutSubviews1  

Cuando se invoca desde un navegador, con viewDidLayoutSubviews2 como

  viewDidLayoutSubviews3  

y el área de texto de comentarios completada con

  viewDidLayoutSubviews4  

y enviado, el registro SAS que se muestra en la página mostrará CR / LF, (13/10), se enviaron desde las propiedades del área de texto (por especificaciones HTML del navegador):

  viewDidLayoutSubviews5  
 

The SAS Stored Process Web Application for running stored processes will maintain cr/lf as entered in a textarea

Consider this stored process, stored in the SAS server metadata folder Demo/TextArea, that captures a Comment in a text area:

data _null_;   name = "&Comment";   do i = 1 to length(name); * log each character and its ascii code;     c = substr(name,i,1);     b = rank(c);     putlog i= c= b=;   end; run;  proc stream outfile=_webout; BEGIN <html> <head> <title>Text Area test</title> </head> <body> <form method=post> Name: <input name=Name type="text" length=20><br /> Comment:<br /> <textarea name=Comment rows=10 cols=60></textarea><br /> <input type="submit"> </form> </body> </html> ;;;; 

When invoked from a browser, with _debug=log as

http://mysasserver:mysasserverport/SASStoredProcess/do?_Program=/Demo/TextArea&_debug=log 

and the Comment text area filled in with

This is my comment 

and submitted, the SAS log shown in the page will show cr/lf, (13/10), were sent from the text area newlines (per browser HTML spec):

xe2x80xa6  COMMENT=This is my comment xe2x80xa6 i=1 c=T b=84 i=2 c=h b=104 i=3 c=i b=105 i=4 c=s b=115 i=5 c=  b=13 i=6 c=  b=10 i=7 c=i b=105 i=8 c=s b=115 i=9 c=  b=13 i=10 c=  b=10 i=11 c=m b=109 i=12 c=y b=121 i=13 c=  b=32 i=14 c=c b=99 i=15 c=o b=111 i=16 c=m b=109 i=17 c=m b=109 i=18 c=e b=101 i=19 c=n b=110 i=20 c=t b=116 
 
 
   
   

Relacionados problema

0  SAS: Definición de variables en el bucle  ( Sas definition of variables in if loop ) 
Soy nuevo en la escritura de macro SAS y he estado luchando con escribir un código para la siguiente instancia. %let DateOfInterest= "15jul2016"d; %let yea...

1  SAS MACRO para múltiples conjuntos de datos  ( Sas macro for multiple datasets ) 
Soy nuevo en SAS. Tengo 12 conjuntos de datos (datos mensuales) en una carpeta. Los nombres de los conjuntos de datos son: 201401 201402 201403 ... 201411 ...

1  Do-Loop en SAS-IML  ( Do loop in sas iml ) 
Quiero usar un bucle de macro DOTAL INTERIOR PROC IML así: %Let Tab1=FirstTable; %Let Tab2=SecondTable; %Let Tab3=ThirdTable; *&Tab1-3 have been initialis...

3  Cuándo citar una variable macro  ( When to quote a macro variable ) 
En SAS, al mismo tiempo que se hace referencia a una variable macro, veo que a veces el código utiliza comillas dobles alrededor de la referencia de la macro,...

1  SAS MACRO para crear múltiples lags en datos longitudinales  ( Sas macro to create multiple lags on longitudinal data ) 
Tengo un StoreTSet de DataSet Longitudinal desequilibrado_Data: Period Store Sales Jan A 12 Feb A 10 March A ...

1  SAS macro en bucle  ( Sas macro looping ) 
Estoy trabajando en un conjunto de datos que tiene la siguiente estructura: Color Apple Orange Grape Avocado Blueberry Yellow 1 . . ...

3  SAS Macro incluye guardias  ( Sas macro include guards ) 
En otros idiomas de programación, como C ++, incluyen los guardias se utilizan para evitar múltiples inclusiones del mismo código. Me gusta esto en C ++: ...

3  Análisis de la línea de encabezado por separado en SAS  ( Parsing header line separately in sas ) 
Tengo un archivo de entrada, en el que la primera línea tiene información de encabezado. (Valores de datos que están separados por la pestaña). Entre estos va...

0  Importar todas las tablas Access 2016 en SAS 9.4 (desde múltiples .accdb DBS)  ( Import all access 2016 tables into sas 9 4 from multiple accdb dbs ) 
Estoy tratando de importar todas las tablas desde un acceso múltiple (2016) DBS a SAS (9.4), en lugar de hacer un montón de declaraciones de importación PROC....

2  ¿Resolver variables macro en la declaración de hash?  ( Resolving macro variables in hash declaration ) 
Corriendo en algo un poco inusual. Siento que este es probablemente un error tonto de mi parte, pero por la vida de mí, no puedo averiguar qué podría ser. L...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos