Equipos Programas Media Internet Telecomunicaciones Seguridad Base de Datos Programación Calidad Desarrollo Empresa

Lenguaje Appml

Nombre Descripcion
1 Elementos añadidos
1.1 Importación
1.1.1 <XsllArbolAtribxmlxsl>

1.1.2 <XslArbol>

1.1.3 <XslAtrib>

1.2 Arbol
1.2.1 <menu>

1.3 Importación
1.3.1 <XslArbolAtrib>

1.3.2 <CssArbolAtrib>

1.3.3 <XslArbolAtribIncrus>

1.3.4 <row>

1.3.5 <XslArbolAtribUsr>

1.3.6 <strCssTabla>

1.3.7 <qlFiltro>

1.3.8 <TbComentarios>

1.3.9 <XslDivMain>

1.3.10 <XslDivMIzq>

1.3.11 <XslDivMDer>

1.3.12 <XslDivContenido>

1.3.13 <XslArbolAtribMarca>

1.3.14 <XMLDirBase>

1.3.15 <Campo>

1.3.16 <TipoRutaRTF>

1.3.17 <HTMLPrefe>

1.3.18 <RTFDirR>

1.3.19 <RTFArchivo>

1.3.20 <RTFSubNombre>

1.3.21 <XslDecoCss>

1.3.22 <AppmlDirBase>

1.3.23 <XslArbolConfig>

1.3.24 <RTFDirBase>

1.3.25 <TMLDirBase>

1.3.26 <IMLDirBase>

1.3.27 <PagTitulo>

1.3.28 <XSLInterfaz>

1.3.29 <XslTabla>

1.3.30 <CssAtrib>

1.3.31 <RDBDirBase>

1.4 Divisiones
1.4.1 <Nombre>

1.4.2 <narbol>

1.4.3 <nparbol>

1.4.4 <nRegTabla>

1.4.5 <Nodos>

1.4.6 <NOReg>

1.4.7 <Cla1>

1.4.8 <ruta>

1.4.9 <Cla3>

1.4.10 <valor>

1.4.11 <Url>

1.4.12 <atributo>

1.4.13 <nombre>

1.5 Importación
1.5.1 <DirArchivoXml>

1.6 Arbol
1.6.1 <entry>

1.7 Importación
1.7.1 <CssArbol>

1.8 Arbol
1.8.1 <url>

1.9 Divisiones
1.9.1 <Cla2>

1.9.2 <dictionary>

1.10 Arbol
1.10.1 <text>

1.11 Divisiones
1.11.1 <titulo>

1.12 Importación
1.12.1 <pie>

1.13 Divisiones
1.13.1 <main>

1.13.2 <maintable>

1.13.3 <docblock>

1.13.4 <docnavigation>

1.13.5 <pagetitle>

1.13.6 <para>

1.13.7 <idNRMenuVP>

1.13.8 <idref>

1.13.9 <content>

1.13.10 <pagefragment>

1.13.11 <atributos>

1.13.12 <header>

1.13.13 <HTMLPrefe>

1.13.14 <BdName>

2 Archivos XSD
2.1 Archivo XSD para Appml

3 Elementos Originales
3.1 Básicos
3.1.1 <break>

    Ver ejemplo en un archivo XSD: appml-xsd#break.

  • El elemento <break> de AppML se usa para definir saltos de página en un informe.
  • Este elemento se usa conjuntamente con el elemento <section>.
3.1.2 <commands>

    Ver ejemplo en un archivo XSD: appml-xsd#command.

  • El elemento <commands> de AppML suministra un método para sustituir los comandos estandar de AppML por otro conjunto de comandos.
  • Reemplaza los comandos Submit y Delete por Update y Delete o al reves?


  • Por ejemplo:
    • <commands>
        <input type="button" class="cmd"
          onclick="javascript:db_putrecord('update')"
          value="Submit" />
        <input type="button" class="cmd"
          onclick="javascript:db_putrecord('delete')"
          value="Delete" />
      </commands>
      
