PDM_MACRO: inserción de texto a partir de archivos de macro

La etiqueta <PDM_MACRO> se utiliza para insertar archivos de macro en los archivos HTMPL. Su función es similar a la de PDM_INCLUDE, pero con dos diferencias importantes:
casm173
La etiqueta <PDM_MACRO> se utiliza para insertar archivos de macro en los archivos HTMPL. Su función es similar a la de PDM_INCLUDE, pero con dos diferencias importantes:
  • Los archivos incluidos mediante PDM_MACRO tienen listas de argumentos formales que incluyen argumentos obligatorios y argumentos con valores predeterminados.
  • Los archivos incluidos mediante PDM_MACRO siempre proceden del directorio especificado para la propiedad de configuración MacroPath, independientemente del tipo de acceso del usuario actual.
  • NAME=
    nombremacro
    (Obligatorio) Especifica la macro que se incluirá. El motor Web agrega el sufijo “.mac” y busca el archivo en la ruta especificada por la propiedad MacroPath del archivo de configuración.
Puede que existan otras propiedades obligatorias en función de la macro incluida. Los archivos de macro tienen el siguiente diseño general:
comments #args name1 [= value1] name2 [= value2] ... #data data to insert
Las siguientes descripciones explican el diseño de estos archivos línea a línea:
  • comentarios
    : las únicas instrucciones válidas en las macros antes de la instrucción #args son los comentarios. Los comentarios se indican mediante el signo # o mediante // como primer carácter no vacío.
  • #args
    : se debe codificar exactamente como se muestra, con el signo # en la primera columna y ninguna otra información en la línea. Esta instrucción inicia la sección de argumentos, que puede contener definiciones de argumentos y comentarios.
  • nombre [valor de =]
    : define un argumento para la macro. Sólo los argumentos mencionados de forma explícita en la sección de argumentos son válidos para la macro. El valor especificado para un argumento en la sección de argumentos constituye su valor predeterminado. Se requieren argumentos sin valor predeterminado que deben ser proporcionados por el autor de la llamada en la propia instrucción <PDM_MACRO>.
  • #data
    : se debe codificar exactamente como se muestra, con el signo # en la primera columna y ninguna otra información en la línea. Esta instrucción inicia la sección de datos, que es la parte de la macro insertada en el archivo mediante PDM_MACRO. Todo el contenido de la sección de datos se inserta en el archivo de llamada, incluidas las líneas que serían comentarios antes de la sección de datos.
  • datos para insertar
    : los datos para insertar en el archivo de llamada. Estos datos pueden contener referencias a los argumentos con el siguiente formato:
  • &{arg_name}
    : estas referencias se sustituyen por el valor del argumento proporcionado por el autor de la llamada, o bien por el valor predeterminado si el autor de la llamada no proporcionó ningún valor.
El motor Web suele leer los archivos de macro una sola vez, la primera vez que se utiliza, y después almacena la macro analizada en su propia memoria. Esto mejora el rendimiento, pero puede resultar un inconveniente si se está desarrollando una macro. Utilice la propiedad SuppressMacroCache del archivo de configuración para evitar este comportamiento y hacer que el motor Web descarte todas las macros de su memoria cada vez que empiece a procesar un formulario nuevo.
Conversión en comentarios de las etiquetas PDM_MACRO
Para convertir las etiquetas <PDM_MACRO> en comentarios, escriba un signo de exclamación de cierre delante de la P, de la siguiente manera: <!PDM_MACRO>. Para impedir que el explorador procese la parte comentada del formulario, coloque <PDM_IF 0> antes de la etiqueta <!PDM_MACRO>, y </PDM_IF> detrás de la línea convertida en comentario. Ejemplo:
<PDM_IF 0> <!PDM_MACRO NAME=dtlDropdown hdr="Status" attr=status lookup=no evt="onBlur=\\\"detailSyncEditForms(this)\\\""> <!PDM_MACRO NAME=dtlDropdown hdr="Priority" attr=priority lookup=no evt="onBlur=\\\"detailSyncEditForms(this)\\\""> </PDM_IF>