Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-01-2005
kepacha kepacha is offline
Miembro
 
Registrado: dic 2004
Posts: 25
Poder: 0
kepacha Va por buen camino
MaskEdit es la solucion?

Hola a todos.

Necesito trabajar con una referencia del tipo VV-0245-0556, donde VV indica vegetales, el primer numero que debe ser de 4 digitos (completados con 0s) es el numero parcial y el segundo numero el numero total tb de 4 digitos.

Los contadores se leen de la base de datos, se incrementan, se usan i se vuelven a guardar.

¿Como puedo crear un numero y que se autocomplete automaticamente con los 0s?
¿Y a la hora de guardarlo en la base de datos (oracle) que tipo de dato uso para que no se borren los 0s ?¿Uso VARCHAR2 o se puede hacer algo mejor con NUMBER?


Thx
Responder Con Cita
  #2  
Antiguo 17-01-2005
kepacha kepacha is offline
Miembro
 
Registrado: dic 2004
Posts: 25
Poder: 0
kepacha Va por buen camino
Pense en guardar los datos como cadena en la base de datos, leerlos, pasarlos a numero(desaparecen los 0s), incrementarlos y despues meter ese valor en un MaskEdit para que volvieran a aparecer los 0s...

Es que esto del pascal no es lo mio. como controlo la precision?
Responder Con Cita
  #3  
Antiguo 17-01-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si entiendo bien lo que quieres:

VV-0245-0556 Este dato debiera ser una cadena de ancho 12, para guardar también los guiones.

Luego con 2 campos de tipo número se guardarían los 2 contadores.

Y desde Delphi:
Código Delphi [-]
  Var
  cNumero:String;
  begin
  cNumero:='VV'+FormatFloat('0000', Table1Conta +1)+FormatFloat('0000',Table1Conta2+1);
  end;

Conta sería el campo contador para la posición 1 y Conta2 el campo contador para la posición 2.

Cada vez que se grabe un nuevo registro habrá que guardar los contadores actualizados para que el próximo tome los datos correctos.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 17-01-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
También podrías usar en tu base de datos 3 campos, uno char(2), y dos integer, y en tu programa solo haces la presentación de esta:

Código Delphi [-]
var
  Numero: string;

begin
  Numero := Format('%s-%.4d-%.4d', [TblFieldChar, TblFieldCont1, TblFieldCont2]);
  // Esto te devuelve una cadena parecida a esta: 'vv-0245-0556'
end;
Responder Con Cita
  #5  
Antiguo 24-01-2005
kepacha kepacha is offline
Miembro
 
Registrado: dic 2004
Posts: 25
Poder: 0
kepacha Va por buen camino
his

gracias por vuestras soluciones, pero os comento que puse en practica otra solucion algo mas chapuza pero con optimos resultados.

trabajo con cadenas miro la longitud del numero i añado ceros segun longitud a la cadena donde lo voi a volcar.. pero que chapucero soi por deux. xD
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:22:57.


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
Copyright 1996-2007 Club Delphi