Automatizaciones de asignaciones

GeneraContaplus incluye un sistema que permite la asignación de subcuentas y otros datos de forma automatizada a través del un sencillo y potente sistema de máscaras.

Procedimiento

El sistema está basado en simples archivos de texto que se cargan y aplican dentro de la aplicación. Esto permita que pueda tener tantos como necesite para dar soporte a diferentes casos y clientes.

Formulario de automatización

Por comodidad le aconsejamos que cree un directorio llamado Automatiza y sitúe dentro los archivos de automatización.

Una vez cargado el archivo en el formulario pulsamos las opción Procesar automatización para asignar datos según las máscaras creadas.

Solo se aplican las asignaciones si el contenido del campo destino está vacío.

Las automatizaciones se aplican en orden ascendente. Una vez asignado un campo, ya no se modifica con máscaras posteriores.

Puede aplicar tantas automatizaciones como considere oportuno. Solamente tendría que ir cargando y procesando las mismas.

Estructura del archivo

En la primera file deben aparecer los nombres de los campos a utilizar en la automatización. No deben aparecer necesariamente todos los campos posibles, solo aquellos que se necesiten.

Cada campo debe ir separado por el símbolo de la barra vertical "|".

En las líneas posteriores aparecerán los contenidos de cada campo de la primera fila. Cuando no tenga contenido no se pondrá nada pero aún así se separará por  "|".

Ejemplo de archivo sencillo para contabilizar de los movimientos de un banco.

CONCEPTO|ID_CUENTA_CONTRA
COMISI%|626.1
%REMESA%|43000000
%|555

En este caso se utiliza el campo CONCEPTO para asignar la subcuenta ID_CUENTA_CONTRA.

El símbolo % sustituye cualquier número de caracteres. El símbolo _ sustituye únicamente un carácter.  Sabiendo esto ya podemos interpretar el funcionamiento de la automatización:

  • Si el campo ID_CUENTA_CONTRA tiene contenido no se modifica.
  • A todo lo que el concepto empiece por COMISI se le asigna la subcuenta 62600001.
  • A todo aquello que tenga la palabra REMESA en el concepto se le pone la subcuenta 43000000.
  • Al resto se le asigna la 55000000 para que posteriormente lo cambiemos en Contaplus

Nombres de campos

Campos de filtrado simple: CONCEPTO, CUENTA y DH

Serán utilizados como máscara de filtrado en base al contenido de la columna indicada. Se usará el carácter % para sustituir cualquier y _ para sustituir únicamente un carácter.

Si se quieren forzar el filtrado solo para determinados tipos de movimiento, Debe o Haber, usaremos el campo DH. Esto fuerza que la automatización se aplique a solo los movimiento del tipo indicado. Cualquier carácter diferente de D o H, y el filtro será aplicado a todos los movimientos.

Estos campos pueden usarse de forma complementaria. Se puede filtrar por el contenido de la columnas CONCEPTO, CUENTA y DH a la vez.

No se tienen en cuenta mayúsculas o minúsculas.

Campos de asignación simple: ID_CUENTA_CONTRA, ID_CUENTA_BASE, ID_CUENTA, ID_CONTRA

En este caso solo se aplican si no tiene contenido el campo indicado.

Las subcuentas pueden escribirse como:

  • Subcuenta completa
  • Solo la primera parte y será completada con ceros hasta el número de caracteres configurado. 555 pasará a 55500000
  • Usar el método de Contaplus de indicar un "." entre los diferentes dígitos de las subcuenta que será sustituido por ceros hasta completar los caracteres necesarios. 626.1 pasará a 62600001.

Filtrado avanzado: FILTRO

Este campo se puede utilizar para hacer filtros complejos independientes o complementarios a los sencillos de CONCEPTO y CUENTA.

Por ejemplo IRPF<>0 usará una máscara que filtrará todas las líneas cuyo IRPF sea diferente de 0.

Revise la ayuda sobre los operadores en filtrados avanzados para montar cualquier tipo de filtrado.

Asignación avanzada: ASIGNA

Aparte de los campos anteriores puede asignar cualquier campo de la tabla de datos usando este campo.

Si complementamos el filtro anterior con IRPF<>0|ID_CUENTA_IRPF=4751.4 asigna la subcuenta 47510004 a todas las líneas que tengan IRPF diferente de 0.

Asignaciones habituales

Hemos automatizado partes de las asignaciones mas habituales para que no sea necesario montarlas a través del sistema de automatización descrito. Si considera que alguna otra le puede ser de utilidad solo tiene que solicitarla.

