Foros del Web » Programando para Internet » ASP Clásico »

Separador miles y decimales

Estas en el tema de Separador miles y decimales en el foro de ASP Clásico en Foros del Web. Hola a todos, Estoy trabajando en una aplicación de Visual, que en un momento dado necesita hacer una consulta de datos a una base de ...
  #1 (permalink)  
Antiguo 22/08/2007, 02:44
 
Fecha de Ingreso: agosto-2007
Mensajes: 26
Antigüedad: 16 años, 9 meses
Puntos: 0
Separador miles y decimales

Hola a todos,

Estoy trabajando en una aplicación de Visual, que en un momento dado necesita hacer una consulta de datos a una base de datos y mostrar los resultados en una tabla de html.

En ésta tabla hay varias columnas, y una de ellas es de precio de venta de producto y necesito que siempre salgan formateados con los puntos de miles (.) y las comas de los céntimos (,) seguidos por dos decimales (cero en el caso de que no hayan decimales o que muestre los decimales si es que los tienen).

Os muestro la parte del código que debe tener ésta propiedad:

Código:
PreVen = "<td width=""70""><p align=""right"">" & Trim(DTPlazos.Rows.Item(i).Item("preven")) & "&euro" & "</p></td>"
Seguramente es una respuesta de lo más simple, pero no consigo dar con ella... Muchas gracias!
  #2 (permalink)  
Antiguo 22/08/2007, 03:09
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 3 meses
Puntos: 63
Re: Separador miles y decimales

Hola

Dado que los datos que se imprimen en la tabla vienen de tu consulta, es ahí donde debes procesarlos y agregar los separadores que necesites.

La mejor manera es que redirijas el resultado de la consulta a una variable, la formatees agregando las comas y puntos que necesites y luego imprimas la variable en la celda.

Felicidad
__________________
¡ hey, hou, hou, hey !
  #3 (permalink)  
Antiguo 22/08/2007, 03:22
 
Fecha de Ingreso: agosto-2007
Mensajes: 26
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Separador miles y decimales

Gracias por la respuesta PatomaS, pero todavía tengo alguna duda:

Entiendo lo de crear una nueva variable con el resultado de la consulta, pero no se como darle el formato correcto a cada registro de la columna, ya que cada precio es diferente (hay precios de centenas, miles, diez miles, con y sin decimales...)

Agradezco si sabes como hacerlo. Saludos!
  #4 (permalink)  
Antiguo 22/08/2007, 03:40
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 9 meses
Puntos: 381
Re: Separador miles y decimales

Vamos para un foro más adecuado.

Tema trasladado desde (x)html

saludos
  #5 (permalink)  
Antiguo 22/08/2007, 03:55
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 3 meses
Puntos: 63
Re: Separador miles y decimales

Hola

Procesa tu resultado con un patrón de expresiones regulares, por ejemplo. de manera que cada tantos caracteres coloque un punto o una coma o algo así.

Seguro que este mismo subforo tienes ejemplo de ello y mucha gente con mejores conocimientos que los míos para orientarte en este tema.

Felicidad
__________________
¡ hey, hou, hou, hey !
  #6 (permalink)  
Antiguo 22/08/2007, 04:20
 
Fecha de Ingreso: agosto-2007
Mensajes: 26
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Separador miles y decimales

Mmm... entiendo perfectamente lo que me quieres transmitir, pero no tengo ni la más remota idea de como debo procesar la sintaxis... así que, si alguien sabe como hacerlo, le estaré muy agradecido!

Muchas gracias por tu ayuda PatomaS (tu no tienes la culpa que yo sea un novato...)
  #7 (permalink)  
Antiguo 22/08/2007, 04:58
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Separador miles y decimales

Podrias usar FormatNumber o FormatCurrency en combinación con Session.LCid.

LCid se usa al principio de la página de ASP vbscript:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="850"%>
<%
Session.LCid = 2048
...
%>


El CodePage que puse antes es para definir el tipo de caracteres. No tiene nada que ver con lo que preguntas. LCid, sin embargo, define o lee la configuracion para formatear fechas, horas, números, monedas, porcentajes y valores negativos (la configuarción regional, vamos). la cifra (2048) es la que corresponde a España. Sin embargo, si necesitas otro formato no tienes mas que cambiarselo (busca en San Google, hay muchas páginas que hablan de ello).


Una vez definido LCid, puedes usar FormatNumber (yo lo prefiero a FormatCurrency) para formatear los valores:

MiNumero = 334223.7889
response.write(formatNumber(MiNumero, 2, -2, -2, -1) & " &euro;")

imprimiria

334.223,79 €


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #8 (permalink)  
Antiguo 22/08/2007, 05:10
 
Fecha de Ingreso: agosto-2007
Mensajes: 26
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Separador miles y decimales

Ok, ok... voy pillando la idea, pero... ¿funciona igual si el código es de Visual Basic? Es decir, la sintaxis ¿es la misma?

Para ponerlo más claro todavía... ¿como "enchufo" el Format Number en el trozo de código siguiente?:

Código:
PreVen = "<td width=""70""><p align=""right"">" & Trim(DTPlazos.Rows.Item(i).Item("preven")) & "</p></td>"
Perdón por la ignorancia, pero hace muy poquito que me he liado con el tema de programación y voy dando palos de ciego...

Saludos y muchas gracias tammander!
  #9 (permalink)  
Antiguo 22/08/2007, 05:26
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Separador miles y decimales

VBScript es gemelo a VB (por no decir clones :D ) Recuerda poner

Session.LCid=2048

al principio de la página


Código:
Dim numFmt

' Prevenimos errores de tipo
if isNumeric(DTPlazos.Rows.Item(i).Item("preven")) then
    numFmt = FormatNumber(DTPlazos.Rows.Item(i).Item("preven"), 2, -2, -2, -1)
else
    numFmt = "0,00"
end if
PreVen = "<td width=""70""><p align=""right"">" & numFmt & " &euro;</p></td>"


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #10 (permalink)  
Antiguo 22/08/2007, 05:29
 
Fecha de Ingreso: diciembre-2004
Mensajes: 44
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: Separador miles y decimales

Yo lo hago de la siguiente manera.

En el XML donde hago la query a la tabla gestiono la salida de la siguiente manera:

Una vez echa la query, recogo el importe facturado en una variable para luego procesarla.

st_importe = rs("cliente_facturado")
st_cadena = st_cadena & "<facturado>" & replace(st_importe,",",".") & "</facturado>"

Con esto me aseguro de tener los importes de la manera que luego en el xsl lo pueda leer.

En el xsl lo monto de la siguiente manera:
<font face="Verdana" size="1" color="darkblue"><xsl:value-of select="format-number(facturado, '###.##0,00', 'european')"/></font>

Espero esto te sirva
  #11 (permalink)  
Antiguo 22/08/2007, 05:43
 
Fecha de Ingreso: agosto-2007
Mensajes: 26
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Separador miles y decimales

Tammander funcionó!!!!!

Te agradezco un montón la ayuda y la paciencia con un novato como yo... espero poder ayudar yo un día de estos a alguien del foro.

Muchas gracias de nuevo, un saludo!!


P.D. Gracias a ti también Gaspampera
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:46.