Mostrando las entradas con la etiqueta macos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta macos. Mostrar todas las entradas

Sistemas Operativos más usados por desarrolladores en 2025

 

En 2025, los desarrolladores continúan utilizando una variedad de sistemas operativos, cada uno elegido según las necesidades específicas de sus proyectos y preferencias personales.

A continuación, se destacan los sistemas operativos más empleados en la comunidad de desarrollo:

Windows

Desarrollado por Microsoft, Windows sigue siendo ampliamente utilizado debido a su compatibilidad con una vasta gama de herramientas de desarrollo y software empresarial. La interfaz familiar y el soporte para aplicaciones heredadas lo hacen una opción popular, especialmente en entornos corporativos.

macOS

El sistema operativo de Apple es preferido por desarrolladores que trabajan en aplicaciones para iOS y macOS, gracias a su integración con herramientas como Xcode. Además, su estabilidad y diseño atractivo lo hacen popular entre profesionales creativos.

Linux

Linux, en sus diversas distribuciones como Ubuntu, Fedora y Debian, es altamente valorado por su seguridad, estabilidad y flexibilidad. Es especialmente popular entre desarrolladores de software de código abierto y en entornos de servidores. Su naturaleza de código abierto permite una personalización profunda, adaptándose a las necesidades específicas de los desarrolladores.

Android e iOS

En el ámbito del desarrollo móvil, Android e iOS dominan el mercado. Los desarrolladores eligen sus sistemas operativos de acuerdo con la plataforma de destino de sus aplicaciones, utilizando Android Studio para Android y Xcode para iOS.

La elección del sistema operativo por parte de los desarrolladores en 2025 sigue influenciada por factores como la compatibilidad con herramientas específicas, la estabilidad, la seguridad y las preferencias personales. La diversidad de opciones permite a los profesionales seleccionar el entorno que mejor se adapte a sus necesidades y objetivos de desarrollo.

Segun stackoverflow

Cada año exploran las herramientas y tecnologías que los desarrolladores utilizan actualmente y las que desean utilizar.

Este año, incluimos nuevas preguntas sobre herramientas de tecnología integradas y opciones de tecnología aprobadas por la comunidad y provenientes de la industria.

Para sorpresa de nadie Windows es el sistema operativo más popular entre los desarrolladores, tanto para uso personal como profesional.

Windows para programadores en 2025

En 2025, Windows se consolida como una plataforma robusta y versátil para desarrolladores, integrando tecnologías avanzadas que optimizan el flujo de trabajo y potencian la productividad en diversas áreas de la programación.

Integración de inteligencia artificial en dispositivos

Microsoft ha introducido mini PCs equipados con capacidades de inteligencia artificial (IA), denominados Copilot Plus. Estos dispositivos incorporan funciones como Recall, Click To Do y edición de imágenes impulsada por IA en Windows 11. Fabricantes como Asus y Geekom han presentado modelos que incluyen botones dedicados para acceder a estas funcionalidades, facilitando tareas complejas y mejorando la eficiencia en el desarrollo de software.

Avances en Windows Server 2025

La nueva versión de Windows Server ofrece mejoras significativas en seguridad, rendimiento y flexibilidad. Entre las características destacadas se encuentran la integración mejorada con GPU, virtualización avanzada con Hyper-V y soporte para redes definidas por clústeres. Estas innovaciones proporcionan a los desarrolladores un entorno más robusto para la creación y gestión de aplicaciones empresariales.

Soporte ampliado para arquitecturas ARM64

Windows Server 2025 es el primer sistema operativo de servidor de Microsoft en ofrecer soporte para la arquitectura ARM64, ampliando las opciones de hardware disponibles para los desarrolladores y permitiendo la creación de soluciones más eficientes y adaptadas a diversas plataformas.

Actualizaciones automáticas y hotpatching

La implementación de actualizaciones automáticas a través de Windows Update y la funcionalidad de hotpatching permiten a los desarrolladores mantener sus sistemas actualizados sin interrupciones significativas, mejorando la seguridad y estabilidad del entorno de desarrollo.

Optimización para inteligencia artificial y aprendizaje automático

Las mejoras en la integración de GPU y la virtualización avanzada hacen de Windows una plataforma ideal para el desarrollo de aplicaciones de inteligencia artificial y aprendizaje automático, ofreciendo el rendimiento y la escalabilidad necesarios para manejar cargas de trabajo intensivas en datos.

En resumen, Windows en 2025 proporciona a los desarrolladores un ecosistema enriquecido con tecnologías de vanguardia, facilitando la creación de soluciones innovadoras y adaptándose a las demandas crecientes del sector tecnológico.

Linux para programadores en 2025

En 2025, Linux se consolida como una plataforma esencial para programadores, ofreciendo una amplia variedad de distribuciones adaptadas a diversas necesidades y preferencias. A continuación, se destacan algunas de las distribuciones más recomendadas para desarrolladores:

Ubuntu