Asignaciones automáticas de subcuentas

Operadores en filtrados avanzados

Utilice las instrucciones siguientes para generar filtros avanzados.

Descripción
===========

Usa estos filtros avanzados para filtrar los datos a mostrar:

Ejemplos
=========

Provincia = 'Almería' or Ciudad = 'Sierro'

Provincia <> 'Almería' or Ciudad = NULL

Cuando los campos de la tabla contengan espacios, debes encerrar el nombre del campo entre 
corchetes:
[Telefono personal] = '611-000000' or [Segundo apellido] = 'Martos'


También puedes comparar dintintos campos de la tabla:
Ciudad <> Provincia

Los filtros en principio discriminan entre mayusculas y minusculas, para evitar eso usa las funciones 
"Lower" y "Upper":
UPPER(CIUDAD) = 'GRANADA'


Tampoco filtra cuando cumpla el filtro de forma parcial, para ello usa "%", "_" y "*":
Lower(Ciudad) = 'ma*'
Lower(Ciudad) like 'ma%'
Ident_Cliente = 21_

Como te abrás dado cuenta la comilla simple es obligatoria para filtrar texto, sin embargo no se usa en 
los numeros, ten esto en cuenta.

NUMERO = 21
NOMBRE = 'Alicia'


Operadores
==========


<	Menor que	
>	Mayor que	
>=	Mayor o igual que	
<=	Menor o igual que
=	Igual que	
<>	Distinto que
	
AND	Filtra por varias condiciones, solo los datos que cumplen todas las condiciones
NOT	Filtra solo los valores que cumplen la primera condición pero no la segundo	
OR	Cuando cumple al menos alguna de las condiciones	

IS NULL		Devuelve los campos donde el valor del campo filtrado es NULO (no tiene 
asignado ningún valor)	
IS NOT NULL	Cuando los campos no son nulos


+	Suma numeros, concatena palabras y suma valores a fechas y horas
-	Resta numeros y valores a fechas y números
*	Multiplica dos numeros	
/	Divide dos numeros
	
Upper	Pone en mayusculas una cadena de palabras o el valor de un campo
Lower	Pone en minusculas una cadena de palabras o el valor de un campo

Substring	Función que devuelve solo una parte de una cadena de palabras, empezando desde una 
determinada posición. 
"Substring(campo o cadena de caracteres,desde la posición,numero de caracteres)"
Trim		Elimina los espacios o un determinado caracter desde el principio al final de una 
cadena
TrimLeft	Elimina los espacios o un determinado caracter al principio de una cadena
TrimRight	Elimina los espacios o un determinado caracter al final de una cadena

Year	Devuelve el año de una fecha o una hora
Month	Devuelve el mes de una fecha o una hora
Day	Devuelve el dia de una fecha o una hora
Hour	Devuelve la hora de un valor de tiempo determinado	
Minute	Devuelve el minuto de una hora determinada	
Second	Devuelve el segundo de una hora determinada	
GetDate	Devuelve la hora actual	
Date	Devuelve la fecha de un valor que incluye fecha y hora
Time	Devuelve la hora de un valor que incluye fecha y hora

Like	Para incluir patrones al comparar valores en una cadena de caracteres
In	Test de inclusión (en)	
*	Caracter especial para buscar comparaciones parciales


Date cuenta de los sofisticados que pueden ser tus filtros:
(Custno > 1400) AND (Custno < 1500);

Para separar distintas partes de los filtros usa los paréntesis.



Mas ejemplos comentados
========================

Comparaciones
--------------

=	State = 'CA'		
<>	State <> 'CA'		
>=	DateEntered >= '1/1/1998'		
<=	Total <= 100,000		
>	Percentile > 50		
<	Field1 < Field2		

Palabras especiales
-------------------

BLANK		State <> 'CA' or State = BLANK	Los campos en blanco no aparecen 
salvo que esplicitamente los 
determines así
IS NULL		Field1 IS NULL		
IS NOT NULL	Field1 IS NOT NULL		

Operadores lógicos
------------------

and	State = 'CA' and Country = 'US'		
or	State = 'CA' or State = 'MA'		
not	not (State = 'CA')		

Operadores aritmeticos
----------------------

+	Total + 5 > 100		Aplicar a numeros, cadenas de caracteres, fechas y horas
-	Field1 - 7 <> 10	Aplicar a numeros, fechas y horas
*	Discount * 100 > 20	Aplicar solo a numeros	
/	Discount > Total / Cantidad