3.1.3 <database>

    Ver ejemplo en un archivo XSD: appml-xsd#database.

  • El elemento <database> permite definir:
    • La conexión a la base de datos que reside en el servidor Web (solo se pasa el nombre del archivo sin .mdb).
    • La tabla principal de la base de datos.
    • La consulta (query) principal (no incluir la clave principal autonumérica).
3.1.4 <elements>

    Ver ejemplo en un archivo XSD: appml-xsd#elements.

  • El elemento <elements> puede tener los siguientes subelementos:
    • <required>
    • <submit>
    • <type>
    • <format>
    • <value>
    • <onchange>
3.1.5 <filters>

    Ver ejemplo en un archivo XSD: appml-xsd.htm#filter.

  • El elemento <filters> puede tener los siguientes subelementos:
    • <where>
    • <orderby>
    • <query>
    • <orderselect>

  • El elemento <filters> permite que el usuario pueda definir en tiempo real, consultas y el orden de los elementos de una lista o de un informe.
  • El elemento <filter> puede tener el atributo: "preview".
    • El atributo "preview" se puede usar para que no se muestren los registros antes de realizar su filtrado.
    • Por ejemplo: <filters preview="false">.

  • El filtrado y/o ordenación de los registros en la lista HTML/Informe HTML:
    • La operación de filtrado se realiza en primer lugar y posteriormente se realiza la operación de ordenación.
    • El filtrado se puede realizar por, los valores blanco de los campos, en cuyo caso no hay filtrado, por un valor de un campo, por los valores de varios campos.
    • Para los campos textuales, los criterios de filtrado se hacen con = y AND (Where Tipo="programa" AND Uso="Antivirus").
    • Se pueden utilizar varios criterios de filtrado.
    • La ordenación se puede realizar, por ninguno, uno o varios campos y cada uno de ellos por el orden ascendente o descendente.


    • El elemento <filters> origina la inclusión de:
      • Un botón Filtro en la lista o en el informe html
      • Un formulario Filtro, con un subformulario "Filtro" y un subformulario "Ordenado por", un botón de Limpiar y un botón de OK.
      • Una tabla de una lista o de un informe html con los resultados de aplicar el filtro.


      • En el subformulario "Filtro":
        • Se crean tantas listas desplegables como elementos <query> se hayan definido dentro del elemento <filters>
        • El orden de las listas desplegables es el orden en que aparecen en el <query>.
        • Si se define <query> la lista desplegable se rellena con el resultado de la consulta. El orden de los items de cada lista desplegable es el especificado en la sentencia query.
        • Si no se define <sql>, se crea una lista desplegable con los operadores de comparación : ninguno, =, <>, >, <, <=, >=, ().
        • El valor por defecto del campo de edición de la lista es blanco.
        • Los filtros se aplican en el orden en que aparecen.
        • Los filtros producen la parte WHERE y LIKE de la sentencia sql. WHERE campofiltro1 LIKE valorfiltro AND campofiltro2 LIKE valorfiltro2 etc. Siendo valor el introducido en el campo filtro. Si este valor se ha obtenido de una lista desplegable, realizada con sql, el valor del campo es el seleccionado.
        • El campo del select, tiene que ser igual que el de la etiqueta <field> de <filter>.

      • En el subformulario "Ordenado por":
        • Se crean tantas listas desplegables como elementos <orderselect> se hayan definido dentro del elemento <filters>.
        • Se crean tantos botones de opción de ordenación ASCendente y DEScendente. para aplicad al campo seleccionado en la lista despleglable, como elementos <orderselect> se hayan definido dentro del elemento <filters>.
        • El orden de las listas desplegables es el orden en que aparecen los distintos <orderselect>
        • El orden de los items de cada lista desplegable es el especificado en su correspondiente <orderselect>.
        • El valor por defecto del campo de edición de la lista es blanco.
        • Si no hay elemento <orderselect> no se crea el subformulario "Ordenado por".
        • Ordenado por, produce la condición ORDER BY campo1 Dir =ASC, campo2 dir=desc, etc.

    • Si dentro de <filters> no hay ningún <query>, no aparece el botón Filtro.
