es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Plantillas de correo electrónico de Oracle Apex: generando HTML

Digamos que hemos creado una plantilla de correo electrónico NOTAWOL.

Si quiero informar sobre todos los estudiantes de la clase en una tabla HTML, necesitaré etiquetas

para cada persona en la clase.

<table>
  <tr>
    <td>jane doe</td>
  </tr>
  <tr>
    <td>john doe</td>
  </tr>
</table>

Pero el problema es que el número de filas que tiene esa tabla es desconocido cuando se crea la plantilla de correo electrónico.

He intentado crear una plantilla donde coloco mis anclas y algunas etiquetas de apertura. Para hacerlo un poco más dinámico, intenté agregar una cadena de sustitución al final, antes de las etiquetas de cierre.

Algo como:

<table>
  <th>lista de estudiantes</th>
  #BUCLAS#
</table>

La idea era crear un

l_bucles CLOB;

y recolectar todos los registros de estudiantes concatenándolos con las etiquetas adecuadas

.

Sin embargo, cuando reemplazo #BUCLAS# con l_bucles, veo contenido HTML sin procesar en la página.

Pregunta: ¿Las plantillas de correo electrónico no se deben usar en estos casos? ¿O hay un enfoque inteligente para crear tablas basadas en el número de filas?

Muchas gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en oracle-apex y plantillas de correo electrónico, recomendaría crear una región dinámica para la plantilla de correo electrónico en lugar de usar cadenas de sustitución. De esta manera, la tabla se puede generar dinámicamente en función del número de estudiantes en la clase. Puede usar SQL para recuperar los datos necesarios y luego generar una tabla HTML usando código PL/SQL.

    Aquí tienes un ejemplo de cómo puedes utilizar una región dinámica para crear una tabla basada en el número de filas:

    <table>
      <th>Lista de estudiantes</th>
      <tbody>
        #REGION_STUDENT_LIST#
      </tbody>
    </table>
    

    Puede crear una región dinámica llamada STUDENT_LIST y usar su valor en la plantilla de correo electrónico. Luego, dentro de la región dinámica, puedes usar SQL para recuperar los datos necesarios y generar una tabla HTML con el número de filas necesario.

    DECLARE 
      l_html CLOB := '<tr><td>' || first_name || '</td></tr>'; 
    BEGIN
      FOR rec IN (SELECT first_name FROM students) LOOP
        l_html := l_html || '<tr><td>' || rec.first_name|| '</td></tr>';
      END LOOP;
      apex_util.set_session_state('STUDENT_LIST', l_html);
    END;
    

    En este ejemplo, estamos recuperando la lista de estudiantes de la tabla students y creando una tabla HTML con una fila para cada estudiante. La tabla HTML final para la plantilla de correo electrónico se generará dinámicamente en función del número de estudiantes en la clase.

    ¡Espero que esto te sea útil! Avísame si tienes alguna otra pregunta.

Comments are closed.