Reconocida por su estabilidad y amplia comunidad de soporte, Ubuntu es una opción popular entre programadores de todos los niveles. Su compatibilidad con una vasta gama de herramientas de desarrollo y su facilidad de uso la convierten en una elección sólida.

Fedora

Conocida por incorporar tecnologías de vanguardia, Fedora es preferida por desarrolladores que buscan un entorno actualizado y estable. Su enfoque en la innovación la hace adecuada para proyectos que requieren las últimas herramientas y bibliotecas.

Arch Linux

Para aquellos que desean un control total sobre su entorno de desarrollo, Arch Linux ofrece una experiencia minimalista y altamente configurable. Requiere conocimientos avanzados, pero recompensa con un sistema optimizado según las necesidades específicas del programador.

Debian

Conocida por su estabilidad y robustez, Debian es una distribución ideal para desarrolladores que buscan un entorno confiable. Su amplia colección de paquetes y su enfoque en la seguridad la hacen adecuada para proyectos de larga duración.

La elección de la distribución adecuada dependerá de las necesidades específicas del proyecto, el nivel de experiencia del desarrollador y las preferencias personales en cuanto a entorno de trabajo. La diversidad de opciones en el ecosistema Linux garantiza que cada programador pueda encontrar la distribución que mejor se adapte a sus requerimientos en 2025.

MacOs para programadores en 2025

En 2025, macOS se consolida como una plataforma robusta y versátil para desarrolladores, ofreciendo herramientas avanzadas y un entorno optimizado para diversas disciplinas de programación.

macOS 15 Sequoia: Innovaciones para desarrolladores

La introducción de macOS 15 Sequoia ha traído consigo mejoras significativas que potencian la productividad y la eficiencia en el desarrollo de software. Entre las novedades más destacadas se encuentran:

  • Apple Intelligence: Integración de capacidades de inteligencia artificial que facilitan tareas como la generación de código, corrección de errores y optimización de procesos.
  • iPhone Mirroring: Permite a los desarrolladores acceder y controlar aplicaciones móviles directamente desde el Mac, simplificando el proceso de desarrollo y prueba de aplicaciones para iOS.
  • Mejoras en Safari: Incorporación de herramientas avanzadas para desarrolladores web, incluyendo un inspector de elementos más potente y soporte ampliado para tecnologías web emergentes.

Nuevas herramientas y recursos para desarrolladores

Apple ha potenciado su ecosistema de desarrollo con la actualización de Xcode y la introducción de nuevas API que amplían las posibilidades de creación de aplicaciones. Las mejoras en Swift y la incorporación de Swift Assist proporcionan un entorno más intuitivo y eficiente para la codificación.

Hardware de alto rendimiento: MacBook Pro con chips M4

El lanzamiento de los nuevos MacBook Pro equipados con los chips M4, M4 Pro y M4 Max ofrece a los desarrolladores un rendimiento excepcional. Estos dispositivos están diseñados para manejar cargas de trabajo intensivas, como compilación de código, renderizado y ejecución de máquinas virtuales, mejorando significativamente la productividad.

Integración de Apple Intelligence en el ecosistema Mac

La llegada de Apple Intelligence a macOS proporciona herramientas de escritura avanzadas, mejoras en Siri y capacidades de generación de contenido mediante inteligencia artificial. Estas funcionalidades asisten a los desarrolladores en la creación de documentación, generación de código y otras tareas relacionadas con el desarrollo de software.

Perspectivas futuras

Con estas actualizaciones, macOS se posiciona como una plataforma líder para desarrolladores en 2025, ofreciendo un entorno integrado que combina hardware de alto rendimiento, herramientas de desarrollo avanzadas y capacidades de inteligencia artificial que facilitan y optimizan el proceso de creación de software.

Android para programadores en 2025

En 2025, el desarrollo de aplicaciones para Android se encuentra en una etapa de constante evolución, impulsada por avances tecnológicos y tendencias emergentes que redefinen la forma en que los programadores crean y optimizan sus aplicaciones.

Novedades en Android 16

La segunda vista previa para desarrolladores de Android 16, lanzada en diciembre de 2024, introduce mejoras significativas que impactan directamente en el proceso de desarrollo:

  • Nuevas API hápticas: Permiten una integración más precisa de respuestas táctiles, enriqueciendo la experiencia del usuario.
  • Optimización de JobScheduler: Mejora la ejecución de tareas en segundo plano, aumentando la eficiencia y el rendimiento de las aplicaciones.
  • Perfilado activado por el sistema: Facilita a los desarrolladores la identificación y resolución de problemas de rendimiento.
  • Funciones de seguridad avanzadas: Incluyen medidas para proteger la ubicación WiFi, reforzando la privacidad del usuario.
  • Optimización de tasas de refresco adaptativas: Mejora la fluidez visual, adaptándose dinámicamente a las necesidades de la aplicación.

Se espera que la versión final de Android 16 esté disponible entre abril y junio de 2025, brindando a los desarrolladores un entorno más robusto y seguro para la creación de aplicaciones.

