Campo
Última actualización
Última actualización
Un campo es un subobjeto del objeto tabla que define la mínima unidad de información dentro de un registro a la que podemos acceder. Un campo se crea pulsando la opción .
Para crear un campo enlazado a maestro pulsaremos la opción . Para crear un campo enlazado a tabla estática pulsaremos la opción .
Etiqueta alfanumérica que identifica de forma unívoca un campo dentro de una tabla. Este identificador será el que usemos en fórmulas y para referenciarlo en otras propiedades.
El identificador constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca un campo de una tabla no puede haber duplicidad.
No debemos modificar el identificador de un campo de una tabla que ya contenga datos ya que, si lo hacemos, se perderá el contenido del mismo al realizarse la regeneración de la tabla. En el caso de que queramos hacerlo, debemos hacer uso de un sub-objeto de tabla traspaso de campo.
Los identificadores ID y NAME son palabras reservadas. El identificador ID referencia el campo que es clave primaria de la tabla e identifica unívocamente cada registro. El identificador NAME referencia el campo principal de una tabla y que es usado por el sistema para presentar información de un registro. No debemos alterar ninguno de los dos identificadores si no queremos perder la funcionalidad implícita, aunque si podemos modificar sus descriptores, la propiedad nombre.
Sobre el campo ID es muy importante tener en cuenta que si en ejecución modificamos el ID de un registro que tiene registros en tablas plurales, se cambiará dicho ID en los mismos, pero no dispara ni triggers, ni actualizaciones ni contenidos iniciales en los plurales, ya que simplemente lo que debe hacer es asignar el nuevo ID a los mismos. En este caso si deseamos forzar cambios de datos en los plurales, tendremos que programarlo en el trigger posterior a la modificación del maestro, recorriendo los plurales y realizando las modificaciones correspondientes.
Etiqueta alfanumérica que servirá como descriptor del campo. Se usará para presentar información del campo en objetos e inspectores. Podemos definir una etiqueta por cada idioma presente en el proyecto.
Que limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo; si un campo tiene este estilo activado, no estará disponible al usuario final en las fórmulas para establecer filtrados, etc..
Esta propiedad nos permite documentar el uso del campo.
Los campos pueden estar enlazados o no a otra tabla. En el caso de que no se encuentren enlazados hemos de definir las propiedades según el tipo de campo. Si está enlazado, asumirá las propiedades del campo ID de la tabla enlazada.
Los tipos de enlace disponibles son:
Si hemos definido que el campo es enlazado debemos definir cuál es la tabla enlazada por el campo. Nos mostrará todas las tablas disponibles del proyecto y de los proyectos heredados.
Si hemos definido que el campo es enlazado y la tabla enlazada es de tipo submaestro, mostrará el campo padre de la tabla.
Si hemos definido que el campo es enlazado y la tabla enlazada es de tipo tabla estática, seleccionaremos la tabla estática enlazada.
Si hemos definido que el campo es enlazado y el tipo de enlace es enlace indirecto real o enlace indirecto virtual se seleccionará un índice de clave única por el que se buscará en la tabla enlazada.
Si hemos definido que el campo es enlazado y el tipo de enlace es enlace indirecto real, enlace indirecto virtual o enlace singular de plural por índice debemos resolver los valores para cada uno de los campos que componen el índice de clave única por el que buscamos en la tabla enlazada usando los datos del registro en curso usando fórmulas para ello.
Si hemos definido que el campo es enlazado y el tipo de enlace es singular de plural por posición o singular de plural por índice debemos seleccionar el enlace plural por el que se buscará.
Si hemos definido que el campo es enlazado y el tipo de enlace es singular de plural por posición o singular de plural por índice debemos definir la expresión fórmula que permite calcular la posición del registro que queremos apuntar.
Si hemos definido que el campo es enlazado y el tipo de enlace es singular de plural por índice debemos definir el modo de búsqueda del registro plural, que podrá ser:
Es decir, con el mismo valor que el definido en la resolución para ese componente.
Con un valor mayor o igual que el definido en la resolución.
Con un valor igual o menor que el definido en la resolución.
Con un valor mayor que el definido.
Con un valor menor que el definido.
Con el valor que se encuentre en la primera posición del índice.
Con un valor que se encuentre en la última posición del índice.
Si hemos definido que el campo es enlazado y el tipo de enlace es hermano contiguo debemos definir las partes comunes que componen el índice por el que nos movemos al hermano contiguo.
Si hemos definido que el campo es enlazado y el tipo de enlace es hermano contiguo debemos definir la dirección por la que nos movemos al hermano contiguo, bien al registro anterior, bien al siguiente.
En el caso de que no hayamos definido el campo como enlazado, debemos definir el tipo de campo y sus propiedades.
Los tipos de campo disponibles son:
Se usa en códigos de barras y aquellos códigos que no necesiten usar espacios en blanco ni caracteres especiales. Cada 2 bytes almacena 3 caracteres.
Se usa para datos textos que deban guardarse en mayúsculas o que contengan números y caracteres especiales de uso común como el guión o la barra inclinada. Cada 3 bytes almacena 4 caracteres.
Se usa para almacenar datos en los que se desprecien los espacios en blanco iniciales y finales. Permite almacenar textos en minúsuculas, números y la mayoría de los caracteres especiales estándar. Cada 7 bytes almacena 8 caracteres.
Tipo alfabético estándar que incluye todos los caracteres de la tabla ANSI. Debe usarse para almacenar URLs, direcciones de email, datos con caracteres especiales. Es un campo que no desprecia los espacios en blanco iniciales o finales, para otro tipo de datos, se recomienda usar los tipos Alfa indicados anteriormente para optimizar el uso del espacio en disco. Es el tipo de campo que se procesa más rápido al no estar comprimido. El rango máximo del campo es 65535 bytes (65535 caracteres).
Se usa para almacenar datos con la codificación ISO Latin1 (ISO-8859-1). Su velocidad de proceso es similar al del Alfa 256 ya que tampoco se comprime.
se corresponde con el estándar Unicode. Lo usamos cuando necesitamos almacenar datos de idiomas que usan doble byte como el chino, japonés, etc. Estos campos siempre ocupan como mínimo el doble que el resto de campos Alfa, por lo que deberíamos evitar su uso salvo que sea estrictamente necesario.
Usado para datos numéricos. El rango máximo del campo es 10 bytes (Del 0 al 0 al 1.208.925.819.614.629.174.706.176, o con signo del -604.462.909.807.314.587.353.088 al 604.462.909.807.314.587.353.088, con 10 decimales del 0,0000000000 al 120.892.581.961.462,9531250000). De esta configuración se ha de excluir el campo ID que tiene como rango máximo 4 bytes (Del 0 al 4294967295).
Añadir que a nivel interno en los cálculos numéricos se opera con 34 dígitos significativos, sumando enteros y decimales e incluyendo el 0 y el punto en un número decimal. Si en un campo numérico realizamos una operación matemática de división en la que el divisor es 0, obtendremos Infinity (infinito) como resultado. En el caso de que tanto el dividendo como el divisor sean 0, obtendremos NaN (Not a number) como resultado.
Los campos numéricos internamente son guardados sin separador de miles y con el punto (.) como carácter de separador decimal. Ejemplo: 125521.32
Permite introducir fechas con diversos formatos. Si bien por defecto el formato de fecha que admite es ISO 8601 (yyyy-mm-dd) cuando en una fórmula queramos asignar una fecha a un campo de este tipo, podremos hacerlo pasándola como cadena en cualquiera de los formatos que se especifican en el artículo siguiente: edición de campos de tipo fecha.
Permite introducir horas en formato HH:MM:SS. No almacena milisegundos.
Permite introducir tiempos que son la unión de una fecha y una hora con el formato DD:MM:AA HH:MM:SS. Los rangos mínimo y máximo que soporta este tipo de campo son 01-01-1970 01:00:01 y 07-02-2106 06:28:14.
Este tipo de campo internamente lo que guarda es el tiempo transcurrido en segundos desde el 01-01-1970 00:00:00, teniendo en cuenta la zona horaria en la que se guarda el dato. Cuando leemos esa información Velneo la presenta en formato local de la máquina donde la estemos leyendo, teniendo en cuenta esa diferencia horaria.
En los campos tipo Tiempo no se guardan milisegundos. Si queremos guardar esa información debemos hacerlo en un campo aparte. Sí se guardan los segundos pero no se mostrarán al pintar el campo. Para ver los segundos de un dato de tipo tiempo en un control de edición fecha/hora, puedes aplicar una máscara. En otros lugares, podemos aplicarle la función de fórmulas dateTimeToString().
Si convertimos un dato de tipo tiempo a número con la función de fórmulas stringToNumber, obtendremos un timestamp de UNX. Ejemplo:
stringToNumber(#TMP)
Es un campo lógico que permite definir el contenido como 1 ó 0 (Sí o No).
Campo con contenido variable que se almacena en un contenedor aparte de los datos, por lo que el tamaño del registro no aumenta con su uso, si no que este se contabiliza en su contenedor. El nombre de este fichero será el mismo de la tabla y con la extensión CND. El fichero de índices del contenedor tiene la extensión CNI. En el fichero de datos lo que se guarda es la dirección donde está el objeto en el contenedor. Es muy importante tener en cuenta que no se deben incluir en el contenedor objetos de más de 512 Mb. Por lo tanto, es preferible que por programación comprobemos su tamaño antes de almacenarlos, ya que el sistema permitirá meterlos hasta que llegue al límite de memoria ram, pero no podrán ser recuperados. Los tipos de campos objeto existentes son:
Su contenido es un gráfico con cualquier resolución y número de colores. Se admite cualquier formato en la importación pero se almacena con compresión JPG al 100% de calidad. Este tipo de campo no puede ser indexado.
Su contenido es un texto de longitud variable. Se almacena en bloques de 512 bytes por lo que la unidad mínima de contenido es de ese tamaño.
Su contenido es un documento con formato que permite seleccionar fuentes, estilos, alineación, etc. El formato se define mediante tags. Estos tags son análogos a los usados en html pero debemos tener en cuenta que no se trata de un soporte real y menos aún completo de html, por lo que no se recomienda incluir contenido externo, si no el generado por medio por el usuario escribiendo su contenido en el control correspondiente.
Su contenido será cualquier tipo de archivo que será almacenado en el contenedor en formato binario. La única forma de trabajar con este tipo de campo es vía proceso, con los comandos de instrucción importar binario y exportar binario, pues no existe un control específico para su edición. Este tipo de campo no puede ser indexado.
Su contenido es una fórmula de Velneo (no admite formulas JavaScript) que se define en tiempo de ejecución, y por tanto puede ser definida por el usuario final. Se trata de la definición de la fórmula y no del cálculo de su valor efectivo. Hemos de definir la tabla enlazada de la que se alimentará la fórmula. Puede ser la tabla en curso u otra tabla. En tiempo de ejecución dispondremos del asistente de fórmulas para su definición, teniendo acceso a través del mismo a los campos de la tabla enlazada, variables, constantes, etc. El rango máximo del campo es 65535 bytes (65535 caracteres).
El cálculo de la fórmula establecida podremos obtenerlo a través de otra fórmula o contenido inicial mediante el uso de la función de campo calcDynamicFormula().
En este tipo de campo no se pueden seleccionar tablas de tipo histórico ya que éstas no pueden ser enlazadas.
El límite máximo de un contenedor es 36^5 = 60.466.176 de objetos de cada tipo de objeto.
Campos virtuales que no ocupan espacio en disco. Se calculan con la expresión de tipo fórmula que define el campo en tiempo real, en cada instante que se hace uso del valor del campo. Al ser un cálculo en memoria y no guardarse en disco, no tiene las limitaciones de los tipos de campo correspondientes. No es posible su uso como componente de índices. El tipo de campo fórmula a utilizar depende del resultado buscado, no de los tipos de parámetros utilizados en el cálculo.
Fórmula Numérica
Fórmula cuyo resultado será un dato numérico. Si en un campo de tipo fórmula numérica realizamos una operación matemática de división en la que el divisor es 0, obtendremos Infinity (infinito) como resultado. En el caso de que tanto el dividendo como el divisor sean 0, obtendremos NaN (Not a number) como resultado.
Fórmula Alfabética
Fórmula cuyo resultado será una cadena alfabética Unicode.
Fórmula Fecha
Fórmula cuyo resultado será un dato tipo fecha.
Fórmula Tiempo
Fórmula cuyo resultado será un dato tipo tiempo (fecha y hora con milisegundos).
Debemos tener en cuenta que los campos fórmula no disparan el recálculo de los contenidos iniciales. Es decir, si un campo incluye en su contenido inicial un campo fórmula, si el campo ya tiene un valor y cambia el contenido de la fórmula, el contenido inicial del campo no es disparado. Por lo tanto, en esos casos, en los contenidos iniciales, usaremos campos con persistencia en disco en lugar de fórmula.
Puntero Virtual
Su contenido es virtual ya que se trata de enlaces de carácter virtual que no guardan información en disco. Se asigna de forma automática cuando se selecciona un enlace virtual. Los punteros virtuales necesitan ser calculados y solicitados al servidor en cada ocasión que se muestren o se usen. Esto en ciertos casos como puede ser al mostrarlos en rejillas o al usarlos en condiciones de activo o visible de objetos o controles (que fuerza el refresco y la solicitud de datos al servidor), el rendimiento puede verse afectado.
El cómo se muestran por defecto los campos de tipo fecha, hora, tiempo y numéricos (carácter separador de miles y decimal) dependerá del idioma seleccionado en Velneo vClient:
En Velneo vClients instalados en sistemas operativos Windows, si el idioma seleccionado es "sistema", entonces Velneo vClient hará uso de la API de Windows, es decir, tomará la configuración que el usuario tenga establecida en el propio sistema operativo.
En el caso de que esté seleccionado otro idioma distinto al idioma "sistema", entonces la presentará según el estándar UnicodeCommon Locale Data Repository.
En Velneo vClients instalados en el resto de las plataformas (macOS, Linux, iOS y Android, se usará siempre el estándar UnicodeCommon Locale Data Repository.
Las propiedades comunes de los campos son las siguientes:
Número de bytes que define el rango del campo.
Número de decimales para el campo de tipo numérico. Podrá especificar hasta 6 decimales que son los que se garantiza su precisión.
Define si el campo de tipo numérico tiene signo.
Rango límite mínimo válido para la entrada de valores.
Rango límite máximo válido para la entrada de valores.
El sistema comprueba que el máximo sea mayor que el mínimo. Esto quiere decir que el sistema no permitirá establecer como valor mínimo uno mayor al establecido en el máximo.
Expresión fórmula que será el contenido inicial del campo. La fórmula puede contener cualquier elemento que podamos incluir a través del asistente de fórmulas. Puede ser una constante, el identificador de un campo, una variable global o una variable del sistema. El contenido inicial es la fórmula y no el valor obtenido de su cálculo, por lo que si modificamos la ficha y alguno de los campos que intervienen en la fórmula es modificado, se actualizará el contenido inicial del campo.
En el campo que es clave primaria denotado con el identificador ID sólo se permiten tres opciones:
Ninguno: el valor ha de introducirse en tiempo de ejecución.
Siguiente al último: el valor es autonumérico y se genera de forma automática en ejecución.
Contador en variable: el valor lo controlamos en edición por medio de una variable global que debemos procesar.
En los campos alfabéticos también debe introducirse el contenido inicial de los mismos como fórmula.
El orden del cálculo de los contenidos iniciales de los campos viene determinado por su uso y no por el orden definido en la estructura de la tabla.
Cuando se inicia un contenido inicial y se modifica su valor esto implica verificar en qué otros contenidos iniciales de otros campos se usa este campo y lanza su cálculo. Por ejemplo:
CAMPO1 Contenido inicial = 1 CAMPO2 Contenido inicial = CAMPO1 CAMPO3 Contenido inicial = CAMPO1 + CAMPO2
La secuencia que se desencadena es la siguiente:
Se calcula el CAMPO1 y manda calcular el CAMPO2 (=1) y calcular el CAMPO3 (=1 + 0) ya que sus resultados dependen de CAMPO1.
Se calcula el CAMPO2 y se manda calcular nuevamente el CAMPO3 (=1 + 1), porque su resultado depende de CAMPO2.
Se calcula el CAMPO3 pero nadie depende de este campo.
Este modo de evaluar los contenidos iniciales permite que éstos no dependan del orden de los campos.
Añadir que modificado un campo se calcularán solamente los campos que usen dicho campo.
Esta forma de evaluar los contenidos iniciales, por tanto, garantizará el resultado correcto de los campos independientemente del orden en el que éstos sean modificados.
Esto, no obstante, es conveniente tenerlo en cuenta a la hora de diseñar nuestras estructuras de datos, sobre todo en tablas en las que exista un número elevado de campos, y para evitar generar la recursividad en el cálculo de contenidos iniciales.
Expresión fórmula usada para calcular los campos de tipo fórmula.
No debemos usar funciones en contenidos iniciales de campos ni en fórmulas de campos de tipo fórmula.
Las tablas de caracteres para los distintos tipos de campo alfabéticos propios son:
Tipo de campo | Tabla de caracteres |
Alfa 40 | (Espacio) – 0123456789 ABCÇDEFGHIJKLMNÑOPQRSTUVWXYZ |
Alfa 64 | (Espacio) -+!¡”¿?,.;:*/%&()’$#ºª 0123456789 ABCÇDEFGHIJKLMNÑOPQRSTUVWXYZ |
Alfa 128 | (Espacio) -+!¡”¿?,.;:*/%&()=’ºª 0123456789 ABCÇDEFGHIJKLMNÑOPQRSTUVWXYZ abcçdefghijklmnñopqrstuvwxyz ÁÀÂÄáàâä ÉÈÊËéèêë ÍÌÎÏíìîï ÓÒÔÖóòôö ÚÙÛÜúùûü |
Alfa 256 | |
Alfa Latin1 |
Los códigos Unicode de los caracteres de las distintas tablas de caracteres propias son:
Alfa 40 | Alfa 64 | Alfa 128 | Alfa 256 |
001 0x0020 espacio | 001 0x0020 espacio | 001 0x0020 espacio | 001 0x0020 espacio |
002 0x002D – | 002 0x002D – | 002 0x002D – | 002 0x002D – |
003 0x0030 0 | 003 0x002B + | 003 0x002B + | 003 0x002B + |
004 0x0031 1 | 004 0x00A1 ¡ | 004 0x00A1 ¡ | 004 0x00A1 ¡ |
005 0x0032 2 | 005 0x0021 ! | 005 0x0021 ! | 005 0x0021 ! |
006 0x0033 3 | 006 0x0022 ” | 006 0x0022 ” | 006 0x0022 ” |
007 0x0034 4 | 007 0x00BF ¿ | 007 0x00BF ¿ | 007 0x00BF ¿ |
008 0x0035 5 | 008 0x003F ? | 008 0x003F ? | 008 0x003F ? |
009 0x0036 6 | 009 0x002C , | 009 0x002C , | 009 0x002C , |
010 0x0037 7 | 010 0x002E . | 010 0x002E . | 010 0x002E . |
011 0x0038 8 | 011 0x003B ; | 011 0x003B ; | 011 0x003B ; |
012 0x0039 9 | 012 0x003A : | 012 0x003A : | 012 0x003A : |
013 0x0041 A | 013 0x002A * | 013 0x002A * | 013 0x002A * |
014 0x0042 B | 014 0x002F / | 014 0x002F / | 014 0x002F / |
015 0x0043 C | 015 0x0025 % | 015 0x0025 % | 015 0x0025 % |
016 0x00C7 Ç | 016 0x0026 & | 016 0x0026 & | 016 0x0026 & |
017 0x0044 D | 017 0x0028 ( | 017 0x0028 ( | 017 0x0028 ( |
018 0x0045 E | 018 0x0029 ) | 018 0x0029 ) | 018 0x0029 ) |
019 0x0046 F | 019 0x003C | 019 0x003D = | 019 0x003D = |
020 0x0047 G | 022 0x0027 ‘ | 020 0x0027 ‘ | 020 0x0027 ‘ |
021 0x0048 H | 023 0x0024 $ | 021 0x0030 0 | 021 0x0030 0 |
022 0x0049 I | 024 0x0023 # | 022 0x0031 1 | 022 0x0031 1 |
023 0x004A J | 025 0x0030 0 | 023 0x0032 2 | 023 0x0032 2 |
024 0x004B K | 026 0x0031 1 | 024 0x0033 3 | 024 0x0033 3 |
025 0x004C L | 027 0x0032 2 | 025 0x0034 4 | 025 0x0034 4 |
026 0x004D M | 028 0x0033 3 | 026 0x0035 5 | 026 0x0035 5 |
027 0x004E N | 029 0x0034 4 | 027 0x0036 6 | 027 0x0036 6 |
028 0x00D1 Ñ | 030 0x0035 5 | 028 0x0037 7 | 028 0x0037 7 |
029 0x004F O | 031 0x0036 6 | 029 0x0038 8 | 029 0x0038 8 |
030 0x0050 P | 032 0x0037 7 | 030 0x0039 9 | 030 0x0039 9 |
031 0x0051 Q | 033 0x0038 8 | 031 0x0041 A | 031 0x0041 A |
032 0x0052 R | 034 0x0039 9 | 032 0x00C1 Á | 032 0x00C1 Á |
033 0x0053 S | 035 0x0041 A | 033 0x00C0 À | 033 0x00C0 À |
034 0x0054 T | 036 0x0042 B | 034 0x00C2 Â | 034 0x00C2 Â |
035 0x0055 U | 037 0x0043 C | 035 0x00C4 Ä | 035 0x00C3 Ã |
036 0x0056 V | 038 0x00C7 Ç | 036 0x0061 a | 036 0x00C4 Ä |
037 0x0057 W | 039 0x0044 D | 037 0x00E1 á | 037 0x00C5 Å |
038 0x0058 X | 040 0x0045 E | 038 0x00E0 à | 038 0x00C6 Æ |
039 0x0059 Y | 041 0x0046 F | 039 0x00E2 â | 039 0x0061 a |
040 0x005A Z | 042 0x0047 G | 040 0x00E4 ä | 040 0x00E1 á |
043 0x0048 H | 041 0x0042 B | 041 0x00E0 à | |
044 0x0049 I | 042 0x0062 b | 042 0x00E2 â | |
045 0x004A J | 043 0x0043 C | 043 0x00E3 ã | |
046 0x004B K | 044 0x0063 c | 044 0x00E4 ä | |
047 0x004C L | 045 0x00C7 Ç | 045 0x00E5 å | |
048 0x004D M | 046 0x00E7 ç | 046 0x00E6 æ | |
049 0x004E N | 047 0x0044 D | 047 0x0042 B | |
050 0x00D1 Ñ | 048 0x0064 d | 048 0x0062 b | |
051 0x004F O | 049 0x0045 E | 049 0x0043 C | |
052 0x0050 P | 050 0x00C9 É | 050 0x0063 c | |
053 0x0051 Q | 051 0x00C8 È | 051 0x00C7 Ç | |
054 0x0052 R | 052 0x00CA Ê | 052 0x00E7 ç | |
055 0x0053 S | 053 0x00CB Ë | 053 0x0044 D | |
056 0x0054 T | 054 0x0065 e | 054 0x0064 d | |
057 0x0055 U | 055 0x00E9 é | 055 0x0045 E | |
058 0x0056 V | 056 0x00E8 è | 056 0x00C9 É | |
059 0x0057 W | 057 0x00EA ê | 057 0x00C8 È | |
060 0x0058 X | 058 0x00EB ë | 058 0x00CA Ê | |
061 0x0059 Y | 059 0x0046 F | 059 0x00CB Ë | |
062 0x005A Z | 060 0x0066 f | 060 0x0065 e | |
063 0x00BA º | 061 0x0047 G | 061 0x00E9 é | |
064 0x00AA ª | 062 0x0067 g | 062 0x00E8 è | |
063 0x0048 H | 063 0x00EA ê | ||
064 0x0068 h | 064 0x00EB ë | ||
065 0x0049 I | 065 0x0046 F | ||
066 0x00CD Í | 066 0x0066 f | ||
067 0x00CC Ì | 067 0x0047 G | ||
068 0x00CE Î | 068 0x0067 g | ||
069 0x00CF Ï | 069 0x0048 H | ||
070 0x0069 i | 070 0x0068 h | ||
071 0x00ED í | 071 0x0049 I | ||
072 0x00EC ì | 072 0x00CD Í | ||
073 0x00EE î | 073 0x00CC Ì | ||
074 0x00EF ï | 074 0x00CE Î | ||
075 0x004A J | 075 0x00CF Ï | ||
076 0x006A j | 076 0x00D0 Ð | ||
077 0x004B K | 077 0x0069 i | ||
078 0x006B k | 078 0x00ED í | ||
079 0x004C L | 079 0x00EC ì | ||
080 0x006C l | 080 0x00EE î | ||
081 0x004D M | 081 0x00EF ï | ||
082 0x006D m | 082 0x00F0 ð | ||
083 0x004E N | 083 0x004A J | ||
084 0x006E n | 084 0x006A j | ||
085 0x00D1 Ñ | 085 0x004B K | ||
086 0x00F1 ñ | 086 0x006B k | ||
087 0x004F O | 087 0x004C L | ||
088 0x00D3 Ó | 088 0x006C l | ||
089 0x00D2 Ò | 089 0x004D M | ||
090 0x00D4 Ô | 090 0x006D m | ||
091 0x00D6 Ö | 091 0x004E N | ||
092 0x006F o | 092 0x006E n | ||
093 0x00F3 ó | 093 0x00D1 Ñ | ||
094 0x00F2 ò | 094 0x00F1 ñ | ||
095 0x00F4 ô | 095 0x004F O | ||
096 0x00F6 ö | 096 0x00D3 Ó | ||
097 0x0050 P | 097 0x00D2 Ò | ||
098 0x0070 p | 098 0x00D4 Ô | ||
099 0x0051 Q | 099 0x00D5 Õ | ||
100 0x0071 q | 100 0x00D6 Ö | ||
101 0x0052 R | 101 0x00D8 Ø | ||
102 0x0072 r | 102 0x006F o | ||
103 0x0053 S | 103 0x00F3 ó | ||
104 0x0073 s | 104 0x00F2 ò | ||
105 0x0054 T | 105 0x00F4 ô | ||
106 0x0074 t | 106 0x00F5 õ | ||
107 0x0055 U | 107 0x00F6 ö | ||
108 0x00DA Ú | 108 0x00F8 ø | ||
109 0x00D9 Ù | 109 0x0050 P | ||
110 0x00DB Û | 110 0x0070 p | ||
111 0x00DC Ü | 111 0x0051 Q | ||
112 0x0075 u | 112 0x0071 q | ||
113 0x00FA ú | 113 0x0052 R | ||
114 0x00F9 ù | 114 0x0072 r | ||
115 0x00FB û | 115 0x0053 S | ||
116 0x00FC ü | 116 0x0073 s | ||
117 0x0056 V | 117 0x0054 T | ||
118 0x0076 v | 118 0x0074 t | ||
119 0x0057 W | 119 0x0055 U | ||
120 0x0077 w | 120 0x00DA Ú | ||
121 0x0058 X | 121 0x00D9 Ù | ||
122 0x0078 x | 122 0x00DB Û | ||
123 0x0059 Y | 123 0x00DC Ü | ||
124 0x0079 y | 124 0x0075 u | ||
125 0x005A Z | 125 0x00FA ú | ||
126 0x007A z | 126 0x00F9 ù | ||
127 0x00BA º | 127 0x00FB û | ||
128 0x00AA ª | 128 0x00FC ü | ||
129 0x0056 V | |||
130 0x0076 v | |||
131 0x0057 W | |||
132 0x0077 w | |||
133 0x0058 X | |||
134 0x0078 x | |||
135 0x0059 Y | |||
136 0x00DD Ý | |||
137 0x0079 y | |||
138 0x00FD ý | |||
139 0x005A Z | |||
140 0x007A z | |||
141 0x00DE Þ | |||
142 0x00FE þ | |||
143 0x00DF ß | |||
144 0x00FF ÿ | |||
145 0x00BA º | |||
146 0x00AA ª | |||
147 0x0023 # | |||
148 0x0024 $ | |||
149 0x003C | |||
151 0x0040 @ | |||
152 0x005B [ | |||
153 0x005D ] | |||
154 0x005C \ | |||
155 0x005E ^ | |||
156 0x005F _ | |||
157 0x0060 ` | |||
158 0x007B { | |||
159 0x007D } | |||
160 0x007C | | |||
161 0x007E ~ | |||
162 0x00A2 ¢ | |||
163 0x00A3 £ | |||
164 0x00A4 ¤ | |||
165 0x00A5 ¥ | |||
166 0x00A6 ¦ | |||
167 0x00A7 § | |||
168 0x00A8 ¨ | |||
169 0x00A9 © | |||
170 0x00AB « | |||
171 0x00BB » | |||
172 0x00AC ¬ | |||
173 0x00AD | |||
174 0x00AE ® | |||
175 0x00AF ¯ | |||
176 0x00B0 ° | |||
177 0x00B1 ± | |||
178 0x00B2 ² | |||
179 0x00B3 ³ | |||
180 0x00B4 ´ | |||
181 0x00B5 µ | |||
182 0x00B6 ¶ | |||
183 0x00B7 · | |||
184 0x00B8 ¸ | |||
185 0x00B9 ¹ | |||
186 0x00BC ¼ | |||
187 0x00BD ½ | |||
188 0x00BE ¾ | |||
189 0x00D7 × | |||
190 0x00F7 ÷ | |||
191 0x0E3F Signo del Thai Baht | |||
192 0x20A1 Signo del colón | |||
193 0x20A2 Signo del cruzeiro | |||
194 0x20A4 Signo de la lira | |||
195 0x20A5 Signo de mil | |||
196 0x20A6 Signo del naira | |||
197 0x20A8 Signo de la rupia | |||
198 0x20A9 Signo del won | |||
199 0x20AA Signo de nuevo shequel | |||
200 0x20AB Signo del dong | |||
201 0x20AC Signo del euro | |||
202 0x2202 Derivada parcial | |||
203 0x2206 Incremento | |||
204 0x220F Productorio | |||
205 0x2211 Sumatoria | |||
206 0x2212 Signo menos | |||
207 0x2215 Barra (oblicua) de división | |||
208 0x2219 Operador de viñeta | |||
209 0x221A Raíz cuadrada | |||
210 0x221E Infinito | |||
211 0x2220 Angulo | |||
212 0x222B Integral | |||
213 0x2248 Casi igual a | |||
214 0x2260 Distinto | |||
215 0x2261 Idéntico | |||
216 0x2264 Menor que o igual a | |||
217 0x2265 Mayor que o igual a | |||
218 0x0192 Letra latina minúscula f con gancho | |||
219 0x2310 Signo de negación invertido | |||
220 0x2122 Signo inglés de marca comercial | |||
221 0x2018 Comilla tipográfica de apertura | |||
222 0x2019 Comilla tipográfica de cierre | |||
223 0x201C Comillas tipográficas de apertura | |||
224 0x201D Comillas tipográficas de cierre | |||
225 0x2022 Viñeta | |||
226 0x2014 Guión largo o raya | |||
227 0x201A Comilla tipográfica en forma de 9 simple y baja | |||
228 0x201E Comilla tipográfica en forma de 9 doble y baja | |||
229 0x2020 Cruz | |||
230 0x2021 Cruz doble | |||
231 0x2026 Elipsis horizontal | |||
232 0x2032 Prima | |||
233 0x02C6 Acento circunflejo modificador de letra | |||
234 0x02C7 Acento circunflejo | |||
235 0x2030 Signo de por mil | |||
236 0x0160 Letra latina mayúscula S con acento circunflejo | |||
237 0x0161 Letra latina minúscula s con acento anticircunflejo | |||
238 0x2039 Comilla tipográfica simple angular de apertura | |||
239 0x0152 Ligadura latina mayúscula OE | |||
240 0x017D Letra latina mayúscula Z con acento anticircunflejo | |||
241 0x0392 Letra griega mayúscula alfa | |||
242 0x03B1 Letra griega minúscula alfa | |||
243 0x0392 Letra griega mayúscula beta | |||
244 0x03B2 Letra griega minúscula beta | |||
245 0x0393 Letra griega mayúscula gamma | |||
246 0x03B3 Letra griega minúscula gamma | |||
247 0x0394 Letra griega mayúscula delta | |||
248 0x03B4 Letra griega minúscula delta | |||
249 0x0395 Letra griega mayúscula epsilon | |||
250 0x03B5 Letra griega minúscula epsilon | |||
251 0x0396 Letra griega mayúscula zeta | |||
252 0x03B6 Letra griega minúscula zeta | |||
253 0x2640 Signo de la mujer | |||
254 0x2642 Signo del hombre | |||
255 0x0009 Carácter de tabulación | |||
256 0x000A Nueva linea |