Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-10-2008
Drahcir Drahcir is offline
Miembro
 
Registrado: jul 2005
Ubicación: A Coruña
Posts: 53
Poder: 19
Drahcir Va por buen camino
Question Formato plano de decimales

Hola a todos,

Tengo que generar un finero plano de texto (tomo los datos de una query desde un procedimiento almacenado) en el que varios campos son importes con decimales.

ej: 250,00
36654,01
457487,25

Tengo que mostrar:

000000000025000
000000003665401
000000045748725

El caso es que al hacerlo mediante un procedimiento almacenado e introducir los valores en una variable el 250,00 me lo toma como 250 a secas y soy incapaz de tratar los datos en el SQL para que me los muestre correctamente.

Alguien tiene alguna idea??

Muchas gracias y un saludo.
Responder Con Cita
  #2  
Antiguo 01-10-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Pues al meterlos en la variable multiplicalos por 100 de manera que:

250,00 * 100 = 25000
36654,01 * 100 = 36654001
457487,25 * 100 = 45748725

P.D.1. Claro eso es si sabes que son siempre dos decimales
P.D.2. Luego para los ceros ...
Código Delphi [-]
limite:= 15-length(Numero)
while i< limite do
begin
Numero:= '0' + Numero;
inc(i);
end

Última edición por tcp_ip_es fecha: 01-10-2008 a las 11:57:29.
Responder Con Cita
  #3  
Antiguo 01-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cuando pongas una duda en el foro SQL, por favor, dí que Base de datos usas, ya que puede ser distinto de uno a otro.

Yo creo que no lo he entendido, ya que 250 es igual que 250.00 (uno es integer y el otro float... quizás ahí esté el fallo).

Por otro lado ese SP que usas, ¿podrías ponerlo con etiquetas SQL?

Por ahí están las rfunc (UDF) para interbase/Firebird que tienen una función FloatToStr(number, decimals)

Quizás en tu motor haya otra forma.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 01-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿lo quieres hacer en Delphi o todo en SQL? si es en SQL, ¿en que motor?

en Delphi esto:
Cita:
Empezado por tcp_ip_es Ver Mensaje
Código Delphi [-]
limite:= 15-length(Numero)
while i< limite do
begin
Numero:= '0' + Numero;
inc(i);
end
Se puede hacer así:
Código Delphi [-]
Format('%.15d', Valor);
__________________


Última edición por ContraVeneno fecha: 01-10-2008 a las 14:44:29.
Responder Con Cita
  #5  
Antiguo 01-10-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
yo es que siempre lo hago a la cuenta la vieja aunque esta bien simplificar


P.D. He probado lo de
Código Delphi [-]
Format('%.15d', Valor);
y no me funciona
Responder Con Cita
  #6  
Antiguo 01-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por tcp_ip_es Ver Mensaje
yo es que siempre lo hago a la cuenta la vieja aunque esta bien simplificar
P.D. He probado lo de Format('%.15d', Valor);
y no me funciona
Prueba con:
Código Delphi [-]
 showmessage( Format('%.5d', [5]));
__________________

Responder Con Cita
  #7  
Antiguo 02-10-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
ok gracias. Funcionando.
Responder Con Cita
  #8  
Antiguo 10-10-2008
Drahcir Drahcir is offline
Miembro
 
Registrado: jul 2005
Ubicación: A Coruña
Posts: 53
Poder: 19
Drahcir Va por buen camino
Gracias a todos, siento no haber respondido antes. Multiplicándolos por 100 después de haberlos dejado con 2 decimales me sirve perfectamente.

Saludos.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Formato de celda número con separador de decimales desde delphi para excel via OLE vick Conexión con bases de datos 2 31-01-2008 16:35:07
Archivo PLANO jorge_mosquera Varios 1 26-02-2007 23:20:37
Texto plano a RTF FunBit Varios 3 19-09-2006 08:48:37
Como cambiar el formato de un QRSysData en formato fecha Bitbanner Tablas planas 1 13-02-2005 12:33:26
Como Obviar el formato de Fecha del Servidor para Salvar sólo en formato "dd/mm/yyyy" R_Richards Varios 4 07-02-2005 15:57:19


La franja horaria es GMT +2. Ahora son las 07:34:53.


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