3.1.6 <field>

    Ver ejemplo en un archivo XSD: appml-xsd.htm#field.

  • El elemento <field> se usa en un filtro, para definir el campo de la tabla a consultar u ordenar.
3.1.7 <footer>

    Ver ejemplo en un archivo XSD: appml-xsd#footer.

  • El elemento <footer> define información adicional que aparecerá al final de la página de un formulario.
3.1.8 <form>

    Ver ejemplo en un archivo XSD: appml-xsd#form.

  • El elemento <form> de AppML se usa para definir la presentación del formulario de entrada.
  • Si este elemento se omite, se usa la presentación por defecto (un campo de texto bajo otro).
  • Cualquier elemento válido de un formulario HTML se puede poner dentro de los elementos <form>.
  • Si se utiliza el elemento <form>, cada campo de entrada dentro del formulario debe tener un atributo id que se corresponde con el nombre del campo de dato del recordset correspondiente.


  • Por ejemplo:
    • ...
       <sql>SELECT CompanyName,ContactName,City FROM Suppliers</sql>
       <form>
        <table class='input' width='100%'>
          <tr>
            <td valign='center'>Company Name</td>
            <td>
              <input size='41' id='companyname' value=' />
            </td>
          </tr>
          <tr>
            <td valign='center'>Contact Name</td>
            <td>
              <input size='31' id='contactname' value=' />
            </td>
          </tr>
          <tr>
            <td valign='center'>City</td>
            <td>
              <input size='16' id='city' value=' />
            </td>
          </tr>
        </table>
       </form>
      </htmlform>
      
3.1.9 <header>

    Ver ejemplo en un archivo XSD: appml-xsd#header.

  • El elemento <header> define información adicional que aparecerá encima de la tabla de un formulario.
3.1.10 <label>

    Ver ejemplo en un archivo XSD: appml-xsd#label.

  • El elemento <label> se usa para definir una etiqueta para el campo en lugar de tomar el nombre del campo de la tabla, que es la etiqueta por defecto.
3.1.11 <onload>

    Ver ejemplo en un archivo XSD: appml-xsd#onload.

  • El elemento <onload> de AppML define el script que se ejecutará cuando se cargue la aplicación en el navegador.


  • Por ejemplo: ejecutará el script de java "message( )" cuando se cargue la página de la aplicación:
    • <onload>javascript:message( )</onload>
3.1.12 <orderby>

    Ver ejemplo en un archivo XSD: appml-xsd#orderby.

  • El elemento <orderby> permite ordenar los items de la tabla de la base de datos.
  • El elemento <orderby> se usa para definir la clausula ORDER BY de la sentencia SQL cada vez que la aplicación se ejecuta.
  • Cuando se abre una aplicación AppML, los registros de la tabla se ordenan por lo que este entre las marcas <orderby> del archivo XML correspondiente a la tabla.
  • Si en el formulario Filtros se seleccionan otros campos de ordenación, con estos se genera otra cadena que sustituye a la dada inicialmente en <orderby>.
  • Para que no exista ambiguedad con los campos, se recomienda anteponer el nombre de la tabla entre corchetes seguido de punto y el nombre del campo.
  • Si se ponen varios campos de ordenación, hay que separarlos por comas.
  • Los valores para ordenación son asc, para ordenación ascendente y desc, para ordenación descendente. El valor por defecto es asc.
  • El texto incluido entre <orderby> </orderby>, se le pasa tal cual a la sentencia sql.


  • Por ejemplo:
    • Ordena los item de una tabla compuesta (JOIN) por los campos Uso en ascendente y Nombre en descendente:
      • <orderby>[Programas].Uso asc, [Idioma].Nombre desc</orderby>
        
    • Ordena los items de la tabla, por los valores del campo Nombre en orden descendente.:
      • <orderby>PrimerApellido desc</orderby>
        
    • Ordena los items de la tabla, por los valores del campo Nombre en orden descendente y ascendente.:
      • <orderby>PrimerApellido desc, SegundoApellido asc</orderby>
        