Tendencias emergentes en el desarrollo de aplicaciones móviles

El panorama del desarrollo de aplicaciones móviles en 2025 está marcado por varias tendencias clave:

  • Edge Computing: Gana relevancia al permitir el procesamiento de datos más cercano al usuario, reduciendo la latencia y mejorando la eficiencia, especialmente en aplicaciones que requieren respuestas en tiempo real.
  • Inteligencia Artificial y Automatización: La IA se integra profundamente en las aplicaciones, ofreciendo personalización avanzada y automatización de tareas, mejorando la experiencia del usuario y optimizando procesos internos.
  • Sostenibilidad en el Diseño de Apps: Existe un enfoque creciente en desarrollar aplicaciones que promuevan prácticas sostenibles, optimizando el consumo de energía y recursos, alineándose con la conciencia ambiental global.
  • Desarrollo Multiplataforma: Herramientas como Flutter y React Native permiten a los desarrolladores crear aplicaciones que funcionan en múltiples sistemas operativos, reduciendo costos y tiempos de desarrollo, y alcanzando una audiencia más amplia.
  • Integración del Internet de las Cosas (IoT): Las aplicaciones móviles se convierten en centros de control para dispositivos conectados, ofreciendo a los usuarios la capacidad de gestionar múltiples aspectos de su vida digital y física desde una sola interfaz.

Preparación para dispositivos y tecnologías emergentes

Los desarrolladores deben adaptarse a innovaciones como los dispositivos plegables y la expansión de la conectividad 5G:

  • Optimización para dispositivos plegables: Requiere interfaces adaptativas que ofrezcan experiencias consistentes sin importar la configuración del dispositivo, aprovechando las pantallas más grandes y las nuevas formas de interacción.
  • Aprovechamiento de la conectividad 5G: Permite el desarrollo de aplicaciones más rápidas y con mayor capacidad de respuesta, habilitando funcionalidades avanzadas como streaming de alta calidad y experiencias de realidad aumentada en tiempo real.

Enfoque en la seguridad y privacidad

Con la creciente preocupación por la protección de datos, los desarrolladores deben implementar medidas robustas para garantizar la seguridad de la información del usuario, cumpliendo con regulaciones más estrictas y respondiendo a una mayor conciencia pública sobre la privacidad digital.

En resumen, el desarrollo de aplicaciones para Android en 2025 está definido por la adopción de nuevas tecnologías y tendencias que buscan ofrecer experiencias más eficientes, personalizadas y seguras, adaptándose a un ecosistema móvil en constante transformación.

iOS para programadores en 2025

En 2025, el ecosistema de desarrollo para iOS ha experimentado avances significativos, ofreciendo a los programadores herramientas y funcionalidades que optimizan la creación de aplicaciones más inteligentes y eficientes.

iOS 18: Innovaciones para desarrolladores

Con el lanzamiento de iOS 18, Apple ha introducido mejoras que impactan directamente en el proceso de desarrollo:

  • Apple Intelligence: Este conjunto de herramientas de inteligencia artificial permite a los desarrolladores integrar funcionalidades avanzadas en sus aplicaciones, como generación de contenido y procesamiento de lenguaje natural.
  • Siri mejorado: La actualización de Siri, potenciada por modelos de lenguaje avanzados, ofrece interacciones más naturales y precisas, facilitando su integración en aplicaciones que requieren comandos de voz.
  • Nuevas APIs: iOS 18 introduce APIs que permiten a los desarrolladores acceder a funcionalidades avanzadas del sistema, mejorando la personalización y el rendimiento de las aplicaciones.

Tendencias en el desarrollo de aplicaciones móviles

El panorama del desarrollo móvil en 2025 está marcado por tendencias que los desarrolladores de iOS deben considerar:

  • Inteligencia Artificial y Machine Learning: La integración de IA y ML en las aplicaciones permite ofrecer experiencias más personalizadas y eficientes, adaptándose a las necesidades específicas de los usuarios.
  • Desarrollo No-Code y Low-Code: Estas plataformas facilitan la creación de aplicaciones sin necesidad de una codificación extensa, permitiendo a los desarrolladores centrarse en funcionalidades más complejas y reduciendo los tiempos de desarrollo.
  • Edge Computing: El procesamiento de datos en el dispositivo mejora la velocidad y la eficiencia de las aplicaciones, reduciendo la dependencia de la nube y ofreciendo respuestas más rápidas a los usuarios.

Actualizaciones en Xcode y Swift

Apple ha actualizado Xcode y el lenguaje de programación Swift, proporcionando a los desarrolladores herramientas más potentes y eficientes para la creación de aplicaciones:

  • Xcode 15: Incluye mejoras en el rendimiento del compilador, nuevas herramientas de depuración y una integración más profunda con Apple Intelligence, facilitando el desarrollo de aplicaciones avanzadas.
  • Swift 6: Introduce características que simplifican la sintaxis y mejoran la seguridad del código, permitiendo a los desarrolladores escribir aplicaciones más robustas y mantenibles.

