Separador de Miles en Exportación a Excel


([N3] blanyi) #1

Buenos días.

Estoy haciendo una exportación a excel haciendo uso de v2ExcelWindows.app y todo me funciona bien, sinembargo tengo un inconveniente. Utilizo una función para darle formato a la celda, esta es:

fun:EXCEL_CELDA_FORMATO_NUMERICO@v2ExcelWindows.app($EXCEL_AP_HAP@CrediPresDB.dat, $EXCEL_NLIBRO@CrediPresDB.dat, $EXCEL_NHOJA@CrediPresDB.dat, “C5”,"#,##0")

El inconveniente es que en la configuración regional la coma se usa como punto decimal y el punto como separador de miles por lo tanto el archivo exportado en excel me muestra los datos sin el separador de miles y con una coma separando a un decimal que es cero y que en realidad no existe y no quiero que aparezca.

La solución inmediata es cambiar la configuración regional del equipo, pero tendría que hacerlo en cada equipo y el cliente lo necesita así como lo tiene. Adicionalmente, si luego se cambia la configuración regional tendría que modificar el programa para ajustarlo a nueva configuración, así que esta solución no es viable.

Alguno en el foro sabe si hay alguna manera de obtener la configuración regional, mas concretamente que simbolo se está usando como separador decimal y/o separador decimal para asi poder determinar si la cadena que se le pasa a la función EXCEL_CELDA_FORMATO_NUMERICO debe ir con punto o con coma según sea el caso.

Gracias.

YIMY MORA ACONCHA


([N4] gontorre) #2

Buenas tardes

Yo empecé a trabajar con la OpenApp v2ExcelWin y al final lo dejé. Hay ciertas cosas que no fui capaz de hacer funcionar, como, por ejemplo, poner una celda en negrita. No sé si tendrá que ver la versión de Office que utilices o que, pero el caso es que no iba.

Al final opté por hacer las exportaciones a Excel haciendo una automatización en un ficher VBS y ejecutarlo. De esta manera no tengo ningún problema.

Si quieres algún ejemplo te lo puedo pasar.

Un saludo


([N1] wikan) #3

getSysDecimalPoint()


([N1] MATIAS) #4

échale un vistazo a este hilo.

Exportación a Excel

Un saludo


([N3] blanyi) #5

Gracias a todos por su valiosa ayuda.

Gonzalo Torre, yo no he tenido problemas con la OpenApp v2ExcelWin, en este momento se me presentó esta situación pero ya la pude resolver con el dato que me dio Manuel (Wikan). No obstante sería bueno concer la opción que tu utilizas para tus exportaciones. Asi que si quieres compartir lo que tienes, te lo agradezco mucho; mi correo es ymoracon@gmail.com

Manuel, ese es el dato que necesitaba, muchas gracias; por mucho que busqué no encontré algo sobre estas funciones del sistema. Hice busquedas por “separador de miles” o “punto decimal” o “separador decimal” y en ningún caso me mostró información de getSysDecimalPoint().

Profundizando en el tema encontré que hay un grupo de “Funciones de Sistema” entre las que se encuentra la que Manuel me ha indicado y también hay otra llamada getSysGroupSeparator() que “Devuelve el separador de grupos de dígitos del sistema”. Así que solucioné mi inconveniente de esta forma:

  • Cree una variable local llamada FMT_NUMERIC a la que le asigne esto:
    SET (FMT_NUMERIC, “#”+ getSysGroupSeparator()+"##0")

  • Luego el llamado a la funcion para exportar a excel quedó así:
    fun:EXCEL_CELDA_FORMATO_NUMERICO@v2ExcelWindows.app($EXCEL_AP_HAP@CrediPresDB.dat, $EXCEL_NLIBRO@CrediPresDB.dat, $EXCEL_NHOJA@CrediPresDB.dat, “C5”,FMT_NUMERIC)

Adicionalmente encontré que hay una funcion del grupo “Funciones de Campo” llamada formatValue() que también nos sirve y para el caso de exportaciones a excel nos ayuda a ahorrar líneas de codigo puesto que se coloca justo al lado de campo que se está exportando. Un Ejemplo:
fun:EXCEL_CELDA_ASIGNAR_VALOR_POR_POSICION@v2ExcelWindows.app($EXCEL_AP_HAP@CrediPresDB.dat, $EXCEL_NLIBRO@CrediPresDB.dat, $EXCEL_NHOJA@CrediPresDB.dat, EXCEL_FILA,8, #VALOR_GIRADO:formatValue(“L”))

En este caso “L” le está indicando al sistema que utilice el formato Local de configuración regional que tiene el PC. Pero en lugar de “L” se pude usar cualquiera de las otras subcadenas para campos numéricos, de fecha e incluso para textos.

Espero que le sirva a Matias como a cualquier otro que haya tenido inconvenientes con este asunto.

Gracias nuevamente y que Dios les bendiga.

YIMY MORA ACONCHA