Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   MaskEdit es la solucion? (https://www.clubdelphi.com/foros/showthread.php?t=17657)

kepacha 17-01-2005 13:54:07

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 :rolleyes:

kepacha 17-01-2005 13:57:26

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?

marcoszorrilla 17-01-2005 14:25:07

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.

maeyanes 17-01-2005 17:10:43

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;

kepacha 24-01-2005 13:07:22

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:p


La franja horaria es GMT +2. Ahora son las 21:18:46.

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