FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿Cómo sumar en una base de datos un número y 1 letra tipo matricula ?
Es decir tengo un software que genera códigos de los artículos pero quiero poner un ejemplo A-0001 pero es obvio que no se puede sumar un integer y string son incompatibles , cómo realizo eso es que. lo que en verdad quiero es que cada vez que venda un artículo suba un número de factura si el anterior era A-0001 entonces se le sume 1 al anterior A-0002 será el siguiente y así sucesivamente
cómo hago para unir letras y números y a la ves sumarle esto es en una base de datos , yo anteriormente usaba el autoincrement pero es un problema ya que comienza desde 1 y no puedo ponerle letras . gracias de ante mano. |
#2
|
||||
|
||||
Hola Master23.
Tal como pones en el post no creo que se pueda incrementar códigos alfanuméricos desde la base de datos con un autoincremental. Se me ocurre que lo podrías solucionar utilizando un campo alfanumérico y hacer el incremento por código antes de guardar. Te pongo un ejemplo simple de como podrías implementarlo: (acorde al código de tu post) Código:
function ProximoCodigo(CodAnt: string): string; // CodAnt= código leído de la BD const NDIGIT = 5; // parte numérica NCHAR = 3; // parte alfanum. var Prox: Integer; begin // parte numerica + 1 Prox:= StrToInt(Copy(CodAnt,NCHAR,Length(CodAnt)))+1; // completar con ceros Result:= Copy('00000',1,NDIGIT-Length(IntToStr(Prox)))+IntToStr(Prox); // componer el código nuevamente Result:= 'A-'+Result; end;
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 06-05-2010 a las 03:14:49. |
#3
|
||||
|
||||
Supongo que la letra es la serie de facturación.
Yo te sugiero tener separados los valores en dos campos. Serie, Numero, resto_de_campos Con esto solo deberás incrementar el número para la siguiente factura. Al imprimir, solo tienes que concatenarlos. También puedes tener un campo calclulado que sea Serie+'-'+Numero dentro de la base de datos (no se que que base trabajas) pero creo que casi todas lo permiten. Una tercera opción es hacerlo dentro de la base. Yo conozco Firebird: existe la función substr que es similar al copy de delphi. Esto te servirá para pedir los últimos 5 números del campo, incrementarlo y luego concatenarlo. El resto de bases de seguramente tienen algo parecido. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿cómo aumentar el número de factura en una base de datos paradox ? | Master23 | Varios | 2 | 09-04-2010 00:42:26 |
como puedo cambiar la fuente de Delphi - tipo de letra | micky mouse | Varios | 6 | 07-03-2008 02:26:12 |
Como convertir numero entero en letra | kurono | Varios | 2 | 23-01-2008 05:10:39 |
Convertir datos DBEdit tipo $ a numero | destrukthor | Varios | 12 | 26-06-2006 16:35:51 |
|