0
Junior |
Concretamente se trata de un fichero indexado de los Municipios de España. Si los listo en su totalidad en un ListView, salen sin problema, ahora bien si deseo limitar el listado a una provincia concreta, tambien sale pero en su lugar, es decir si anteriormente hay X provincias que en ése momento no interesa listar, pues en el listado se suceden los espacios en blasnco, hasta llegar a la provincia que se desea.
Espero haberme expresado mejor, gracias por tu atención.
Super Moderador |
@Socavi,
Perdona la tardanza en contestar pero, por desgracia, otros "problemas" me tienen copado todo el tiempo que tengo.
A ver lo primero que entiendo es que te salen más lineas de las que necesitas, y que éstas, se quedan en blanco. ¿Inicializas el control ListView antes de empezar a llenarlo?, (lo que correspondería a la instrucción INITIALIZE en COBOL), por ejemplo:
COBOL Código:
INVOKE View2 "Clear".
Luego parece que si tienes, por ejemplo, 300 líneas en el ListView, quieres "posicionarte" en la 250. Si es así, yo no he conseguido hacerlo, no sé si @Kuk o algún otro forero lo ha conseguido, pero yo no desde luego.
Si no es ese tu problema, dínoslo, porfa.
Un saludo.-
Junior |
Buenas tardes Josber, así llamo al listadoComo dije anteriormente, el fichero indexado es de casi 10.000 regístros, bien si el que pretendo listar empieza en la linea 300, me deja 300 lineas en blanco, hasta que llega el primero de los que pido y entonces los lísta todos. No sé si queda claro lo que me sucede.COBOL Código:
move 0 to TOTMUNIPOB TOTMUNISUP close munici. open input MUNICI. INITIALIZE REGMUNI. invoke Lista 'Clear' move ' ' to finfic move 0 to cuantos perform until finfic = 's' read MUNICI next record at end move 's' to finfic not at end INVOKE Lista 'Add' USING 1 1 RETURNING RETORNO MOVE 'ListItems'(RETORNO) OF Lista TO LINEA IF MUNIPRO = V-COD MOVE MUNICOD TO 'Text'(1) OF LINEA MOVE MUNICP TO 'Text'(2) OF LINEA move MUNINOM to 'Text'(3) of linea move MUNIGEN TO 'Text'(4) of linea move MUNIPOB to 'Text'(5) of linea move MUNISUP to 'Text'(6) of linea perform calcul thru fi-calcul move MUNIKM TO 'Text'(8) of linea add 1 to cuantos END-IF end-read end-perform. close MUNICI.
Gracias y perdona "la paliza"
Administrador |
¿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 |
Agradecido Kuk, es una solución, pero esto me obligaria a averiguar el código en el que empieza cada una de las 52 provincias y tambien los respectivos codigos de las últimas de cada provincia, a primera vísta es un poco complicado aunque si no hay otro remedio, pues que le vamos hacer.
Mi ilusión sería la de solicitar el listado por el número de la provincia, por ejemplo 08 Barcelona y que empezara a listar en el primer Municipio de la província 08 y que cuando se superara el 08, pues dejara de listar, pero no hace falta que deje los espacios en blanco correspondientes a las Provincias anteriores, porque en el caso de solicitar los Municipios de la província 50, pues ya te lo puedes imaginar, un desastre.
Muchas gracias por dedicarme vuestra atención.
Administrador |
@Socavi, lo que tienes es un problema de algoritmo. Es decir, hacesCOBOL Código:
INVOKE Lista 'Add' USING 1 1 RETURNING RETORNO MOVE 'ListItems'(RETORNO) OF Lista TO LINEA
fuera del IF, así que por cada registro se crea un nuevo ListItem.
Hazlo así:COBOL Código:
move 0 to TOTMUNIPOB TOTMUNISUP close munici. open input MUNICI. INITIALIZE REGMUNI. invoke Lista 'Clear' move ' ' to finfic move 0 to cuantos perform until finfic = 's' read MUNICI next record at end move 's' to finfic not at end IF MUNIPRO = V-COD INVOKE Lista 'Add' USING 1 1 RETURNING RETORNO *> modivo MOVE 'ListItems'(RETORNO) OF Lista TO LINEA *> dentro del IF MOVE MUNICOD TO 'Text'(1) OF LINEA MOVE MUNICP TO 'Text'(2) OF LINEA move MUNINOM to 'Text'(3) of linea move MUNIGEN TO 'Text'(4) of linea move MUNIPOB to 'Text'(5) of linea move MUNISUP to 'Text'(6) of linea perform calcul thru fi-calcul move MUNIKM TO 'Text'(8) of linea add 1 to cuantos END-IF end-read end-perform. close MUNICI.
¿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 |
Es verdad !!!, perfecto, no lo hubiera vísto, problema resuelto. Muchas gracias Kuk.
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)
Marcadores