Perspectivas futuras

El desarrollo para iOS en 2025 se centra en la creación de aplicaciones más inteligentes, eficientes y adaptadas a las necesidades cambiantes de los usuarios. La integración de tecnologías emergentes y la adopción de nuevas tendencias permiten a los desarrolladores ofrecer experiencias más enriquecedoras y personalizadas en el ecosistema de Apple.

Tabby: Una Terminal Versátil y Multiplataforma para el Desarrollo

 

En el mundo del desarrollo, las terminales son herramientas imprescindibles, pero no todas ofrecen la flexibilidad y personalización que los desarrolladores modernos requieren. Tabby es una terminal de código abierto que ha ganado popularidad por ser altamente personalizable, multiplataforma y fácil de usar. En este artículo, exploraremos qué es Tabby, sus principales características, y por qué es una excelente opción para desarrolladores que buscan una experiencia de terminal avanzada.

¿Qué es Tabby?

Tabby es una terminal moderna y multiplataforma que está disponible para Windows, macOS y Linux. Su principal atractivo radica en su capacidad de personalización y su diseño amigable, que combina una interfaz visual atractiva con funcionalidades avanzadas. Al ser de código abierto, Tabby ofrece una plataforma transparente y flexible para aquellos que quieran adaptar su terminal a sus necesidades específicas.

El proyecto fue diseñado con la idea de mejorar la experiencia del usuario, permitiendo a los desarrolladores trabajar de manera más eficiente y productiva. A diferencia de muchas terminales clásicas que pueden ser intimidantes para los nuevos usuarios, Tabby ofrece una interfaz intuitiva y rica en características.

Características Clave de Tabby

  1. Multiplataforma: Una de las principales ventajas de Tabby es que está disponible para todos los sistemas operativos principales: Windows, macOS y Linux. Esto la convierte en una opción ideal para desarrolladores que necesitan trabajar en varios entornos sin perder consistencia.
  2. Altamente Personalizable: Tabby permite a los usuarios ajustar su entorno de terminal con temas, atajos de teclado personalizados, y la posibilidad de dividir ventanas. Los desarrolladores pueden personalizar cada aspecto visual de la terminal, desde los colores hasta la disposición de las pestañas y paneles.
  3. Soporte para SSH y Serial: Tabby incluye soporte integrado para conexiones SSH y seriales, lo que la hace ideal para la administración remota de servidores o dispositivos. Esto elimina la necesidad de instalar herramientas adicionales o abrir otras ventanas para estas tareas.
  4. Interfaz de Pestañas y Paneles: Tabby permite abrir varias pestañas y dividir la ventana en paneles, lo que es perfecto para multitareas. Cada pestaña puede ejecutar diferentes sesiones o comandos, permitiendo una mayor eficiencia al trabajar con múltiples proyectos o entornos de desarrollo al mismo tiempo.
  5. Extensiones: Al ser una terminal moderna, Tabby soporta la instalación de extensiones que agregan más funcionalidades. Esto incluye temas adicionales, soporte para más protocolos y funcionalidades especializadas, según las necesidades del usuario.
  6. Integración con SSH y Múltiples Shells: Además de su personalización, Tabby permite integrarse fácilmente con shells como Bash, Zsh, PowerShell, y más. También permite conectarse a servidores remotos utilizando SSH, lo cual es fundamental para administradores de sistemas y desarrolladores que gestionan servidores a distancia.

Usos y Aplicaciones de Tabby

Tabby es una excelente opción para diversos tipos de usuarios, desde desarrolladores de software hasta administradores de sistemas. Aquí algunos escenarios donde destaca su utilidad:

  • Desarrollo de Software: Los desarrolladores que trabajan en proyectos multiplataforma o colaboran con equipos que usan diferentes sistemas operativos encontrarán en Tabby una herramienta unificadora. Al poder personalizar la terminal para cada proyecto o lenguaje, Tabby facilita el trabajo en diferentes entornos sin tener que cambiar de herramienta.
  • Administración de Sistemas: Para los administradores que gestionan servidores remotos, el soporte integrado para SSH y la posibilidad de dividir la pantalla en varias sesiones simultáneas permite monitorear y administrar múltiples sistemas a la vez.
  • Usuarios Avanzados: Los usuarios avanzados que buscan maximizar la eficiencia en su flujo de trabajo disfrutarán de la capacidad de Tabby de manejar scripts complejos, automatización de tareas, y soporte para múltiples sesiones.

Comparación con Otras Terminales

En comparación con otras terminales populares como Hyper o Terminator, Tabby destaca por su equilibrio entre una interfaz amigable y sus funcionalidades avanzadas. Si bien otras terminales pueden ofrecer un mayor enfoque en diseño o rendimiento en áreas específicas, Tabby brilla por ser una opción sólida, equilibrada y con un amplio abanico de personalización.

Conclusión