3.1.13 <orderselect>

    Ver ejemplo en un archivo XSD: appml-xsd#orderselect.

  • El elemento <orderselect> se usa para que el usuario pueda ordenar en tiempo de ejecución.
  • El elemento <orderselect> tiene subelementos: <field>.
  • El elemento <orderselect> tiene atributos:
    • El atributo selected se usa para definir el campo de datos a ordenar.
      Su valor por defecto es el primer valor.
    • El atributo direction se usa para definir la dirección de ordenación.
      Sus valores pueden ser "ASC" y "DESC" para ordenación ascendente y descendente respectivamente.
      Su valor por defecto es "ASC".
    • Notas:
      • ¡¡Ojo, que selected y direction son atributos, no elementos!!, y por tanto hay que ponerlos como se indica:
        • <orderselect selected="Nombre" direction="DESC">
      • Si en el archivo xml se ponen como si fueran elementos ,entre comillas, ni el Explorador ni la aplicación dan error, pero no se tienen en consideración.
      • Si se quitan las comillas, el Explorador no da error, pero la aplicación si:
        • <orderselect>
            <selected>"Nombre"</selected>
            <direction>"DESC"</direction> 
            <field>Nombre</field> 
            <field>Uso</field>
            <field>Tipo</field> 
          </orderselect>
          
  • Ejemplo válido:
    • <orderselect selected="Nombre" direction="DESC">
        <field>Nombre</field> 
        <field>Uso</field>
        <field>Tipo</field> 
      </orderselect>
      
      <orderselect selected="Tipo" direction="ASC"> 
        <field>Uso</field> 
        <field>Tipo</field>
        <field>Nombre</field>
      </orderselect>
      
3.1.14 <operator>

    Ver ejemplo en un archivo XSD: appml-xsd#operator.

  • El elemento <operator> se usa para definir un operador del query.
3.1.15 <query>

    Ver ejemplo en un archivo XSD: appml-xsd#query.

  • El elemento <query> se usa para definir los elementos query que el usuario puede usar en los filtros en tiempo de ejecución.
  • El elemento <query> tiene los siguientes subelementos:
    • <field>
    • <operator>
    • <value>
    • <label>
    • <sql>
3.1.16 <script>

    Ver ejemplo en un archivo XSD: appml-xsd#script.

  • El elemento <script> de AppML suministra un método para añadir scripts HTML estandar a la aplicación.
  • Cualquier código script legal puede ir dentro del elemento <script>.


  • Por ejemplo:
    • <script type="text/javascript">
       <!--
       function message()
       {
       alert("This alert box was called with the onload event")
       }
       // -->
      </script>
      
3.1.17 <section>

    Ver ejemplo en un archivo XSD: appml-xsd#section.

  • El elemento <section> de AppML se puede usar para dividir un informe en varias secciones.
  • Cualquier elemento válido de HTML se puede poner dentro del elemento <section>.
3.1.18 <sql>

    Ver ejemplo en un archivo XSD: appml-xsd#sql.

  • El elemento <sql> define la sentencia SQL que se usa para extraer datos de la base de datos.
  • El elemento <sql> puede aparecer dentro de:
    • <appml>
    • <database>
    • <filters>
    • <query>
    • <htmlreport>
    • <htmllist>
    • <htmlform>
    • <htmledit>

  • Si se omite este elemento dentro de <filters>, <htmlreport>, <htmllist>, <htmlform>, <htmledit>, el se usará el elemento <sql> especificado en <database>.
  • Si no se ha especificado <sql>, en <database>, el programa toma por defecto select * nombretabla.
  • Si se especifica <sql> dentro de <filters>, <htmlreport>, <htmllist>, <htmlform>, <htmledit>, se toma éste, en lugar del <sql> especificado en <database>.
  • En el sql especificado en <database>, los atributos distinct, where, order by, son ignorados ya que se deben especificar en <filters>.
  • En el sql en <filter>, se admite una sentencia sql con todos los atributos que admita un campo.
  • Se admite el atributo as (alias).
  • Si la clave de la tabla es autonúmerica, no debe especificase en el sql que afecte a la creación o edición de registros, ya que da error de que el ID no se puede actualizar.
  • Con una clave que no sea autonumérica, no hay problema en especificarla para crearla o editarla.
  • distinct no funciona en <htmllist>, pero si en <htmlreport>
  • En <htmledit> enlazado desde <htmllist>, se concatena al query where ID=?valor seleccionado en la tabla htmllist.


  • Ejemplos válidos:
    • <database>
         <sql>SELECT nombre, apellidos, titulo AS carrera FROM personas</sql>
      </database>
      
      <query>
         <sql>SELECT DISTINCT pais FROM paises ORDER BY pais</sql>
      </query>
      
