PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad WINDEV 25!
Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Esta lección abarcará los siguientes temas
  • Presentación
  • Creación del "Formulario de pedido" reporte
  • Creación de la consulta
  • Creación de la reporte a partir de una consulta
  • Modificación del "Formulario de pedido" reporte
  • Visualización de la reporte impresa desde una opción de menú
  • Creación de el menú contextual
  • Asociando a el menú contextual con el control Tabla
  • Prueba de impresión
Lección 4.6. Imprimir una orden
Esta lección abarcará los siguientes temas
  • Creación de una reporte basada en una consulta.
  • Impresión de una reporte basada en una consulta con parámetros.
Duración de las clases

Tiempo estimado: 30 mn
Lección anteriorTabla de contenidoSiguiente lección
Presentación
Ahora daremos al usuario la posibilidad de imprimir los detalles del pedido solicitado. El reporte puede imprimirse directamente a través de el menú contextual de control Tabla.

Respuesta

Si no creó las ventanas en las lecciones anteriores, puede seguir esta lección abriendo un proyecto corregido.: en la página de inicio de WINDEV (Ctrl + <), haga clic en "Curso de autoformación" y seleccione "Full application (With windows)".
También está disponible un proyecto completo de aplicación corregida: en la página de inicio de WINDEV (Ctrl + <), haga clic en "Curso de autoformación" y seleccione "Full application (Answer)". En este caso, para seguir el resto de la lección, seleccione la configuración "Windows 32-bit executable" en el panel "Project explorer".
Creación del "Formulario de pedido" reporte
En primer lugar, vamos a enumerar la información que se mostrará en el reporte:
  • Las características de la orden: fecha y número de pedido.
  • Los datos personales del cliente: nombre, dirección, código postal, ciudad y país.
  • Las características de las líneas de pedido:
    • Cantidad pedida,
    • Referencia del producto,
    • Título producto,
    • Total BT,
    • IOT total.
Para crear fácilmente esta reporte, los datos a imprimir se agruparán en una consulta. Esta consulta puede ser utilizada por reporte o por cualquier otro elemento del proyecto WINDEV (control Tabla, control Looper, ....).

Observación

WINDEV propone crear informes a partir de varias fuentes de datos: archivos de datos, consultas, controles, archivos de texto, ....
En la mayoría de los casos, le aconsejamos que agrupe los datos a imprimir mediante una consulta y que cree una reporte basada en esta consulta.. Para añadir una información a la reporte, sólo tiene que añadir el elemento correspondiente a la consulta.
Los informes basados en archivos de datos deben ser informes simples, es decir, informes utilizados para mostrar datos procedentes de un único archivo de datos.

Creación de la consulta

  • El editor de consultas se utilizará para crear la consulta base de reporte.
    1. Haga clic en Crear un elemento en los botones de acceso rápido. La ventana para crear nuevos elementos se abre: haga clic en "Consulta. Comienza la creación de la consulta asistente.
    2. Seleccione la opción "Seleccionar.
      De hecho, esta consulta se utilizará para seleccionar los registros que se imprimirán en el reporte. Pase a la etapa siguiente.
    3. Aparece la ventana de descripción de la consulta. Para construir la consulta, vamos a seleccionar los elementos que se mostrarán en el resultado.
    4. Haga doble clic en los elementos del análisis, a la izquierda de la ventana de descripción. Las posiciones tenidas en cuenta se visualizan en el centro de la pantalla..
      Queremos imprimir en la reporte:
      • información sobre el cliente. En el archivo de datos del "Cliente", haga doble clic en los elementos Nombre completo, Dirección, Código postal, Ciudad y País.
      • información sobre el pedido. En el archivo de datos de "Ordenes", haga doble clic en los elementos OrderID y Date.
      • información sobre el producto. En el archivo de datos del "Producto", haga doble clic en los artículos Referencia, Pie de foto y PriceBT.
      • información sobre la línea de pedido. En el archivo de datos "OrderLine", haga doble clic en los elementos de Cantidad y TotalBT.
      • información sobre el total general del pedido. En el archivo de datos de "Pedidos", haga doble clic en los elementos TotalBT y TotalIOT.

        Observación

        El orden en el que se insertan los elementos en la consulta es importante. En efecto, este orden corresponde al orden utilizado para visualizar los datos en el reporte. La creación de la correspondiente reporte se simplificará si este orden está bien definido.
