Menu Painter - Crear Opción para Exportar a Excel

Buen Día @smota espero estes bien!!!

Estuve ausente por temas personales y no pude concluir con este tema que lo estoy retomando el día de hoy.

La verdad no se como hacer esto que comentas, sera que puedes darme algún ejemplo sencillo de esto que me tratas de explicar para ver si te entiendo…

Saludos…

por su puesto, el codigo que copiaste arriba es todo el codigo?

@johnny282 pasa por aca y explicanos como termina el caso, y si una respuesta te sirvio para solucionar marcala como mejor solucion. xD, soy un asote jeje.

Buenas @johnny282, estaba revisando el foro y me encontré con este caso.

La guía que usé en mis inicios para el caso de agregar nuevas funcionalidades a través de botones la saqué de aquí: ALV development (ALV_GRID)

En esa página mencionan lo siguiente en el paso 3:

Step 3. Create pf_status (i.e. ‘ZNEWSTATUS’).

  • It is recommend that you copy standard status ‘STANDARD’ from function group SALV or ‘STANDARD_FULLSCREEN’ from function group SLVC_FULLSCREEN which is what I tend to use, and then modify it accordingly. ALV standard function codes always start with ‘&’. i.e. &VGRID calls your ALV grid

Inicialmente usé una copia del status GUI ‘STANDARD’ del grupo de funciones SALV como lo hiciste, pero me pasaba el mismo problema que se te presentó, no se mostraban los elementos del menú. Lo que hice más bien fue tomar una copia del ‘STANDARD_FULLSCREEN’ del grupo de funciones ‘SLVC_FULLSCREEN’ como lo mencionan allí, y con ese status GUI sí se mostraban los botones y demás.

Has la prueba y escribe cualquier cosa.

Saludos!

2 Me gusta

Que tal Chicos,

Bueno finalmente pude culminar el requerimiento. Un agradecimiento a todos los que me han apoyado en este post y en especial a @smota que con mucha paciencia a estado de la mano apoyando últimamente.

Bueno a continuación les resumo lo que se hizo para agregar la opción de Exportar en Excel:

  1. En primer lugar era necesario crear una nueva tabla interna que me permitiera almacenar tanto los datos de facturas (Canal de Distribución, Numero de Factura, Tipo de Factura, etc) como los cálculos realizados para sacar el Monto Bruto y Monto Neto entre otros. Esto con la finalidad de posteriormente utilizar dicha tabla en la Función GUI_DOWNLOAD que explicare en los siguientes puntos.

  2. Una vez creada la tabla interna y almacenada la información correspondiente, se procedió a realizar una copia de un Status Gui Estandar, específicamente el contenido en el grupo de funciones SALV - Status GUI STANDARD. Una vez generada la copia procedí a eliminar aquellos botones que no fueron requeridos, solamente dejando el botón Hoja de Calculo y Fichero Local. En este punto quiero dejar claro para aquellos que están empezando como yo, que la copia de estos status no funciona con aquellos reportes creados en base a sentencias Write, es decir, que se deben programar tanto las opción de Menú como los botones. Por lo que estuve investigando estas copias funcionan correctamente con reportes tipo ALV.

  3. Una vez ajustado el status gui, realice la modificación al programa para añadir la funcionalidad de los menú y botones a través del PF-STATUS - USER-COMMAND.
    4.En el caso particular del Botón de Hoja de Calculo utilice la función GUI_DOWNLOAD que me permite exportar directamente la información en un directorio en formato xls u otro. En esta función coloque como parámetros tanto la tabla interna que comente en el primer punto y tuve que diseñar otra tabla que almacenaría la cabecera de cada columna. A continuación coloco como use la función:

    CALL FUNCTION ‘GUI_DOWNLOAD’
    EXPORTING
    filename = ‘C:\archivo.xls’
    TABLES
    data_tab = IT_tablaconlosdatos
    filename = IT_cabeceradecolumnas
    EXCEPTIONS
    FILE_WRITE_ERROR = 1
    NO_BATCH = 2
    GUI_REFUSE_FILETRANSFER = 3
    INVALID_TYPE = 4
    NO_AUTHORITY = 5
    UNKNOWN_ERROR = 6.

Bueno espero haberme explicado con claridad, pero si tienen alguna duda me la hacen llegar y con gusto les respondo.

Les deseo una Feliz Navidad a Todos los que integran esta comunidad, un fuerte abrazo para todos…

5 Me gusta

Saludos @johnny282,

Llegué tarde pero me alega que @smota se hizo cargo de este caso. En hora buena :smile:

Nota: Trata de no usar más listas con write de ahora en adelante, utiliza el ALV OOP

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.