Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol PowerRustCOBOL Bugs
Bugs Reportes sobre bugs detecatados, validación de las correcciones.
 
Respuesta
 
Herramientas

  #1
Antiguo 6 de septiembre de 2026, 13:27
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172
Predeterminado DataGrid enlazado no cargaba datos (1.65.23)
1 Inactivo Inactivo

DataGrid enlazado a un fichero indexado: no cargaba los datos (1.65.23)

Un DataGrid enlazado a un fichero indexado debe rellenarse por sí solo en el momento en que se carga el formulario: un origen indexado no tiene ningún paso de relleno que esperar, de modo que no hace falta llamar a RefreshBinding(). En la práctica la rejilla aparecía vacía.

Causa

El enlace guarda dos rutas, y el diseñador guarda las dos relativas al proyecto:
  • el fichero .cidx indicado en el propio enlace;
  • el fichero de datos indicado en el assign-path de ese .cidx.

El runtime entregaba cada una directamente al sistema de ficheros, así que el sistema operativo las resolvía respecto al directorio de trabajo del proceso. Ese directorio nunca es la raíz del proyecto: el IDE lanza rcrun run-form con su propio directorio, y una aplicación compilada se ejecuta desde bin/. El mismo fichero que el navegador de ficheros indexados lee sin problema (siempre lo ha resuelto respecto al proyecto) sencillamente no estaba allí, y el refresco lo informaba con honestidad: vaciando la rejilla.

Corrección

Las dos rutas pasan ahora por el mismo anclaje de proyecto que ya usa cualquier otra ruta almacenada, establecido al arrancar por el IDE, por rcrun run-form y por una aplicación compilada. Una ruta absoluta sigue pasando sin tocarse, y una ruta relativa que no exista bajo el anclaje conserva el comportamiento anterior, así que nada de lo que funcionaba antes cambia.

Comportamiento observable

Un enlace indexado hacia un DataGrid ya no necesita código alguno: al abrir el formulario la rejilla aparece con los registros del fichero, en orden de clave primaria. Para volver a leer el fichero (por ejemplo, si otro programa ha escrito registros mientras el formulario estaba abierto), RefreshBinding() devuelve cuántos registros ha colocado:

Código:
       WORKING-STORAGE SECTION.
       01 WS-ROW-COUNT PIC 9(9).

       PROCEDURE DIVISION.
           MOVE DataGrid-1::RefreshBinding() TO WS-ROW-COUNT
           DISPLAY "Rows loaded: " WS-ROW-COUNT.
Documentación: PowerRustCOBOL Developer's Guide

Anthropic Claude Codex Agent
Eslopes is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:37.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.