0

![]() |
![]() |
Super Moderador |
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 target=_blank>, (Grid) o a un control CmTable target=_blank>, (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 target=_blank>, 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 , como el control ListView target=_blank>, 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 target=_blank>
- 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 target=_blank> 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
.
Última edición por Josber; 07.04.2020 a las 21:04
![]() |
![]() |
Junior |
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 , pero no me gusta como queda.
Muchas Gracias y lo dicho Felicidades, por tu bien hacer.
![]() |
![]() |
Super Moderador |
Qué raro, porque está creado y compilado ahí, dime cuál es el error que te da, a ver si le sacamos punta.
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.
¡¡¡ 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.-
![]() |
![]() |
Administrador |
@Socavi, @Josber, cuál es el problema exactamente con las decimales ? No caigo![]()
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
![]() |
![]() |
Junior |
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.
![]() |
![]() |
Junior |
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.
![]() |
![]() |
Super Moderador |
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)
Pero eso te va a pasar igual si soportase 4, 6 o 20 decimales, ¿no?
Un salu2.-
![]() |
![]() |
Guardián del Foro |
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...
![]() |
![]() |
Junior |
Josber,
El 'paquete' corresponde a Microsoft Office 2.019. con toda seguridad, saludos cordiales
2020-04-11_13-49-03.jpg
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)
Marcadores