Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-09-2007
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
División de milesimas en delphi

muy buenas tardes foreros como estan todos, les escribo pork tengo un pequeño problema aver si me pueden ayudar, resulta que estoy desarrollando una aplicacion de nomina de empleados, y nececito hacer que cuando el usuario digite en campo sueldo bruto un valor como por ejemplo 15000 se ponga automaticamente una coma para dividir melisimas es de decir k ponga 15,000 a asi tambien si se digita 1000 que salga 1,000 es decir que me divida los miles con comas,
entonces mis inquietudes son las siguientes:
*que funcion utilizo para lograr esto ?
*Como Muestro este formato en los reportes ?
*Que tipo de dato es el mas favorable para realizar este tipo de operacion

bueno espero que alguien me ayude... gracias de antemano.

"El Conocimiento nos hace personas Capaces y Compartirlo nos hace aun mejores."
Responder Con Cita
  #2  
Antiguo 06-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Hola. Creo que deberías utilizar la función FormatFloat. Puedes dirigirte a la ayuda de delphi para ver como se utiliza, pero a grandes rasgos, para tu necesidad sería algo así:
Código Delphi [-]
Edit1.Text := FormatFloat(',',10000);
o si deseas que muestre decimales:
Código Delphi [-]
Edit1.Text := FormatFloat(',.00',10000);
También puedes utilizar un TDBEdit y establecer una máscara en el DataSet.
Los valores te conviene almacenarlos en campos de tipo Float.
Saludos.

Última edición por paldave fecha: 06-09-2007 a las 00:10:20.
Responder Con Cita
  #3  
Antiguo 06-09-2007
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
gracias paldave

hola paldave muchas gracias por responder a mi llamado, probe la solucion que me diste con la funcion format float, en el evento onexit del edit puse esto:

EdSB.Text := FormatFloat(',.00',10000); y me funciona, ahora bien no c puede hacer que ponga en coma el valor que el usuario introduzca y no 10000 en especifico ?, por favor te agradere bastante si me ayudas.
Responder Con Cita
  #4  
Antiguo 06-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Si lo que quieres es que aparezca el valor introducido pones:
Código Delphi [-]
Edit1.Text:=FormatFloat(',.00',StrToFloat(Edit1.Text));
Ahora si lo que quieres es saber si se puede ir formateando lo que el usuario va escribiendo, te diré que, bueno,... como poder hacer, se puede, aunque es más complicado.
Yo me he hecho un control llamado TosNumericEdit que se encarga de hacer algo similar a lo que pides, pero no se me ocurrió en su momento ponerle un separador de miles (se usa tan poco...)
Te pongo dicho componente para que lo estudies y lo pruebes... y lo modifiques si quieres para que incluya un separador de miles.
Suerte en dicha tarea!
Archivos Adjuntos
Tipo de Archivo: zip osNumericEdit.zip (1,9 KB, 7 visitas)

Última edición por paldave fecha: 06-09-2007 a las 00:57:05.
Responder Con Cita
  #5  
Antiguo 06-09-2007
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
gracias nuevamente

hola mi querido amigo, gracias por tu ayuda he logrado lo que queria gracias a ti, veras en el evento onexit del edit hice lo siguiente:

EdSB.Text := FormatFloat(',.00',StrTofloat(EDSB.Text ) ); y funciona a la perfeccion lo que queria, muchisimas gracias por tu ayuda, me gustaria saber tu email para consultarte mas amenudo, espero no molestar, lo que sucede es que no soy tan experto en delphi pero es el lenguaje de programacion que mas me gusta y me gustaria llegar a ser un experto en el, lo de el control que me enviaste no ce ni siquiera como instanciarlo y mucho menos modificarlo ya que todavia no manejo la orientacion a objetos con delphi, bueno muchisimas gracias...
Responder Con Cita
  #6  
Antiguo 18-09-2007
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
nuevo problema