3.1.19 <stylesheet>

    Ver ejemplo en un archivo XSD: appml-xsd#stylesheet.

  • El elemento <stylesheet> situado en el encabezado del documento define la hoja de estilo por defecto de la aplicación.
  • Se puede especificar un elemento stylesheet propio para las distintas secciones (HTMList, HTMLReport,etc).
  • Si se omite se utiliza el que se ha definido por defecto al principio de la página.
  • En el HTMLlist y en HTMLForm parece que no se coge su elemento stylesheet propio, solo se coge el definido por defecto para el documento.
  • Si no se ha definido el stylesheet por defecto simplemente no pasa nada. Sin embargo en HTMLReport funciona perfectamente.


  • Como indicar la posición de la hoja de estilo
    • La URL se puede introducir de manera:
      • Absoluta:
      • <xmlreport>
          <!--
          <stylesheet>http://tic2.dyndns.org/appml/tecnologias/
          xsl/HTMLetiquetas-prosa.XSL</stylesheet>
          -->
        
          <stylesheet>http://tic2.dyndns.org/appml/tecnologias/
          xsl/HTMLetiquetas-infor.XSL</stylesheet>
            <name>igna</name>
            <src>HTMLetiquetas-elem-prosa.XSL</src>
        </xmlreport>
        
      • Relativa:
        • Se recomienda para ser consistente con las direcciones que se ponen en la página html de la aplicación.: <stylesheet>../Tecnologias/HTMLetiquetas-infor.xsl</stylesheet> si ha situado el archivo xsl donde está el archivo xml correspondiente a la tabla.
        • Si se pusiera <stylesheet>HTMLetiquetas-infor.XSL</stylesheet>, teniamos que poner el archivo xsl en el directorio donde estan los asp (appml/appMLSrvs).
3.1.20 <table>

    Ver ejemplo en un archivo XSD: appml-xsd#table.

  • El elemento <table> de AppML proporciona una forma de definir el estilo y disposición de una tabla de un informe o de un formulario.
  • El elemento <thead> se puede usar dentro del elemento table, para definir la cabecera de la tabla si se quiere que sea diferente de la cabecera por defecto.
  • El elemento <th> se usa para definir la cabecera de una columna de la tabla.
  • El elemento <tr> se utiliza para definir una fila de la tabla. Los elementos <td> que hay dentro de un elemento <tr> son las columnas de la tabla.
  • El elemento <td> se usa para definir el contenido de una celda de la tabla.


  • Por ejemplo:
    • <htmlreport>
        <sql>select CustomerName, City from Customers</sql>
        <table border="0" class="app">
          <thead>
           <tr>
            <th class="app" align="center">Customer Name</th>
            <th class="app" align="left">Customer City</th>
           </tr>
          </thead>
        </table>
      </htmlreport>
      
3.1.21 <td>

    Ver ejemplo en un archivo XSD: appml-xsd#td.

  • El elemento <td> se usa para definir el contenido de una celda de la tabla.


  • Por ejemplo:
    • <td id="Ejemplo">
        <a href="app_htmllist.asp?appname=../tecnologias/HTML-ejemplos&
        filter=HTML-ejemplos.IDEjemplo&
        value='Texto formateado'&
        type=number">Ejemplo</a>
      </td>
      
    • "Ejemplo" es el nombre del campo o de la columna de la celda.

  • Otro ejemplo:
    • <td id="Ejemplo">
        <a href="http://tic2.dyndns.org">Ejemplo</a>
      </td>
      
      <sql>
        SELECT CustomerID,
        Companyname AS [Customer Name],
        ContactName AS [Contact Name],
        City,Country, customerid AS Orders 
        FROM Customers
      </sql>
      
      <td id="Orders">
        <a href="app_htmllist.asp?appname=../northwind/orders&
           filter=customers.customerid&
           value=#orders#" 
           target="_blank">Orders</a> 
      </td>
      

  • Sin poner el elemento <td>, se puede poner un hiperenlace en una celda, entrando en la celda, de tipo texto con 255 caracteres, de la base de datos:
    • <a href="http://tic2.dyndns.org">Ejemplo</a>
      
