Impresion de montos

Hola keystone, estoy probando mis reportes y me doy cuenta que los montos siempre salen sin la coma de separador de miles y sin el punto decimal, ¿a parte que estos campos salen descuadrados a pesar que uso space() a que se debe eso?. En el InputMask de las cajas de texto donde se ingresan los montos he puesto esto: 999,999.99 pero cuando grabo los datos se graba de esta forma 4500.50 sin la coma de separador de miles. Y este campo es de tipo n(8,2)
¿Hay algo más que debo hacer? ¿O qué estoy haciendo mal?.

1 respuesta

Respuesta
1
¿Cómo estas?
No te preocupes por como se guardan, siempre en realidad se guardan sin la "mascara".
Por eso, cada vez que muestres los datos, debes usar la propiedad inputMask para que se vean como quieres.
Ahora, con respecto al report, por favor decime porque usas espace y que tipo de report estas usando..
Si es un report de fox, en el campo, te fijas en el formato y pones donde dice numérico, y la mascara.. así no tienes problemas, y después, vas a el menu formato y alineas el texto a la derecha..
¿Si es report de baso nivel realizado con? (Supongo porque mencionas space()) cuando vas a imprimir fíjate que la sintaxis sea..
transf(miDato,'##,###.##')
Para tener en cuenta: en el ejemplo pones 999,999.99 La coma no se cuenta como dato, pero el punto si.. así que si tienes la posibilidad de poner 3 dígitos de miles el campo debería ser 9,2 y no 8,2.. siempre es así: "son 9 caracteres (contando el punto decimal) de los cuales 2 son decimales"
Bueno espero haberte ayudado y desde ya estoy a tu disposición.
Espero tu calificación
Keystone - Christian
www.keystone.com.ar
Hola keystone, ese es un extracto del reporte.
procedure imprimeLinea
??? STR(imprime.idcomp,5,0)+SPACE(3)+dtoc(imprime.fecha_emision)+SPACE(1)+;
dtoc(imprime.fecha_venci)+SPACE(2)+PADR(imprime.nro,2)+;
SPACE(2)+PADL(imprime.serie,4)+SPACE(3)+PADL(imprime.nro_comprob,10);
+SPACE(2)+PADR(imprime.cod,1)+SPACE(2)+PADR(imprime.ruc,11);
+SPACE(2)+ALLTRIM(imprime.rsocial)+SPACE(3)+str(imprime.bimponible1,10,2);
+SPACE(1)+str(imprime.igv1,10,2)+SPACE(2)+str(imprime.adqui_no_grav,10,2);
+SPACE(1)+STR(imprime.otros,10,2)+STR(imprime.imp_total,10,2);
+SPACE(2)+PADR(imprime.nro_const_dep,7)+SPACE(2)+dtoc(imprime.fec_const_dep);
+SPACE(5)+dtoc(imprime.fecha_mod)+SPACE(4)+PADR(imprime.tipo_comp_mod,2);
+SPACE(5)+PADL(imprime.serie,4)+SPACE(2)+PADL(imprime.nro_comp_orig,10);
+SPACE(6)+PADL(imprime.nro_reg,6)+ctrlF
mLinea=mLinea+1
return
exacto cambia el padl por el transf.. :
Por ejemplo en lugar de:
PADL(imprime. nro_comprob,10)
Usas
transf(imprime.nro_comprob,'##,###,###')
Saludos
Keystone - Christian
www.keystone.com.ar
Hola, para este tipo de campo:
str(imprime.bimponible1, 10,2) tuviera que colocar:
trans(str(imprime.bimponible1,'##,###,###')
No, para nada..
es un dato numérico..
No habría problemas.
Saludos
Keystone - Christian
www.kesytone.com.ar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas