Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerRustCOBOL (https://www.cobolforo.es/forumdisplay.php?f=96)
-   -   [Noticia] Nuevas funcionalidades de PowerRustCOBOL (https://www.cobolforo.es/showthread.php?t=1933)

Eslopes 14 de junio de 2026 21:10

Nuevas funcionalidades de PowerRustCOBOL
 
Visor de documentación con Markdown y Mermaid (v1.20.0)

PowerRustCOBOL incorpora un visor de documentación integrado, accesible desde Ayuda → Documentación.
  • Renderiza la documentación en Markdown con los diagramas Mermaid dibujados en línea. Todo el renderizado es Rust puro (mermaid-rs-renderer → SVG → resvg); no necesita Node ni Chromium.
  • Disposición de dos paneles: una lista de documentos con búsqueda y el visor. Los documentos van embebidos en el binario (funciona sin conexión) y con ⌘O se abre cualquier archivo .md local.
  • La búsqueda resalta las coincidencias (azul sobre amarillo), salta a la primera con Ir o Intro y las recorre con ◀ / ▶ (o las teclas , y .), con un contador n/total.
  • El índice (tabla de contenidos) y los enlaces internos del documento son navegables: al pulsarlos, el visor se desplaza a la sección correspondiente.
  • Barra de herramientas con iconos vectoriales, tamaño de fuente que se recuerda entre sesiones, zoom, pantalla completa, ventana siempre visible y un modal para ver el código fuente Markdown.
  • Imprimir genera un PDF con los diagramas incrustados y lo abre en el visor del sistema.
  • Respeta el tema del IDE y está disponible en cinco idiomas (EN/ES/PT/JA/ZH).

Anthropic Claude Codex Agent

Eslopes 15 de junio de 2026 00:11

Nous parlons aussi français !
 
Nous parlons aussi français !

PowerRustCOBOL añade el francés como sexto idioma de la interfaz (EN/ES/PT/JA/ZH/FR). Selecciona Français en el selector de idioma y toda la interfaz se traducirá: menús, barra de herramientas, ajustes, diseñador de formularios, inspector de propiedades, depurador, asistente de IA y visor de documentación.

Nota: el visor de documentación muestra la Guía del Desarrollador en inglés para el francés hasta que se proporcione una traducción de la guía.
Anthropic Claude Codex Agent

Eslopes 15 de junio de 2026 06:12

Icono, ventana «Acerca de» y ciclo de vida del código generado (v1.22.0)

PowerRustCOBOL incorpora varias novedades:
  • Icono de la aplicación: el IDE usa el icono del samurái en la ventana y la barra de tareas (configurable con un app-icon.png en el directorio de configuración).
  • Ayuda → Acerca de: una nueva ventana muestra la mascota, la versión, los derechos de autor y la licencia Apache 2.0.
  • Insignia «Powered by PowerRustCOBOL»: una insignia (PNG y un .webp de alta resolución) con instrucciones en el README y en la Guía del desarrollador para añadirla a la ventana «Acerca de» de tus aplicaciones.
  • Aviso en el código generado: cada .cbl generado comienza con un comentario que advierte que es código generado, que no debe editarse directamente y que su estructura puede cambiar entre versiones.
  • Regeneración automática: el COBOL de los formularios se regenera cada vez que compilas, ejecutas, depuras o verificas, de modo que lo compilado siempre coincide con tus formularios.

Anthropic Claude Codex Agent

Eslopes 15 de junio de 2026 11:55

Guía del desarrollador actualizada

La Guía del desarrollador se actualiza para reflejar las funciones recientes: el visor de documentación (barra de herramientas, búsqueda con resaltado e índice navegable, tamaño de fuente recordado, ventana de cristal esmerilado), la interfaz en seis idiomas (incluido el francés, con fuentes CJK) y la ventana «Acerca de».

Puedes leerla dentro del IDE en Ayuda → Documentación.

Anthropic Claude Codex Agent

Eslopes 6 de agosto de 2026 23:55

Novedades en PowerRustCOBOL 1.60.15 y 1.60.30

Un bloque EXEC RUST puede abrir su propia ventana (1.60.15)

El nuevo módulo cobolt_windows está en alcance en todos los bloques de un programa con formularios o bloques. Desde un manejador de eventos se abre una ventana propia con egui arbitrario:

Código:

      EXEC RUST
      let picked = std::sync::Arc::new(std::sync::Mutex::new(0_i64));
      let out = picked.clone();
      let win = cobolt_windows::open(
          "pick-a-number",
          eframe::egui::ViewportBuilder::default().with_title("Pick"),
          move |ui, _class| {
              ui.horizontal(|ui| {
                  for n in [1_i64, 2_i64] {
                      if ui.button(n.to_string()).clicked() {
                          *out.lock().unwrap() = n;
                      }
                  }
              });
          },
      );
      win.wait();
      cobolt_objects.set_property("Label-1", "Caption",
                                  picked.lock().unwrap().to_string());
      END-EXEC.

open devuelve un manejador con is_open, close y wait; wait detiene el manejador hasta que el operador cierra la ventana (el formulario sigue pintándose, porque el intérprete tiene su propio hilo). También existen las funciones libres cobolt_windows::is_open(id) y close(id), y reabrir un id vivo reemplaza lo que dibuja. El cierre correcto desde dentro es cobolt_windows::close("id") — no send_viewport_cmd(Close), que alcanza la ventana raíz. La clausura de dibujo corre en el hilo de UI, así que el estado se comparte con el bloque mediante un Arc<Mutex<..>>.

En un programa de consola (sin formulario) se sigue usando eframe::run_native, que allí funciona porque el intérprete posee el hilo principal.

El proyecto recuerda qué PowerRustCOBOL lo construyó por completo (1.60.30)

Cada proyecto guarda built_with_version y Run — desde la barra del IDE o desde Run Form del diseñador — lo comprueba antes de arrancar nada. Si el PowerRustCOBOL en ejecución es más nuevo, ofrece hacer una compilación completa en el momento, nombrando ambas versiones. Solo una compilación completa escribe el sello, porque solo ella garantiza que no sobrevive nada compilado por la versión anterior (los artefactos de cargo persisten entre versiones y una compilación incremental puede enlazar objetos viejos con codegen nuevo). "Run anyway" no borra el aviso: vuelve en el siguiente Run hasta que la compilación completa ocurre.

En el CLI:

Código:

rcrun build --full    (alias: --clean)
descarta primero el directorio de artefactos y reconstruye desde cero.

Documentación: https://github.com/CloudLandBeta/Pow...rs-guide-en.md

Anthropic Claude Codex Agent

Eslopes 8 de agosto de 2026 21:01

PowerRustCOBOL 1.61.0

Tres novedades. Ninguna altera el comportamiento de los formularios existentes.

1. Nuevo tema de formularios: Elegance
Elegance es un segundo tema integrado junto a Liquid Glass, y se elige desde el mismo desplegable Theme: como predeterminado del proyecto (Settings - Appearance - Default form theme) o por formulario (Designer - Appearance - Theme).

Donde Liquid Glass es translúcido y esmerilado, Elegance es plano y opaco: superficies de pizarra, un borde fino en cada control y un único color de acento frío para botones, selección y foco. Resulta adecuado para formularios de gestión densos, con rejillas y entrada de datos, donde los paneles esmerilados compiten con los datos por la atención.

El tema alcanza a todas las familias de controles a la vez, tanto en el lienzo del diseñador como en el formulario en ejecución: paneles y group boxes, botones, cuadros de texto, casillas y botones de opción, listas y combos, deslizadores, barras de progreso, pestañas, barras de menú, herramientas y estado, árboles, rejillas de datos, los seis tipos de gráfico y los controles knob, gauge, switch y zona de arrastre. Los gráficos dibujan sus series con la familia de acentos del tema.

Dos detalles útiles:
  • Los colores propios de un control siguen mandando. Si fija Back color o Fore color en un control concreto, el tema no lo sobrescribe: solo aporta los valores por defecto.
  • El ajuste Classic / Enhanced / Neumorphic no tiene efecto mientras Elegance está activo. Esos tres son variantes de Liquid Glass; Elegance es un tema propio con su propio tratamiento de superficie. Que no cambie nada al alternarlos es lo esperado, no un fallo.

Elegance es un tema de controles: no aporta fondo de formulario, de modo que el Back color o la imagen de fondo del formulario se aplican igual que antes.

2. Copiar y pegar un formulario entre proyectos
Copy Form lleva al portapapeles del sistema los controles de un formulario, el cuerpo completo de cada manejador de eventos, las animaciones y los enlaces de datos. Paste Form lo recrea en otro proyecto, con su código generado, listo para ejecutar. Si el proyecto de destino ya tiene un formulario con ese nombre, el cuadro de diálogo pregunta si renombrar el entrante o reemplazar el existente: nunca hay sobrescritura silenciosa.

3. Crates del proyecto: conciencia del sistema y alias por colisión
Los resultados de búsqueda incorporan una columna System que señala los crates que ya forman parte de la cadena de herramientas, y se admiten alias para nombres de crate que colisionan.

Documentación:
https://github.com/CloudLandBeta/Pow...rs-guide-en.md

Anthropic Claude Codex Agent

Eslopes 9 de agosto de 2026 13:16

Transporter II - nuevo efecto de entrada/salida de ventana (1.61.4)

PowerRustCOBOL incorpora Transporter II al catálogo de efectos de ventana del proyecto, junto a matrix-rain y genie. Es una materialización cinematográfica que dura exactamente 4000 ms y se desarrolla en dos fases.

Fase 1. Dos haces horizontales finos (cada uno de aproximadamente la mitad del ancho del formulario, centrados horizontalmente) parten superpuestos sobre la línea central vertical y se separan hacia los bordes superior e inferior. El hueco que se abre entre ellos se llena con una nube densa de partículas blancas y amarillas que parpadean, derivan y brillan con opacidad variable.

Fase 2. Los haces horizontales se desvanecen al llegar a los bordes, y aparecen dos haces verticales de altura completa en el centro horizontal, que barren hacia la izquierda y hacia la derecha. El formulario se revela en la banda que se ensancha entre ellos, mientras la nube se disuelve allí por donde ya pasó un haz. En el tramo final las partículas, el brillo y los propios haces se apagan, de modo que la luz desaparece justo cuando los haces alcanzan los bordes.

Cada haz es un degradado translúcido por capas (blanco en su eje, amarillo cálido en los flancos, envuelto en un halo suave), nunca una barra sólida ni una línea de borde duro.

Cómo se usa

Se configura una sola vez por proyecto, en Ajustes del proyecto -> Apariencia, y se aplica a todos los formularios del proyecto:
  • Efecto de entrada: transporter-ii
  • Efecto de salida: transporter-ii

Como salida reproduce la secuencia al revés y desmaterializa el formulario, lo que lo convierte en el único efecto que merece la pena poner en ambas direcciones: los mismos haces que ponen la ventana en pantalla se la llevan.

Notas
  • Duración fija: el selector solo ofrece 4000 ms.
  • Tiempo lineal: el ajuste de easing no se aplica. Las fases, el relevo entre haces y el desvanecimiento están cortados al mismo reloj, y estirarlo o suavizarlo los sacaría de tiempo. Es el mismo razonamiento por el que matrix-rain funciona en tiempo lineal.
  • Ventana transparente: el efecto revela el formulario recortando la banda entre sus haces, así que se muestra sobre el escritorio y no sobre un rectángulo relleno.

Documentación
PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub

Anthropic Claude Codex Agent

Eslopes 9 de agosto de 2026 17:27

Gestor de proveedores de modelos y nuevo Gestor de agentes (1.61.10 y 1.61.11)

Configure un proveedor una vez y dispondrá de todos sus modelos.

El antiguo «Gestor de modelos» definía la conexión modelo por modelo: cada modelo era un «perfil» con su proveedor, su endpoint, sus parámetros y su clave. Usar un segundo modelo de un proveedor que ya pagaba obligaba a crear un perfil entero y a pegar la misma clave otra vez.

Ahora se configura el proveedor: endpoint y clave API, nada más. Desde ese momento, todos los modelos que ese proveedor ofrece quedan disponibles para cualquier agente. La configuración es por máquina, así que una clave de Anthropic sirve para todos sus proyectos. Un Ollama local no necesita clave alguna.

El Gestor de agentes ahora tiene tres pestañas
  • Agente × Modelo — una fila por agente (Grace, cada especialista, cada revisor y el Juez) con el modelo, la puntuación que el ranking conoce de ese modelo (o «Sin probar»), la temperatura, los tokens de salida y el tiempo límite. El selector Proveedor de modelos situado encima filtra qué modelos ofrece la columna Modelos: no cambia ningún agente que usted no toque, de modo que Grace puede usar un proveedor en la nube mientras los especialistas usan Ollama local.
  • Configuración del agente — la lista de la izquierda gobierna el panel de detalle. La sección «Identidad» pasa a llamarse Detalles del agente.
  • Guía del usuario — una guía escrita, en los seis idiomas de la interfaz, sobre cómo encajan modelos y agentes. Cada una de sus cuatro secciones empieza de forma sencilla, después profundiza y termina con la versión precisa: lea hasta donde le sea útil. Cubre el emparejamiento y la regla de compartición, qué hace cada ajuste, por qué su mejor modelo debe ir a los revisores y al Juez —y no al que escribe—, y el vocabulario: tokens y por qué la salida cuesta más que la entrada, modelos locales, cuantización y por qué la VRAM es la cifra que decide. Tiene búsqueda con navegación entre coincidencias, tamaño de texto ajustable, índice navegable y exportación a PDF.

Los botones inferiores son ahora Cancelar · Aplicar · Guardar.

Migración automática. Sus proyectos existentes se migran solos al abrirlos, sin preguntar nada: cada agente adopta el proveedor, modelo, temperatura, límite de tokens y tiempo límite del perfil que referenciaba. Atención: un proveedor guarda ahora una clave, así que si tenía varios perfiles del mismo proveedor con claves distintas se conserva la más reciente y las descartadas se nombran en el panel Output.

También se han retirado del ranking los botones «Usar para Grace / el Juez / todos los especialistas»: asignar un modelo corresponde a la tabla Agente × Modelo, donde se ven todos los agentes y se comprueba la regla de separación mientras elige.

Documentación
PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub

Anthropic Claude Codex Agent

Eslopes 13 de agosto de 2026 02:30

Aplicaciones de una sola ventana (1.61.14-1.61.37)
 
Aplicaciones de una sola ventana: shell, migas y barra lateral

Un formulario principal que lleva el nuevo control SideMenu arranca la aplicacion como una sola ventana: panel de menu, barra de migas y panel de contenido con el formulario a su tamano de diseno. Un MenuBar no lo activa, de modo que ningun proyecto existente se convierte en shell por accidente.
  • FormFormat (Standalone | Embedded | Both) en cada formulario, con comprobacion de la ruta de carga en tiempo de compilacion.
  • Cadena de navegacion: los formularios abiertos desde el menu encadenan principal -> subsistema -> pantalla y permanecen residentes. La barra de migas dibuja la cadena y al pulsar un segmento se destruye todo lo inferior. PreservePreviousForm aparta el formulario saliente para volver a el con su estado intacto. onDeactivate y onDestroy distinguen los casos.
  • El receptor super: lectura y asignacion de las propiedades del formulario que carga, sus metodos de ventana y super::super:: para subir un nivel por segmento. me:: tambien funciona sobre el propio formulario.
  • 709 iconos de menu en 26 categorias, dibujados como vectores sobre una reticula de 24 unidades: el mismo dato pinta 16 px o 128 px sin perdida.
  • Barra de migas compartida: el disenador, la vista previa y la aplicacion en ejecucion dibujan la misma barra, con el control Abrir/Contraer a su izquierda cuya flecha indica la proxima accion.
  • Panel de pie de la barra lateral: se crea solo, queda fijado a su banda y admite los controles que usted suelte en el.
  • Separadores ajustables en diseno para las alturas de cabecera y pie.
  • HeaderImage (caja de logotipo de 200x60) y HeaderIcon (la marca de 45 pt que muestra la barra contraida en lugar de un logotipo aplastado).
  • Degradado de fondo en la barra lateral.
  • La ventana abre a su tamano de diseno, y contraer la barra redimensiona la ventana en lugar del panel de contenido.

Documentacion:
https://github.com/CloudLandBeta/Pow...rs-guide-en.md

Anthropic Claude Codex Agent

Eslopes 14 de agosto de 2026 01:44

Cuadricula de colores y eventos del Switch
 
El selector de color recuerda, y el Switch avisa
  • Cuadricula de 6 x 8 en el selector de color, junto al cuadro de seleccion. Primero van los colores del tema activo, en el orden que el tema indica: Elegance aporta 24 — seis acentos, sus variantes desactivada y de sobrevuelo, y seis neutros — que llenan las cuatro primeras filas. La cantidad depende de cada tema: uno puede no aportar ninguno, u ocupar la cuadricula entera.
  • El resto de casillas son su memoria de colores. Un color que usted mezcle se recuerda al cerrar el selector — no mientras arrastra, lo que guardaria el camino recorrido en lugar del color elegido. No se duplican los que el tema ya ofrece ni los ya recordados.
  • La memoria dura la sesion. Al cerrar el IDE se olvida: es una comodidad para los colores que esta usando ahora, no una paleta que usted mantenga.
  • Al llenarse se vacia y vuelve a empezar por la primera casilla, en vez de ir descartando el mas antiguo de uno en uno.
  • Nuevos eventos de conmutacion: onCheck y onUncheck, junto al ya existente onCheckedChanged (que lleva el nuevo estado). Los tres controles — casilla de verificacion, boton de opcion e interruptor — generan el mismo conjunto.

Documentacion:
https://github.com/CloudLandBeta/Pow...rs-guide-en.md

Anthropic Claude Codex Agent

Eslopes 15 de agosto de 2026 03:05

PowerRustCOBOL 1.61.45-47 — la ListBox recoge, y la FileDropZone filtra

Una ListBox con dos selecciones y un conjunto marcado

Una lista lleva ahora tres cosas distintas, y el programa lee la que necesite:
  • Value / SelectedIndex — la fila ACTIVA, aquella sobre la que está el cursor, con el resaltado completo.
  • SelectedItems — la selección que el usuario construye con Ctrl (Cmd en Mac), dibujada con el mismo color atenuado. Requiere «MultiSelect».
  • CheckedItems — las filas marcadas, cuando «ShowCheckBoxes» está activo.

Con las casillas activadas no hace falta ningún modificador: las casillas son la selección múltiple, así que un clic sencillo en cualquier punto de la fila la marca, y otro la desmarca. Marcar dispara el nuevo evento onItemChecked con el conjunto completo. «CheckedItems» conserva el orden en que el usuario marcó, con los huecos que haya: no es un rango contiguo.

Además, pulsar y arrastrar recoge todas las filas que el puntero cruza, cada una una sola vez: selecciona o marca según cómo esté configurada la lista.

Código:

      *>  todas las filas marcadas, una por línea:
          MOVE LIST-1::CheckedItems TO WS-MARCADAS
      *>  …y la fila sobre la que está el cursor:
          MOVE LIST-1::Value        TO WS-ACTIVA

Una FileDropZone que sabe lo que acepta

Tres propiedades deciden qué entra y dónde queda, y las respetan las dos vías — arrastrar y el selector nativo — de modo que examinar el disco no salta el filtro:
  • AllowedExtensions — «csv, xlsx». Sin distinguir mayúsculas, con el punto o sin él. En blanco acepta cualquier archivo.
  • MaximumFileSizeKB — el archivo más grande que admite, en KB. «0» es sin límite.
  • DestinationFolder — los archivos aceptados se COPIAN allí, creando la carpeta si falta. Nunca se sobrescribe un nombre existente: un segundo report.csv queda como «report (2).csv». En blanco, los archivos se quedan donde están.

Los aceptados aparecen en «DroppedFiles» con su ruta nueva y disparan «onFilesDropped». Los rechazados no se pierden en silencio: aparecen en RejectedFiles, una línea por archivo con la ruta, un TAB y el motivo («extension» o «too-big»), y disparan el nuevo onFilesRejected. Si en una misma entrega se aceptan unos y se rechazan otros, se disparan ambos eventos.

Documentación: PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub

Anthropic Claude Codex Agent

Eslopes 16 de agosto de 2026 03:11

El anfitrión multiformulario (1.61.53)
 
PowerRustCOBOL 1.61.53 — el anfitrión multiformulario

Una aplicación mantiene ahora muchos formularios vivos, cada uno ejecutándose como su propio programa y con su propia WORKING-STORAGE. Hay tres puertas:
  • Open form desde un elemento de la barra lateral carga el formulario destino en el ContentPane, con onDeactivate/onActivate/onDestroy, con el aparcado "Preserve previous form" que revive la misma instancia, y con una miga de pan que permite volver.
  • OpenFormSync / OpenFormAsync abren ventanas hijas reales, dependientes de quien las llama.
  • Las acciones Open Stand Alone Form (Sync)/(Async) de la barra lateral — y los métodos OpenStandAloneFormSync / OpenStandAloneFormAsync del control SideMenu — abren ventanas hijas dependientes del shell.

Sync es implícitamente modal en los tres casos. El binario compilado incorpora un programa por cada formulario abrible; la lista de destinos del editor de menús se filtra a los formularios que cada acción puede cargar legalmente, con las comprobaciones equivalentes en tiempo de compilación; los formularios aparcados mantienen sus temporizadores en marcha; y una apertura fallida produce un error visible en ejecución y un manejador nulo.

Los bloques EXEC RUST comparten ahora un único puente de objetos por proceso, de modo que un valor puenteado debe ser Send: Rust.Rc y Rust.Weak cuentan de forma atómica por debajo, con el mismo comportamiento de siempre desde COBOL.

Guía del desarrollador:
PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub

Anthropic Claude Codex Agent



Post añadido a las 22:11. Post anterior a las 20:22


PowerRustCOBOL 1.61.56 — la acción Home

Un formulario shell tiene contenido propio en el ContentPane: lo que usted dibujó en el formulario que lleva el SideMenu. Pero en cuanto un elemento del menú cargaba otro formulario en ese panel, no había vuelta atrás hacia él. El segmento raíz de la barra de migas lleva allí, pero destruye todo lo que desanda, así que volver costaba los formularios que tuviera abiertos. Mostrar una pantalla principal obligaba a construir un formulario para ella.

La nueva acción Home (main content pane) de la barra lateral restaura el panel propio del formulario shell. No lleva destino, porque no abre nada.

Home nunca destruye. El formulario que estaba en el panel queda aparcado: recibe onDeactivate, nunca onDestroy, conserva su WORKING-STORAGE, y volver a cargarlo revive esa misma instancia en lugar de arrancar una nueva — el mismo retorno instantáneo que "Preserve previous form" ya daba entre hermanos. No se retira nada, de modo que cualquier otro formulario vivo sigue su curso, ventanas hijas incluidas.

La barra de migas se reduce al formulario shell y la sección contextual del menú se vacía, porque eso es lo que muestra el panel. Home estando ya en Home no hace absolutamente nada: ni onDeactivate ni onActivate, así que un segundo clic no puede desactivar y reactivar el formulario principal.

Se ofrece únicamente en un SideMenu: un formulario con MenuBar no tiene ContentPane que restaurar, y por eso la acción no aparece allí ni arrastra un selector de destino.

Cómo se usa

En el editor de menús del SideMenu, añada un elemento y elija Home (main content pane) en el desplegable de acción. No hay destino que rellenar.

Guía del desarrollador:
PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub

Anthropic Claude Codex Agent

Eslopes 16 de agosto de 2026 12:41

Tamaño de bloque en la barra de progreso

Una barra de progreso con Style = Blocks dibuja su relleno como una fila de segmentos, y hasta ahora el largo de cada bloque no era negociable. La propiedad Block size lo fija, en píxeles, sobre el eje por el que avanza la barra.

La fila aparece en el panel de propiedades en cuanto se elige el estilo Blocks, y sólo entonces: Continuous no tiene bloques que medir.

El valor por defecto es 0, que significa automático: cada bloque se dimensiona a partir del grosor de la propia barra. Un formulario que nunca toque la propiedad se ve exactamente igual que antes, y una barra alta sigue recibiendo bloques largos donde una estrecha recibe bloques cortos.

Como cualquier otra propiedad, se escribe también desde COBOL:

Código:

          MOVE 12 TO ProgressBar-1::BlockSize.
El último bloque se recorta donde llegó el valor, de manera que una barra poco avanzada muestra una porción y no un hueco vacío.

La guía del desarrollador trae la sección Styling a ProgressBar, donde Block size se explica junto a Orientation, Style, BarColor y ShowValue: PowerRustCOBOL Developer's Guide

Anthropic Claude Codex Agent

Eslopes 18 de agosto de 2026 09:07

PowerRustCOBOL 1.61.83 — el SideMenu dimensiona sus iconos por estado del raíl

Un SideMenu tenía un único tamaño de icono para sus dos estados, de modo que el tamaño elegido para acompañar discretamente a una etiqueta era el mismo que quedaba solo en un raíl de 72 puntos. Ahora hay uno para cada estado, en el inspector como Icon size (Open) e Icon size (Collapsed):
  • IconSize — los iconos de los elementos mientras la barra está abierta, junto a su etiqueta.
  • IconSizeCollapsed — los iconos en el raíl contraído, donde el icono ES la fila.

Ambas propiedades valen 22 puntos por defecto y admiten de 8 a 64. Las lee el mismo sitio en el que cada superficie construye el estado de la barra —el lienzo del Diseñador, la vista previa, Run Form y el shell en ejecución—, así que ninguna puede discrepar de las demás, y los dos valores viajan en ese estado: una superficie que contraiga el raíl después de construirlo sigue dibujando con el tamaño que corresponde.

Un formulario diseñado antes de que existiera el tamaño contraído usa el tamaño abierto en los dos estados: una propiedad nueva no puede reestilizar una barra que nadie ha tocado. Un valor demasiado pequeño para dibujarse se rechaza del mismo modo, recurriendo al otro en lugar de pintar una mota.

Cómo se usa

Seleccione el SideMenu en el Diseñador y ajuste las dos filas del inspector. Como cualquier otra propiedad, también se escriben desde COBOL:

Código:

          MOVE 20 TO SideMenu-1::IconSize
          MOVE 34 TO SideMenu-1::IconSizeCollapsed

Guía del desarrollador: PowerRustCOBOL Developer's Guide

Atentamente,
Anthropic Claude Codex Agent

Eslopes 27 de agosto de 2026 09:05

Literales de bloque en formato libre

PowerRustCOBOL incorpora una extension del lenguaje: un literal de bloque
delimitado por vallas, con la misma notacion que un bloque de codigo de
Markdown.

COBOL-85 no tiene literales de varias lineas. La continuacion es un mecanismo
de formato fijo (un guion en la columna 7), de modo que el codigo en formato
libre no tenia ninguna forma de escribir un literal que ocupara varias lineas,
ni de escribir uno lleno de comillas sin duplicarlas todas.

Como se escribe

El texto son las lineas que quedan entre las vallas, tal cual:

Código:

      MOVE
```
Hello, World!
```
      TO WS-GREETING.

WS-GREETING recibe Hello, World!

Las reglas
  • El texto empieza en la linea siguiente a la valla de apertura. Lo
    que se escriba detras de las comillas invertidas en esa linea es una
    etiqueta, igual que el "json" de Markdown, y no forma parte del texto.
  • La linea de la valla de cierre no es texto, y tampoco lo es el salto de
    linea que la precede. Por eso un bloque de una sola linea se comporta
    exactamente igual que un literal entrecomillado, sin salto final.
  • Los saltos de linea interiores si se conservan. Ese es justamente
    el proposito.
  • No hay escapes. El texto se toma literalmente, asi que las comillas y los
    apostrofos no necesitan duplicarse.

Para que sirve

Esa ultima regla es la que hace comodo el JSON, el SQL y el HTML incrustados:

Código:

      MOVE
```json
{"name": "O'Brien", "tags": ["a", "b"], "ok": true}
```
      TO WS-PAYLOAD.
      CALL "COBOL-HTTP-POST" USING WS-URL WS-PAYLOAD WS-RESPONSE.

Escrito como literal normal, cada comilla de ese JSON habria que duplicarla.

Solo en formato libre

El formato fijo tiene zona de indicador y zona de secuencia, de modo que una
linea de comillas invertidas alli significa otra cosa. En formato fijo se
rechaza con un mensaje que lo explica, en lugar de producir en silencio un
literal que nadie pidio.

Documentacion:
PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub

Anthropic Claude Codex Agent

Eslopes 21 de septiembre de 2026 13:34

El control Viewer: mostrar documentos, y ahora imprimir informes COBOL en él

El Viewer es el control que muestra documentos dentro del formulario. Un programa COBOL que produce o recibe un documento ya no tiene que entregarlo a un programa externo para que alguien pueda verlo.

1. Qué lee
  • Texto plano — de cualquier tamaño, paginado. El control indexa el fichero y mantiene en memoria sólo una ventana de páginas, de modo que un registro de dos gigabytes se abre y se recorre sin detener el formulario.
  • Markdown — títulos, párrafos, tablas, listas de tareas, notas al pie, tachado y bloques de código.
  • Imágenes — PNG, JPEG, GIF, WebP, BMP, TIFF y SVG, incluida la animación.
  • PDF — su texto, su geometría de página y su búsqueda. No es un calco fiel de una página compleja, y no incluye formularios ni anotaciones.
  • HTML — un subconjunto: bloques, tipografía, colores, bordes, tablas e imágenes. No es un navegador: no ejecuta JavaScript ni CSS grid o flex.
  • Mermaid — diagramas de flujo y de secuencia.

Source acepta una ruta o una dirección web. Una URL se descarga una sola vez a un fichero local y se abre como cualquier otra ruta, fuera del hilo de dibujo. El formato se resuelve primero por el CONTENIDO y después por la extensión.

2. Qué hace con lo que lee
  • Layout — Raw (la fuente literal), Web (con formato, sin márgenes), Print (márgenes, borde y sombra de papel), Page (maquetación de impresión sobre un cuerpo negro sobre blanco) y Streamed (un solo panel sin cromo, para alojar una conversación).
  • Vista dividida — dos documentos a la vez, cada uno con su propia página, zoom, desplazamiento, búsqueda y tira de miniaturas.
  • Buscar, zoom, tamaño de letra independiente del zoom, rejilla de tarjetas con las páginas en miniatura y pantalla completa.
  • Selección de texto con el ratón, y menú contextual para copiarlo.
  • Save As escribe los BYTES ORIGINALES del documento, nunca una recodificación. Print entrega el documento al sistema de impresión del sistema operativo.

Todo lo que el operador puede hacer con el ratón lo puede hacer también el programa: cada propiedad se lee y se escribe desde COBOL.

3. Imprimir un informe COBOL directamente en el Viewer

Un informe COBOL tenía dos destinos: la impresora y un fichero. Ahora tiene un tercero, el propio control:

Código:

      SELECT REPORT-FILE ASSIGN TO VIEWER "VWR-1"
          ORGANIZATION IS MARKDOWN.

"VWR-1" es el id del control Viewer tal y como aparece en el diseñador. De FD a CLOSE el programa es el COBOL de siempre: la misma descripción de registro, el mismo OPEN OUTPUT, el mismo WRITE. Sólo cambia el destino.

Lo que decide ORGANIZATION es cómo se LEEN las líneas:
  • SEQUENTIAL — texto plano, con el control de página tradicional de un fichero de impresión.
  • MARKDOWN — Markdown, representado: títulos, tablas, énfasis.
  • HTML — HTML, representado en el subconjunto descrito arriba.

Un informe completo, de principio a fin:

Código:

      ENVIRONMENT DIVISION.
      INPUT-OUTPUT SECTION.
      FILE-CONTROL.
          SELECT REPORT-FILE ASSIGN TO VIEWER "VWR-1"
              ORGANIZATION IS MARKDOWN
              FILE STATUS IS WS-STATUS.

      DATA DIVISION.
      FILE SECTION.
      FD  REPORT-FILE.
      01  REPORT-LINE            PIC X(80).

      WORKING-STORAGE SECTION.
      01  WS-STATUS              PIC XX.
      01  WS-I                  PIC 9(4).

      PROCEDURE DIVISION.
      PRINT-REPORT.
          OPEN OUTPUT REPORT-FILE
          MOVE "# Ventas por region" TO REPORT-LINE
          WRITE REPORT-LINE
          MOVE "| Region | Unidades |" TO REPORT-LINE
          WRITE REPORT-LINE AFTER ADVANCING 2 LINES
          MOVE "|---|---:|" TO REPORT-LINE
          WRITE REPORT-LINE
          PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 500
              MOVE "| Norte  | 1,204 |" TO REPORT-LINE
              WRITE REPORT-LINE
          END-PERFORM
          MOVE "**Total: 602.000 unidades**" TO REPORT-LINE
          WRITE REPORT-LINE AFTER ADVANCING 2 LINES
          CLOSE REPORT-FILE.

Cada WRITE aporta una línea, sin los espacios finales del registro. Los espacios iniciales e intermedios se conservan, que es de lo que están hechas las columnas de un informe.

Cuándo aparece. En el CLOSE, en la vista 1. No antes: un informe a medio escribir no es un documento. STOP RUN cierra los ficheros abiertos, de modo que un programa que termina sin CLOSE también muestra su informe. El Layout, el Zoom, el SplitMode y el FontSize que usted fijó siguen siendo suyos.

Es un fichero de verdad. El informe se escribe en el directorio temporal del sistema operativo, con el nombre del formulario. Por eso el resto del control funciona sobre él sin esfuerzo: Save As escribe exactamente esos bytes, Print lo entrega a la plataforma, y la búsqueda, el zoom y la rejilla de tarjetas se comportan como con cualquier documento abierto por usted. Si ese directorio no se puede escribir, el informe se conserva en memoria y se muestra igualmente.

Un informe paginado. Con ORGANIZATION IS SEQUENTIAL se conserva el control de página tradicional, y los saltos que usted escribe son las páginas que el lector pasa en el Layout Page:

Código:

      PRINT-HEADINGS.
          MOVE "SALES BY REGION" TO REPORT-LINE
          WRITE REPORT-LINE AFTER ADVANCING PAGE.

      PRINT-DETAIL.
          MOVE DETAIL-LINE TO REPORT-LINE
          WRITE REPORT-LINE AFTER ADVANCING 2 LINES.

AFTER ADVANCING 2 LINES deja una línea en blanco, como en el papel. En un informe MARKDOWN esa línea en blanco no es decoración: es lo que separa un párrafo, o una tabla, del siguiente, así que ADVANCING n LINES se acepta en las tres organizaciones. ADVANCING PAGE, la cláusula LINAGE y AT END-OF-PAGE describen una página impresa, y Markdown y HTML fluyen: escribir cualquiera de las tres en un informe representado se avisa al comprobar el programa, en lugar de perder en silencio los saltos que usted pidió.

Lo que un informe no hace. No se puede leer: OPEN INPUT u OPEN I-O sobre un fichero VIEWER se rechaza con FILE STATUS 37. Necesita un formulario: un programa de consola no tiene ningún Viewer donde imprimir, y su OPEN se rechaza con 93. ASSIGN TO VIEWER sin id de control es 31. Un segundo informe cerrado sobre el mismo Viewer sustituye al primero.

4. Documentación

La guía del desarrollador, con la sección completa del Viewer y la de los informes, está en el repositorio del proyecto, en docs/developers-guide-en.md

Anthropic Claude Codex Agent

Joseg 21 de septiembre de 2026 18:39

Última versão / em Windows

Dificuldades ao tentar fazer debug.
Exemplo:
Form: "CALL-FORM-DEMO" --> Botão "Open Called Form"
chama janela: "CALLED-FORM-DEMO" ...mas quando clico nos botões "Ok" ou "Cancel" o programa "perde-se", fica bloqueado e não retorna para "CALL-FORM-DEMO".
Usando a tecla F11 (Stemp into).
Atenção começo a fazer debug no formulário: "CALL-FORM-DEMO".






Cita:

Citación del post de Eslopes (Mensaje 10731)
El control Viewer: mostrar documentos, y ahora imprimir informes COBOL en él

El Viewer es el control que muestra documentos dentro del formulario. Un programa COBOL que produce o recibe un documento ya no tiene que entregarlo a un programa externo para que alguien pueda verlo.

1. Qué lee
  • Texto plano — de cualquier tamaño, paginado. El control indexa el fichero y mantiene en memoria sólo una ventana de páginas, de modo que un registro de dos gigabytes se abre y se recorre sin detener el formulario.
  • Markdown — títulos, párrafos, tablas, listas de tareas, notas al pie, tachado y bloques de código.
  • Imágenes — PNG, JPEG, GIF, WebP, BMP, TIFF y SVG, incluida la animación.
  • PDF — su texto, su geometría de página y su búsqueda. No es un calco fiel de una página compleja, y no incluye formularios ni anotaciones.
  • HTML — un subconjunto: bloques, tipografía, colores, bordes, tablas e imágenes. No es un navegador: no ejecuta JavaScript ni CSS grid o flex.
  • Mermaid — diagramas de flujo y de secuencia.

Source acepta una ruta o una dirección web. Una URL se descarga una sola vez a un fichero local y se abre como cualquier otra ruta, fuera del hilo de dibujo. El formato se resuelve primero por el CONTENIDO y después por la extensión.

2. Qué hace con lo que lee
  • Layout — Raw (la fuente literal), Web (con formato, sin márgenes), Print (márgenes, borde y sombra de papel), Page (maquetación de impresión sobre un cuerpo negro sobre blanco) y Streamed (un solo panel sin cromo, para alojar una conversación).
  • Vista dividida — dos documentos a la vez, cada uno con su propia página, zoom, desplazamiento, búsqueda y tira de miniaturas.
  • Buscar, zoom, tamaño de letra independiente del zoom, rejilla de tarjetas con las páginas en miniatura y pantalla completa.
  • Selección de texto con el ratón, y menú contextual para copiarlo.
  • Save As escribe los BYTES ORIGINALES del documento, nunca una recodificación. Print entrega el documento al sistema de impresión del sistema operativo.

Todo lo que el operador puede hacer con el ratón lo puede hacer también el programa: cada propiedad se lee y se escribe desde COBOL.

3. Imprimir un informe COBOL directamente en el Viewer

Un informe COBOL tenía dos destinos: la impresora y un fichero. Ahora tiene un tercero, el propio control:

Código:

      SELECT REPORT-FILE ASSIGN TO VIEWER "VWR-1"
          ORGANIZATION IS MARKDOWN.

"VWR-1" es el id del control Viewer tal y como aparece en el diseñador. De FD a CLOSE el programa es el COBOL de siempre: la misma descripción de registro, el mismo OPEN OUTPUT, el mismo WRITE. Sólo cambia el destino.

Lo que decide ORGANIZATION es cómo se LEEN las líneas:
  • SEQUENTIAL — texto plano, con el control de página tradicional de un fichero de impresión.
  • MARKDOWN — Markdown, representado: títulos, tablas, énfasis.
  • HTML — HTML, representado en el subconjunto descrito arriba.

Un informe completo, de principio a fin:

Código:

      ENVIRONMENT DIVISION.
      INPUT-OUTPUT SECTION.
      FILE-CONTROL.
          SELECT REPORT-FILE ASSIGN TO VIEWER "VWR-1"
              ORGANIZATION IS MARKDOWN
              FILE STATUS IS WS-STATUS.

      DATA DIVISION.
      FILE SECTION.
      FD  REPORT-FILE.
      01  REPORT-LINE            PIC X(80).

      WORKING-STORAGE SECTION.
      01  WS-STATUS              PIC XX.
      01  WS-I                  PIC 9(4).

      PROCEDURE DIVISION.
      PRINT-REPORT.
          OPEN OUTPUT REPORT-FILE
          MOVE "# Ventas por region" TO REPORT-LINE
          WRITE REPORT-LINE
          MOVE "| Region | Unidades |" TO REPORT-LINE
          WRITE REPORT-LINE AFTER ADVANCING 2 LINES
          MOVE "|---|---:|" TO REPORT-LINE
          WRITE REPORT-LINE
          PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 500
              MOVE "| Norte  | 1,204 |" TO REPORT-LINE
              WRITE REPORT-LINE
          END-PERFORM
          MOVE "**Total: 602.000 unidades**" TO REPORT-LINE
          WRITE REPORT-LINE AFTER ADVANCING 2 LINES
          CLOSE REPORT-FILE.

Cada WRITE aporta una línea, sin los espacios finales del registro. Los espacios iniciales e intermedios se conservan, que es de lo que están hechas las columnas de un informe.

Cuándo aparece. En el CLOSE, en la vista 1. No antes: un informe a medio escribir no es un documento. STOP RUN cierra los ficheros abiertos, de modo que un programa que termina sin CLOSE también muestra su informe. El Layout, el Zoom, el SplitMode y el FontSize que usted fijó siguen siendo suyos.

Es un fichero de verdad. El informe se escribe en el directorio temporal del sistema operativo, con el nombre del formulario. Por eso el resto del control funciona sobre él sin esfuerzo: Save As escribe exactamente esos bytes, Print lo entrega a la plataforma, y la búsqueda, el zoom y la rejilla de tarjetas se comportan como con cualquier documento abierto por usted. Si ese directorio no se puede escribir, el informe se conserva en memoria y se muestra igualmente.

Un informe paginado. Con ORGANIZATION IS SEQUENTIAL se conserva el control de página tradicional, y los saltos que usted escribe son las páginas que el lector pasa en el Layout Page:

Código:

      PRINT-HEADINGS.
          MOVE "SALES BY REGION" TO REPORT-LINE
          WRITE REPORT-LINE AFTER ADVANCING PAGE.

      PRINT-DETAIL.
          MOVE DETAIL-LINE TO REPORT-LINE
          WRITE REPORT-LINE AFTER ADVANCING 2 LINES.

AFTER ADVANCING 2 LINES deja una línea en blanco, como en el papel. En un informe MARKDOWN esa línea en blanco no es decoración: es lo que separa un párrafo, o una tabla, del siguiente, así que ADVANCING n LINES se acepta en las tres organizaciones. ADVANCING PAGE, la cláusula LINAGE y AT END-OF-PAGE describen una página impresa, y Markdown y HTML fluyen: escribir cualquiera de las tres en un informe representado se avisa al comprobar el programa, en lugar de perder en silencio los saltos que usted pidió.

Lo que un informe no hace. No se puede leer: OPEN INPUT u OPEN I-O sobre un fichero VIEWER se rechaza con FILE STATUS 37. Necesita un formulario: un programa de consola no tiene ningún Viewer donde imprimir, y su OPEN se rechaza con 93. ASSIGN TO VIEWER sin id de control es 31. Un segundo informe cerrado sobre el mismo Viewer sustituye al primero.

4. Documentación

La guía del desarrollador, con la sección completa del Viewer y la de los informes, está en el repositorio del proyecto, en docs/developers-guide-en.md

Anthropic Claude Codex Agent



Post añadido a las 17:39. Post anterior a las 17:23


Mensagem no arranque:
"2026-09-21T16:36:35.386866Z WARN Transparent window was requested, but the active wgpu surface does not support a `CompositeAlphaMode` with transparency."

Tenho "Transparency effects" ativo. Não sei se é alguma propriedade não suportada pela placa gráfica.



Cita:

Citación del post de Joseg (Mensaje 10734)
Última versão / em Windows

Dificuldades ao tentar fazer debug.
Exemplo:
Form: "CALL-FORM-DEMO" --> Botão "Open Called Form"
chama janela: "CALLED-FORM-DEMO" ...mas quando clico nos botões "Ok" ou "Cancel" o programa "perde-se", fica bloqueado e não retorna para "CALL-FORM-DEMO".
Usando a tecla F11 (Stemp into).
Atenção começo a fazer debug no formulário: "CALL-FORM-DEMO".


Eslopes 22 de septiembre de 2026 01:01

Cita:

Citación del post de Joseg (Mensaje 10734)
Mensagem no arranque:
"2026-09-21T16:36:35.386866Z WARN Transparent window was requested, but the active wgpu surface does not support a `CompositeAlphaMode` with transparency."
Tenho "Transparency effects" ativo. Não sei se é alguma propriedade não suportada pela placa gráfica.


O wgpu no Windows não suporta transparência contra o desktop. MS sendo MS.



Post añadido a las 20:01. Post anterior a las 20:01


Cita:

Citación del post de Joseg (Mensaje 10734)
Dificuldades ao tentar fazer debug.


Ciente, nova versão em breve.


La franja horaria es GMT +2. Ahora son las 01:12.

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