La ventana de descripción de la consulta es la siguiente:
Descripción de consultas
En este momento, esta consulta se utiliza para seleccionar todos los pedidos y las líneas de pedido correspondientes.
Queremos seleccionar los datos correspondientes a una sola orden cuyo identificador se conoce. Por lo tanto, vamos a definir el número de pedido en parámetro.
  • Gestionar el parámetro "Identificador de la orden":
    1. Seleccione la posición Orders.OrdersID (en el centro de la pantalla).
    2. Expanda "Condición de selección" y seleccione "Nueva condición".
    3. En la ventana que se muestra, vamos a especificar que la condición de selección corresponde a un parámetro:
      Describir una condición
      Preparar las siguientes operaciones:
      • Seleccione "Es igual a".
      • Compruebe "el parámetro".
      • El nombre del parámetro se propone automáticamente: "ParamOrdersID".
    4. Validar la ventana de descripción de la condición. El número "1" se muestra a la derecha del elemento OrdersID, indicando que se ha definido una condición de selección.
    5. Dar un nombre a la consulta: escriba "QRY_OrderForm" en lugar de "QRY_NoName1" en el área "Nombre de la consulta:
      Nombre de la consulta
    6. Validar la ventana de descripción de la consulta (botón"OK").
    7. Aparece la ventana de guardar. Validar la información propuesta.
    8. Se visualiza la representación gráfica de la consulta:
      Representación gráfica

Creación de la reporte a partir de una consulta

  • Para crear una reporte:
    1. Haga clic en Crear un elemento en los botones de acceso rápido.
    2. La ventana para crear nuevos elementos se abre: haga clic en "Reporte" y luego en "Reporte".. Comienza la creación de la reporte, la asistente.
    3. La creación de la reporte La asistente propone varios tipos de informes:
      Creación de Reporte asistente - Tipo de reporte
    4. Seleccione"Tabla".. Pase a la etapa siguiente.
    5. Seleccione la fuente de datos de reporte. La reporte se basará en la consulta que se acaba de crear. Seleccione "Desde un archivo de datos o desde una consulta existente".
      Creación de Reporte asistente - Fuente de datos
      Ve al siguiente paso.
    6. En la lista de archivos de datos y consultas, seleccione la consulta "QRY_OrderForm".. Pase a la etapa siguiente.
    7. La asistente le pide que especifique si se requiere una ruptura. No se usará ruptura en este reporte. Este concepto se presentará más adelante en este tutorial. Responde "No". Pase a la etapa siguiente.
    8. Se va a especificar el orden en el que se imprimirán las posiciones y cómo se distribuirán en los diferentes bloques.. En la asistente, los artículos se listan según el orden definido en la consulta:
      • Los artículos relativos al cliente se mostrarán en el bloque "Encabezado de página. De hecho, esta información no debe repetirse en cada línea de pedido..
        Para los elementos FullName, Address, ZipCode, City y Country, haga clic en la línea correspondiente al elemento. En la columna "Bloque", amplíe el cuadro combinado y seleccione "Encabezado de página"..
        Elementos a mostrar
      • Los artículos relacionados con el pedido también se mostrarán en el bloque "Encabezado de página. De hecho, esta información no debe repetirse en cada línea de pedido.. Para las posiciones ID de pedido y Fecha, haga clic en la línea correspondiente a la posición. En la columna "Bloque", amplíe el cuadro combinado y seleccione "Encabezado de página"..
      • Además, vamos a modificar el título de "OrdersID".
        • Seleccione la línea que contiene la posición OrderID.
        • Haga clic en la columna Leyenda y escriba "Order #"..
          Modificar la leyenda
        • Los artículos relativos a las líneas de pedido se mostrarán en el cuerpo de reporte. Estas posiciones se visualizarán para todas las líneas de pedido.
      • Las posiciones relativas a los totales del pedido se mostrarán en el pie de página.. De hecho, esta información no debe repetirse en cada línea de pedido.. Para las posiciones TotalBT_Or y TotalIOT, haga clic en la línea correspondiente a la posición. En la columna "Bloque", expanda el cuadro combinado y seleccione "Pie de página"..
        Visualizar bloques
        La siguiente tabla presenta las diferentes asignaciones de artículos en el orden presentado en la asistente:
        Elementotaco
        FullNameEncabezado de página
        DirecciónEncabezado de página
        ZipCodeEncabezado de página
        CiudadEncabezado de página
        PaísEncabezado de página
        ID de pedidoEncabezado de página
        salir conEncabezado de página
        ReferenciaCuerpo
        TítuloCuerpo
        PrecioBTCuerpo
        CantidadCuerpo
        TotalBTCuerpo
        TotalBT_OrPie de página
        TotalIOTPie de página
    9. Pase a la etapa siguiente.
    10. La asistente propone crear un contador, una suma o un promedio sobre los elementos numéricos encontrados en la reporte. En esta reporte, los cálculos se realizan mediante la consulta. Haga clic en el botón "Sin cálculo. Pase a la etapa siguiente.
    11. Este paso se utiliza para definir la disposición de reporte.
      Creación de Reporte asistente - Formato de papel
      Mantendremos los valores por defecto con la orientación "Retrato"..

      Observación

      Márgenes de impresión
      Al elegir los márgenes de impresión, no olvide tener en cuenta los márgenes físicos de las impresoras.. Los márgenes físicos de las impresoras son márgenes en los que no se permite la impresión.. Además, los márgenes físicos difieren según el tipo de impresora.
    12. Pase a la etapa siguiente.
    13. Este paso le permite seleccionar la plantilla utilizada para el reporte. Recomendamos utilizar la misma plantilla que la utilizada para las ventanas.. En nuestro caso, seleccione la plantilla "Phoenix" por ejemplo y vaya al siguiente paso.
    14. Todo lo que tenemos que hacer ahora es dar un nombre y un título a la reporte.
      • Escriba el título : "Orden de compra".
      • El nombre "RPT_Order_form" se propone automáticamente.
        Creación de Reporte asistente - Nombre de reporte

        Express

        La opción "Reporte modificable en Reports and Queries" no está disponible en la versión Express.
    15. Validar ("Finalizar").
    16. Dado que el reporte es demasiado grande para ser impreso en modo vertical, el editor de reportes propone utilizar el modo horizontal, reducir el tabla o imprimir el tabla en varias páginas.. En nuestro caso, acepte el modo paisaje.
    17. Acepte reducir la tabla si es necesario.
    18. Aparece la ventana para guardar la reporte. Validar la información guardada.
    19. La reporte se muestra en edición en la pantalla editor de reportes:
      Editor de reportes
    20. Las diferentes líneas de pedido se agrupan en una tabla.
  • Ejecute este reporte pulsando Ejecutar prueba del elemento entre los botones de acceso rápido.
    1. El editor de reportes pregunta por el destino de impresión. El destino de impresión puede ser:
      Seleccionar modo de impresión
      Seleccione "Visor de Reporte" y valide.
    2. El editor de reportes pide los parámetros de consulta utilizados por el reporte. No olvide que se ha utilizado un parámetro para especificar el número de la orden a imprimir. Para el ejemplo, escriba el valor de prueba "1".. Valide el
      Parámetros de la consulta
      .
    3. El reporte se muestra como se solicita en el visor de reporte.
      Examen de Reporte
      Puedes:
      • Imprima la página actual o el documento completo haciendo clic en la impresora.
      • Cree una copia duplicada.
      • Seleccione un valor de zoom diferente.
      • Guarde el reporte como un documento de Word (en formato RTF).
      • Guarde el reporte en formato HTML.
      • Guarde el reporte en formato PDF.
      • Guarde el reporte en formato XML.
      • Cree un correo electrónico con la reporte en formato HTML en el cuerpo del mensaje.
      • Cree un correo electrónico con la reporte en formato PDF como archivo adjunto.
      • Anotar en el documento.
      • Realizar una búsqueda en un documento.
      • Añadir marcas de agua.
  • Cerrar el visor de reporte.