hola amigo k tal, hice todo lo indicado en cuanto al separador de millares, pero ahora sugio un problema y es k a la hora de darle al boton grabar para almacenarlo en la base de datos me dice error tratando de convertir varchar a float, mi campo sueldobruto es de tipo float y kiero pasarle el valor de la funcion k me devuelve formatfloat es decir por ejemplo 150,500.00 y no me deja, el campo float no acepta este formato ?.. por favor dime k hago

Cita:
Empezado por ingmichel Ver Mensaje
muy buenas tardes foreros como estan todos, les escribo pork tengo un pequeño problema aver si me pueden ayudar, resulta que estoy desarrollando una aplicacion de nomina de empleados, y nececito hacer que cuando el usuario digite en campo sueldo bruto un valor como por ejemplo 15000 se ponga automaticamente una coma para dividir melisimas es de decir k ponga 15,000 a asi tambien si se digita 1000 que salga 1,000 es decir que me divida los miles con comas,
entonces mis inquietudes son las siguientes:
*que funcion utilizo para lograr esto ?
*Como Muestro este formato en los reportes ?
*Que tipo de dato es el mas favorable para realizar este tipo de operacion

bueno espero que alguien me ayude... gracias de antemano.

"El Conocimiento nos hace personas Capaces y Compartirlo nos hace aun mejores."
Responder Con Cita
  #7  
Antiguo 19-09-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No se si estés usando Windows, pero normalmente cuando sucede esto es por que la configuración regional no esta igual a la base de datos, la transferencia es diferente.
Panel de control-Configuración Regional-Personalizar.
aquí veras que muestra el tipo de formato para separador de decimales y de miles, lo mas probable es que no lo tengas como lo necesitas, modificalo en este y ya dirás como te fue.
No se si así se arreglara, pero probar no cuesta nada.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 19-09-2007
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
hola caral

hola caral, bueno ya hice lo que dijiste y tengo la configuracion regional de mi windows xp en español republica dominicana que es el pais donde recido, ahora bien como le pongo esa misma configuracion a mi sql server 2000 ?, o quizas sera que el campo float no acepta el formato 150,500.00 por asi decirlo ? entonces que puedo hacer si quiero hacer calculos mas adelante hasta donde se float es el mas recomendable, por favor dime k hago...
Responder Con Cita
  #9  
Antiguo 19-09-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En la configuracion tienes que poner los parametros de los decimales y miles, no solo el pais y la hora, deberia funcionar.
Ahora, en cuanto a hacer calculos, no creo que tenga problemas si esta el windows configurado, otra opcion es mantener los datos sin comas y solo presentarlos en pantalla.
No se si me explico.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #10  
Antiguo 19-09-2007
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
hola

hola como estas caral, me dices k no muestre los datos con comas cuando se digita pero acuerdate que los usuarios cuando digitan cantidades grades acostumbran a separar con comas y tambien a poner decimales es decir por ejemplo 150,500.87 entonces cuando me refiero a hacer calculos me refiero a poner una condicion que si el sueldo bruto > 150,500.87 por ejemplo que le aplique un descuento pero lo que no se es si el formato 150,500.87 que lo quiero almacenar en un campo float me va a dejar hacer ese tipo de calculos, pero cualquier recomendacion que me des/den sera bienbenida gracias de antemano.
Responder Con Cita
  #11  
Antiguo 19-09-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pienso que es un asunto de costumbre digitar sin comas, en mi caso lo hago asi, solo digito un punto del decimal y tengo configurado windows para este fin.
Bueno, no conozco sql server, en access el campo flost es Doble y tiene una extension donde puedes variar la presentacion de los datos, no se si en sql server sera parecido.
No se que mas opinar.
Saludos
__________________
Siempre Novato
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Consulta Delphi 6, Delphi 2005 y Delphi 2006 Leviatan Varios 6 18-08-2007 17:02:08


La franja horaria es GMT +2. Ahora son las 23:24:45.


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