PDA

Ver la Versión Completa : como crear una mascara personalizada


Velia
15-11-2005, 15:22:41
Hoola a todos
Estoy desarrollando un sistema donde el código de un documento está conformado con una estructura de esta forma: A-2005-0000000-0 y lo muestro por un editmask. Mi consulta es la siguiente:
Quisiera hacer una máscara conformada por 16 caracteres que queden de esta forma

B-2005-0000000-0

Donde el primer caracter empezando por la izq es una( letra - año - número - versión)

Y donde el Usuario empiece a escribir en el número reemplazando ceros por un valor de derecha a izquierda de esta forma:

B-2005-0000000-0
B-2005-0000001-0
B-2005-0000011-0
B-2005-0000115-0

Saludos a Todos y Muchas Gracias por la ayuda

vtdeleon
15-11-2005, 15:56:47
Saludos

Estas en la seccion de Impresion: Que reporteador utilizas?

Lepe
15-11-2005, 16:04:17
Al estar este mensaje en el foro de impresión, me deja un poco groki.

En principio, te recomiendo crear 2 rutinas:


pasando la letra, el año y numero, te devuelve en Codigo el texto de 16 caracteres
EncodeCode(var Codigo; letra:char; año:integer; Numero:integer;
version:String);


Pasando la tira de 16 caracteres, devuelve la letra, año y número.
DecodeCode(const Codigo;var letra:char;var año:integer;var
Numero:integer;var Version:integer);

De esta forma, puedes decodificar y codificar facilmente.

Un maskEdit tiene el problema de que puede meter como año el 0000 y lo toma como válido; teniendo esas 2 rutinas, puedes incluso ponerle el año automáticamente.

Rellenar de derecha a izquierda, es un problema que no le veo solución con el maskEdit.

Si explicas más a fondo qué vas a hacer con esa tira de caracteres, si los números son consecutivos o no, si estas usando bases de datos y cual es, etc, quizás podamos orientarte mejor.

saludos

Velia
15-11-2005, 16:12:12
HOla no estoy haciendo un reporte me pasé a la parte de impresión porque no me contesta nadie:( solo quiero mostrar eso en un maskedit y que me vaya rellenando los números en el orden comentado anteriormente porque el cod del documento de mi aplicación está compuesto por 16 caracteres. y los caracteres que no se rellenan por el usuario tienen que cargarse con ceros.

Te agredezco la ayuda.
Saludos

fidel
15-11-2005, 22:55:24
Hola:

Pon cuatro edits, uno para cada sección controlando en cada uno la entrada de solo letras o solo números según corresponda.

Después rellenas la tercera sección con ceros delante para el número hasta los 7 dígitos que parece que debe llevar
edit3.text := RighStr ( '0000000' + edit3.text, 7 );

y después juntas los 4 metiendo entre ellos el guión
CodigoFinal := edt1.text + '-' + edt2.text + '-' + edt3.text + '-' + edt4.text

Un saludo.