Modificación del "Formulario de pedido" reporte

Vamos a realizar modificaciones en el layout de la reporte que acabamos de crear.
  • Borrar el número de páginas que se muestran en el reporte:
    1. Seleccione el control [ PAGENUM]/[ NBPAGES].
    2. Presione la tecla Supr en el teclado.
  • Queremos posicionar la información sobre el cliente y el pedido en la cabecera de la página:
    1. Borrar el epígrafe "Formulario de pedido" que se encuentra en el encabezado de la página.
    2. Borrar las leyendas que se encuentran delante de la información del cliente (Nombre completo, ....).
    3. Coloque el elemento que contiene la ciudad al lado del código postal.
    4. Seleccione los datos del cliente y muévalos (con el ratón) a la derecha de reporte.
    5. Mueva el número de orden y la fecha de la orden hacia arriba (a la parte superior del bloque "Encabezado de página").
  • Vamos a colocar los totales correctamente en el pie de página:
    1. Seleccione los controles (subtítulos y elementos) correspondientes a los totales encontrados en el pie de página.
    2. Mueva estos controles a la esquina inferior derecha de la tabla.
  • Modificar las opciones de impresión del bloque "Pie de página":
    1. Abre la ventana de descripción del bloque "Pie de página":
      • Haga clic en el bloque "Pie de página".
      • Abre el menú contextual (clic derecho) y selecciona "Descripción del bloque".
    2. En la pestaña "General", marque las siguientes opciones:
      • Imprimir el bloque "Fin de documento" DESPUÉS del bloque "Pie de página" en la última página.
      • El bloque "Pie de página" no se imprime en la parte inferior de la página, sino que se pega a los bloques anteriores..
        Describir un bloque
    3. Valide la ventana de descripción.
    4. La reporte se visualiza en la pantalla editor de reportes:
      Editor de reportes
    5. Guarda la reporte pulsando Guardar un elemento entre los botones de acceso rápido.
