none
Valor decimal en CrystalReport RRS feed

  • Pregunta

  • Buenos días,

    Actualmente utilizo Crystal Reports en visual studio 2008, para formatear y almacenar (en un DataTable) los valores que represento en el reporte utilizo la siguiente función:

        switch (DSReporte.Tables[nombre_datatable].Columns[columna].DataType.ToString())
                {
                  case "System.Double":
                    if (Double.TryParse(datos.Rows[fila][columna].ToString(), out auxiliar))
                    {
                      if (auxiliar > 0)
                      {
                        registro[columna] = auxiliar;
                      }
                      else { registro[DSReporte.Tables[nombre_datatable].Columns[columna].ColumnName] = 0.0; }
                    }
                    else { registro[columna] = 0.0; }
                    break;
                  case "System.Decimal":
                    if (Decimal.TryParse(datos.Rows[fila][columna].ToString(), out auxiliar_decimal))
                    {
                      if (auxiliar_decimal > 0)
                      {
                        registro[columna] = auxiliar_decimal;
                      }
                      else { registro[columna] = 0.0m; }
                    }
                    break;
                  case "System.Int16":
                    if (Int16.TryParse(datos.Rows[fila][columna].ToString(), out auxiliarint))
                    {
                      if (auxiliarint > 0)
                      {
                        registro[columna] = auxiliarint;
                      }
                      else { registro[DSReporte.Tables[nombre_datatable].Columns[columna].ColumnName] = 0; }
                    }
                    else { registro[DSReporte.Tables[nombre_datatable].Columns[columna].ColumnName] = 0; }
                    break;
                  default:
                    registro[columna] = datos.Rows[fila][columna].ToString();
                    break;
                }
    


    Pero al momento de incluir valores muy pequeños como 0.000000832 en las columnas tipo Decimal, aparecen valores "0" o un espacio en blanco en el reporte. Por lo cual me surge la duda si debo modificar el formato de los campos mostrados en el reporte.

    Gracias por la atención.


    Santiago Jaramillo Ledesma
    viernes, 29 de julio de 2011 17:14

Respuestas

  • Buenos días,

    La solución al problema (en mi caso particular) de los espacios en blanco al momento de presentar los datos en el reporte, efecitvamente radicaba en que los valores eran muy pequeños, pero con el botón Increase Decimal hasta en número máximo permitido muestra los valores los cuales tienen hasta 10 decimales.

    Aunque no me queda claro porqué al utilizar la función ROUND en los Formula Fields así:

    Round({DataTable.Campo}, 10)
    

    No exponía los mismos resultados.

    Gracias a todos por la colaboración.


    Santiago Jaramillo Ledesma
    • Marcado como respuesta Xantiago martes, 2 de agosto de 2011 16:13
    martes, 2 de agosto de 2011 16:13

Todas las respuestas

  • aparecen valores "0" o un espacio en blanco en el reporte

    por lo que comentas pareciera que esta redondeando el valor y si la verdad es bastante quico requi3res uan presicion de varios decimales para pdoer visualizarlo

    no podrias quizas cambiar de unidad de representacion para poder mostrrar mejor la informacion

    no se que simbilozan esos valores pero por ejemplo si serian kg podrias pasarlo a gramos o algo asi o sea cambiar la unidad para que se visualice mejor

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 29 de julio de 2011 17:31
  • Hola,

    Gracias por la atención, los valores simbolizan volumen (m³), anteriormente intenté guardarlos como Double pero se desplegaban con notación 832E-8 pero tampoco eran representados de forma correcta, también intenté en la función .ToString() formatearlo, pero expones que no puedo aplicar formato de en ésa función a Object.ToString(). ¿Alguna sugerencia?

    Muchas gracias.



    Santiago Jaramillo Ledesma
    viernes, 29 de julio de 2011 18:31
  • Buenos días,

    La solución al problema (en mi caso particular) de los espacios en blanco al momento de presentar los datos en el reporte, efecitvamente radicaba en que los valores eran muy pequeños, pero con el botón Increase Decimal hasta en número máximo permitido muestra los valores los cuales tienen hasta 10 decimales.

    Aunque no me queda claro porqué al utilizar la función ROUND en los Formula Fields así:

    Round({DataTable.Campo}, 10)
    

    No exponía los mismos resultados.

    Gracias a todos por la colaboración.


    Santiago Jaramillo Ledesma
    • Marcado como respuesta Xantiago martes, 2 de agosto de 2011 16:13
    martes, 2 de agosto de 2011 16:13