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 |
Saludos
Estas en la seccion de Impresion: Que reporteador utilizas? |
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 |
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 |
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