Se crea nuestra reporte.
Visualización de la reporte impresa desde una opción de menú
En nuestra aplicación, el "RPT_Order_form" reporte se imprimirá desde una opción que se encuentra en el menú contextual del control Tabla usado para listar los pedidos solicitados.
Como ya se ha visto, la control Tabla propone un menú automático. Queremos mantener las opciones de este menú automático y añadir una opción que se utilizará para imprimir el formulario de pedido seleccionado.
El principio es el siguiente:
  1. Vamos a crear un nuevo menú emergente. Este menú contendrá el código WLanguage utilizado para imprimir el reporte.
  2. Vamos a enlazar este menú emergente con la control Tabla y especificar que el menú emergente por defecto se mostrará justo después de la el menú contextual definida para la control Tabla.

Creación de el menú contextual

  • Para crear un menú emergente en la ventana "WIN_Menu":
    1. Abra la ventana "WIN_Menu" en el editor si es necesario (haga doble clic en su nombre en el panel "Explorador de proyectos", por ejemplo).
    2. En la pestaña "Ventana", en el grupo "Bares y menús", despliegue "Menús contextuales" y seleccione "Nuevo menú contextual".
    3. Aparece un nuevo menú emergente en el editor. Esta opción del menú incluye una sola opción llamada "Opción de menú"..
      Menú emergente en modo edición
    4. Abra la descripción de el menú contextual:
      • Seleccione "Opción de menú".
      • Abre el menú contextual (clic derecho).
      • Seleccione "Descripción del menú que aparece".
    5. Dale un nombre a el menú contextual ("MENU_Orden") y valídalo.

Observación

Menús y ventanas de Popup
Un menú emergente está asociado a una ventana. Si una ventana incluye varios menús desplegables (menú desplegable de ventana, menús desplegables de controles,...), todos estos menús se guardan con la ventana.
  • Ahora vamos a definir el título de la opción y escribir su código WLanguage.
    1. Seleccione "Opción de menú".
    2. Pulsar la tecla Space del teclado: el título se vuelve editable. Escriba el nuevo título ("Imprimir el formulario de pedido") y valide.
    3. Muestra los eventos WLanguage asociados con la opción:
      • Seleccione la opción.
      • Abre el menú contextual (clic derecho) y selecciona "Código".
    4. Escriba el siguiente código WLanguage:
      // Print in the report viewer
      iDestination(iViewer)
      // Initializes the report query
      iInitReportQuery(RPT_Order_form, ...
      TABLE_QRY_FindOrders.COL_OrdersID)
      // Starts printing the report
      iPrintReport(RPT_Order_form)
      En este código:
      • iDestination se utiliza para especificar que la reporte se imprimirá en el visor de la reporte.
      • iInitReportQuery se utiliza para especificar los parámetros esperados por la consulta asociada a la reporte. En nuestro caso, la consulta espera el número de orden en el parámetro. Este número de orden se encuentra en la columna COL_OrdersID de TABLE_QRY_FindOrders control Tabla para el fila actual.
      • iPrintReport se utiliza para imprimir el reporte especificado (el RPT_Order_form reporte en nuestro caso).
    5. Cierra la ventana del código y la ventana que contiene a el menú contextual.
    6. Guardar la ventana "WIN_Menu".

Asociando a el menú contextual con el control Tabla

  • Último paso: vamos a vincular a el menú contextual con el control Tabla.
    1. En la ventana "WIN_Menu", muestre la pestaña "Finding orders".
    2. Seleccione la control Tabla y abra su descripción ("Descripción de la tabla" de la el menú contextual de control).
    3. En la pestaña "UI", despliegue la lista de "Menú cont.".
    4. Seleccione la opción "Agregar un menú contextual", seleccione el menú "MENU_Order" y luego seleccione la opción "Al inicio" para indicar que el menú se ubicará antes del menú del sistema.
      Menú contextual
    5. Haga clic en el interior de la ventana para validar el menú contextual.
    6. Valide.

Prueba de impresión

  • Ahora, todo lo que tenemos que hacer es hacer una prueba real:
    1. Ejecute la prueba de la ventana "WIN_Menu".
    2. Seleccione el panel de pestañas "Buscar órdenes".
    3. Especifique los criterios e inicie una búsqueda.
    4. Seleccione una de las órdenes visualizadas en el control Tabla.
    5. Imprima la orden a través de el menú contextual.
      Examen de Reporte
    6. Cierre el visor de reporte y la ventana de prueba.
Lección anteriorTabla de contenidoSiguiente lección
Versión mínima requerida
  • Versión 25
Comentarios
Haga clic en [Agregar] para publicar un comentario