Академический Документы
Профессиональный Документы
Культура Документы
Vamos a ver una funció n que será usada en altas y modificaciones de las
tablas CLIENTES y PROVEEDORES para comprobar si es correcto el NIF
que introduzca el usuario.
FUNCIÓ N CONTROL-NIF
A lo largo del proceso se usa en distintas líneas la variable local ‘nif’, que no
es otra cosa que el pará metro definido en la funció n.
Editar Al pulsar el botó n Editar del cuadro de diá logo Proceso, o hacer doble
clic sobre las líneas del á rea de proceso, aparece la ventana Línea de Pro-
ceso, donde se informa del origen del subproceso actual y de las funciones
disponibles, las cuales dependen de que el origen sea ficha o lista. Tambié n
hay funciones específicas segú n sea Proceso, Demonio o Funció n.
Funciones Bá sicas
En este apartado veremos las funciones bá sicas que hay, en general, co-
munes a otros lenguajes informá ticos de alto nivel. É stas son:
08 Desarrollo completo
de una aplicació n
FUNCIONES BÁ SICAS
If
Esta funció n crea un subproceso de lista o de ficha en funció n del origen.
El subproceso se ejecuta si se cumple la expresió n condicional. Es una Fun-
ció n comú n de lista y de ficha.
Ejemplo e
Else If
Esta funció n, que siempre tiene que ir precedida de una funció n if, crea un
subproceso de lista o de ficha, en funció n del origen de la línea. El subpro-
ceso se ejecuta si se cumple la expresió n condicional. Es una Funció n co-
mú n de lista y de ficha.
e Ejemplo
if -> %CAMPO% = 1
Else
Funció n que ejecuta las instrucciones que tenga en su rama, siempre y
cuando no se cumpla el condicional previo (funció n If). La funció n Else tie-
ne que ir precedida de una funció n If a su misma altura. Es una Funció n co-
mú n de lista y de ficha y no tiene pará metros.
e Ejemplo
For
Repite las líneas contenidas en el bucle mientras se cumpla la condició n
declarada. La variable del bucle (especificada en el primer pará metro) es
de tipo local, de modo que para acceder a ella se utilizará n apó strofes, co-
mo en el resto de las variables locales. Es una Funció n comú n de lista y de
ficha.
Fó rmula condició n: expresió n que se deberá cumplir para continuar con las
iteraciones del bucle (obligatorio).
Ejemplo e
Id variable: VarLoc
Fó r. Inicial: 47
Fó r. Inc.: 2
Rem
Esta funció n permite incluir comentarios en los procesos, así nos resultará
mucho má s fá cil su revisió n. Es una Funció n comú n de lista y de ficha.
Ejemplo e
Set
Con esta funció n declaramos una variable local del proceso y le asignamos
valores, almacenando en ella el dato calculado por la expresió n fó rmula. Si
la variable local no existe se crea automá ticamente. Como la variable es lo-
cal só lo es posible usarla en este proceso, siendo creada cuando aparezca
esta instrucció n y destruida cuando finalice el proceso. Es una Funció n co-
mú n de lista y de ficha.
e Ejemplo
Identificador: MARCAARTI
Fó rmula: %MARCA%
e Ejemplo
Pedir dato
Pide un dato al usuario y lo guarda en la variable local con el identificador
dado. Para usar esta variable local en las expresiones fó rmula, al igual que
todas las variables locales, su identificador debe ir entre apó strofes (‘). Es
una Funció n comú n de lista y de ficha.
Tipo: tipo de dato a guardar. Hay tres tipos: Numé rico, Texto y Fecha (obli-
gatorio).
Ejemplo e
Este ejemplo visualizará una ventana con el texto ‘Escriba la fecha límite’ y
un control de edició n para introducir dicha fecha, la cual será guardada en
la variable local ‘FECHAMAX’. Los pará metros son:
Identificador: FECHAMAX
Tipo: Fecha
Mensaje
Muestra en una ventana el contenido evaluado de una fó rmula junto con el
icono seleccionado. Es una Funció n comú n de lista y de ficha a la que he-
mos de pasar los siguientes pará metros:
Icono: el que se mostrará junto con el mensaje (opcional). Hay tres: excla-
mació n , stop e informació n . Exclamació n
e Ejemplo
e Ejemplo
Ejecutar proceso
Ejecuta el proceso dado en el primer pará metro y retorna cuando finaliza.
Es una Funció n comú n de lista y de ficha a la que pasamos los pará metros
siguientes:
Ejemplo e
Deshacer transacción
Deshace la transacció n en curso. Es una Funció n comú n de lista y ficha a
la que no hemos de pasar pará metros. Só lo es vá lida para aplicaciones eje-
cutadas con la versió n cliente-servidor, en aplicaciones ejecutadas con
VRunner no funcionará .
Finalizar proceso
Esta funció n nos permite finalizar la ejecució n del proceso en un punto de-
terminado. Es una Funció n comú n de lista y de ficha y no tiene pará metros.
298 299
e Ejemplo
Funciones de Arrays
Un array es una matriz o vector, un grupo de variables que se denominan
con un mismo nombre y un nú mero de posició n. No almacena un ú nico va-
lor, sino una lista ordenada de ellos. En Velá zquez Visual estos valores pue-
den ser cadenas de texto, nú meros, fechas y horas, no siendo necesario
definir el tipo de dato que se almacenará a la hora de crear un array. Es má s,
podemos incluir datos de diferente tipo en un mismo array.
FUNCIONES DE ARRAYS
Array: Crear
Esta instrucció n crea un array en un proceso. Es una Funció n comú n de lis- ta
y de ficha a la que hemos de pasar el pará metro Identificador array: el
identificador que se dará al array en el proceso.
Array: Tamaño
Con esta funció n obtenemos el nú mero de ítem de un array definido en el
proceso. Es una Funció n comú n de lista y de ficha en la que especificamos
los pará metros siguientes:
Posició n: es la posició n del array donde está el ítem. En este pará metro po-
dremos especificar tanto una constante como una expresió n fó rmula. La
primera posició n es la nú mero 0.
Fó rmula dato: expresió n fó rmula del valor del ítem a añ adir en el array.
Posició n: posició n del array donde insertar el ítem. En este pará metro po-
dremos especificar tanto una constante como una expresió n fó rmula. La
primera posició n es la nú mero 0.
Fó rmula dato: expresió n fó rmula del valor del ítem a insertar en el array.
Posició n: posició n del ítem a suprimir. En este pará metro podremos especi-
ficar tanto una constante como una expresió n fó rmula. La primera posició n
es la nú mero 0.
Retornos
Los Retornos son funciones que nos devuelven un objeto: un texto, una pá -
gina web, un proceso. Estas funciones no se realizará n hasta que no se ha-
ya terminado la ejecució n del proceso. Esto es debido a que los retornos no
permiten devolver el control al proceso: los retornos que se lancen durante
la ejecució n de un proceso se van almacenando en memoria para que,
cuando termine la ejecució n del mismo, se disparen.
En la figura hemos añ adido un retorno que nos presenta una rejilla con una
lista de registros. Sin embargo, a continuació n viene una funció n que reco-
rre la lista eliminando todas las fichas. Aunque cuando fue lanzado el retor-
no había datos, como se evalú a al final del proceso, se encuentra con que
no hay registros y nos devuelve la rejilla vacía. Lo mismo ocurre si hemos
modificado algú n campo, una variable global que esté presente en un in-
forme, etc.
FUNCIONES DE RETORNO
Añadir retorno
Funció n comú n de lista y de ficha que guarda el recurso declarado en los
pará metros para presentarlo al finalizar el proceso.
Utilizaremos esta funció n para presentar con un objeto visual los resultados
de un proceso. Por ejemplo, el filtrado de una lista presentado en una reji-
lla, el resultado de un tubo de ficha y de un tubo de lista, creando una ca-
becera y unas líneas de una factura, presentado en un formulario etc.
Identificador del recurso: identificador del objeto visual de Velá zquez Visual.
En el caso de que el origen sea una lista, el objeto será una rejilla, y si el ori-
gen es una ficha, el objeto será un formulario (obligatorio).
Fó rmula título: só lo estará disponible cuando el retorno se efectú e sobre una lis-
ta. Mediante una expresió n fó rmula podremos establecer el título de la ventana.
e Ejemplo
Ejemplo e
e utilizados en los objetos Pá gina Html y Componente Html. En este caso se es-
pecifica directamente el identificador del campo (por ejemplo %NOMBRE%).
e Ejemplo
e Ejemplo
If -> fEsClienteServidor()
Ejemplo e
Ejemplo e
El proceso evalú a si está vacío el campo NOMBRE del cliente, en cuyo ca-
so lanza un mensaje advirtié ndolo y cancela el alta.
Imprimir informe
Imprime el informe que especifiquemos con los registros de la lista actual.
Es una Funció n propia de lista a la que hemos de pasar los pará metros:
Esta funció n de informes ha de ser disparada desde una línea cuyo origen
sea una Lista de una tabla de datos. Por tanto, si queremos imprimir una fi-
cha determinada, la lista que alimente esta funció n deberá contener ú nica-
mente el registro a imprimir.
e Ejemplo
Al dar de alta un proveedor queremos imprimir un informe con los datos del
mismo. Segú n esto vemos que el origen del proceso ha de ser una ficha de
la tabla PROVEEDORES.
Por ú ltimo, tendríamos que asociar este proceso como Posterior a la pulsa-
ció n del botó n Aceptar. No puede ser Anterior porque este evento es dis-
parado antes de que la ficha sea guardada en el disco y, por tanto, si la fi-
cha no existe, no puede ser impresa.
e Ejemplo
Ficha y campos
Las funciones pertenecientes a este grupo trabajan con fichas (registros), y
algunas concretamente con campos. El origen de todas ellas ha de ser, por
tanto, una ficha.
08 Desarrollo completo
de una aplicació n
Modificar campo
Esta funció n modifica el contenido de un campo que especifiquemos con el
resultado de una fó rmula. Es una Funció n propia de ficha a la que hemos
de pasar los pará metros:
Fó rmula nuevo dato: expresió n tipo fó rmula para calcular el nuevo conteni-
do del campo (obligatorio).
Ejemplo e
Supongamos que queremos modificar el valor del campo PVM (Precio Ven-
ta al por Mayor) subié ndolo un 10%. Para ello introduciríamos la siguiente
línea de có digo:
Modificar campo -> PVM, %PVM% * 1.1
Get campo
Devuelve el contenido de un campo sin que se evalú e la fó rmula que lo con-
tenga. Por ejemplo, para obtener la fó rmula escrita por un usuario en un
campo de tipo fó rmula diná mica o para obtener la etiqueta de un campo
objeto. Es una Funció n propia de ficha.
Variable retorno OK: variable local del proceso que recogerá si la fó rmula
escrita por el usuario es correcta (1) o no (0).
Variable retorno mensaje: variable local del proceso que recogerá , en caso
de ser incorrecta la fó rmula, un texto con el error generado.
Importar texto
Con esta funció n importamos el contenido de un fichero de texto en un
campo de tipo alfabé tico (alfabé tico, alfa128, alfa64 y alfa40) u objeto tex-
to. Es una Funció n propia de ficha en la que especificamos:
Senda fichero origen: senda completa del fichero que deseamos importar.
Variable local que retorna Sí/No Importó : aquí declaramos una variable lo-
cal para recoger si se importó el fichero (1) o no (0).
Este proceso, que tiene origen en una ficha, lanza la ventana de selecció n
del fichero para que el usuario pueda seleccionar el fichero a importar. Im-
08 Desarrollo completo
de una aplicació n
Exportar texto
Con exportar texto generamos un fichero de texto a partir del contenido de
un campo alfabé tico (alfabé tico, alfa128, alfa64 y alfa40), objeto texto o fó r-
mula alfabé tica. Es una Funció n propia de ficha en la que debemos especi-
ficar los pará metros:
Este proceso, que tiene su origen en una lista de Proveedores, guarda la sen-
da en la que se van a generar los archivos de texto en una variable local (‘path’).
A continuació n recorre la lista de proveedores en modo de solo lectura.
Importar dibujo
Esta funció n importa un archivo de imagen a un campo de tipo Objeto di-
bujo. Es una Funció n propia de ficha que necesita la especificació n de los
pará metros siguientes:
Identificador campo: nombre del campo de tipo objeto dibujo que va a re-
cibir la importació n de la imagen (obligatorio).
e Ejemplo
Exportar dibujo
Crea un archivo con la imagen contenida en un campo de tipo objeto dibu-
jo. Es una Funció n propia de ficha en la que hemos de especificar:
e Ejemplo
Mediante la funció n Set creamos una variable local del proceso, a la que he-
mos llamado archivo, y le asignamos como contenido el campo %NOM-
BRE% del empleado má s la extensió n .bmp. Así, al archivo de imagen crea-
do se identificará con el nombre del empleado.
Con la funció n Pedir dato pedimos al usuario que introduzca la senda com-
pleta del directorio donde queremos guardar el archivo a exportar. En una
08 Desarrollo completo
de una aplicació n
variable local del proceso, que hemos llamado bOK, se guardará si el usua- e
rio ha aceptado el formulario (1) o no (0). En otra variable local de tipo tex-
to, path, guardamos la ruta escrita por el usuario.
Cuando una tabla tiene un campo de tipo Objeto Dibujo, Velá zquez, a tra-
vé s de la opció n del menú del Editor Campos/Crear campos dimensiones
dibujo, nos da la opció n de crear dos campos para almacenar sus dimen-
siones. El valor de estos campos es actualizado automá ticamente cuando
se da de alta o modifica un dibujo en una ficha.
e Ejemplo
Ha cambiado el campo?
Esta funció n devuelve, en una variable local al proceso, el resultado de
comprobar si el campo identificado ha sido modificado. Devuelve 1 si ha si-
do modificado y 0 en caso contrario. Es una Funció n propia de ficha.
e Ejemplo
Hemos creado un proceso que realiza una serie de cá lculos en funció n del
contenido del campo PRECIO de una tabla de ARTICULOS. A este proceso
lo hemos llamado CAMBIO-PRECIO. Para que no se ejecute el proceso siem-
pre que en un formulario de modificaciones de ARTICULOS pierda el foco el
campo PRECIO, crearemos un proceso y lo asociaremos a la pé rdida de fo-
co de dicho campo. El origen del mismo ha de ser una Ficha de ARTICULOS:
08 Desarrollo completo
de una aplicació n
Ha cambiado la ficha?
Esta funció n devuelve, en una variable local al proceso, el resultado de
comprobar si se ha modificado algú n campo de la ficha. Devolverá 1 si ha
cambiado la ficha y 0 en caso contrario. Es una Funció n propia de ficha.
Ya existe en el índice?
Esta funció n devuelve, en una variable local al proceso, el resultado de
comprobar si en el índice identificado, de clave ú nica, ya existe la clave ac-
tual. La funció n compone la clave adecuada al índice en el que se realiza la
consulta tomá ndolo de la ficha origen de la funció n, por lo que nosotros no
tendremos que hacer nada. Es una Funció n propia de ficha.
Ejemplo e
316 317
e Ejemplo
Pedir Formulario
Visualiza el formulario indicado, pará ndose el proceso hasta que el usuario
cierre el formulario. Es una Funció n propia de ficha.
Cuando modificamos una ficha de esta manera, Velá zquez Visual ú nicamen-
te controla la clave primaria CODIGO, el resto de claves ú nicas deben ser
controladas por nosotros en triggers, mediante las funciones Ya existe en el
índice? o Ya existe en alguno de sus índices? Esto es así ya que Pedir for-
mulario se usa sobre todo para obtener datos en variables o campos para
bú squedas que no tengan formulario asignado, u otros casos parecidos.
Ejemplo e
Campo objeto dibujo: identificador del campo tipo objeto dibujo a presen-
tar (obligatorio).
Ejemplo e
Ejemplo e
e Ejemplo
El proceso anterior lee la ficha de la marca del artículo actual, pero no po-
demos modificarla en el subproceso generado. La línea de subproceso
creada por esta funció n tendrá como origen una ficha de MARCAS.
e Ejemplo