Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Cocina PowerCOBOL (https://www.cobolforo.es/forumdisplay.php?f=24)
-   -   [PowerCOBOL] Desde Excel a ListView o CmTable (https://www.cobolforo.es/showthread.php?t=1096)

Josber 7 de abril de 2020 19:26

Desde Excel a ListView o CmTable
 
2 Archivos Adjunto(s)
Bueno es un pequeño aporte de un programa que pasa una hoja de cálculo con algo más de 14.500 registros a un control ListView, (Grid) o a un control CmTable, (Tabla).

El fichero Excel que se traspasa es el de códigos postales de España, hay que tener en cuenta que, los códigos postales , municipios y provincias, son válidos, pero las coordenadas X e Y, (columna 5 y 6), son datos ficticios, añadidos sólo para esta ocasión.

Otros detalles:
- El control CmTable, no soporta más de 2.000 lineas, por lo que se hace la carga en varias veces, (si el usuario así lo desea).
- Tanto el control CmTable, como el control ListView, no soportan más de 14 enteros y 4 decimales, si ponemos más nos dará un aviso, que no un error, y todos los que pongamos de más, se mostrarán como 0, (ceros).
- El proceso es lento, al empezar el traspaso, hay un pequeño retardo, debido a la apertura de la hoja de cálculo, y además, se comprueba la cantidad de registros que hay, para poder cargarlos en el control ProgressIndicator
- En varios sitios, se utiliza la llamada a la subrutina CBL_DELETE_FILE2, por lo que sólo funcionará en PWC ver. 7 o superior, para las versiones 4, 5 y 6, hay que cambiarla por CBL_DELETE_FILE, con la salvedad de que ésta última, no soporta los espacios en blanco en la ruta ni en el nombre del fichero.
- Como ejemplo, porque creo que no hay ninguno, utilizo un fichero Sort, (uso de SD en vez de FD en FILE SECTION) para ordenar la tabla, (evento Click del control TABLA)

Entorno: PWC 7 a PWC 9
Tipo: Ejecutable
Contenido: Ejecutable, Proyecto, Iconos, Imágenes, archivo excel en un archivo RAR
Tamaño de la descarga: 780Kb
.

Socavi 9 de abril de 2020 19:18

Hola Josber:

Para probar, lo he puesto en c:\excel, lo he compilado y me llevo la primera sorpresa puesto que no arranca, dónde he de instalarlo para verlo funcionar ?

Aprovecho para felicitarte, por la buena presentación y la pulcritud en la escritura de todo el programa, lo que me da a entender que eres un buen profesional, haber si puedo utilizar el programa, y se me "pega algo", jajaja.

Si no es mucha molestia y tus obligaciones te lo permiten, me atrevo a sugerir otra clase práctica, pero ésta vez con las coordenadas de Latitud y Longitud, a mi se me ha ocurrido ya que no se puede trabajar con los 6 decimales, hacerlo con numeros enteros, sin decimales, sustituyéncolos, por la presentacion -ZZ.ZZZZZZ, pero no me gusta como queda.

Muchas Gracias y lo dicho Felicidades, por tu bien hacer.

Josber 10 de abril de 2020 12:56

Cita:

Citación del post de Socavi (Mensaje 5432)
Para probar, lo he puesto en c:\excel, lo he compilado y me llevo la primera sorpresa puesto que no arranca, dónde he de instalarlo para verlo funcionar ?

Qué raro, porque está creado y compilado ahí, dime cuál es el error que te da, a ver si le sacamos punta.

Cita:

Citación del post de Socavi (Mensaje 5432)
por la buena presentación y la pulcritud en la escritura de todo el programa

Muuuuuuchas gracias, como he comentado en otro post de éste foro, me gusta mucho dejar espacios en blanco y, sobre todo, indentar el código, COBOL es un lenguaje muy bonito, pero hay que escribir mucho y, si no lo hacemos con claridad, mal vamos.

Cita:

Citación del post de Socavi (Mensaje 5432)
con numeros enteros, sin decimales, sustituyéncolos, por la presentacion -ZZ.ZZZZZZ

¡¡¡ Uff !!, es que te quedan pocas posibilidades más, a no ser que utilices un componente de terceros que sí permita más de 4 decimales. La verdad es que soy de los que piensan que, 4 decimales es muy poco, pero es lo que hay. A ver si a alguien se le ocurre otra idea de presentación y la quiere exponer por aquí.

Un saludo.-

Kuk 10 de abril de 2020 13:18

Socavi, Josber, cuál es el problema exactamente con las decimales ? No caigo :piensa:

Socavi 10 de abril de 2020 14:24

1 Archivos Adjunto(s)
Hola Josber:

No da ningún error, 'activas el programa' una vez compilado, sale unos segundos el circulito oazul rodando, pero no hace nada de nada, no sale el programa para poder operar con el, nada.

Socavi 10 de abril de 2020 16:20

Hola Kuk:

Lo de los 6 decimales, viene al caso de las coordenadas geográficas (Latitud-Longitud) , Cobol no permite trabajar con 6 decimales y creo recordar que en una ocasión, le sugertíste a Fito que utilizara dos TextBox y Fito recordó tener un programa mediante el cual conseguía obtener la posibilidad de operar a plena satisfacción.

El caso es que yo he probado utilizar con 8 números sin decimales, pero con la máscara
-ZZ.ZZZZZZ, pero no acaba de convencerme porque hay casos donde la longitud y Latitud se expresa con cinco decimales y en ésos casos se añade un cero al final para completar lo determinado por la máscara de presentación.

Total que sugeri a Josber, si se pudiera plantear una solución mas idónea que reflejara una mayor exactitud.

Josber 10 de abril de 2020 17:57

Cita:

Citación del post de Kuk (Mensaje 5434)
cuál es el problema exactamente con las decimales ? No caigo

Kuk, Socavi utiliza el tema de coordenadas GPS y necesita al menos 6 decimales, los controles CmTable y ListView, no soportan más de 4 decimales en pantalla

Socavi, ¿Tienes instalado Excel, ¿no?, (no vale uno compatible tipo LibreOficce o por el estilo, tiene que ser Microsoft Excel)

Cita:

Citación del post de Socavi (Mensaje 5437)
se añade un cero al final para completar lo determinado por la máscara

Pero eso te va a pasar igual si soportase 4, 6 o 20 decimales, ¿no?

Un salu2.-

Fito 11 de abril de 2020 03:33

Hola:

Lo estuve pensando y no te va a quedar otra que tratar como texto, y después analizarás el string para determinar dónde está la coma decimal y así interpretar el valor, así después lo podés grabar en un campo de archivo con formato de seis decimales.

Saludos...

Fito...

Socavi 11 de abril de 2020 13:53

1 Archivos Adjunto(s)
Josber,

El 'paquete' corresponde a Microsoft Office 2.019. con toda seguridad, saludos cordiales

Archivo Adjunto 538

Josber 11 de abril de 2020 17:23

Cita:

Citación del post de Socavi (Mensaje 5440)
El 'paquete' corresponde a Microsoft Office 2.019. con toda seguridad, saludos cordiales

Pues es muy raro, a ver si se lo puede bajar alguin más, probarlo en esa misma ruta y decir si le funciona.

Un saludo.-


La franja horaria es GMT +2. Ahora son las 13:55.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.