Tabby se ha consolidado como una excelente opción para desarrolladores y administradores de sistemas que buscan una terminal moderna, potente y personalizable. Su compatibilidad con múltiples sistemas operativos, junto con su soporte para SSH y extensiones, la convierte en una herramienta versátil que puede adaptarse a casi cualquier flujo de trabajo. Ya sea que estés buscando una terminal que se vea bien o que puedas modificar según tus necesidades, Tabby ofrece una experiencia completa y eficiente.

Si eres un desarrollador o administrador de sistemas que busca una terminal poderosa, definitivamente vale la pena probar Tabby. Puedes descargarla directamente desde su sitio web aquí.

Proyecto: Web Report ML

 

WEBREPORT-ML es la continuación del proyecto REPORT-ML para la generación de reportes para la web en diversos formatos, como HTML, PDF, DocBook.

Este proyecto fue diseñado y desarrollado a finales del año 2003 como resultado de mi proyecto de grado en la facultad de Ingeniería de Sistemas.

CARACTERISTICAS DE WEBREPORT-ML

WEBREPORT-ML está conformado básicamente por dos componentes:

  • Elementos
  • Atributos

Elementos

Cada elemento de WEBREPORT-ML consta de una marca de comienzo, el contenido y una marca de fin.  Por ejemplo:

<titulo>Aquí se imprime el título del reporte</titulo>

Atributos

Un atributo es un mecanismo para agregar información descriptiva a un elemento. Por ejemplo:

<titulo  tipo-titulo=»texto» fuente-titulo=»Comic Sans MS» estilo-fuente-titulo=» » color-texto=»blue» alineacion-titulo=»center» decoracion-texto-titulo=» » ancho-titulo=» » saturacion-color-titulo=» »  color-borde=»blue» estilo-borde=» » tamaño-titulo=»18″>

    Reporte de Productos

  </titulo>

Es muy importante colocar los valores de los atributos entre comillas dobles.  En caso de no colocar las comillas dobles, el procesador le indicará que hubo un error.

ESTRUCTURA DE WEBREPORT-ML

Un reporte escrito en WEBREPORT-ML comienza y termina con la marca reporte, indicando que se trata de un reporte a realizar en el lenguaje.

<reporte>

Cuerpo del documento

</reporte>

Dentro del elemento reporte se encentran varios elementos primarios, tales como: 

  • descripcion
  • salida
  • conexion
  • consulta
  • titulo
  • cabecera
  • detalles
  • pie-de-pagina

Ejemplo:

<?xml version=»1.0″ encoding =»iso-8859-1″?>

<reporte>

  <conexion/>

  <consulta>

    Contenido de la consulta SQL

  </consulta>

  <margenes />

  <salida/>

  <titulo>

    Reporte de Productos

  </titulo>

  <descripcion>

    Contenido de la descripcion

  </descripcion>

  <cabecera>

    <fila>

      <campo> </campo>

    </fila>  

  </cabecera>

  <detalles>

    <fila>

      <campo/>

    </fila> 

  </detalles>

  <pie-de-pagina>

     <fila>

      <campo> </campo>

     </fila>

  </pie-de-pagina>

</reporte>

DESCRIPCIÓN DE LOS ELEMENTOS DEL LENGUAJE REPORT-ML

Elemento descripcion

El elemento descripcion  se utiliza para colocar una información descriptiva acerca de los que se trata el reporte.  Ejemplo:

<descripcion>

   Este es un reporte para los empleados de la compañía

</descripcion>

Elemento margenes

El elemento margenes se utiliza para especificar cada uno de los márgenes para el documento del reporte y consta de los siguientes atributos:

  • Atributo margen-superior
  • Atributo margen-inferior
  • Atributo margen-izquierdo
  • Atributo margen-derecho

Elemento salida

El elemento salida se utiliza para especificar el formato en el que se desea que se muestre el reporte, así como la ruta en donde se guardará el reporte.  Contiene los siguientes atributos:

  • Atributo formato
  • Atributo archivo

*Atributo formato

El atributo formato especifica el formato en el que se desea que se imprima el reporte.  Los tipos de formatos disponibles en WEBREPORT-ML son:

  • Html
  • PDF
  • DocBook

*Atributo archivo

El atributo archivo especifica la ruta en donde se desea guardar el reporte.  Es importante que el usuario especifique una ruta en donde se guardará su reporte para que al momento de terminar de exportar los datos al formato requerido, sabrá que el reporte se alojará precisamente en el lugar que él indicó.

Elemento conexion

El elemento conexion se utiliza para especificar los esquemas de conexión con la base de datos.  Contiene los siguientes atributos:

*Atributo conector

El atributo conector especifica el motor de la base de datos a utilizar.

Ejemplo:

conector=»sun.jdbc.odbc.JdbcOdbcDriver»

*Atributo url

El atributo url la ruta de la base de datos de la siguiente manera:

jdbc:odbc:Base_de_Datos

Elemento consulta

El elemento consulta  especifica el contenido de la consulta SQLque se va a utilizar para generar nuestro reporte.

Ejemplo:

<consulta>

            select * from tabla

