FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Agregar ceros al pincipio de folio
Hola a todos,
Quiero hacer una funcion que me permita recorrer un tabla y a su vez agregar ceros al principio de un campo especifico. Es decir, tengo un campo llamado NUM_DOCTO, el cual contiene el numero de la factura. Pero este folio se compone de 7 digitos que pueden ser nuemeros o letras, ejemplo: 0013245 ó A000456, algunos numeros de factura no tienen los ceros al pincipio (13245) y/o le faltan los ceros intermedios (A456). Necesito hacer algo para insertarlos, me pueden ayudar. Gracias
__________________
La sabiduría de los sabios y la experiencia de los siglos pueden ser conservadas con las citas. Atte. Jorelivi |
#2
|
||||
|
||||
Si lo vas a hacer desde y si usas FireBird, puedes usar la función PadStr que viene en sus UDFs, pero si lo necesitas hacer desde delphi, puedes tratar de usar la siguiente función:
la cual se usa así, para tu primer caso:
Eso colocara 2 ceros o los que sean que se necesiten a la izquierda de 12345 quedando 0012345, para el otro caso tendrás que adecuar la función para que reconozca dicha situación.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
||||
|
||||
Aquí tienes un ejemplo que acabo de preparar, es para añadir ceros por la izquierda.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#4
|
|||
|
|||
Otra manera de hacerlo,
Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#5
|
||||
|
||||
Cita:
Acabo de anotar esa función en la libreta de "Para no olvidar".
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#6
|
||||
|
||||
La función que propuse quedo reducida a esto, gracias a marcos:
Y se puede usar asi, por ejemplo:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#7
|
|||
|
|||
otra mas:
Cadena := FormatFloat('0000000',num_docto); |
#8
|
||||
|
||||
Gracias a todos por su apoyo, estoy muy contento de pertenecer a tan importante foro.
Sus consejos y ejemplos me han sido muy utiles. Saludos
__________________
La sabiduría de los sabios y la experiencia de los siglos pueden ser conservadas con las citas. Atte. Jorelivi |
#9
|
|||
|
|||
Hola!
Jhonny me ¿podrias explicar con manzanas y palitos como se usa la funcion que comentas al inicio de este hilo (PadStr) en Firebird? De hecho estoy iniciandome en Firebird, actualmente tengo un campo llamado codigo cuyo valor genero con un trigger, eso me funciona bien pero efectivamente quisiera añadir 0's por la izquierda para generar un numero de codigo de hasta 999,999 Gracias por tu atencion! |
#10
|
||||
|
||||
PadStr es una función de alguna biblioteca de componentes.
En firebird, deberías buscar alguna biblioteca de UDF rfunc (freeware) tiene tanto padleft como padright. Eso permite usar las funciones en el sql de una consulta. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#11
|
||||
|
||||
En cuanto a PadStr pues quizá me equivoque (Aunque podría crearce), porque en ese momento no tenia el FireBird a mano, pero debo decir que LPad y RPad si existen y sus respectivas declaraciones serian así:
y
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#12
|
|||
|
|||
Nuevamente por aqui!
Ok, ya cheque lo de la udf LPAD y RPAD ya la declare en mi BD (uso IBExpert) ahora bien aun no me queda claro como integro mi trigger con esta udf pues el trigger me genera un entero y udf me devuelve una cadena. Supongo que debe hacerse una conversion como en delphi StrtoInt. Disculpen la necedad pero realmente no entiendo.
Última edición por dec fecha: 08-05-2007 a las 20:35:12. |
#13
|
||||
|
||||
Si tu campo "Codigo" es de tipo Integer no te va a quedar almacenado algo como 000001, para lograr el efecto que deseas debes tener tu campo como tipo String.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#14
|
||||
|
||||
Yo más bien estaba pensando en usar padleft cuando haya que mostrar al usuario la clave primaria, pero que internamente use el campo entero.
Por ejemplo, si hacemos una vista (view) para la tabla cliente, allí usamos
De esta forma tienes la ventaja de usar un entero para las búsquedas, triggers, etc. de la base de datos, pero muestras al usuario el número formateado. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#15
|
|||
|
|||
Gracias a todos!
Lepe, habia llegado a la misma conclusion pero no sabia como implementarla. Nuevamente gracias! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como poner ceros antes y despues de un numero fraccionario? | Luis Alberto | Varios | 6 | 21-12-2005 21:29:24 |
Como llenar con espacion en blanco o con ceros una cadena? | Luis Alberto | Varios | 10 | 02-12-2005 19:14:02 |
Como poner ceros delante de un numero? | juliopag1 | Firebird e Interbase | 4 | 28-09-2005 01:11:06 |
imprimir una imagen en tamaño folio | rebollo75 | Impresión | 3 | 20-04-2005 18:35:42 |
Ceros antes de un numero | MRSAM | Varios | 2 | 24-11-2004 03:24:08 |
|