Quiero mandar un dato numérico de mi formulario a un cammpo en un reporte, pero el dato es numérico y tiene 2 decimales. Bueno en mi formulario aparece ese dato con más decimales, ¿también cómo le puedo hacer para redondear o cortar ese dato en mi formulario a 2 decimales y así enviarlo a mi reporte?.
Espero poder ayudarte... Tienes que ver donde quieres parar el problema.. Cuando aparecen decimales "de más" seguramente es el resultado de alguna operación matemática.. Pero si ese dato, luego se guarda en una tabla, cuyo campo tiene 2 decimales nada más, se redondea solo.. Entonces, si la referencia en el report es a la tabla, no habría inconvenientes. Para redondear los decimales en el textBox usa la función round() así.. por ejemplo: thisform.resultado.value=round(precio*cantidad,2) En el informe, cuando haces referencia al campo podes usar la misma función. En lugar de poner directamente: tabla.precio*tabla.cantidad pones..: Round(tabla. precio*tabla. Cantidad, 2) Otra solución, es en donde dice format la siguiente cadena.. ###,###.## Esto hará que un dato por ejemplo 123432.344 se vea 123,432.34 En la cadena de formato siempre va, (para miles) y . (para decimales) Si quieres que se vea 123.432,34 antes de mandar el informe pones.. set point to ',' set separator to '.' report form... set point to '.' set separator to ',' El formato puede usarse también en la propiedad inputmask del textBox pero si ese textbox se usa para ingresar datos, no te conviene porque a veces confunde un poco al usuario.. y mucho menos cambiarle el set point.. ¿sabes por qué? Porque el teclado numérico está preparado con el punto para que no levanten la mano y se vayan a la coma.. y si vos cambias la opción de set point en el form, pierde esa utilidad el teclado. Bueno, espero que mi respuesta sea de utilidad y si es así, cierres y califiques la pregunta.. Cualquier cosa estoy a tu disposición..
Excelente... solo que al momento de mandarlo a mi reporte una cantidad como: 325.20 en el formulario, se ve así en el reporte:¿325.00. me hará falto algo?
Cabe la aclaración que este dato con 2 decimales lo mando al reporte mediante un arreglo temporal ya que no pasa por ninguna tabla. En el init del formulario hago: create cursor Tmp1(total N(10)) y al mandar al reporte hago: Insert Into Tmp1(total)values(thisform.txtTot.value) Report Form C:\reporte2 Preview Report Form C:\reporte2 noconsole to printer prompt
Nuevamente... Si. Fíjate en el cursor que generas que dice total n(10), bueno ahí sería total n(10,2) Si me permitís la sugerencia, en lugar de hacer el cursor y todo eso que te resta un poco de velocidad proba de hacer alguna de estas alternativas.. mTotal=round(thisform.texTot.value,2) y en el report haces referencia a mTotal mForm=thisform Y el en report haces referencia a mForm.txtTot.value O si tienes los datos en una tabla podes hacer en el report directamente el cálculo: Round(tabla.campo1*tabla. Campo2, 2) Espero que haya sido de utilidad mi respuesta y desde ya estoy a tu disposición.. Keystone - Christian