Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.
Usace, solo opinion


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -
Ayuda al foro con tu donación
Foros en Udias.com / FileMaker / ::: TRUCO ::: Función para comprobar una CCC (Cuenta bancaria).
Autor Mensaje

Administrador


  Karma               7517

#1 Publicado: 24 Feb 2011 14:38



En esta ocasión os dejamos una función personalizada para comprobar que sean correctos los dígitos de una cuenta bancaria española cuando los introducimos en una base de datos FileMaker.

/*
CheckCCC()
Desarrollado por Technology Group, s.l.
Chequea la corrección del CCC Bancario español.

Parámetros entrada

entidad
sucursal
dc
cc

*/


Case(
entidad="" or sucursal="" or dc="" or cc="";"";
Let(
[

codentidad=Right("000" & GetAsText(GetAsNumber(entidad));4);
codsucursal=Right("0000" & GetAsText(GetAsNumber(sucursal));4);
coddc=Right("00" & GetAsText(GetAsNumber(dc));2);
codcc=Right("0000000000" & GetAsText(GetAsNumber(cc));10);

error_entidad=Case(Length(entidad)<>4 or codentidad="0000";"Entidad incorrecta";"");
error_sucursal=Case(Length(sucursal)<>4 or codsucursal="0000";"Sucursal incorrecta";"");
error_dc=Case(Length(dc)<>2 or coddc="00";"DC incorrecta";"");
error_cc=Case(Length(cc)<>10 or codcc="0000000000";"Cuenta incorrecta";"");

entsuc1=GetAsNumber(Middle(entidad;1;1));
entsuc2=GetAsNumber(Middle(entidad;2;1));
entsuc3=GetAsNumber(Middle(entidad;3;1));
entsuc4=GetAsNumber(Middle(entidad;4;1));
entsuc5=GetAsNumber(Middle(sucursal;1;1));
entsuc6=GetAsNumber(Middle(sucursal;2;1));
entsuc7=GetAsNumber(Middle(sucursal;3;1));
entsuc8=GetAsNumber(Middle(sucursal;4;1));

cc1=GetAsNumber(Middle(cc;1;1));
cc2=GetAsNumber(Middle(cc;2;1));
cc3=GetAsNumber(Middle(cc;3;1));
cc4=GetAsNumber(Middle(cc;4;1));
cc5=GetAsNumber(Middle(cc;5;1));
cc6=GetAsNumber(Middle(cc;6;1));
cc7=GetAsNumber(Middle(cc;7;1));
cc8=GetAsNumber(Middle(cc;8;1));
cc9=GetAsNumber(Middle(cc;9;1));
cc10=GetAsNumber(Middle(cc;10;1));

entsuc_dc = entsuc8 * 6 + entsuc7 * 3 + entsuc6 * 7 + entsuc5 * 9 + entsuc4 * 10 + entsuc3 * 5 + entsuc2 * 8 + entsuc1 * 4;

cc_dc = cc10 * 6 + cc9 * 3 + cc8 * 7 + cc7 * 9 + cc6 * 10 + cc5 * 5 + cc4 * 8 + cc3 * 4 + cc2 * 2 + cc1;

entsuc_dc=11-Mod (entsuc_dc ; 11 );

entsuc_dc=Case(entsuc_dc=10;1;entsuc_dc=11;0;entsu c_dc);

cc_dc= 11- Mod(cc_dc;11);

cc_dc=Case(cc_dc=10;1;cc_dc=11;0;cc_dc);

dc_calculado=GetAsText(entsuc_dc) & GetAsText(cc_dc);

error_dc_calculado=Case(dc_calculado<>dc;"CCC incorrecto";"Ok");

x="";
x=Encadena(x;error_entidad;"¶");
x=Encadena(x;error_sucursal;"¶");
x=Encadena(x;error_dc;"¶");
x=Encadena(x;error_cc;"¶");
x=Encadena(x;error_dc_calculado;"¶");

x=x

Utiliza la función Encadena (cadena1; cadena2; separador)

/*

Encadena()
Desarrollado por Technology Group, s.l.
Encadena dos cadenas alfanuméricas por medio de un separador sí y sólo si ambas cadenas son distintas de la cadena vacía.
Parámetros

Cadena1
Cadena2
Separador

Let(
[
x=cadena1 & Case(cadena1<>"" and cadena2<>"";separador;"") & cadena2
];
x
)


Sacado del boletín de noticias de FileMaker


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Habitual

  Karma       68

#2 Publicado: 29 Ene 2013 17:14



Buenas tardes,

he encontrado esta funcion personalizada que me viene como anillo al dedo, pero cuando la traslado a mi base de datos me da problemas.

Os explico...

Creo una funcion personalizada CheckCCC, donde traslado la sintaxis desde el principio hasta X= X

Es ahi cuando me da el primer error. "Aquí se necesita un número, una constante de texto, un nombre de campo o "("."

Por otro lado he creado la funcion encadena pero tampoco consigo unirla a la funcion CheckCCC.

¿me podeis ayudar?

Gracias por anticipado ;)


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
MAC OSX 10.9 / File Maker 12 Pro Adv.

Administrador


  Karma               7517

#3 Publicado: 29 Ene 2013 17:24



Prueba poniendo un ;

x=x;


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Habitual

  Karma       68

#4 Publicado: 29 Ene 2013 17:52



He realizado lo comentado y... me salta el siguiente error "El uso de listas no está permitido en este cálculo."


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
MAC OSX 10.9 / File Maker 12 Pro Adv.

Administrador


  Karma               7517

#5 Publicado: 29 Ene 2013 17:55



Tendrá que probarlo con FileMaker y no lo tengo aquí. De todas las formas esta sacado del boletín de noticias de FileMaker... puede que esté mal pegado. Copiar y pegar es lo que tiene.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Habitual

  Karma       68

#6 Publicado: 29 Ene 2013 18:06 - Editado por: raspall



He repasado la funcion y una cosa que observo es que le falta el corchete de finalizacion de la funcion Let. Desconozco donde debo colocarlo.

He copiado y pegado, desde aquí, y tambien lo he echo desde el link original del boletin de filemaker y me sigue dando el mismo error.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
MAC OSX 10.9 / File Maker 12 Pro Adv.

Administrador


  Karma               7517

#7 Publicado: 29 Ene 2013 18:14



He encontrado la página original... un poco desactualizada, una pena.

Función para comprobar una CCC (Cuenta bancaria)


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Habitual

  Karma       68

#8 Publicado: 29 Ene 2013 21:42



Si, si! Ya la encontré con anterioridad a tu mensaje, incluso fui a la pagina del creador, pero no conseguí solucionar el problema.

No se si la has probado con filemaker...

Un saludo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
MAC OSX 10.9 / File Maker 12 Pro Adv.

Administrador


  Karma               7517

#9 Publicado: 29 Ene 2013 21:44



No lo he probado.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Habitual

  Karma       68

#10 Publicado: 30 Ene 2013 11:23 - Editado por: raspall



¿Alguien tiene la solución a mi problema?

Siguiendo con el hilo, y con el fin que jcu lo apruebe para su difusión, os adjunto un archivo csv, con la lista de bancos y sus codigos, sacados de la web de la CNMV.

Espero que os sirva de ayuda.

BANCOS.zipArchivo adjunto: Listado de Bancos
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
MAC OSX 10.9 / File Maker 12 Pro Adv.

Miembro

Habitual

  Karma       68

#11 Publicado: 30 Ene 2013 11:38



Finalmente, y después de estudiar la formula con detenimiento, he conseguido hacerla funcionar. Os copio la estructura correcta. Solo falataba un corchete y un parentesis al final.

Case(
entidad="" or sucursal="" or dc="" or cc="";"";
Let(
[

codentidad=Right("000" & GetAsText(GetAsNumber(entidad));4);
codsucursal=Right("0000" & GetAsText(GetAsNumber(sucursal));4);
coddc=Right("00" & GetAsText(GetAsNumber(dc));2);
codcc=Right("0000000000" & GetAsText(GetAsNumber(cc));10);

error_entidad=Case(Length(entidad)<>4 or codentidad="0000";"Entidad incorrecta";"");
error_sucursal=Case(Length(sucursal)<>4 or codsucursal="0000";"Sucursal incorrecta";"");
error_dc=Case(Length(dc)<>2 or coddc="00";"DC incorrecta";"");
error_cc=Case(Length(cc)<>10 or codcc="0000000000";"Cuenta incorrecta";"");

entsuc1=GetAsNumber(Middle(entidad;1;1));
entsuc2=GetAsNumber(Middle(entidad;2;1));
entsuc3=GetAsNumber(Middle(entidad;3;1));
entsuc4=GetAsNumber(Middle(entidad;4;1));
entsuc5=GetAsNumber(Middle(sucursal;1;1));
entsuc6=GetAsNumber(Middle(sucursal;2;1));
entsuc7=GetAsNumber(Middle(sucursal;3;1));
entsuc8=GetAsNumber(Middle(sucursal;4;1));

cc1=GetAsNumber(Middle(cc;1;1));
cc2=GetAsNumber(Middle(cc;2;1));
cc3=GetAsNumber(Middle(cc;3;1));
cc4=GetAsNumber(Middle(cc;4;1));
cc5=GetAsNumber(Middle(cc;5;1));
cc6=GetAsNumber(Middle(cc;6;1));
cc7=GetAsNumber(Middle(cc;7;1));
cc8=GetAsNumber(Middle(cc;8;1));
cc9=GetAsNumber(Middle(cc;9;1));
cc10=GetAsNumber(Middle(cc;10;1));

entsuc_dc = entsuc8 * 6 + entsuc7 * 3 + entsuc6 * 7 + entsuc5 * 9 + entsuc4 * 10 + entsuc3 * 5 + entsuc2 * 8 + entsuc1 * 4;

cc_dc = cc10 * 6 + cc9 * 3 + cc8 * 7 + cc7 * 9 + cc6 * 10 + cc5 * 5 + cc4 * 8 + cc3 * 4 + cc2 * 2 + cc1;

entsuc_dc=11-Mod (entsuc_dc ; 11 );

entsuc_dc=Case(entsuc_dc=10;1;entsuc_dc=11;0;entsu c_dc);

cc_dc= 11- Mod(cc_dc;11);

cc_dc=Case(cc_dc=10;1;cc_dc=11;0;cc_dc);

dc_calculado=GetAsText(entsuc_dc) & GetAsText(cc_dc);

error_dc_calculado=Case(dc_calculado<>dc;"CCC incorrecto";"Ok");

x="";
x=Encadena(x;error_entidad;"¶");
x=Encadena(x;error_sucursal;"¶");
x=Encadena(x;error_dc;"¶");
x=Encadena(x;error_cc;"¶");
x=Encadena(x;error_dc_calculado;"¶");

x=x])


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
MAC OSX 10.9 / File Maker 12 Pro Adv.

Administrador


  Karma               7517

#12 Publicado: 30 Ene 2013 12:39



OK. Muchas gracias.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Ocasional

  Karma     16

#13 Publicado: 9 Abr 2013 19:41



entsu c_dc) -> Les sobra un espacio!!!!!

o eso creo

A mi no me funciona la función encadena como la tienes tu?

Gracias


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
?
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con ::: TRUCO ::: Función para comprobar una CCC (Cuenta bancaria).

Datos de la cuenta bancaria para realizar donación , no tengo tarjetas
Validar cuenta bancaria
::: TRUCO ::: Función para extraer texto antes de coma
:::TRUCO::: Función personalizada para generar contraseñas (editado)
Menú personalizado en función de la cuenta de usuario


Conectados: Invitados - 10
Miembros - 0
En verde usuarios ZDDR

Realizado con miniBB © 2001-2017
Para Udias.com © 1996-2017
Hosting con Interdominios