</consulta>

Elemento titulo

El elemento titulo se utiliza para el título del reporte.

Elemento cabecera

El elemento cabecera se utiliza para los títulos de cada campo del reporte.  Contiene un elemento anidado fila el cual hace referencia a las filas deseadas por el usuario; ésta a su vez contiene un elemento anidado campo, que especifica el número de campos (columnas) que el usuario desea para esa fila. 

Ejemplo:

<cabecera>

 <fila>

  <campo tipo=”texto”>

    Nombre

  </campo>

  <campo tipo=”texto”>

    Apellido

  </campo>

  </fila>   

</cabecera>

Para el ejemplo anterior se mostrará, en una misma fila, varios campos con los títulos para el reporte y quedaría de la siguiente forma:

NombreApellido

Elemento detalles

El elemento detalles constituye uno de los elemento más importantes del reporte, pues es ahí en donde se especifican cada uno de los campos de la base de datos que se mostraran  en el reporte, así como también se realizan las fórmulas que se desean hacer para el reporte.  Las fórmulas deben codificarse en el lenguaje Java Script. Existen dos tipos de campos diferentes a los anteriormente descritos, que se utilizan en el detalle:

  • El tipo de campo bd
  • El tipo de campo formula

El tipo de campo bd, se utiliza para especificar cada uno de los campos de la base de datos que el usuario desea mostrar en el reporte.  Para este tipo de campo, existe un atributo llamado nombre, el cual especifica el nombre del campo de la base de datos a extraer para el reporte. Cada vez que el usuario especifique el tipo de campo bd debe especificar en el atributo nombre el nombre del campo de la base de datos.

Ejemplo:

<detalles>

 <fila>

  <campo tipo=”bd” nombre=”cedula”/>

  <campo tipo=”bd” nombre=”nombre”/>

  <campo tipo=”bd” nombre=”apellido”/>

 </fila>

</detalles>

El tipo de campo formula,se utiliza para las distintas fórmulas que se desean hacer para el reporte.

Ejemplo:

<detalles>

 <fila>

  <campo tipo=”formula”>

value = parseInt(query.get(«CANTIDAD»)) * parseInt(query.get(«PRECIO»));

  </campo>

 </fila>

</detalles>

*Atributo formato

El atributo formato especifica el formato numérico a utilizarse.  Este atributo hace parte del elemento anidado campo y se utiliza en caso de que se utilicen números y se les quiera aplicar algún tipo de formato.

Ejemplos de tipos de formato

  • $ #.##0,00
  • 00
  • 0000
  • ##0.0# %

Ejemplo:

<detalles>

 <fila>

<campo tipo=”bd” nombre=”Valor” formato=”$#.##0,00” />

 </fila>

</detalles>

Para el ejemplo anterior, se mostrarán todos los registros del campo Valor, correspondiente al valor unitario de X producto y se le aplica el tipo de formato $#.##0,00 así como el estilo de letra negrita.  El resultado de uno de los registros del campo valor, quedaría de la siguiente forma:  $ 2,052,000.00

Elemento pie-de-pagina

El elemento pie-de-pagina se utiliza para colocar algún contenido al final del reporte, como funciones para hallar el total de un determinado campo de la base de datos, ó el gran total de algún total hallado por medio de las fórmulas descritas en el detalles. Contiene un elemento anidado fila el cual hace referencia a las filas deseadas por el usuario; ésta a su vez contiene un elemento anidado campo, que especifica el número de campos (columnas) que el usuario desea para esa fila. 

Los tipos de campo utilizados en el pie-de-pagina son:

  • text
  • total

El campo total se utiliza única y exclusivamente en el elemento pie-de-pagina. Este tipo de campo especifica la función a llevar a cabo para hallar el total de un determinado campo de la base de datos ó para hallar un resultado total de cada uno de los resultados hallados en la fórmula escrita en el detalle. 

También existe un atributo que va de la mano con el tipo de campo total y es el atributo funcion, el cual se explica a continuación.

*Atributo funcion

El atributo funcion especifica la función a utilizarse en el pie-de-pagina y depende del tipo de campo total.  Los tipos de funciones disponibles para la el atributo funcion del pie-de-pagina son las siguientes:

  • suma, para hallar la suma
  • promedio, para hallar el promedio
  • mult, para hallar el producto
  • mayor, para hallar el máximo valor
  • menor, para hallar el mínimo valor
  • contar, para contar

Ejemplo :

<pie-de-pagina>

 <fila>

    <campo tipo=”total” funcion=”suma” nombre=”Cantidad” />

    <campo tipo=”total” funcion=”mayor” />

 </fila>

</pie-de-pagina>

Codificación

Si el usuario va a utilizar en el reporte caracteres propios del alfabeto español, tales como la letra ñ, tildes, etc, deberá incluir el siguiente atributo al principio de la creación del reporte:

encoding=»iso-8859-1″

Ejemplo:

<?xml version=»1.0″ encoding=»iso-8859-1″?>

<reporte>

