Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   como crear una mascara personalizada (https://www.clubdelphi.com/foros/showthread.php?t=27216)

Velia 15-11-2005 15:22:41

como crear una mascara personalizada
 
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

solo en un formulario
 
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.


La franja horaria es GMT +2. Ahora son las 02:47:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi