Número VIN

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
Avatar de Usuario
axscorpio
vAdviser
vAdviser
Mensajes: 259
Registrado: 22 Abr 2008, 21:57
Ubicación: Panamá - Polonia

Número VIN

Mensaje por axscorpio » 12 Ago 2010, 10:01

Buenos días a Todos.
Mi consulta es la siguiente: tengo un campo en donde tengo que introducir un Número VIN (para el que no lo sabe - el DNI del automotor). Es decir, éste número tiene que cumplir las siguientes condiciones:
1. admite sólo 17 dígitos,
2. admite sólo cifras árabes y letras latinas mayúsculas,
3. no admite las letras - I, Ñ, O, Q (por su parecido con ciertos números, a fin de evitar confusiones),
4. es un número único (lógicamente no se puede repetir en más de un coche).

Las condiciones 1 y 2 ya las tengo resueltas (17 dígitos - en las propiedades de edición del campo, y lo de las mayúsculas en las propiedades del campo - Tipo Alfa 64).
Mi problema consiste en las condiciones 3 y 4 - llevo un quebradero de cabeza con ésto varias semanitas :oops:
El caso es que trato de hacer un proceso que al perder foco me controle todas las mencionadas condicones y luego me deje avanzar en el formulario (rellenar los siguientes datos en el mismo).

He buscado en el foro y al parecer nadie ha tratado con el Número VIN.
Pido humildemente, a los expertos en la materia :D que me expliquen como podré resolver el asunto en cuestión.
Muchas gracias de antemano.

antonio osorio
vAdviser
vAdviser
Mensajes: 257
Registrado: 14 Mar 2006, 20:27

Mensaje por antonio osorio » 12 Ago 2010, 10:20

Hola.

El punto 4 lo resuelves creando un indice para ese campo que no acepte repetidas.

para el punto 3, usa una la funcion estandar fOcurrenciasSubCadena para ver si tienes cada una de las letras anteriores o fSustituirSubCadena para cambiarla por la que desees.

Un Saludo.

Avatar de Usuario
axscorpio
vAdviser
vAdviser
Mensajes: 259
Registrado: 22 Abr 2008, 21:57
Ubicación: Panamá - Polonia

Mensaje por axscorpio » 13 Ago 2010, 11:35

antonio osorio escribió:Hola.

El punto 4 lo resuelves creando un indice para ese campo que no acepte repetidas.

para el punto 3, usa una la funcion estandar fOcurrenciasSubCadena para ver si tienes cada una de las letras anteriores o fSustituirSubCadena para cambiarla por la que desees.

Un Saludo.
Gracias Antonio, probaré lo que propones.

He encontrado en la seccion de ejemplos ESTO y también lo revisaré, a ver si tiene algo relacionado con lo que estoy haciendo.

Avatar de Usuario
axscorpio
vAdviser
vAdviser
Mensajes: 259
Registrado: 22 Abr 2008, 21:57
Ubicación: Panamá - Polonia

Mensaje por axscorpio » 17 Ago 2010, 18:58

Buenas tardes.
Sigo atazcado con el tema, pero ya empiezo a ver la luz :oops:
El problema que tengo es el siguiente: no se que tengo mal hecho en la "Función" o en el "Proceso".
Las verificaciones las hace todas cuando el campo pierde foco - eso creo :?
Pero, si se da el caso, de que no sea corregido el número (cuando no sea correcto o si ya existe), me permite pasar a otro campo manualmente (sin utilizar Tab) i también cerrar el formulario, a pesar de haber introducido un número incorrecto.

Agradezco de antemano a los que puedan ayudarme a corregir la Función o el Proceso para obtener lo que pretendo.
Adjuntos
nr-vin.jpg
Verificar No VIN
(372.06 KiB) Descargado 19 veces

Francisco Hoyos
vLeader
vLeader
Mensajes: 2712
Registrado: 22 Sep 2005, 17:56
Ubicación: Gijón (Asturias) España GMaps: 43.538740, -5.661970

Mensaje por Francisco Hoyos » 19 Ago 2010, 09:53

No parece un problema con el proceso ni con la función. Más parece un problema con el foco. Tal vez, el hecho de sacar mensajes por medio de la función Mensaje, hace que el foco se pierda y no se dispare el proceso en el evento de pérdida de foco. Algunas veces no queda más remedio que presentar los mensajes con un formulario creado a tal fin (yo suelo usar una tabla en memoria con un registro y un formulario para mensajes). De esta forma el foco se comporta correctamente.

Un saludo.
Francisco Hoyos
frhoydon@gmail.com

Avatar de Usuario
axscorpio
vAdviser
vAdviser
Mensajes: 259
Registrado: 22 Abr 2008, 21:57
Ubicación: Panamá - Polonia

Mensaje por axscorpio » 20 Ago 2010, 13:12

Francisco Hoyos escribió:No parece un problema con el proceso ni con la función. Más parece un problema con el foco. Tal vez, el hecho de sacar mensajes por medio de la función Mensaje, hace que el foco se pierda y no se dispare el proceso en el evento de pérdida de foco. Algunas veces no queda más remedio que presentar los mensajes con un formulario creado a tal fin (yo suelo usar una tabla en memoria con un registro y un formulario para mensajes). De esta forma el foco se comporta correctamente.

Un saludo.
Buenos dias.
Gracias por tu aportación, aunque no me haya enterado de que es lo que sueles usar :oops: - problemas de inexpertos :(
Por lo menos ya sé, que lo que he hecho está correcto.
¿El problema no será, porque el campo en cuestión, pertenece a un subformulario?

Francisco Hoyos
vLeader
vLeader
Mensajes: 2712
Registrado: 22 Sep 2005, 17:56
Ubicación: Gijón (Asturias) España GMaps: 43.538740, -5.661970

Mensaje por Francisco Hoyos » 20 Ago 2010, 14:16

Es bastante corriente que, en ciertas situaciones, los mensajes lanzados por proceso en la pérdida de foco, no devuelven el foco al control en el que estaban. En ese caso, si en vez de usar la instrucción de procesos "Mensaje", muestras al usuario un formulario con el mensaje que quieres enviarle, sorprendentemente, el foco vuelve al control correcto. Es posible que esto solucione el problema, si es que lo he entendido bien.

Un saludo.
Francisco Hoyos
frhoydon@gmail.com

Responder