Cuerpo del reporte

</reporte>

EJEMPLOS DE UTILIZACIÓN DE WEBREPORT-ML

Ejemplo 1:

<?xml version=»1.0″ encoding=»iso-8859-1″?>

<reporte>

  <conexion conector=»sun.jdbc.odbc.JdbcOdbcDriver» url=»jdbc:odbc:bd2″/>

  <consulta>

    select *

    from producto

  </consulta>

  <margenes margen-superior=»1.0″ margen-inferior=»1.0″ margen-derecho=»1.0″ margen-izquierdo=»1.0″ />

  <salida formato=»pdf» archivo=»c:\mireporte» />

  <titulo  tipo-titulo=»texto» fuente-titulo=»Comic Sans MS» estilo-fuente-titulo=» » color-texto=»blue» alineacion-titulo=»center» decoracion-texto-titulo=» » ancho-titulo=» » saturacion-color-titulo=» »  color-borde=»blue» estilo-borde=» » tamaño-titulo=»18″>

    Reporte de Productos

  </titulo>

  <descripcion>Este es mi primer reporte </descripcion>

  <cabecera>

    <fila>

      <campo color=»blue» alineacion=»center» tipo=»texto»>Identificador</campo>

      <campo color=»blue» alineacion=»center» tipo=»texto»>Nombre</campo>

      <campo color=»blue» alineacion=»center» tipo=»texto»>Unidades En Existencia</campo>

      <campo color=»blue» alineacion=»center» tipo=»texto»>Precio Unidad</campo>

      <campo color=»blue» alineacion=»center» tipo=»texto»>Formula</campo>

    </fila>  

  </cabecera>

  <detalles>

    <fila>

      <campo tipo=»bd» formato=»0000″ nombre=»CODP»/>

      <campo tipo=»bd» formato=» » nombre=»NOMP»/>

      <campo tipo=»bd» formato=»0000″ nombre=»CANTIDAD»/>

      <campo tipo=»bd» formato=»$#,##0.00″ nombre=»PRECIO»/>

      <campo tipo=»formula»>

        value = parseInt(query.get(«CANTIDAD»)) * parseInt(query.get(«PRECIO»));

      </campo> 

    </fila> 

  </detalles>

  <pie-de-pagina>

     <fila>

      <campo color=»blue» alineacion=»center» tipo=»texto»>Fin del Reporte</campo>

     </fila>

  </pie-de-pagina>

</reporte>

Ejemplo 2:

<?xml version=»1.0″ encoding=»iso-8859-1″?>

<reporte>

  <conexion conector=»sun.jdbc.odbc.JdbcOdbcDriver» url=»jdbc:odbc:bd2″  />

  <consulta>

    select CODP, NOMP, NOMBRE, PRECIO, CANTIDAD

    from PRODUCTO inner join CATEGORIA

    on PRODUCTO.CODIGOC = CATEGORIA.CODIGOC

    order by CODP

  </consulta>

  <margenes margen-superior=»1.0″ margen-inferior=»1.0″ margen-derecho=»1.0″ margen-izquierdo=»1.0″ />

    <salida formato=»docbook» archivo=»c:\productos» />

    <titulo  tipo-titulo=»texto» fuente-titulo=»Comic Sans MS» estilo-fuente-titulo=» » color-texto=»green» alineacion-titulo=»center» decoracion-texto-titulo=» » ancho-titulo=» » saturacion-color-titulo=» »  color-borde=»blue» estilo-borde=»double» tamaño-titulo=»18″>

      Reporte de Productos

    </titulo>

    <descripcion>Este es mi primer reporte </descripcion>

    <cabecera>

      <fila>

        <campo color=»red» alineacion=»center» tipo=»texto»>Identificador</campo>

        <campo color=»blue» alineacion=»center» tipo=»texto»>Nombre</campo>

        <campo color=»pink» alineacion=»center» tipo=»texto»>Unidades En Existencia</campo>

        <campo color=»yellow» alineacion=»center» tipo=»texto»>Precio Unidad</campo>

        <campo color=»black» alineacion=»center» tipo=»texto»>Categoria</campo>

        <campo color=»orange» alineacion=»center» tipo=»texto»>Formula</campo>

      </fila>  

    </cabecera>

    <detalles>

      <fila>

        <campo color-relleno=»ffffcc» color=»red» estilo=»italic» tipo=»bd» formato=»0000″ nombre=»CODP»/>

        <campo tipo=»bd» formato=» » nombre=»NOMP»/>

        <campo tipo=»bd» formato=»000″ nombre=»CANTIDAD»/>

        <campo tipo=»bd» formato=»$#,##0.00″ nombre=»PRECIO»/>

        <campo tipo=»bd» formato=» » nombre=»NOMBRE»/>

        <campo tipo=»formula» color-relleno=»yellow» color=»blue»>

          value = parseInt(query.get(«CANTIDAD»)) * parseInt(query.get(«PRECIO»));

        </campo> 

      </fila> 

    </detalles>

    <pie-de-pagina>

      <fila>

        <campo color=»blue» alineacion=»center» tipo=»texto»>Inventario Total</campo>

        <campo tipo=»total» funcion=»suma» nombre=»CANTIDAD»/>

      </fila>

      <fila>

        <campo color=»blue» alineacion=»center» tipo=»texto»>Precio Mayor</campo>

        <campo tipo=»total» formato=»$#,##0.00″ funcion=»mayor» nombre=»PRECIO»/>

      </fila>

    </pie-de-pagina>