3.1.22 <title>

    Ver ejemplo en un archivo XSD: appml-xsd#title.

  • El elemento <title> define el título de la aplicación.
  • El título aparece en todas las páginas html de la aplicación.
3.1.23 <value>

    Ver ejemplo en un archivo XSD: appml-xsd#value.

  • El elemento <value> se usa para predefinir un valor asignado al campo del elemento query de un elemento <filters>.
  • Si no se pone ninguno, el valor por defecto es el blanco, es decir, todos los valores.
  • Este valor es el que aparece en el campo de edición (simple o combinado).
  • Cuando se carga la lista/informe html, se realiza el filtrado por todos los valores que aparecen en los elementos <value>.
  • Cuando se visualiza una lista html, los valores de filtrado aparecen en la parte superior de la hoja html, por ejemplo:
    • Programas 1-3
    • Tipo contenido = Programa
    • Uso del Programa = Antivirus
    • Idioma = Inglés (3 registros encontrados)
3.1.24 <where>

    Ver ejemplo en un archivo XSD: appml-xsd#where.

  • El elemento <where> se usa para definir la clausula fija WHERE para añadir a la sentencia SQL cada vez que la aplicación se ejecuta.
  • El texto contenido entre <where> </where> se pasa tal cual a la sentencia query.
3.2 Nivel 1
3.2.1 <htmlreport>

    Ver ejemplo en un archivo XSD: appml-xsd.htm#htmlreport.

  • El elemento <htmlreport> define los elementos de un informe html.
  • El elemento <htmlreport> puede tener los siguientes sub elementos:
    • <title>
    • <stylesheet>
    • <sql>
    • <header>
    • <footer>
    • <table>
    • <break>
    • <section>

  • Un informe es el resultado de una consulta sobre la base de datos, visualizado en una página html.
  • El usuario puede filtrar en tiempo real, los datos del informe.
  • Los informes no son editables, al contrario de lo que le ocurre a las listas htmllist.
3.2.2 <xmlreport>

    Ver ejemplo en un archivo XSD: appml-xsd.htm#xmlreport.

  • El elemento <xmlreport> permite presentar el contenido de un informe html en formato xml.
3.2.3 <htmllist>

    Ver ejemplo en un archivo XSD: appml-xsd.htm#htmllist.

  • El elemento <htmllist> define la disposición de la lista de registros que se van a visualizar y que pueden servir como puntos de entrada a formularios de entrada, actualización o eliminación de uno de esos registros.
  • El elemento <htmllist> puede tener los siguientes sub elementos:
    • <title>
    • <stylesheet>
    • <sql>
    • <header>
    • <footer>
    • <table>
    • <td>
3.2.4 <htmledit>

    Ver ejemplo en un archivo XSD: appml-xsd#htmledit..

  • El elemento <htmledit> permite definir los elementos editables de una lista html.
3.2.5 <htmlform>

    Ver ejemplo en un archivo XSD: appml-xsd.#htmlform .

  • El elemento <htmlform> permite definir un formulario html para entrada de datos.
  • El elemento <htmlform> puede tener los siguientes sub elementos:
    • <title>
    • <stylesheet>
    • <script>
    • <onload>
    • <commands>
    • <sql>
    • <elements>
    • <header>
    • <footer>
    • <form>

  • Consultar Controles del formulario.

Página generada automáticamente desde la Base de Datos: AppmlDoc/ el 15/6/2008 10:02:35