1. Tipos de datos
Nada Tipo nulo
Número Un número de coma flotante de doble precisión. Ejemplo: 12777,45, 0,000056, 1E18
Texto Una cadena de texto de hasta 255 caracteres. Ejemplo: "hola”, 'sin comentarios'
Lógico Los valores 'cierto' y 'falso'. Ejemplo: cierto, falso, a < b
Bloque Un bloque de código. Ejemplo: {a=1;b=2;c=3}
Variable Una variable, de cualquiera de los tipos indicados Ejemplo: &a (siendo a una variable)
Lista Una lista (array) de elementos, de cualquiera de los tipos indicados. Ejemplo: #("uno"; "dos"; "tres")
Tipo Un tipo de dato, cualquiera de los tipos indicados. Ejemplo: tipo("uno")
Item Un elemento de una lista (array)
Objeto Un objeto.
2. Operadores de cálculo
+ (más) - Suma de dos números Ejemplo: 3 + 4 devuelve 7 - Concatenación de dos textos Ejemplo: "uno" + "dos" devuelve "unodos"
- (menos) - Resta de dos números Ejemplo: 3 - 4 devuelve -1 - Cambio de signo de un número Ejemplo: -(3 + 4) devuelve -7
* (asterisco) Multiplicación de dos números Ejemplo: 3 * 4 devuelve 12
/ (barra de división) División de dos números Ejemplo: 3 / 4 devuelve 0,75
modulo Resto de la división entera de dos números Ejemplo 7 modulo 4 devuelve 3
no negación de un valor lógico Ejemplo: no (3 > 4) devuelve cierto
y Combina dos valores lógicos con el operador lógico AND Ejemplo: (1 > 2) y (3 < 4) devuelve falso
o Combina dos valores lógicos con el operador lógico OR Ejemplo: (1 > 2) o (3 < 4) devuelve cierto
3. Operador de asignación
= (igual) Asigna un valor (y un tipo) a una variable, definiéndola si no existe Ejemplo: a = 7 Nota: No utilizar este operador para comparar dos elementos (un error bastante frecuente)
4. Operadores de comparación
== (doble igual) Devuelve cierto si los dos elementos comparados son iguales. Es aplicable a todos los tipos, pero si los elementos son de diferente tipo, se produce un "error de tipo". Ejemplo: 3 == 4 devuelve falso
<> (menor-mayor) Devuelve cierto si los dos elementos comparados son diferentes. Es aplicable a todos los tipos, pero si los elementos son de diferente tipo, se produce un "error de tipo". Ejemplo: 3 <> 4 devuelve cierto
>, >=, <, <= (mayor, mayor-igual, menor, menor-igual) - Si los operandos son números, evalúa las comparaciones según el valor numérico de los operandos Ejemplo: 3 > 4 devuelve falso - Si los operandos son textos, evalúa las comparaciones según el orden alfabético de los operandos, sin tener en cuenta las mayúsculas / minúsculas Ejemplo: "abeja" < "mosca" devuelve cierto - Si los operandos son lógicos, se considera que cierto es mayor a falso Ejemplo: cierto > falso devuelve cierto - Si los operandos son de diferente tipo entre sí, o de cualquier otro tipo que los arriba indicados, se produce un "error de tipo"
5. Otros operadores
() (paréntesis) - Agrupan operaciones, alterando su precedencia. Se permiten ilimitados niveles Ejemplo: (a + b)*(c + (d - e) / 2) - Indican los argumentos o parámetros de las funciones Ejemplo: EnLetras(a) - Precedidos por el símbolo #, definen una lista de elementos Ejemplo: #("uno";"dos";"tres")
[ ] (corchetes) - Permiten obtener un carácter de un texto Ejemplo: a = "distrito-k"; a[3] devuelve "s" - Permiten obtener un elemento de una lista (array) Ejemplo: a = #("uno";"dos";"tres"); a[2] devuelve "dos" - Evalúan una función predefinida (depende de la aplicación) Ejemplo (sólo en Conta): [s '430'] devuelve el saldo de la cuenta 430
{ } (llaves) Delimitan un bloque de código Ejemplo: si a == b entonces {a = a + 1} sino {a = a - 1}
@ (arroba) Permite obtener el valor de una variable cuyo nombre se obtiene a partir de una expresión Ejemplo: a = 25; nombre = "a"; @nombre devuelve 25
& (ampersand) Permite obtener la variable cuyo nombre se obtiene a partir de una expresión Ejemplo: a = 25; &a devuelve la variable a, no el valor 25
; (punto y coma) Permite separar los elementos de una lista (array) Ejemplo: a = #("uno";"dos";"tres") -Permite separar los argumentos o parámetros de una función Ejemplo: Min(a; b) -Permite ejecutar más de una orden, separándolas entre sí. El valor devuelto por el conjunto de órdenes es el último evaluado. Ejemplo: a = 3; b = 4; a + b; Se ejecutan las tres órdenes, y devuelve 7
6. Estructuras de lenguaje
funciones Para llamar a una función, debe indicarse su nombre, y si desean indicarse argumentos o parámetros, deben indicarse a continuación entre paréntesis, separados entre sí por ";" Ejemplo de llamada a una función sin argumentos: Pi Ejemplo de llamada a una función con argumentos: Max(a;b)
si
si
mientras
haz
7. Constantes predefinidas
Constante Tipo Descripción
Nada Nada El valor nulo Cierto Lógico El valor lógico cierto Falso Lógico El valor lógico falso TNada Tipo El tipo Nada TNumero Tipo El tipo Número TTexto Tipo El tipo Texto TLogico Tipo El tipo Lógico TBloque Tipo El tipo Bloque TVariable Tipo El tipo Variable TLista Tipo El tipo Lista TTipo Tipo El tipo Tipo
8. Funciones matemáticas
Función Resultado Descripción
Pi Número El número Pi (3,1415...)
Abs(
Redondeo(
Defecto(
Exceso(
Entero(
Decimal(
Positivo(
Negativo(
RedondeoDec(
RedondeoFactor(
LogXY(
Potencia(
Min(
Max(
9. Funciones de manipulación de textos
Función Resultado Descripción
TxRellenaDer(
TxSustituye(
TxLimpiaDer(
TxPosicion(
TxTrozo(
TxBorra(
Intro Texto Devuelve un retorno de carro
10. Funciones de conversión
Función Resultado Descripción
EnTexto(
EnNumero(
EnLetra(
Formatea(
Formatea(
11. Funciones de manipulación de listas (arrays)
Función Resultado Descripción
LCrea Lista Crea y devuelve una lista vacía
LBorra(
LTamaño(
LQuita(
LAplica(
LCarga(
LGraba(
TipoLista(
ChequeaTipoItem(
12. Funciones de manipulación de variables
Función Resultado Descripción
VerVars(
EditarVars(
DuplicarVars(
BorrarVars(
RenombrarVars(
SustituirVars(
SustituirVars(
SetVariablePrefix(
GetVariablePrefix Texto Devuelve el prefijo por defecto para las nuevas variables
Tipo(
13. Funciones varias
Función Resultado Descripción
Mensaje(
Pregunta(
Confirma(
Error(
FechaHoy Texto Devuelve la fecha actual
14. Formato de máscaras para números
Una máscara es un texto que indica la forma de presentar un número, y puede estar formada por los siguientes especificadores:
"0" Indica la posición de un dígito. Si el valor que se está formateando tiene un dígito en la posición donde el "0" aparece en la máscara, entonces se muestra ese dígito. Si no, se muestra un "0" en esa posición.
"#" Indica la posición de un dígito. Si el valor que se está formateando tiene un dígito en la posición donde el "0" aparece en la máscara, entonces se muestra ese dígito. Si no, no se muestra nada en esa posición.
"." Separador decimal. El primer caracter "." en la máscara determina la posición del separador decimal en el valor presentado. Cualquier "." adicional se ignora.
"," Separador de miles. Si la máscara contiene algún caracter ",", el valor presentado tendrá separadores de miles cada tres dígitos a la izquierda del separador decimal. La ubicación y la cantidad de "," en la máscara no afecta al resultado.
"e+" Notación científica. Si cualquiera de los textos "e+", "e-" aparecen en la máscara, el número es presentado utilizando notación científica. Puede agregarse a estos símbolos un grupo de hasta cuatro "0", para indicar el mínimo número de dígitos del exponente. El especificador "e+" muestra siempre el signo del exponente, ya sea positivo o negativo, pero el especificador "e-" sólo muestra el signo si es negativo.
'xx' ó "xx" Los caracteres encerrados por comillas simples o dobles se muestran tal como se indican, y no afectan al formato. Lo mismo ocurre si utilizamos cualquier caracter que no sea un especificador de la presente lista.
";" Separa las secciones para números positivos, negativos o ceros en la máscara.
Notas
-El número se presenta siempre redondeado a la máxima cantidad de decimales indicados por los "0" ó "#" a la derecha del separador decimal. Si la máscara no contiene el separador decimal, el número se redondeará al entero más cercano.
-Si el número tuviera más dígitos que los indicados en la máscara, estos dígitos se presentarán a la izquierda del primer "0" ó "#".
-Para permitir diferentes máscaras para valores positivos, negativos y ceros, la máscara puede contener entre una y tres secciones separadas por ";". - Una sección: La máscara se aplica a todos los valores - Dos secciones: La primera se aplica a valores positivos y ceros, y la segunda a negativos - Tres secciones: La primera se aplica a valores positivos, la segunda a negativos, y la tercera a ceros
-Si la máscara está vacía, o no se especifica máscara, el valor se presenta utilizando la siguiente máscara por defecto: ",0.#####". Es decir, con separador de miles, y con hasta cinco decimales, presentando siempre el cero pava valores menores a uno.
-En cualquier caso, si hubiera más de 18 dígitos a la izquierda del separador decimal, se presentará el número en notación científica, aunque no se haya especificado.
Ejemplos
Valores 1234 -1234 0,5 0
"" 1234 -1234 0,5 0
"0" 1234 -1234 1 0
"0.00" 1234,00 -1234,00 0,50 0,00
"#.##" 1234 -1234,5
"#,##0.00" 1.234,00 -1.234,00 0,50 0,00
"#,##0.00;(#,##0.00)" 1.234,00 (1.234,00) 0,50 0,00
"#,##0.00;;Cero" 1.234,00 -1.234,00 0,50 Cero
"0.000E+00" 1,234E+03 -1,234E+03 5,000E-01 0,000E+00
"#.###E-0" 1,234E3 -1,234E3 5E-1 0E0
Funciones específicas de SQL OBRAS para impresión de documentos
El sistema de impresión de documentos de SQL OBRAS proporciona dos objetos que permiten indicar fórmulas, definiendo todas las variables indicadas en la parte derecha del editor de formularios. Estos objetos son:
DocumentoFórmula La fórmula se evaluará una vez para cada objeto y página. Si existen varias órdenes, separadas por ";", se procederá normalmente, devolviendo el resultado de la última orden. Las funciones adicionales disponibles en este contexto son:
DatoAdicional Se explica más adelante
ArtículoFórmula La fórmula se evaluará una vez para cada línea del documento. Si existen varias órdenes, separadas por ";", se evaluará cada orden por separado, agregando el resultado de cada una al cuerpo del documento. Las funciones adicionales disponibles en este contexto son:
DatoAdicional Se explica más adelante
ArtículoCaracterística Se explica más adelante
ArtículoDocOrigenDatoAdicional Funciona como DatoAdicional, pero obtiene los datos del documento de origen de la línea actual
CambióOrigen Si el origen de la línea actual ha cambiado con respecto a la anterior, la función devuelve Cierto, y si no, devuelve Falso
F<n> Cambia la fuente actual a la de índice <n>
I<n> Cambia la indentación actual a <n> centímetros
S<n> Inserta <n> líneas a esta columna, e inserta líneas en blanco a todas las demás columnas hasta quedar a la altura de ésta.
ENTER Inserta una línea en blanco
ORIGEN Si el origen de esta línea ha cambiado con respecto a la anterior, devuelve: "De <tipo> Nº <serie>-<número> del <fecha>:"
DatoAdicional(
Esta función permite obtener información sobre los datos adicionales de las entidades. Los parámetros son:
Ejemplos
DatoAdicional("Cliente"; "El valor de%n es%v") podría devolver la siguiente lista El valor de Ultima visita es 12/01/2001 El valor de Garantía es Sí El valor de Importe de la póliza es 12.500 DatoAdicional("Artículo"; "%v"; "Garantía") podría devolver el siguiente valor 6 meses
Funciones equivalentes
Para una mayor comodidad de uso, se han definido las siguientes funciones equivalentes:
En documentos
DocumentoDatoAdicionalNombre(
En órdenes de fabricación
DatoAdicionalNombre(
ArtículoCaracterística(
Esta función permite obtener información sobre las características indicadas en las líneas de los documentos. Los parámetros son:
Ejemplos
ArtículoCaracterística("%p") podría devolver la siguiente lista Talla 36, Color Rojo Talla 36, Color Negro Talla 38, Color Negro Lote 18 Lote 20 Lote 22 ArtículoCaracterística("%p:%c", "Talla-Color") podría devolver la siguiente lista Talla 36, Color Rojo: 12,5 Talla 36, Color Negro: 27,0 Talla 38, Color Negro: 11,4 ArtículoCaracterística("%n%v =%c%u", "Lotes") podría devolver la siguiente lista Lote 18 = 5,2 Kg Lote 20 = 12,4 Kg Lote 22 = 0,7 Kg ArtículoCaracterística("%p", "Talla-Color", "36") podría devolver la siguiente lista Talla 36, Color Rojo Talla 36, Color Negro ArtículoCaracterística("%p", "Talla-Color", "", "Negro") podría devolver la siguiente lista Talla 36, Color Negro Talla 38, Color Negro ArtículoCaracterística("%p", "Talla-Color", "", "", "Color") podría devolver la siguiente lista Talla 36, Color Negro Talla 38, Color Negro Talla 36, Color Rojo
Funciones equivalentes
Para una mayor comodidad de uso, se han definido las siguientes funciones equivalentes: ArtículoCaracterísticaNombre(...) = ArtículoCaracterística("%n";...) ArtículoCaracterísticaValor(...) = ArtículoCaracterística("%v";...) ArtículoCaracterísticaPar(...) = ArtículoCaracterística("%p";...) ArtículoCaracterísticaCantidad(...) = ArtículoCaracterística("%c";...) ArtículoCaracterísticaUnidad(...) = ArtículoCaracterística("%u";...)
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.