</reporte>

Ejemplo 3:

<?xml version=»1.0″ encoding=»iso-8859-1″?>

<reporte>

  <conexion conector=»sun.jdbc.odbc.JdbcOdbcDriver» url=»jdbc:odbc:bd2″  />

  <consulta>

    select CODP, NOMP, NOMBRE, PRECIO, CANTIDAD

    from PRODUCTO inner join CATEGORIA

    on PRODUCTO.CODIGOC = CATEGORIA.CODIGOC

    order by CODP

  </consulta>

  <margenes margen-superior=»1.0″ margen-inferior=»1.0″ margen-derecho=»1.0″ margen-izquierdo=»1.0″ />

    <salida formato=»html» archivo=»c:\productos» />

    <titulo  tipo-titulo=»texto» fuente-titulo=»Comic Sans MS» estilo-fuente-titulo=» » color-texto=»green» alineacion-titulo=»center» decoracion-texto-titulo=» » ancho-titulo=» » saturacion-color-titulo=» »  color-borde=»blue» estilo-borde=»double» tamaño-titulo=»18″>

      Reporte de Productos

    </titulo>

    <descripcion>Este es mi primer reporte </descripcion>

    <cabecera>

      <fila>

        <campo color=»red» alineacion=»center» tipo=»texto»>Identificador</campo>

        <campo color=»blue» alineacion=»center» tipo=»texto»>Nombre</campo>

        <campo color=»pink» alineacion=»center» tipo=»texto»>Unidades En Existencia</campo>

        <campo color=»yellow» alineacion=»center» tipo=»texto»>Precio Unidad</campo>

        <campo color=»black» alineacion=»center» tipo=»texto»>Categoria</campo>

        <campo color=»orange» alineacion=»center» tipo=»texto»>Formula</campo>

      </fila>  

    </cabecera>

    <detalles>

      <fila>

        <campo color-relleno=»ffffcc» color=»red» estilo=»italic» tipo=»bd» formato=»0000″ nombre=»CODP»/>

        <campo tipo=»bd» formato=» » nombre=»NOMP»/>

        <campo tipo=»bd» formato=»000″ nombre=»CANTIDAD»/>

        <campo tipo=»bd» formato=»$#,##0.00″ nombre=»PRECIO»/>

        <campo tipo=»bd» formato=» » nombre=»NOMBRE»/>

        <campo tipo=»formula» color-relleno=»yellow» color=»blue»>

          value = parseInt(query.get(«CANTIDAD»)) * parseInt(query.get(«PRECIO»));

        </campo> 

      </fila> 

    </detalles>

    <pie-de-pagina>

      <fila>

        <campo color=»blue» alineacion=»center» tipo=»texto»>Inventario Total</campo>

        <campo tipo=»total» funcion=»suma» nombre=»CANTIDAD»/>

      </fila>

      <fila>

        <campo color=»blue» alineacion=»center» tipo=»texto»>Precio Mayor</campo>

        <campo tipo=»total» formato=»$#,##0.00″ funcion=»mayor» nombre=»PRECIO»/>

      </fila>

    </pie-de-pagina>

</reporte>

MODO DE INSTALACION

Para la instalar WEBREPORT-ML, el usuario deberá copiar la carpeta reportml que se encuentra el CD de instalación en el directorio Coligo Fuente, al disco duro y después crear un nuevo Context en el servidor de Apache TOMCAT, el alias debe ser /reportml y el documento base debe ser c:/reportml.

Para desinstalarlo, solo se elimina el Context del servidor y se borra el directorio de la raíz de C: .

Cabe recordar que dentro del directorio reportml  se encuentra el directorio waren el cual se encuentra el archivo WebReport.war. Para instalar este archivo, hay dos opciones:

OPCION 1:

1) Copiar el fichero war a TOMCAT / webapps

2) Arrancar el servidor

3) La instalación es automática y crea un nuevo directorio con los contenidos del war.

OPCION 2:

1) Crear la aplicación Web descomprimida en webapps siguiendo el formato estándar.

2) Añadir en TOMCAT / conf / server.xml un nuevo contexto que apunte a nuestro directorio:

<Context path=»/sob» docBase=»peter» debug=»0″ privileged=»true»>

</Context>

NOTA: En su momento este proyecto fue diseñado y desarrollado bajo windows, sin embargo, puede funcionar con sistemas operativos linux y macOs. Puedes acceder a todo el proyecto a través de su repositorio oficial en github: https://github.com/rrcyber/WebReportML/