<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5446296579082811811</id><updated>2024-10-01T08:21:26.450-07:00</updated><title type='text'>ABAP Junior&#39;s</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://abbapersjuniors.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://abbapersjuniors.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jose Angel Moreno Nieblas</name><uri>http://www.blogger.com/profile/07557229350909629318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5446296579082811811.post-7077392075279132544</id><published>2017-08-23T08:16:00.002-07:00</published><updated>2017-08-23T08:16:19.327-07:00</updated><title type='text'></title><content type='html'>&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: large;&quot;&gt;Descargar XML y PDF adjuntos en la TCod VF02&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;PROGRAMA PRINCIPAL&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border-bottom: 1px inset; border-left: 1px inset; border-right: 1px inset; border-top: 1px inset; height: 200px; margin: 0px; overflow: auto; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: left; width: 540px;&quot;&gt;*----------------------------------------------------------------------*
*        FABRICA DE SOFTWARE ABAP                                      *
*----------------------------------------------------------------------*
* Nombre del Programa: ZFIRE_DOWN_PDF_XML_INVOICE                      *
* Descripción        : Programa para descarga de PDF y XML.            *
* Desarrolador       : José Ángel Moreno Nieblas  JOSEMN               *
*----------------------------------------------------------------------*

REPORT zfire_down_pdf_xml_invoice.

*----------------------------------------------------------------------*
*             D E C L A R A C I O N  D E  I N C L U D E S              *
*----------------------------------------------------------------------*
INCLUDE: zfire_down_pdf_xml_invoice_def, &quot;Definiciones de Clase.
         zfire_down_pdf_xml_invoice_imp, &quot;Implementaciones de Clase.
         zfire_down_pdf_xml_invoice_top. &quot;Declaraciones Globales.

*----------------------------------------------------------------------*
*           E V E N T O  I N I T I A L I Z A T I O N                   *
*----------------------------------------------------------------------*
INITIALIZATION.

  IF NOT og_down_pdf_xml IS BOUND.

    CREATE OBJECT og_down_pdf_xml.

  ENDIF.

*----------------------------------------------------------------------*
*           E V E N T O  S E L E C C T I O N - S C R E E N             *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_direc.
  p_direc = og_down_pdf_xml-&amp;gt;get_directory( ).

*----------------------------------------------------------------------*
*         E V E N T O  S T A R T - O F - S E L E C T I O N             *
*----------------------------------------------------------------------*
START-OF-SELECTION.

  CALL METHOD og_down_pdf_xml-&amp;gt;execute_process
    EXPORTING
      im_factura = p_vbeln
      im_rfc     = p_stcd1
      im_direc   = p_direc.

&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;
&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;DEFINICIÓN DE CLASE LOCAL&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border-bottom: 1px inset; border-left: 1px inset; border-right: 1px inset; border-top: 1px inset; height: 200px; margin: 0px; overflow: auto; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: left; width: 540px;&quot;&gt;*----------------------------------------------------------------------*
*        FABRICA DE SOFTWARE ABAP                                      *
*----------------------------------------------------------------------*
* Nombre del Programa: ZFIRE_DOWN_PDF_XML_INVOICE                      *
* Descripción        : Programa para descarga de PDF y XML.            *
* Desarrolador       : José Ángel Moreno Nieblas  JOSEMN               *
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
*       CLASS LCL_DOWN_PDF_XML DEFINITION                              *
*----------------------------------------------------------------------*
*       Clase local de definición para el reporte.                     *
*----------------------------------------------------------------------*
CLASS lcl_down_pdf_xml DEFINITION FINAL.

  PUBLIC SECTION.

    METHODS: get_directory &quot;Obtener directorio
               RETURNING value(re_dir) TYPE string,
             execute_process
              IMPORTING
                im_factura TYPE vbrk-vbeln
                im_rfc TYPE kna1-stcd1
                im_direc TYPE string.


ENDCLASS.
&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;
&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;IMPLEMENTACIÓN DE CLASE LOCAL&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border-bottom: 1px inset; border-left: 1px inset; border-right: 1px inset; border-top: 1px inset; height: 200px; margin: 0px; overflow: auto; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: left; width: 540px;&quot;&gt;*----------------------------------------------------------------------*
*        FABRICA DE SOFTWARE ABAP                                      *
*----------------------------------------------------------------------*
* Nombre del Programa: ZFIRE_DOWN_PDF_XML_INVOICE                      *
* Descripción        : Programa para descarga de PDF y XML.            *
* Desarrolador       : José Ángel Moreno Nieblas  JOSEMN               *
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
*       CLASS LCL_DOWN_PDF_XML IMPLEMENTATION                          *
*----------------------------------------------------------------------*
*       Clase local de implementación para el reporte.                 *
*----------------------------------------------------------------------*
CLASS lcl_down_pdf_xml IMPLEMENTATION.

**--------------------------------------------------------------------**
** METHOD GET_DIRECTORY                                               **
**--------------------------------------------------------------------**
** Creado para obtener la ruta y nombre de archivo a cargar.          **
**--------------------------------------------------------------------**
** &lt;-- a=&quot;&quot; archivo=&quot;&quot; archivos.=&quot;&quot; call=&quot;&quot; cl_gui_frontend_services=&quot;&quot; contendra=&quot;&quot; data:=&quot;&quot; de=&quot;&quot; descargar=&quot;&quot; direcci=&quot;&quot; directorio=&quot;&quot; el=&quot;&quot; excel...=&quot;&quot; get_directory.=&quot;&quot; la=&quot;&quot; los=&quot;&quot; method=&quot;&quot; mostrar=&quot;&quot; n=&quot;&quot; obtener=&quot;&quot; para=&quot;&quot; pc=&quot;&quot; pupup=&quot;&quot; re_dir=&quot;&quot; string.=&quot;&quot; type=&quot;&quot; vl_title=&quot;text-002.&quot; y=&quot;&quot;&gt;directory_browse
      EXPORTING
        window_title         = vl_title
        initial_folder       = &#39;C:\&#39;
      CHANGING
        selected_folder      = re_dir
      EXCEPTIONS
        cntl_error           = 1
        error_no_gui         = 2
        not_supported_by_gui = 3
        OTHERS               = 4.

    IF sy-subrc NE 0.

      CLEAR re_dir.

    ENDIF.

  ENDMETHOD.
**--------------------------------------------------------------------**
** METHOD EXECUTE_PROCESS                                             **
**--------------------------------------------------------------------**
** Creado ejecutar el proceso de descarga de PDF y XML.               **
**--------------------------------------------------------------------**
  METHOD execute_process. &quot;EXECUTE_PROCESS

    DATA: sl_object      TYPE sibflporb,
          sl_options     TYPE obl_s_relt,
          sl_atta        TYPE obl_s_link,
          sl_hd          TYPE sofolenti1.

    DATA: tl_atta      TYPE obl_t_link,
          tl_content   TYPE STANDARD TABLE OF solisti1,
          tl_options   TYPE obl_t_relt.

    DATA: vl_name        TYPE char100,
          vl_type        TYPE string,
          vl_size        TYPE soxwd-doc_length,
          vl_document_id TYPE sofolenti1-doc_id,
          vl_ruta        TYPE char300.

    sl_object-instid = im_factura.
    sl_object-typeid = &#39;VBRK&#39;.
    sl_object-catid  = &#39;BO&#39;.

    sl_options-sign   = &#39;I&#39;.
    sl_options-option = &#39;EQ&#39;.
    sl_options-low    = &#39;ATTA&#39;.
    APPEND sl_options TO tl_options.

    CALL METHOD cl_binary_relation=&amp;gt;read_links
      EXPORTING
        is_object           = sl_object
        it_relation_options = tl_options
      IMPORTING
        et_links            = tl_atta.

    LOOP AT tl_atta
       INTO sl_atta.

      vl_document_id = sl_atta-instid_b.

      CALL FUNCTION &#39;SO_DOCUMENT_READ_API1&#39;
        EXPORTING
          document_id               = vl_document_id
       IMPORTING
         document_data              = sl_hd
       TABLES
         object_content             = tl_content
       EXCEPTIONS
         document_id_not_exist      = 1
         operation_no_authorization = 2
         x_error                    = 3
         OTHERS                     = 4.

      IF sy-subrc EQ 0.

        IF sl_hd-obj_type EQ &#39;XML&#39;
          OR sl_hd-obj_type EQ &#39;PDF&#39;.

          CONCATENATE im_rfc
                      &#39;_&#39;
                      im_factura
                      &#39;.&#39;
                      sl_hd-obj_type
                 INTO vl_name.

          CONCATENATE im_direc
                      &#39;\&#39;
                      vl_name
                 INTO vl_ruta.

          vl_type = &#39;BIN&#39;.
          vl_size = sl_hd-doc_size.

          CALL FUNCTION &#39;SO_OBJECT_DOWNLOAD&#39;
           EXPORTING
             bin_filesize           = vl_size
             filetype               = vl_type
             path_and_file          = vl_ruta
             no_dialog              = &#39;X&#39;
            TABLES
              objcont               = tl_content
           EXCEPTIONS
             file_write_error       = 1
             invalid_type           = 2
             x_error                = 3
             kpro_error             = 4
             OTHERS                 = 5.

          IF sy-subrc NE 0.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDLOOP.

  ENDMETHOD.                    &quot;EXECUTE_PROCESS

ENDCLASS.
&lt;/--&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;margin: 5px 20px 20px;&quot;&gt;
&lt;div class=&quot;smallfont&quot; style=&quot;margin-bottom: 2px;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;DECLARACIONES GLOBALES&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;border-bottom: 1px inset; border-left: 1px inset; border-right: 1px inset; border-top: 1px inset; height: 200px; margin: 0px; overflow: auto; padding-bottom: 6px; padding-left: 6px; padding-right: 6px; padding-top: 6px; text-align: left; width: 540px;&quot;&gt;*----------------------------------------------------------------------*
*        FABRICA DE SOFTWARE ABAP                                      *
*----------------------------------------------------------------------*
* Nombre del Programa: ZFIRE_DOWN_PDF_XML_INVOICE                      *
* Descripción        : Programa para descarga de PDF y XML.            *
* Desarrolador       : José Ángel Moreno Nieblas  JOSEMN               *
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
* O B J E T O S                                                        *
*----------------------------------------------------------------------*
DATA: og_down_pdf_xml TYPE REF TO lcl_down_pdf_xml.

**--------------------------------------------------------------------**
** O P C I O N E S   D E   S E L E C C I Ó N   Y   P A R A M E T R O S**
**--------------------------------------------------------------------**
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

PARAMETERS: p_vbeln TYPE vbrk-vbeln OBLIGATORY,
            p_stcd1 TYPE kna1-stcd1 OBLIGATORY,
            p_direc TYPE string OBLIGATORY.

SELECTION-SCREEN END OF BLOCK blk1.
&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://abbapersjuniors.blogspot.com/feeds/7077392075279132544/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://abbapersjuniors.blogspot.com/2017/08/descargar-xml-y-pdf-adjuntos-en-la-tcod.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/7077392075279132544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/7077392075279132544'/><link rel='alternate' type='text/html' href='http://abbapersjuniors.blogspot.com/2017/08/descargar-xml-y-pdf-adjuntos-en-la-tcod.html' title=''/><author><name>Jose Angel Moreno Nieblas</name><uri>http://www.blogger.com/profile/07557229350909629318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5446296579082811811.post-7518919938428967786</id><published>2010-07-22T16:32:00.000-07:00</published><updated>2010-07-22T16:37:05.819-07:00</updated><title type='text'>ALV GRID: REPORTE DE NOMINA DE CONDUCTORES</title><content type='html'>&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Programa Principal&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195                                    *&lt;br /&gt;* Description          : The payroll driver commission report is used  *&lt;br /&gt;*                        by the payroll department so that they can do *&lt;br /&gt;*                        the commission payment freight to the         *&lt;br /&gt;*                        employees or drivers.                         *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Omar Garcia   EXCHNEO_F10                     *&lt;br /&gt;* Creation Date        : 01.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195   Transport: ECDK901199                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                      MODIFICATIONS LOG                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195                                    *&lt;br /&gt;* Description          : Change ALV List for ALV Grid                  *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Carlos Antonio Flores Deras - EXCHNEO_F10     *&lt;br /&gt;* Creation Date        : 12.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195.01   Transport: ECDK901199                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195                                    *&lt;br /&gt;* Description          : Change  Format Report List                    *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Omar Garcia - EXCHNEO_F10                     *&lt;br /&gt;* Creation Date        : 24.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195.99  ECDK901199                            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195                                    *&lt;br /&gt;* Description          : Create a Commission Report Copy               *&lt;br /&gt;* Functional           : Orlando Solano                                *&lt;br /&gt;* Developer            : Maria V. Guerrero - EXCHNEO_F10               *&lt;br /&gt;* Creation Date        : 29.04.2009                                    *&lt;br /&gt;* Requirement Number   : GCC_723.01      OT: ECDK903960                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;REPORT  zggsdre195&lt;br /&gt;       NO STANDARD PAGE HEADING&lt;br /&gt;       LINE-SIZE  178&lt;br /&gt;       LINE-COUNT 55.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*INCLUDE DECLARATION                                                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Declaration Global&lt;br /&gt;INCLUDE zggsdre195_a.&lt;br /&gt;* Declaration Routine&lt;br /&gt;INCLUDE zggsdre195_b.&lt;br /&gt;* Declaration ALV.&lt;br /&gt;INCLUDE zggsdre195_c.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Initialization                                                       *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;INITIALIZATION.&lt;br /&gt;  v_repid = sy-repid.&lt;br /&gt;*  BEGIN GCC_195.99 24.02.2009 EXCHNEO_F10 Change  Format Report List&lt;br /&gt;  PERFORM f_variant_init.&lt;br /&gt;  PERFORM f_call_variant.&lt;br /&gt;*  END GCC_195.99 24.02.2009 EXCHNEO_F10 Change  Format Report List&lt;br /&gt;**---------------------------------------------------------------------*&lt;br /&gt;* AT SELECTION-SCREEN                                                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  BEGIN GCC_195.99 24.02.2009 EXCHNEO_F10 Change  Format Report List&lt;br /&gt;* Process on value request&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.&lt;br /&gt;  PERFORM f_f4_for_variant.&lt;br /&gt;*  END GCC_195.99 24.02.2009 EXCHNEO_F10 Change  Format Report List&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN.&quot; OUTPUT.&lt;br /&gt;  PERFORM f_output_screen.&lt;br /&gt;*  BEGIN GCC_195.99 24.02.2009 EXCHNEO_F10 Change  Format Report List&lt;br /&gt;  PERFORM f_vali_variant.&lt;br /&gt;*  END GCC_195.99 24.02.2009 EXCHNEO_F10 Change  Format Report List&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*START OF SELECTION EVENT                                              *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;* BEGIN GCC_195.99 EXCHNEO_F10 31.03.2009&lt;br /&gt;  PERFORM f_authority_check.&lt;br /&gt;* END   GCC_195.99 EXCHNEO_F10 31.03.2009&lt;br /&gt;* Call Select Data&lt;br /&gt;  PERFORM f_select_data.&lt;br /&gt;&lt;br /&gt;* Call Read Tables&lt;br /&gt;  PERFORM f_read_tables.&lt;br /&gt;* Call ALV&lt;br /&gt;  PERFORM f_alv.&lt;br /&gt;&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.99 EXCHNEO_F10 19.02.2009 Change  Format Report List&lt;br /&gt;*  Shows the list report page-break by Freight Carrier&lt;br /&gt;  IF sy-ucomm EQ c_code.       &quot; &amp;PRINT&lt;br /&gt;&lt;br /&gt;*    PERFORM f_header. &quot; DELETE GCC_195.99 EXCHNEO_F10 24.02.2009&lt;br /&gt;    &quot; Change  Format Report List&lt;br /&gt;    PERFORM f_detail.&lt;br /&gt;&lt;br /&gt;* BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;  ELSEIF sy-ucomm EQ c_code2.&lt;br /&gt;&lt;br /&gt;    PERFORM f_detail2.&lt;br /&gt;* END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;  ENDIF.&lt;br /&gt;*&gt;&gt; END   GCC_195.99 EXCHNEO_F10 19.02.2009 Change  Format Report List&lt;br /&gt;&lt;br /&gt;*  BEGIN DELETE GCC_195.99 24.02.2009 EXCHNEO_F10&lt;br /&gt;*  Change  Format Report List&lt;br /&gt;*  top-of-page.&lt;br /&gt;*&lt;br /&gt;*  new-page.&lt;br /&gt;*&lt;br /&gt;*  perform f_format.&lt;br /&gt;*  END GCC_195.99 24.02.2009 EXCHNEO_F10 Change  Format Report List&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Declaraciones&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195_A                                  *&lt;br /&gt;* Description          : The payroll driver commission report is used  *&lt;br /&gt;*                        by the payroll department so that they can do *&lt;br /&gt;*                        the commission payment freight to the         *&lt;br /&gt;*                        employees or drivers.                         *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Omar Garcia   EXCHNEO_F10                     *&lt;br /&gt;* Creation Date        : 01.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195   Transport: ECDK901199                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                      MODIFICATIONS LOG                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195_A                                  *&lt;br /&gt;* Description          : Change ALV List for ALV Grid                  *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Carlos Antonio Flores Deras - EXCHNEO_F10     *&lt;br /&gt;* Creation Date        : 12.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195.01   Transport: ECDK901199                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195_A                                  *&lt;br /&gt;* Description          : Change  Format Report List                    *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Omar Garcia - EXCHNEO_F10                     *&lt;br /&gt;* Creation Date        : 24.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195.99  ECDK901199                            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195_A                                  *&lt;br /&gt;* Description          : Create a Commission Report Copy               *&lt;br /&gt;* Functional           : Orlando Solano                                *&lt;br /&gt;* Developer            : Maria V. Guerrero - EXCHNEO_F10               *&lt;br /&gt;* Creation Date        : 29.04.2009                                    *&lt;br /&gt;* Requirement Number   : GCC_723         OT: ECDK902057                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195                                    *&lt;br /&gt;* Description          : Search the condition type: KONV-KSCHL=” ZTC1” *&lt;br /&gt;*                        ” ZTC2” ZTC3”,” ZTC4”,” ZTC5”,” ZTC6”         *&lt;br /&gt;* Functional           : Julian Luna                                   *&lt;br /&gt;* Developer            : Erika Bandilla  - EXCHNEO_F14                 *&lt;br /&gt;* Creation Date        : 04.05.2009                                    *&lt;br /&gt;* Requirement Number   : GCC_723.01           OT: ECDK903960           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;*--------------------------------------------------------------------*&lt;br /&gt;*  T A B L E S                                                       *&lt;br /&gt;*--------------------------------------------------------------------*&lt;br /&gt;TABLES: likp,&lt;br /&gt;        vbpa,&lt;br /&gt;        MVKE.&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;* DECLARATION TYPES POOLS                                  *&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;TYPE-POOLS: slis.&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;* DECLARATION TYPES                                        *&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;* BEGIN GCC_195.99 EXCHNEO_F10 31.03.2009&lt;br /&gt;TYPES: BEGIN OF ty_tvko, &quot;Organizational Unit: Sales organizations&lt;br /&gt;         vkorg TYPE vkorg,           &quot;Sales Organization&lt;br /&gt;       END OF ty_tvko.&lt;br /&gt;* END GCC_195.99 EXCHNEO_F10 31.03.2009&lt;br /&gt;TYPES:BEGIN OF ty_likp,&lt;br /&gt;        vbeln TYPE likp-vbeln,&lt;br /&gt;        vkorg TYPE likp-vkorg,&lt;br /&gt;        lfart TYPE likp-lfart,&quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;        lfdat TYPE likp-lfdat,&lt;br /&gt;        traid TYPE likp-traid,&quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;        lifex TYPE likp-lifex,&lt;br /&gt;        knump TYPE likp-knump,&quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;      END OF ty_likp,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_vbpa,&lt;br /&gt;        vbeln TYPE vbpa-vbeln,&lt;br /&gt;        parvw TYPE vbpa-parvw,&lt;br /&gt;        kunnr TYPE vbpa-kunnr,&lt;br /&gt;        lifnr TYPE vbpa-lifnr,&lt;br /&gt;        pernr TYPE vbpa-pernr,&lt;br /&gt;      END OF ty_vbpa,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_lips,&lt;br /&gt;        vbeln TYPE lips-vbeln,&lt;br /&gt;        posnr TYPE lips-posnr,&lt;br /&gt;        matnr TYPE lips-matnr,&lt;br /&gt;        lfimg TYPE lips-lfimg,&lt;br /&gt;        vgbel TYPE lips-vgbel,&lt;br /&gt;        vgpos TYPE lips-vgpos,&quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;        vgtyp TYPE lips-vgtyp,&quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;      END OF ty_lips,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_vbak,&lt;br /&gt;        vbeln TYPE vbak-vbeln,&lt;br /&gt;        knumv TYPE vbak-knumv,&lt;br /&gt;      END OF ty_vbak,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_konv,&lt;br /&gt;        knumv TYPE konv-knumv,&lt;br /&gt;        kposn TYPE konv-kposn,&lt;br /&gt;        kschl TYPE konv-kschl,&lt;br /&gt;        kbetr TYPE konv-kbetr,&lt;br /&gt;        kwert TYPE konv-kwert,&lt;br /&gt;        kinak TYPE konv-kinak, &quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;      END OF ty_konv,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_kna1,&lt;br /&gt;        kunnr TYPE kna1-kunnr,&lt;br /&gt;        name1 TYPE kna1-name1,&lt;br /&gt;      END OF ty_kna1,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_pernr,&lt;br /&gt;        pernr TYPE kna1-kunnr,&lt;br /&gt;      END OF ty_pernr,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_lfa1,&lt;br /&gt;        lifnr TYPE lfa1-lifnr,&lt;br /&gt;        name1 TYPE lfa1-name1,&lt;br /&gt;      END OF ty_lfa1,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_mvke,&lt;br /&gt;        matnr TYPE mvke-matnr,&lt;br /&gt;        vkorg TYPE mvke-vkorg,&lt;br /&gt;        prodh TYPE mvke-prodh,&lt;br /&gt;      END OF ty_mvke,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_t179,&lt;br /&gt;        prodh TYPE t179-prodh,&lt;br /&gt;        vtext TYPE t179t-vtext,&lt;br /&gt;      END OF ty_t179,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_pa9001,&lt;br /&gt;        pernr TYPE pa9001-pernr,&lt;br /&gt;        dvr_com_perc   TYPE pa9001-dvr_com_perc,&lt;br /&gt;      END OF ty_pa9001,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_lfm1,&lt;br /&gt;        lifnr TYPE lfm1-lifnr,&lt;br /&gt;        ekorg TYPE lfm1-ekorg,&lt;br /&gt;        minbw TYPE lfm1-minbw,&lt;br /&gt;      END OF ty_lfm1,&lt;br /&gt;&lt;br /&gt;      BEGIN OF ty_display,&lt;br /&gt;        driverzd  TYPE likp-vbeln,&lt;br /&gt;        comision  TYPE pa9001-dvr_com_perc,&lt;br /&gt;        total     TYPE wertv12,&lt;br /&gt;        name      TYPE kna1-name1,&lt;br /&gt;        typess    TYPE t179t-vtext,&lt;br /&gt;        date      TYPE likp-lfdat,&lt;br /&gt;        number    TYPE likp-lifex,&lt;br /&gt;        tons      TYPE lips-lfimg,&lt;br /&gt;        driver    TYPE konv-kbetr,&lt;br /&gt;        extended  TYPE wertv12,&lt;br /&gt;        billing   TYPE konv-kbetr,&lt;br /&gt;        extended1 TYPE wertv12,&lt;br /&gt;        vbeln     TYPE likp-vbeln,&lt;br /&gt;        traid     TYPE likp-traid,&quot;GCC_723 EXCHENEO_F10 29.04.2009&lt;br /&gt;        kposn     type konv-kposn,&quot;GCC_723.01 EXCHENEO_F14 04.05.2009&lt;br /&gt;       END OF ty_display,&lt;br /&gt;&lt;br /&gt;       BEGIN OF ty_display2,&lt;br /&gt;          typess TYPE t179t-vtext,&lt;br /&gt;          driver TYPE wertv12,&lt;br /&gt;          truck TYPE wertv12,&lt;br /&gt;       END OF ty_display2,&lt;br /&gt;&lt;br /&gt;        BEGIN OF ty_sort,&lt;br /&gt;         spos TYPE alvdynp-sortpos,&quot;&lt;br /&gt;         fieldname TYPE slis_fieldname,&lt;br /&gt;         tabname TYPE slis_fieldname,&lt;br /&gt;         up TYPE alvdynp-sortup, &quot;&lt;br /&gt;         down TYPE alvdynp-sortdown, &quot;&lt;br /&gt;         group TYPE alvdynp-grouplevel, &quot;&lt;br /&gt;         subtot TYPE alvdynp-subtotals, &quot;&lt;br /&gt;         comp(1) TYPE c,&lt;br /&gt;         expa(1) TYPE c,&lt;br /&gt;         obligatory(1) TYPE c,&lt;br /&gt;         END OF ty_sort,&lt;br /&gt;*&gt;&gt; BEGIN  GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;        BEGIN OF ty_typess,&lt;br /&gt;         vtext  TYPE bezei40, &quot;Description&lt;br /&gt;        END OF ty_typess,&lt;br /&gt;*&lt;&lt; END  GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;&lt;br /&gt;        begin of ty_hierachy,&lt;br /&gt;           prodh type MVKE-PRODH,&lt;br /&gt;           vtext TYPE t179t-vtext,&lt;br /&gt;        end of ty_hierachy.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;* DECLARATION CONSTANT                                     *&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;CONSTANTS:&lt;br /&gt;       c_leahig(12) TYPE c VALUE &#39;S_LEASE-HIGH&#39;,&lt;br /&gt;       c_lealow(11) TYPE c VALUE &#39;S_LEASE-LOW&#39;,&lt;br /&gt;       c_drihig(12) TYPE c VALUE &#39;S_DRIVE-HIGH&#39;,&lt;br /&gt;       c_drilow(11) TYPE c VALUE &#39;S_DRIVE-LOW&#39;,&lt;br /&gt;       c_x          TYPE c VALUE &#39;X&#39;,&lt;br /&gt;       c_a          TYPE c VALUE &#39;A&#39;,&lt;br /&gt;       c_e          TYPE c VALUE &#39;E&#39;,&quot;GCC_723.01 EXCHNEO_F10 31.03.2009&lt;br /&gt;       c_off        TYPE c VALUE &#39;0&#39;,&lt;br /&gt;       c_zd(2)      TYPE c VALUE &#39;ZD&#39;,&lt;br /&gt;       c_cr(2)      TYPE c VALUE &#39;SP&#39;,&lt;br /&gt;       c_ztc1(4)    TYPE c VALUE &#39;ZTC1&#39;,&lt;br /&gt;** BEGIN GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;       c_ztc2(4)    TYPE c VALUE &#39;ZTC2&#39;,&lt;br /&gt;       c_ztc3(4)    TYPE c VALUE &#39;ZTC3&#39;,&lt;br /&gt;       c_ztc4(4)    TYPE c VALUE &#39;ZTC4&#39;,&lt;br /&gt;       c_ztc5(4)    TYPE c VALUE &#39;ZTC5&#39;,&lt;br /&gt;       c_ztc6(4)    TYPE c VALUE &#39;ZTC6&#39;,&lt;br /&gt;       c_znlc(4)    TYPE c VALUE &#39;ZNLC&#39;,&lt;br /&gt;       c_zel(3)     TYPE c VALUE &#39;ZEL&#39;,&lt;br /&gt;       c_zlf(3)     TYPE c VALUE &#39;ZLF&#39;,&lt;br /&gt;       c_zpr5(4)    TYPE c VALUE &#39;ZPR5&#39;,&lt;br /&gt;       c_zpr4(4)    TYPE c VALUE &#39;ZPR4&#39;,&lt;br /&gt;       c_zpr0(4)    TYPE c VALUE &#39;ZPR0&#39;,&lt;br /&gt;** END GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;       c_zpr1(4)    TYPE c VALUE &#39;ZPR1&#39;,&lt;br /&gt;       c_porc(1)    TYPE c VALUE &#39;%&#39;,&lt;br /&gt;       c_line(1)    TYPE c VALUE &#39;|&#39;,&lt;br /&gt;       c_save(1)           VALUE &#39;A&#39;,&lt;br /&gt;       c_otcg(4)    TYPE c VALUE &#39;OTCG&#39;,&lt;br /&gt;       C_ZLR(3)     TYPE C VALUE &#39;ZLR&#39;, &quot;GCC_723.014 EXCHNEO_F14 30.05.2009&lt;br /&gt;* Constant ALV&lt;br /&gt;       c_i_display  TYPE dd02l-tabname VALUE &#39;I_DISPLAY&#39;,&lt;br /&gt;       c_include_a  TYPE trdir-name    VALUE &#39;ZGGSDRE195_A&#39;,&lt;br /&gt;*          c_usercom    TYPE slis_formname VALUE &#39;F_USER_COMMAND&#39;,&lt;br /&gt;       c_pfestat    TYPE slis_formname VALUE &#39;F_STATUS_SET&#39;,&lt;br /&gt;       c_tabdynp    TYPE slis_tabname  VALUE &#39;I_DISPLAY&#39;,&lt;br /&gt;       c_tabdynm    TYPE slis_tabname  VALUE &#39;I_DISPALY2&#39;,&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;       c_s(1)       TYPE c             VALUE &#39;S&#39;,&lt;br /&gt;       c_h(1)       TYPE c             VALUE &#39;H&#39;,&lt;br /&gt;       c_v(1)       TYPE c             VALUE &#39;V&#39;,&lt;br /&gt;       c_diag       TYPE c             VALUE &#39;/&#39;,&lt;br /&gt;       c_dp         TYPE c             VALUE &#39;:&#39;,&lt;br /&gt;       c_f_title    TYPE slis_formname VALUE &#39;F_ALV_TITLE&#39;,&lt;br /&gt;*&gt;&gt; END   GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;       c_code       TYPE slis_formname VALUE &#39;FC01&#39;,&lt;br /&gt;*  BEGIN  GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;       c_code2      TYPE slis_formname VALUE &#39;FC02&#39;,&lt;br /&gt;*  END  GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;       c_f_user_command  TYPE slis_formname VALUE &#39;F_USER_COMMAND&#39;,&lt;br /&gt;       c_f_pf_status_set TYPE slis_formname VALUE &#39;F_PF_STATUS_SET&#39;.&lt;br /&gt;*&gt;&gt; END   GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;* DECLARATION INTERNAL TABLE AND STRUCTURE                 *&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;* STRUCTURE&lt;br /&gt;DATA: w_tvko    TYPE ty_tvko,&quot; GCC_195.99 EXCHNEO_F10 31.03.2009&lt;br /&gt;      w_likp    TYPE ty_likp,&lt;br /&gt;      w_vbpa    TYPE ty_vbpa,&lt;br /&gt;      w_pernr   TYPE ty_pernr,&lt;br /&gt;      w_lips    TYPE ty_lips,&lt;br /&gt;      w_vbak    TYPE ty_vbak,&lt;br /&gt;      w_konv    TYPE ty_konv,&lt;br /&gt;      w_kna1    TYPE ty_kna1,&lt;br /&gt;      w_lfa1    TYPE ty_lfa1,&lt;br /&gt;      w_mvke    TYPE ty_mvke,&lt;br /&gt;      w_t179    TYPE ty_t179,&lt;br /&gt;      w_pa9001  TYPE ty_pa9001,&lt;br /&gt;      w_lfm1    TYPE ty_lfm1,&lt;br /&gt;      w_display TYPE ty_display,&lt;br /&gt;*      ALV&lt;br /&gt;      w_fieldcat TYPE slis_fieldcat_alv,&lt;br /&gt;      w_sort     TYPE ty_sort,&lt;br /&gt;      w_xvariant TYPE  disvariant,&lt;br /&gt;      w_variant  TYPE disvariant,&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;*      Layout&lt;br /&gt;      w_layout   TYPE slis_layout_alv,&lt;br /&gt;*&gt;&gt; END   GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;**&gt;&gt; BEGIN GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;      w_display2 TYPE ty_display2,&lt;br /&gt;      w_typess   TYPE ty_typess,&lt;br /&gt;**&gt;&gt; END   GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;      w_hierachy TYPE ty_hierachy,&lt;br /&gt;&lt;br /&gt;* INTERNAL TABLE&lt;br /&gt;* BEGIN GCC_195.99 EXCHNEO_F10 31.03.2009&lt;br /&gt;      i_tvko    TYPE STANDARD TABLE OF ty_tvko,&lt;br /&gt;* END GCC_195.99 EXCHNEO_F10 31.03.2009&lt;br /&gt;      i_likp    TYPE STANDARD TABLE OF ty_likp,&lt;br /&gt;      i_vbpa    TYPE STANDARD TABLE OF ty_vbpa,&lt;br /&gt;      i_lips    TYPE STANDARD TABLE OF ty_lips,&lt;br /&gt;      i_vbak    TYPE STANDARD TABLE OF ty_vbak,&lt;br /&gt;      i_konv    TYPE STANDARD TABLE OF ty_konv,&lt;br /&gt;      i_kna1    TYPE STANDARD TABLE OF ty_kna1,&lt;br /&gt;      i_pernr   TYPE STANDARD TABLE OF ty_pernr,&lt;br /&gt;      i_lfa1    TYPE STANDARD TABLE OF ty_lfa1,&lt;br /&gt;      i_mvke    TYPE STANDARD TABLE OF ty_mvke,&lt;br /&gt;      i_t179    TYPE STANDARD TABLE OF ty_t179,&lt;br /&gt;      i_pa9001  TYPE STANDARD TABLE OF ty_pa9001,&lt;br /&gt;      i_lfm1    TYPE STANDARD TABLE OF ty_lfm1,&lt;br /&gt;      i_display TYPE STANDARD TABLE OF ty_display,&lt;br /&gt;**&gt;&gt; BEGIN GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;      i_display2 TYPE STANDARD TABLE OF ty_display2,&lt;br /&gt;      i_typess   TYPE STANDARD TABLE OF ty_typess,&lt;br /&gt;&lt;br /&gt;      i_hierachy TYPE STANDARD TABLE OF ty_hierachy,&lt;br /&gt;*      i_layout1   type slis_layout_alv,&lt;br /&gt;*      i_layout2   type slis_layout_alv,&lt;br /&gt;*      i_print     type slis_print_alv,&lt;br /&gt;*      i_fieldcat2 type slis_t_fieldcat_alv,&lt;br /&gt;*      i_events1   type slis_t_event,&lt;br /&gt;*      i_events2   type slis_t_event,&lt;br /&gt;**&gt;&gt; END   GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;&lt;br /&gt;* ALV&lt;br /&gt;      i_fieldcat1 TYPE slis_t_fieldcat_alv,&lt;br /&gt;      i_sort      TYPE STANDARD TABLE OF ty_sort,&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;      i_events     TYPE slis_t_event        WITH HEADER LINE,&lt;br /&gt;      i_title_alv  TYPE slis_t_listheader   WITH HEADER LINE,&lt;br /&gt;      i_footer_alv TYPE slis_t_listheader   WITH HEADER LINE.&lt;br /&gt;*&gt;&gt; END   GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;* DECLARATION VARIABLES                                    *&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;DATA:&lt;br /&gt;      v_vkorg   TYPE tvko-vkorg,&lt;br /&gt;      v_vtext   TYPE tvkot-vtext,&lt;br /&gt;      v_exit(1) TYPE c,&lt;br /&gt;      v_repid   TYPE sy-repid,&lt;br /&gt;      v_band    TYPE i.&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;* DECLARATION SELECTION SCREEN                             *&lt;br /&gt;*----------------------------------------------------------*&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;br /&gt;SELECT-OPTIONS:&lt;br /&gt;    s_comco FOR likp-vkorg OBLIGATORY.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.&lt;br /&gt;&lt;br /&gt;PARAMETER:&lt;br /&gt;    b_drive RADIOBUTTON GROUP radi USER-COMMAND fcode DEFAULT &#39;X&#39;,&lt;br /&gt;    b_lease RADIOBUTTON GROUP radi.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK b2.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS:&lt;br /&gt;  s_drive FOR vbpa-pernr,&lt;br /&gt;  s_lease FOR vbpa-lifnr.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS:&lt;br /&gt;    s_delive FOR likp-lfdat,&lt;br /&gt;    s_hierac FOR MVKE-PRODH.&quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk2 WITH FRAME TITLE text-021.&lt;br /&gt;&lt;br /&gt;PARAMETERS: p_vari TYPE disvariant-variant.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: END OF BLOCK blk2.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Rutinas&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195_B                                  *&lt;br /&gt;* Description          : The payroll driver commission report is used  *&lt;br /&gt;*                        by the payroll department so that they can do *&lt;br /&gt;*                        the commission payment freight to the         *&lt;br /&gt;*                        employees or drivers.                         *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Omar Garcia   EXCHNEO_F10                     *&lt;br /&gt;* Creation Date        : 01.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195   Transport: ECDK901199                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                      MODIFICATIONS LOG                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195_B                                  *&lt;br /&gt;* Description          : Change ALV List for ALV Grid                  *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Carlos Antonio Flores Deras - EXCHNEO_F10     *&lt;br /&gt;* Creation Date        : 12.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195.01   Transport: ECDK901199                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195_B                                  *&lt;br /&gt;* Description          : Add botton for show grand total               *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Cristina Ornelas        USER  EXCHNEO_F10     *&lt;br /&gt;* Creation Date        : 19.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195.01   Transport: ECDK901199                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195_B                                  *&lt;br /&gt;* Description          : Change  Format Report List                    *&lt;br /&gt;* Functional           : Joel Carrillo                                 *&lt;br /&gt;* Developer            : Omar Garcia - EXCHNEO_F10                     *&lt;br /&gt;* Creation Date        : 24.02.2009                                    *&lt;br /&gt;* ID Component         : GCC195                                        *&lt;br /&gt;* Requirement Number   : 195.99  ECDK901199                            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195_B                                  *&lt;br /&gt;* Description          : Create a Commission Report Copy               *&lt;br /&gt;* Functional           : Orlando Solano                                *&lt;br /&gt;* Developer            : Maria V. Guerrero - EXCHNEO_F10               *&lt;br /&gt;* Creation Date        : 29.04.2009                                    *&lt;br /&gt;* Requirement Number   : GCC_723         OT: ECDK902996                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGGSDRE195                                    *&lt;br /&gt;* Description          : Create a Commission Report Copy               *&lt;br /&gt;* Functional           : Julian Luna                                   *&lt;br /&gt;* Developer            : Erika Bandilla  - EXCHNEO_F14                 *&lt;br /&gt;* Creation Date        : 04.05.2009                                    *&lt;br /&gt;* Requirement Number   : GCC_723.01      OT: ECDK903960                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_OUTPUT_SCREEN                                          *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Call Output Screen                                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_output_screen .&lt;br /&gt;&lt;br /&gt;  IF b_drive EQ c_x.&lt;br /&gt;* Loop at Screen&lt;br /&gt;    LOOP AT SCREEN.&lt;br /&gt;* If option screen name is Lease&lt;br /&gt;      IF screen-name = c_leahig OR&lt;br /&gt;         screen-name = c_lealow.&lt;br /&gt;* Screen is disabled&lt;br /&gt;        screen-input = c_off.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;* Modify the screen&lt;br /&gt;      MODIFY SCREEN.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ELSEIF b_lease = c_x .&lt;br /&gt;&lt;br /&gt;    LOOP AT SCREEN.&lt;br /&gt;* If option screen name is Driver&lt;br /&gt;      IF screen-name = c_drilow OR&lt;br /&gt;         screen-name = c_drihig.&lt;br /&gt;* Screen is disabled&lt;br /&gt;        screen-input = c_off.&lt;br /&gt;        screen-output = c_off.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;* Modify the screen&lt;br /&gt;      MODIFY SCREEN.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OUTPUT_SCREEN&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_SELECT_DATA                                            *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Call Select Data                                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_select_data.&lt;br /&gt;* Declaration Variable Local&lt;br /&gt;  DATA: lv_pernr TYPE kunnr.&lt;br /&gt;* Clear Header&lt;br /&gt;  CLEAR: i_likp,&lt;br /&gt;         i_vbpa,&lt;br /&gt;         i_lips,&lt;br /&gt;         i_vbak,&lt;br /&gt;         i_konv,&lt;br /&gt;         i_kna1,&lt;br /&gt;         i_lfa1,&lt;br /&gt;         i_mvke,&lt;br /&gt;         i_t179,&lt;br /&gt;         i_pa9001,&lt;br /&gt;         i_lfm1.&lt;br /&gt;* Select to the table tvko&lt;br /&gt;  SELECT SINGLE vkorg&lt;br /&gt;    FROM tvko&lt;br /&gt;      INTO v_vkorg&lt;br /&gt;        WHERE vkorg IN s_comco.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;* Select to the  MSEG table&lt;br /&gt;    SELECT SINGLE vtext&lt;br /&gt;      FROM tvkot&lt;br /&gt;        INTO v_vtext&lt;br /&gt;          WHERE spras = sy-langu&lt;br /&gt;            AND vkorg = v_vkorg.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;      CLEAR v_vtext.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;* Select the LIKP Table.&lt;br /&gt;  SELECT vbeln&lt;br /&gt;         vkorg&lt;br /&gt;         lfart &quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;         lfdat&lt;br /&gt;         traid &quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;         lifex&lt;br /&gt;         knump &quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;    FROM likp&lt;br /&gt;      INTO TABLE i_likp&lt;br /&gt;        WHERE vkorg IN s_comco&lt;br /&gt;          AND lfdat IN s_delive.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;* If the option is valid Driver o lease&lt;br /&gt;    IF b_drive EQ c_x.&lt;br /&gt;* Select VBPA with PARVW = ZD&lt;br /&gt;      SELECT vbeln&lt;br /&gt;             parvw&lt;br /&gt;             kunnr&lt;br /&gt;             lifnr&lt;br /&gt;             pernr&lt;br /&gt;        FROM vbpa&lt;br /&gt;          INTO TABLE i_vbpa&lt;br /&gt;            FOR ALL ENTRIES IN i_likp&lt;br /&gt;              WHERE vbeln = i_likp-vbeln&lt;br /&gt;                AND parvw = c_zd&lt;br /&gt;                AND pernr IN s_drive.&lt;br /&gt;*             AND pernr &lt;= s_drive-high.&lt;br /&gt;      IF sy-subrc EQ 0 .&lt;br /&gt;&lt;br /&gt;* Select the PA9001 Table.&lt;br /&gt;        SELECT pernr&lt;br /&gt;               dvr_com_perc&lt;br /&gt;          FROM pa9001&lt;br /&gt;            INTO TABLE i_pa9001&lt;br /&gt;              FOR ALL ENTRIES IN i_vbpa&lt;br /&gt;                WHERE pernr = i_vbpa-pernr.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;* It orders the table internal i_pa9001&lt;br /&gt;          SORT i_pa9001&lt;br /&gt;            BY pernr.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;* Loop at table internal i_vbpa&lt;br /&gt;        LOOP AT i_vbpa INTO w_vbpa.&lt;br /&gt;*Call Function converts any number into a string fill with zeroes-right&lt;br /&gt;          CALL FUNCTION &#39;CONVERSION_EXIT_ALPHA_INPUT&#39;&lt;br /&gt;            EXPORTING&lt;br /&gt;              input  = w_vbpa-pernr&lt;br /&gt;            IMPORTING&lt;br /&gt;              output = lv_pernr.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc = 0.&lt;br /&gt;* Assign Varibale to Header&lt;br /&gt;            w_pernr-pernr = lv_pernr.&lt;br /&gt;&lt;br /&gt;            APPEND w_pernr TO i_pernr.&lt;br /&gt;* Clear Header and Variable&lt;br /&gt;            CLEAR: w_pernr,&lt;br /&gt;                  lv_pernr.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ENDLOOP.&lt;br /&gt;* It orders the table internal i_pernr&lt;br /&gt;        SORT i_pernr&lt;br /&gt;         BY pernr.&lt;br /&gt;* Delete the register de table internal i_pernr&lt;br /&gt;        DELETE ADJACENT DUPLICATES FROM i_pernr&lt;br /&gt;        COMPARING pernr.&lt;br /&gt;* Select the KNA1 Table.&lt;br /&gt;        SELECT kunnr&lt;br /&gt;               name1&lt;br /&gt;           FROM kna1&lt;br /&gt;            INTO TABLE i_kna1&lt;br /&gt;              FOR ALL ENTRIES IN i_pernr&lt;br /&gt;                WHERE kunnr = i_pernr-pernr.&lt;br /&gt;        IF sy-subrc NE 0.&lt;br /&gt;          CLEAR i_kna1.&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ELSEIF b_lease EQ c_x.&lt;br /&gt;* Select VBPA with PARVW = CR&lt;br /&gt;      SELECT vbeln&lt;br /&gt;             parvw&lt;br /&gt;             kunnr&lt;br /&gt;             lifnr&lt;br /&gt;             pernr&lt;br /&gt;        FROM vbpa&lt;br /&gt;          INTO TABLE i_vbpa&lt;br /&gt;            FOR ALL ENTRIES IN i_likp&lt;br /&gt;              WHERE vbeln = i_likp-vbeln&lt;br /&gt;                AND parvw = c_cr&lt;br /&gt;                AND lifnr IN s_lease.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;* Select the LFA1 Table.&lt;br /&gt;        SELECT lifnr&lt;br /&gt;               name1&lt;br /&gt;          FROM lfa1&lt;br /&gt;            INTO TABLE i_lfa1&lt;br /&gt;              FOR ALL ENTRIES IN i_vbpa&lt;br /&gt;                WHERE lifnr = i_vbpa-lifnr.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;          SORT i_lfa1&lt;br /&gt;            BY lifnr.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;* Select the LFM1 Table.&lt;br /&gt;        SELECT lifnr&lt;br /&gt;               ekorg&lt;br /&gt;               minbw&lt;br /&gt;          FROM lfm1&lt;br /&gt;            INTO TABLE i_lfm1&lt;br /&gt;              FOR ALL ENTRIES IN i_vbpa&lt;br /&gt;                WHERE lifnr = i_vbpa-lifnr&lt;br /&gt;                  AND ekorg = c_otcg. &quot;&#39;OTCG&#39;.&lt;br /&gt;*                  AND sperm = c_x.&quot;&#39;X&#39;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;* It orders the table internal i_lfm1&lt;br /&gt;          SORT i_lfm1&lt;br /&gt;            BY lifnr.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;* Select the LIPS Table.&lt;br /&gt;    SELECT vbeln&lt;br /&gt;           posnr&lt;br /&gt;           matnr&lt;br /&gt;           lfimg&lt;br /&gt;           vgbel&lt;br /&gt;           vgpos &quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;           vgtyp &quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;      FROM lips&lt;br /&gt;        INTO TABLE i_lips&lt;br /&gt;          FOR ALL ENTRIES IN i_likp&lt;br /&gt;            WHERE vbeln = i_likp-vbeln.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;* Select the VBAK Table.&lt;br /&gt;      SELECT vbeln&lt;br /&gt;             knumv&lt;br /&gt;        FROM vbak&lt;br /&gt;          INTO TABLE i_vbak&lt;br /&gt;            FOR ALL ENTRIES IN i_lips&lt;br /&gt;              WHERE vbeln = i_lips-vgbel.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;* Select the KONV Table.&lt;br /&gt;        SELECT knumv&lt;br /&gt;               kposn&lt;br /&gt;               kschl&lt;br /&gt;               kbetr&lt;br /&gt;               kwert&lt;br /&gt;               kinak &quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;          FROM konv&lt;br /&gt;            INTO TABLE i_konv&lt;br /&gt;              FOR ALL ENTRIES IN i_vbak&lt;br /&gt;                WHERE knumv = i_vbak-knumv.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc &lt;&gt; 0 .&lt;br /&gt;          CLEAR: i_konv.&lt;br /&gt;        ENDIF.&lt;br /&gt;* Select the KONV Table.&lt;br /&gt;        SELECT knumv&lt;br /&gt;               kposn&lt;br /&gt;               kschl&lt;br /&gt;               kbetr&lt;br /&gt;               kwert&lt;br /&gt;               kinak &quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;          FROM konv&lt;br /&gt;            APPENDING TABLE i_konv&lt;br /&gt;              FOR ALL ENTRIES IN i_likp&lt;br /&gt;                WHERE knumv = i_likp-knump.&lt;br /&gt;&lt;br /&gt;*  BEGIN GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;*          DELETE i_konv WHERE kschl NE c_ztc1               &quot;&#39;ZTC1&#39;&lt;br /&gt;*                          AND kschl NE c_zpr1.              &quot;&#39;ZPR1&#39;.&lt;br /&gt;&lt;br /&gt;*          DELETE i_konv WHERE kschl NE c_ztc1&lt;br /&gt;*                           or kschl ne c_ztc2&lt;br /&gt;*                           or kschl ne c_ztc3&lt;br /&gt;*                           or kschl ne c_ztc4&lt;br /&gt;*                           or kschl ne c_ztc5&lt;br /&gt;*                           or kschl ne c_ztc6&lt;br /&gt;*                           or kschl ne c_zpr0&lt;br /&gt;*                           or kschl NE c_zpr1.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*  END GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;          SORT i_konv&lt;br /&gt;            BY knumv.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;*        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;* Select the MVKE Table.&lt;br /&gt;      SELECT matnr&lt;br /&gt;             vkorg&lt;br /&gt;             prodh&lt;br /&gt;        FROM mvke&lt;br /&gt;          INTO TABLE i_mvke&lt;br /&gt;            FOR ALL ENTRIES IN i_lips&lt;br /&gt;              WHERE matnr = i_lips-matnr.&lt;br /&gt;*                AND vkorg = w_likp-vkorg.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;* Select the T179 Table.&lt;br /&gt;        SELECT prodh&lt;br /&gt;               vtext&lt;br /&gt;          FROM t179t&lt;br /&gt;            INTO TABLE i_t179&lt;br /&gt;              FOR ALL ENTRIES IN i_mvke&lt;br /&gt;                WHERE prodh = i_mvke-prodh&lt;br /&gt;                  AND spras = sy-langu.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;* It orders the table internal i_t179&lt;br /&gt;          SORT i_t179&lt;br /&gt;            BY prodh.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_SELECT_DATA&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_READ_TABLES                                            *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*     Call Read Tables                                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_read_tables.&lt;br /&gt;&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;* BEGIN GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;  DATA: lv_ztc5 TYPE konv-kwert,&lt;br /&gt;        lv_ztc2 TYPE konv-kwert,&lt;br /&gt;        lv_ztc4 TYPE konv-kwert,&lt;br /&gt;        lv_ztc1 TYPE konv-kwert,&lt;br /&gt;        lv_ext TYPE konv-kwert,&lt;br /&gt;        lv_driv TYPE konv-kbetr.&lt;br /&gt;* END GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Clear Headers&lt;br /&gt;  CLEAR: w_likp,&lt;br /&gt;         w_vbpa,&lt;br /&gt;         w_lips,&lt;br /&gt;         w_vbak,&lt;br /&gt;         w_konv,&lt;br /&gt;         w_kna1,&lt;br /&gt;         w_lfa1,&lt;br /&gt;         w_mvke,&lt;br /&gt;         w_t179,&lt;br /&gt;         w_pa9001,&lt;br /&gt;         w_lfm1.&lt;br /&gt;* It orders the table internal i_vbpa&lt;br /&gt;  SORT i_vbpa&lt;br /&gt;  BY vbeln.&lt;br /&gt;* It orders the table internal i_kna1&lt;br /&gt;  SORT i_kna1&lt;br /&gt;  BY kunnr.&lt;br /&gt;* It orders the table internal i_lfa1&lt;br /&gt;  SORT i_lfa1&lt;br /&gt;  BY lifnr.&lt;br /&gt;* It orders the table internal i_lips&lt;br /&gt;  SORT i_lips&lt;br /&gt;  BY vbeln&lt;br /&gt;     vgpos.&lt;br /&gt;* It orders the table internal i_vbak&lt;br /&gt;  SORT i_vbak&lt;br /&gt;  BY vbeln.&lt;br /&gt;* It orders the table internal i_konv&lt;br /&gt;  SORT  i_konv&lt;br /&gt;  BY kschl&lt;br /&gt;     knumv&lt;br /&gt;     kposn.&lt;br /&gt;* It orders the table internal i_mvke&lt;br /&gt;  SORT i_mvke&lt;br /&gt;  BY matnr&lt;br /&gt;     vkorg.&lt;br /&gt;* It orders the table internal i_t179&lt;br /&gt;  SORT i_t179&lt;br /&gt;  BY prodh.&lt;br /&gt;  SORT i_likp&lt;br /&gt;   BY vbeln.&lt;br /&gt;&lt;br /&gt;SORT i_hierachy&lt;br /&gt;  BY vtext.&lt;br /&gt;&lt;br /&gt;SORT i_lfm1&lt;br /&gt;  by lifnr&lt;br /&gt;     ekorg.&lt;br /&gt;&lt;br /&gt;* BEGIN GCC_723.01 EXCHENEO_F14 04.05.2009&lt;br /&gt;* LOOP i_vbpa&lt;br /&gt;*  LOOP AT i_vbpa INTO w_vbpa .&lt;br /&gt;&lt;br /&gt;  DATA: lv_pos TYPE lips-posnr.&lt;br /&gt;&lt;br /&gt;  LOOP AT i_lips INTO w_lips.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_vbpa&lt;br /&gt;      INTO w_vbpa&lt;br /&gt;        WITH KEY vbeln = w_lips-vbeln.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;      lv_pos = w_lips-posnr.&lt;br /&gt;* END GCC_723.01 EXCHENEO_F14 04.05.2009&lt;br /&gt;&lt;br /&gt;      READ TABLE i_likp INTO w_likp&lt;br /&gt;         WITH KEY vbeln = w_vbpa-vbeln&lt;br /&gt;                BINARY SEARCH.&lt;br /&gt;      IF sy-subrc EQ 0 .&lt;br /&gt;* Move Date and ticket to table final&lt;br /&gt;        MOVE:&lt;br /&gt;            w_likp-vbeln TO w_display-vbeln, &quot; Delivery Number&lt;br /&gt;            w_likp-lfdat TO w_display-date,   &quot;Date&lt;br /&gt;            w_likp-lifex TO w_display-number, &quot;Ticket&lt;br /&gt;*  BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;            w_likp-traid TO w_display-traid. &quot;Truck Number&lt;br /&gt;*  END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      IF b_drive EQ c_x.&lt;br /&gt;        &quot; Driver Number&lt;br /&gt;        w_display-driverzd = w_vbpa-pernr.&lt;br /&gt;* Read Table i_kna1&lt;br /&gt;        READ TABLE i_kna1&lt;br /&gt;         INTO w_kna1&lt;br /&gt;          WITH KEY kunnr+2(8) = w_vbpa-pernr&lt;br /&gt;            BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc EQ 0.&lt;br /&gt;          &quot; Name&lt;br /&gt;          w_display-name = w_kna1-name1.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;* BEGIN GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;        &quot; Hierachy to Exclude from driver commission.&lt;br /&gt;*        IF s_hierac-low EQ space AND&lt;br /&gt;*           s_hierac-high EQ space.&lt;br /&gt;** END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;*&lt;br /&gt;*        IF lv_prodh EQ 1.&lt;br /&gt;&lt;br /&gt;* END GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;* Read Table i_pa9001&lt;br /&gt;        READ TABLE i_pa9001&lt;br /&gt;         INTO w_pa9001&lt;br /&gt;           WITH KEY pernr = w_vbpa-pernr&lt;br /&gt;             BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;          &quot; Comission&lt;br /&gt;          w_display-comision = w_pa9001-dvr_com_perc.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;*        ELSE.&lt;br /&gt;*          &quot; Comission&lt;br /&gt;*          w_display-comision = space.&lt;br /&gt;*        ENDIF.&lt;br /&gt;** END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;&lt;br /&gt;      ELSEIF b_lease EQ c_x.&lt;br /&gt;        &quot; Driver Number&lt;br /&gt;        w_display-driverzd = w_vbpa-lifnr.&lt;br /&gt;* Read Table i_lfa1&lt;br /&gt;        READ TABLE i_lfa1&lt;br /&gt;         INTO w_lfa1&lt;br /&gt;           WITH KEY lifnr = w_vbpa-lifnr&lt;br /&gt;            BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc EQ 0.&lt;br /&gt;          &quot; Name&lt;br /&gt;          w_display-name = w_lfa1-name1.&lt;br /&gt;        ENDIF.&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;* BEGIN GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;        &quot; Hierachy to Exclude from driver commission.&lt;br /&gt;*        IF s_hierac-low EQ space AND&lt;br /&gt;*           s_hierac-high EQ space.&lt;br /&gt;** END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;&lt;br /&gt;*        IF lv_prodh EQ 1.&lt;br /&gt;* END GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Read Table i_lfm1&lt;br /&gt;        READ TABLE i_lfm1&lt;br /&gt;          INTO w_lfm1&lt;br /&gt;            WITH KEY lifnr = w_vbpa-lifnr&lt;br /&gt;                     ekorg = c_otcg &quot;&#39;OTCG&#39;&lt;br /&gt;              BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;          &quot; Comission&lt;br /&gt;          w_display-comision = w_lfm1-minbw.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;* BEGIN GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;*        ELSE.&lt;br /&gt;*          &quot; Comission&lt;br /&gt;*          w_display-comision = space.&lt;br /&gt;*        ENDIF.&lt;br /&gt;** END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;&lt;br /&gt;* END GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;* BEGIN GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;      IF w_likp-lfart = c_znlc &quot;ZNLC&lt;br /&gt;        OR w_likp-lfart = c_zel. &quot;ZEL&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;* BEGIN GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;&lt;br /&gt;*        OR w_likp-lfart = c_zlf &quot;ZLF&lt;br /&gt;*        OR w_likp-lfart = c_zlr. &quot; ZLR &quot;GCC_195.04 EXCHNEO_F14 30.05.2009&lt;br /&gt;&lt;br /&gt;* END GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;* END GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;&lt;br /&gt;* Read Table i_lips&lt;br /&gt;        CLEAR w_lips.&lt;br /&gt;        READ TABLE i_lips&lt;br /&gt;          INTO w_lips&lt;br /&gt;            WITH KEY vbeln = w_likp-vbeln&lt;br /&gt;                     vgpos = lv_pos &quot;GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;              BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc EQ 0.&lt;br /&gt;          IF w_lips-vgtyp = c_h.&lt;br /&gt;&lt;br /&gt;            w_lips-lfimg = w_lips-lfimg * -1.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;          MOVE:&lt;br /&gt;               w_lips-lfimg TO w_display-tons.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Read Table i_vbak&lt;br /&gt;&lt;br /&gt;          READ TABLE i_vbak&lt;br /&gt;            INTO w_vbak&lt;br /&gt;              WITH KEY vbeln = w_lips-vgbel&lt;br /&gt;                BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;* BEGIN GCC_195.04 EXCHNEO_F14 30.05.2009&lt;br /&gt;*        IF sy-subrc &lt;&gt; 0.&lt;br /&gt;          IF sy-subrc = 0.&lt;br /&gt;* END   GCC_195.04 EXCHNEO_F14 30.05.2009&lt;br /&gt;&lt;br /&gt;*            READ TABLE i_konv&lt;br /&gt;*              INTO w_konv&lt;br /&gt;** BEGIN GCC_195.04 EXCHNEO_F14 30.05.2009&lt;br /&gt;*              WITH KEY knumv = w_likp-knump&lt;br /&gt;**              WITH KEY knumv = w_VBAK-KNUMV&lt;br /&gt;** END   GCC_195.04 EXCHNEO_F14 30.05.2009&lt;br /&gt;*                       kposn = lv_pos.&lt;br /&gt;*&lt;br /&gt;**IF sy-subrc = 0.&lt;br /&gt;*            IF sy-subrc &lt;&gt; 0.&lt;br /&gt;*              CLEAR w_konv.&lt;br /&gt;*&lt;br /&gt;*            ENDIF.&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;*          READ TABLE i_konv&lt;br /&gt;*            INTO w_konv&lt;br /&gt;*              with key knumv&lt;br /&gt;&lt;br /&gt;          LOOP AT  i_konv&lt;br /&gt;             INTO  w_konv&lt;br /&gt;             WHERE (   knumv = w_vbak-knumv&lt;br /&gt;                    OR knumv = w_likp-knump )&lt;br /&gt;               AND &quot;erika bandilla&lt;br /&gt;* BEGIN GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;**                 kposn = w_lips-posnr.&lt;br /&gt;                   kposn = lv_pos. &quot;w_lips-vgpos.&lt;br /&gt;&lt;br /&gt;*            IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;* END GCC_723 EXCHNEO_F14 04.05.2009&lt;br /&gt;&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;            IF w_lips-vgtyp = c_h.&lt;br /&gt;&lt;br /&gt;              w_konv-kbetr = w_konv-kbetr * -1.&lt;br /&gt;              w_konv-kwert = w_konv-kwert * -1.&lt;br /&gt;*        endif. &quot; erika bandilla    &quot;angel urenda&lt;br /&gt;** BEGIN GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;*                IF w_konv-kschl = c_ztc1&lt;br /&gt;*                  OR w_konv-kschl = c_ztc2&lt;br /&gt;*                  OR w_konv-kschl = c_ztc3&lt;br /&gt;*                  OR w_konv-kschl = c_ztc4&lt;br /&gt;*                  OR w_konv-kschl = c_ztc5&lt;br /&gt;*                  OR w_konv-kschl = c_ztc6.&lt;br /&gt;*&lt;br /&gt;**  BEGIN GCC_723.01 EXCHNEO_F14 28.05.2009&lt;br /&gt;*                  w_konv-kbetr = w_konv-kbetr + w_konv-kbetr.&lt;br /&gt;**  BEGIN GCC_723.01 EXCHNEO_F14 28.05.2009&lt;br /&gt;&lt;br /&gt;*               ENDIF. &quot; erika bandilla&lt;br /&gt;&lt;br /&gt;            ENDIF. &quot; erika bandilla&lt;br /&gt;** END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;&lt;br /&gt;            IF w_konv-kschl = c_ztc1.&lt;br /&gt;&lt;br /&gt;              CLEAR: lv_ztc1,&lt;br /&gt;                     lv_ext,&lt;br /&gt;                     lv_driv.&lt;br /&gt;&lt;br /&gt;              lv_ztc1 = w_konv-kwert.&lt;br /&gt;              lv_driv = w_konv-kbetr.&lt;br /&gt;&lt;br /&gt;              CLEAR w_konv.&lt;br /&gt;              READ TABLE i_konv&lt;br /&gt;               INTO w_konv&lt;br /&gt;                 WITH KEY kschl = c_ztc3&lt;br /&gt;                          knumv = w_vbak-knumv&lt;br /&gt;                          kposn = lv_pos.&lt;br /&gt;&lt;br /&gt;              IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;                lv_ext = w_konv-kwert + lv_ztc1.&lt;br /&gt;*                lv_driv = w_konv-kbetr. &quot; + lv_driv.&lt;br /&gt;&lt;br /&gt;                MOVE: lv_ext TO w_display-extended.&lt;br /&gt;                MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;              ELSE.&lt;br /&gt;&lt;br /&gt;                MOVE: lv_ztc1 TO w_display-extended.&lt;br /&gt;                MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;              ENDIF.&lt;br /&gt;            ENDIF.&lt;br /&gt;&lt;br /&gt;            IF w_konv-kschl = c_ztc4.&lt;br /&gt;&lt;br /&gt;              CLEAR lv_ztc4.&lt;br /&gt;&lt;br /&gt;              lv_ztc4 = w_konv-kwert.&lt;br /&gt;              lv_driv = w_konv-kbetr.&lt;br /&gt;&lt;br /&gt;              CLEAR w_konv.&lt;br /&gt;              READ TABLE i_konv&lt;br /&gt;               INTO w_konv&lt;br /&gt;                 WITH KEY kschl = c_ztc6&lt;br /&gt;                          knumv = w_vbak-knumv&lt;br /&gt;                          kposn = lv_pos.&lt;br /&gt;&lt;br /&gt;              IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;                lv_ext = w_konv-kwert + lv_ztc4.&lt;br /&gt;                lv_driv = w_konv-kbetr.&quot; + lv_driv.&lt;br /&gt;                MOVE: lv_ext TO w_display-extended.&lt;br /&gt;                MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;              ELSE.&lt;br /&gt;&lt;br /&gt;                MOVE: lv_ztc4 TO w_display-extended.&lt;br /&gt;                MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;              ENDIF.&lt;br /&gt;            ENDIF.&lt;br /&gt;&lt;br /&gt;            IF w_konv-kschl = c_ztc2.&lt;br /&gt;&lt;br /&gt;              CLEAR lv_ztc2.&lt;br /&gt;&lt;br /&gt;              lv_ztc2 = w_konv-kwert.&lt;br /&gt;              lv_driv = w_konv-kbetr.&lt;br /&gt;&lt;br /&gt;              CLEAR w_konv.&lt;br /&gt;              READ TABLE i_konv&lt;br /&gt;               INTO w_konv&lt;br /&gt;                 WITH KEY kschl = c_ztc3&lt;br /&gt;                          knumv = w_vbak-knumv&lt;br /&gt;                          kposn = lv_pos.&lt;br /&gt;&lt;br /&gt;              IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;                lv_ext = w_konv-kwert + lv_ztc2.&lt;br /&gt;                lv_driv = w_konv-kbetr.&quot; + lv_driv.&lt;br /&gt;                MOVE: lv_ext TO w_display-extended.&lt;br /&gt;                MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;              ELSE.&lt;br /&gt;&lt;br /&gt;                MOVE: lv_ztc2 TO w_display-extended.&lt;br /&gt;                MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;              ENDIF.&lt;br /&gt;            ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            IF w_konv-kschl = c_ztc5.&lt;br /&gt;&lt;br /&gt;              CLEAR lv_ztc5.&lt;br /&gt;&lt;br /&gt;              lv_ztc5 = w_konv-kwert.&lt;br /&gt;              lv_driv = w_konv-kbetr.&lt;br /&gt;&lt;br /&gt;              CLEAR w_konv.&lt;br /&gt;              READ TABLE i_konv&lt;br /&gt;               INTO w_konv&lt;br /&gt;                 WITH KEY kschl = c_ztc6&lt;br /&gt;                          knumv = w_vbak-knumv&lt;br /&gt;                          kposn = lv_pos.&lt;br /&gt;&lt;br /&gt;              IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;                lv_ext = w_konv-kwert + lv_ztc5.&lt;br /&gt;                lv_driv = w_konv-kbetr.&quot; + lv_driv.&lt;br /&gt;                MOVE: lv_ext TO w_display-extended.&lt;br /&gt;                MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;              ELSE.&lt;br /&gt;&lt;br /&gt;                MOVE: lv_ztc5 TO w_display-extended.&lt;br /&gt;                MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;              ENDIF.&lt;br /&gt;            ENDIF.&lt;br /&gt;&lt;br /&gt;* END GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;&lt;br /&gt;* If option kschl = ZPR1&lt;br /&gt;            IF w_konv-kschl = c_zpr1&lt;br /&gt;* BEGIN GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;              OR w_konv-kschl = c_zpr0&lt;br /&gt;              OR w_konv-kschl = c_zpr4&lt;br /&gt;              OR w_konv-kschl = c_zpr5&lt;br /&gt;              AND w_konv-kinak &lt;&gt; c_x.&lt;br /&gt;*END GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;&lt;br /&gt;* Move rate to table final&lt;br /&gt;              MOVE:&lt;br /&gt;                  w_konv-kbetr TO w_display-billing,&lt;br /&gt;                  w_konv-kwert TO w_display-extended1.&lt;br /&gt;&lt;br /&gt;            ENDIF.&lt;br /&gt;&lt;br /&gt;*            ENDIF.&lt;br /&gt;          ENDLOOP.&lt;br /&gt;&lt;br /&gt;*        ENDIF. &quot;if sy-subrc&lt;br /&gt;&lt;br /&gt;*      ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;****************************************************************&lt;br /&gt;        ENDIF.&lt;br /&gt;      ENDIF.&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;* BEGIN GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;&lt;br /&gt;      IF w_likp-lfart = c_zlf  OR&quot;ZLF&lt;br /&gt;         w_likp-lfart = c_zlr. &quot; ZLR&lt;br /&gt;&lt;br /&gt;        IF w_lips-vgtyp = c_h.&lt;br /&gt;&lt;br /&gt;          w_lips-lfimg = w_lips-lfimg * -1.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;        MOVE:&lt;br /&gt;             w_lips-lfimg TO w_display-tons.&lt;br /&gt;&lt;br /&gt;* Read Table i_vbak&lt;br /&gt;        READ TABLE i_vbak&lt;br /&gt;          INTO w_vbak&lt;br /&gt;            WITH KEY vbeln = w_lips-vgbel&lt;br /&gt;              BINARY SEARCH.&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;        LOOP AT  i_konv&lt;br /&gt;           INTO  w_konv&lt;br /&gt;           WHERE (   knumv = w_vbak-knumv&lt;br /&gt;                  OR knumv = w_likp-knump )&lt;br /&gt;             AND     kposn = w_lips-vgpos.&lt;br /&gt;&lt;br /&gt;          IF w_lips-vgtyp = c_h.&lt;br /&gt;&lt;br /&gt;            w_konv-kbetr = w_konv-kbetr * -1.&lt;br /&gt;            w_konv-kwert = w_konv-kwert * -1.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;          IF w_konv-kschl = c_ztc1.&lt;br /&gt;&lt;br /&gt;            CLEAR: lv_ztc1,&lt;br /&gt;                   lv_ext,&lt;br /&gt;                   lv_driv.&lt;br /&gt;&lt;br /&gt;            lv_ztc1 = w_konv-kwert.&lt;br /&gt;            lv_driv = w_konv-kbetr.&lt;br /&gt;&lt;br /&gt;            CLEAR w_konv.&lt;br /&gt;            READ TABLE i_konv&lt;br /&gt;             INTO w_konv&lt;br /&gt;               WITH KEY kschl = c_ztc3&lt;br /&gt;                        knumv = w_vbak-knumv&lt;br /&gt;                        kposn = w_lips-vgpos.&lt;br /&gt;&lt;br /&gt;            IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;              lv_ext = w_konv-kwert + lv_ztc1.&lt;br /&gt;&lt;br /&gt;              MOVE: lv_ext TO w_display-extended.&lt;br /&gt;              MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;            ELSE.&lt;br /&gt;&lt;br /&gt;              MOVE: lv_ztc1 TO w_display-extended.&lt;br /&gt;              MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;            ENDIF.&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;          IF w_konv-kschl = c_ztc4.&lt;br /&gt;&lt;br /&gt;            CLEAR lv_ztc4.&lt;br /&gt;&lt;br /&gt;            lv_ztc4 = w_konv-kwert.&lt;br /&gt;            lv_driv = w_konv-kbetr.&lt;br /&gt;&lt;br /&gt;            CLEAR w_konv.&lt;br /&gt;            READ TABLE i_konv&lt;br /&gt;             INTO w_konv&lt;br /&gt;               WITH KEY kschl = c_ztc6&lt;br /&gt;                        knumv = w_vbak-knumv&lt;br /&gt;                        kposn = w_lips-vgpos.&lt;br /&gt;&lt;br /&gt;            IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;              lv_ext = w_konv-kwert + lv_ztc4.&lt;br /&gt;              lv_driv = w_konv-kbetr.&lt;br /&gt;              MOVE: lv_ext TO w_display-extended.&lt;br /&gt;              MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;            ELSE.&lt;br /&gt;&lt;br /&gt;              MOVE: lv_ztc4 TO w_display-extended.&lt;br /&gt;              MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;            ENDIF.&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;          IF w_konv-kschl = c_ztc2.&lt;br /&gt;&lt;br /&gt;            CLEAR lv_ztc2.&lt;br /&gt;&lt;br /&gt;            lv_ztc2 = w_konv-kwert.&lt;br /&gt;            lv_driv = w_konv-kbetr.&lt;br /&gt;&lt;br /&gt;            CLEAR w_konv.&lt;br /&gt;            READ TABLE i_konv&lt;br /&gt;             INTO w_konv&lt;br /&gt;               WITH KEY kschl = c_ztc3&lt;br /&gt;                        knumv = w_vbak-knumv&lt;br /&gt;                        kposn = w_lips-vgpos.&lt;br /&gt;&lt;br /&gt;            IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;              lv_ext = w_konv-kwert + lv_ztc2.&lt;br /&gt;              lv_driv = w_konv-kbetr.&lt;br /&gt;              MOVE: lv_ext TO w_display-extended.&lt;br /&gt;              MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;            ELSE.&lt;br /&gt;&lt;br /&gt;              MOVE: lv_ztc2 TO w_display-extended.&lt;br /&gt;              MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;            ENDIF.&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;          IF w_konv-kschl = c_ztc5.&lt;br /&gt;&lt;br /&gt;            CLEAR lv_ztc5.&lt;br /&gt;&lt;br /&gt;            lv_ztc5 = w_konv-kwert.&lt;br /&gt;            lv_driv = w_konv-kbetr.&lt;br /&gt;&lt;br /&gt;            CLEAR w_konv.&lt;br /&gt;            READ TABLE i_konv&lt;br /&gt;             INTO w_konv&lt;br /&gt;               WITH KEY kschl = c_ztc6&lt;br /&gt;                        knumv = w_vbak-knumv&lt;br /&gt;                        kposn = w_lips-vgpos.&lt;br /&gt;&lt;br /&gt;            IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;              lv_ext = w_konv-kwert + lv_ztc5.&lt;br /&gt;              lv_driv = w_konv-kbetr.&lt;br /&gt;              MOVE: lv_ext TO w_display-extended.&lt;br /&gt;              MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;            ELSE.&lt;br /&gt;&lt;br /&gt;              MOVE: lv_ztc5 TO w_display-extended.&lt;br /&gt;              MOVE: lv_driv TO w_display-driver.&lt;br /&gt;&lt;br /&gt;            ENDIF.&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;* If option kschl = ZPR1&lt;br /&gt;          IF w_konv-kschl = c_zpr1&lt;br /&gt;            OR w_konv-kschl = c_zpr0&lt;br /&gt;            OR w_konv-kschl = c_zpr4&lt;br /&gt;            OR w_konv-kschl = c_zpr5&lt;br /&gt;            AND w_konv-kinak &lt;&gt; c_x.&lt;br /&gt;&lt;br /&gt;* Move rate to table final&lt;br /&gt;            MOVE:&lt;br /&gt;                w_konv-kbetr TO w_display-billing,&lt;br /&gt;                w_konv-kwert TO w_display-extended1.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ENDLOOP.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;* END GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;&lt;br /&gt;* Read Table i_mvke&lt;br /&gt;      READ TABLE i_mvke&lt;br /&gt;        INTO w_mvke&lt;br /&gt;          WITH KEY matnr = w_lips-matnr&lt;br /&gt;                   vkorg = w_likp-vkorg&lt;br /&gt;          BINARY SEARCH.&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;* Read Table i_t179&lt;br /&gt;        READ TABLE i_t179&lt;br /&gt;          INTO w_t179&lt;br /&gt;            WITH KEY prodh = w_mvke-prodh&lt;br /&gt;            BINARY SEARCH.&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;* Move type to table final&lt;br /&gt;          MOVE:&lt;br /&gt;                w_t179-vtext TO w_display-typess,&lt;br /&gt;                w_t179-vtext TO w_hierachy-vtext.&lt;br /&gt;                w_hierachy-prodh = w_mvke-prodh.&lt;br /&gt;        ENDIF.&lt;br /&gt;      ENDIF.&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;*    w_display-total = w_display-comision * w_display-extended.&lt;br /&gt;&lt;br /&gt;*&gt;&gt; END   GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;      w_display-total = ( w_display-comision * w_display-extended )&lt;br /&gt;                        / 100.&lt;br /&gt;&lt;br /&gt;*&gt;&gt; END   GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;      APPEND w_display TO i_display.&lt;br /&gt;      APPEND w_hierachy TO i_hierachy.&lt;br /&gt;      CLEAR w_display.&lt;br /&gt;* BEGIN GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;      CLEAR lv_ext.&lt;br /&gt;      CLEAR lv_driv.&lt;br /&gt;      CLEAR lv_ztc1.&lt;br /&gt;      CLEAR lv_ztc2.&lt;br /&gt;      CLEAR lv_ztc4.&lt;br /&gt;      CLEAR: lv_ztc5.&lt;br /&gt;      PERFORM f_clear_headers.&lt;br /&gt;* END GCC_723.01 EXCHNEO_F14 04.05.2009&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;* BEGIN GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;&lt;br /&gt;  IF s_hierac[] IS NOT INITIAL.&lt;br /&gt;    DELETE i_hierachy&lt;br /&gt;           WHERE prodh NOT IN s_hierac.&lt;br /&gt;&lt;br /&gt;    DELETE ADJACENT DUPLICATES FROM i_hierachy&lt;br /&gt;               COMPARING ALL FIELDS.&lt;br /&gt;&lt;br /&gt;    DATA: lv_cont TYPE i.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_display&lt;br /&gt;       INTO w_display.&lt;br /&gt;&lt;br /&gt;      lv_cont = lv_cont + 1.&lt;br /&gt;&lt;br /&gt;      READ TABLE i_hierachy&lt;br /&gt;         INTO w_hierachy&lt;br /&gt;        WITH KEY vtext = w_display-typess&lt;br /&gt;          BINARY SEARCH.&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        w_display-comision = space.&lt;br /&gt;        w_display-total = w_display-extended.&lt;br /&gt;&lt;br /&gt;        MODIFY i_display FROM w_display&lt;br /&gt;                        INDEX lv_cont&lt;br /&gt;                 TRANSPORTING comision&lt;br /&gt;                              total.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    CLEAR w_display.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* END GCC_723.02 EXCHNEO_F07 10.06.2009&lt;br /&gt;*&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_READ_TABLES&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_USER_COMMAND                                           *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       User comand                                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_UCOMM     Function code                                    *&lt;br /&gt;*      --&gt;P_SELFIELD  Information cursor position ALV                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_user_command&lt;br /&gt;   USING  p_ucomm     LIKE sy-ucomm&lt;br /&gt;          p_selfield  TYPE slis_selfield.&lt;br /&gt;&lt;br /&gt;* Generate list print for totals&lt;br /&gt;  IF p_ucomm EQ c_code OR       &quot; &amp;PRNT&lt;br /&gt;     p_ucomm EQ c_code2. &quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;    SET SCREEN 0.&lt;br /&gt;*    LEAVE SCREEN.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot;F_USER_COMMAND&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_DETAIL                                                 *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Detail Report                                                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_detail .&lt;br /&gt;* Declaration Types Local&lt;br /&gt;  TYPES: BEGIN OF lty_report,&lt;br /&gt;      driverzd  TYPE likp-vbeln,&lt;br /&gt;      typess    TYPE t179t-vtext,&lt;br /&gt;      comision  TYPE pa9001-dvr_com_perc,&lt;br /&gt;      total     TYPE wertv12,&lt;br /&gt;      name      TYPE kna1-name1,&lt;br /&gt;      date      TYPE likp-lfdat,&lt;br /&gt;      number    TYPE likp-lifex,&lt;br /&gt;      tons      TYPE lips-lfimg,&lt;br /&gt;      driver    TYPE konv-kbetr,&lt;br /&gt;      extended  TYPE wertv12,&lt;br /&gt;      billing   TYPE konv-kbetr,&lt;br /&gt;      extended1 TYPE wertv12,&lt;br /&gt;    END OF lty_report.&lt;br /&gt;&lt;br /&gt;* Declaration Types Local&lt;br /&gt;  TYPES: BEGIN OF lty_total,&lt;br /&gt;      driverzd  TYPE likp-vbeln,&lt;br /&gt;      typess    TYPE t179t-vtext,&lt;br /&gt;      extended  TYPE wertv12,&lt;br /&gt;      extended1 TYPE wertv12,&lt;br /&gt;    END OF lty_total.&lt;br /&gt;&lt;br /&gt;  TYPES: BEGIN OF lty_gtotal,&lt;br /&gt;        typess    TYPE t179t-vtext,&lt;br /&gt;        extended  TYPE wertv12,&lt;br /&gt;        extended1 TYPE wertv12,&lt;br /&gt;        driverzd  TYPE likp-vbeln,&lt;br /&gt;      END OF lty_gtotal.&lt;br /&gt;&lt;br /&gt;* Declaration structure and table internal local&lt;br /&gt;  DATA: lw_report TYPE lty_report,&lt;br /&gt;        lw_total TYPE lty_total,&lt;br /&gt;        lw_gtotal TYPE lty_gtotal,&lt;br /&gt;        li_report TYPE STANDARD TABLE OF lty_report,&lt;br /&gt;        li_total TYPE STANDARD TABLE OF lty_total,&lt;br /&gt;        li_gtotal TYPE STANDARD TABLE OF lty_gtotal.&lt;br /&gt;&lt;br /&gt;* Declaration Field Symbol Local&lt;br /&gt;  FIELD-SYMBOLS: &lt;lfs_aux&gt; TYPE lty_report.&lt;br /&gt;&lt;br /&gt;* Declaration variable local&lt;br /&gt;  DATA: lv_driver TYPE likp-vbeln,&lt;br /&gt;        lv_name TYPE kna1-name1,&lt;br /&gt;        lv_type TYPE t179t-vtext,&lt;br /&gt;        lv_ton TYPE wertv12,&lt;br /&gt;        lv_extended TYPE wertv12,&lt;br /&gt;        lv_extended1 TYPE wertv12,&lt;br /&gt;        lv_comis TYPE pa9001-dvr_com_perc,&lt;br /&gt;        lv_total TYPE wertv12,&lt;br /&gt;        lv_tot_driver TYPE wertv12,&lt;br /&gt;        lv_driverf TYPE wertv12,&lt;br /&gt;        lv_truckf TYPE wertv12,&lt;br /&gt;        lv_dritot TYPE wertv12,&lt;br /&gt;        lv_totdriver TYPE wertv12,&lt;br /&gt;        lv_tottruck TYPE wertv12,&lt;br /&gt;        lv_tons     TYPE wertv12.&lt;br /&gt;* sort i_display&lt;br /&gt;  SORT i_display&lt;br /&gt;    BY driverzd&lt;br /&gt;       typess&lt;br /&gt;       date&lt;br /&gt;       number.&lt;br /&gt;* Loop table i_display&lt;br /&gt;  LOOP AT i_display&lt;br /&gt;     INTO w_display.&lt;br /&gt;* Move corresponding structure to table internal&lt;br /&gt;    MOVE-CORRESPONDING: w_display TO lw_report.&lt;br /&gt;&lt;br /&gt;    APPEND lw_report TO li_report.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;* Loop table li_report&lt;br /&gt;  LOOP AT li_report&lt;br /&gt;    ASSIGNING &lt;lfs_aux&gt;.&lt;br /&gt;* Assigning date to variables&lt;br /&gt;    lv_driver = &lt;lfs_aux&gt;-driverzd.&lt;br /&gt;    lv_name = &lt;lfs_aux&gt;-name.&lt;br /&gt;    lv_type = &lt;lfs_aux&gt;-typess.&lt;br /&gt;    lv_comis = &lt;lfs_aux&gt;-comision.&lt;br /&gt;&lt;br /&gt;    AT NEW driverzd.&lt;br /&gt;&lt;br /&gt;      NEW-PAGE. &quot;GCC_195.99 EXCHNEO_F10 24.02.2009&lt;br /&gt;      &quot; Change  Format Report List&lt;br /&gt;* Header Format&lt;br /&gt;      PERFORM f_header_format. &quot; GCC_195.99 EXCHNEO_F10 24.02.2009&lt;br /&gt;      &quot; Change  Format Report List&lt;br /&gt;* Write Driver Number&lt;br /&gt;      WRITE: /1  c_line,&quot;&#39;|&#39;,&lt;br /&gt;             4 text-t11,&quot;&#39;Driver Number&#39;,&lt;br /&gt;            35 lv_driver,&lt;br /&gt;            45 lv_name,&lt;br /&gt;            178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;    ENDAT.&lt;br /&gt;* Write Type&lt;br /&gt;    AT NEW typess.&lt;br /&gt;&lt;br /&gt;      WRITE: /1 c_line,&quot; &#39;|&#39;,&lt;br /&gt;              2 text-t12,&quot;&#39;Type&#39;,&lt;br /&gt;              lv_type,&lt;br /&gt;              178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;    ENDAT.&lt;br /&gt;* Write data report&lt;br /&gt;&lt;br /&gt;    WRITE: /1  c_line,&quot;&#39;|&#39;,&lt;br /&gt;            8(10)  &lt;lfs_aux&gt;-date ,&lt;br /&gt;            65(35) &lt;lfs_aux&gt;-number LEFT-JUSTIFIED,&lt;br /&gt;           95(17)  &lt;lfs_aux&gt;-tons RIGHT-JUSTIFIED,&lt;br /&gt;           111(14) &lt;lfs_aux&gt;-driver RIGHT-JUSTIFIED,&lt;br /&gt;           127(14) &lt;lfs_aux&gt;-extended RIGHT-JUSTIFIED,&lt;br /&gt;           147(10) &lt;lfs_aux&gt;-billing RIGHT-JUSTIFIED,&lt;br /&gt;           169(10) &lt;lfs_aux&gt;-extended1 RIGHT-JUSTIFIED,&lt;br /&gt;           178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;* Sum Total Freight Type&lt;br /&gt;    lv_ton = lv_ton + &lt;lfs_aux&gt;-tons.&lt;br /&gt;    lv_extended = lv_extended + &lt;lfs_aux&gt;-extended.&lt;br /&gt;    lv_extended1 = lv_extended1 + &lt;lfs_aux&gt;-extended1.&lt;br /&gt;&lt;br /&gt;    AT END OF typess.&lt;br /&gt;* Write Total Freight Type&lt;br /&gt;      FORMAT COLOR 3.&lt;br /&gt;      WRITE: /1 c_line,&quot; &#39;|&#39;,&lt;br /&gt;            2 text-t13,&quot;&#39;Total Freight Type&#39;,&lt;br /&gt;          95(17) lv_ton RIGHT-JUSTIFIED,&lt;br /&gt;          110 lv_extended RIGHT-JUSTIFIED,&lt;br /&gt;          160 lv_extended1 RIGHT-JUSTIFIED,&lt;br /&gt;          178  c_line.&quot;&#39;|&#39;.&lt;br /&gt;* Write Driver Comission&lt;br /&gt;      WRITE: /1  c_line,&quot;&#39;|&#39;,&lt;br /&gt;              2 text-t14,&quot;&#39;Driver Comission&#39;,&lt;br /&gt;              26 lv_comis RIGHT-JUSTIFIED, c_porc,&quot;&#39;%&#39;,&lt;br /&gt;              178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 30.04.2009&lt;br /&gt;      &quot; Hierachy to Exclude from driver commission.&lt;br /&gt;      IF s_hierac-low  EQ space AND&lt;br /&gt;         s_hierac-high EQ space.&lt;br /&gt;** END GCC_723 EXCHNEO_F10 30.04.2009&lt;br /&gt;* Calculate Total Driver&lt;br /&gt;        lv_total = ( lv_comis * lv_extended ) / 100.&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 30.04.2009&lt;br /&gt;      ELSE.&lt;br /&gt;        lv_total = lv_extended.&lt;br /&gt;      ENDIF.&lt;br /&gt;** END GCC_723 EXCHNEO_F10 30.04.2009&lt;br /&gt;&lt;br /&gt;* Write Total Driver&lt;br /&gt;      CLEAR lv_comis.&lt;br /&gt;      WRITE: /1 c_line,&quot; &#39;|&#39;,&lt;br /&gt;             2 text-t15,&quot;&#39;Total Driver&#39;,&lt;br /&gt;             26 lv_total RIGHT-JUSTIFIED,&lt;br /&gt;             178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;&lt;br /&gt;      FORMAT COLOR OFF.&lt;br /&gt;* Sum Total driver&lt;br /&gt;      lv_tot_driver = lv_tot_driver + lv_total.&lt;br /&gt;* Clear Variables&lt;br /&gt;      CLEAR: lv_total,&lt;br /&gt;             lv_extended,&lt;br /&gt;             lv_extended1,&lt;br /&gt;             lv_ton.&lt;br /&gt;    ENDAT.&lt;br /&gt;    AT END OF driverzd.&lt;br /&gt;&lt;br /&gt;      FORMAT COLOR 4.&lt;br /&gt;* Write Sum Total Driver&lt;br /&gt;      WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;             2 text-t16,&lt;br /&gt;             26 lv_tot_driver,&lt;br /&gt;             178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;      FORMAT COLOR OFF.&lt;br /&gt;      CLEAR lv_tot_driver.&lt;br /&gt;      ULINE.&lt;br /&gt;&lt;br /&gt;    ENDAT.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;* BEGIN GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;*  ULINE /1(75).&lt;br /&gt;  NEW-PAGE.&lt;br /&gt;  SKIP.&lt;br /&gt;  PERFORM f_title_total.&lt;br /&gt;* END GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;* Write Detail Total&lt;br /&gt;  ULINE /1(75).&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          2 text-t17,&quot;&#39;Hierarchy Type&#39;,&lt;br /&gt;         35 text-t18,&quot;&#39;Driver Freight&#39;,&lt;br /&gt;         59 text-t19,&quot;&#39;Truck Freight&#39;,&lt;br /&gt;         75 c_line.&quot;&#39;|&#39;.&lt;br /&gt;  ULINE /1(75).&lt;br /&gt;* Sort i_display&lt;br /&gt;  SORT i_display&lt;br /&gt;    BY driverzd&lt;br /&gt;       typess&lt;br /&gt;       date&lt;br /&gt;       number.&lt;br /&gt;&lt;br /&gt;* Loop table i_display&lt;br /&gt;  LOOP AT i_display&lt;br /&gt;     INTO w_display.&lt;br /&gt;* Move structure to structure&lt;br /&gt;    MOVE-CORRESPONDING w_display TO lw_total.&lt;br /&gt;&lt;br /&gt;    COLLECT lw_total INTO li_total.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;* Sort table li_total&lt;br /&gt;  SORT li_total&lt;br /&gt;    BY typess.&lt;br /&gt;* Loop table li_total&lt;br /&gt;  LOOP AT li_total&lt;br /&gt;    INTO lw_total.&lt;br /&gt;* Assigning date&lt;br /&gt;    lw_gtotal-typess = lw_total-typess .&lt;br /&gt;    lw_gtotal-extended = lw_total-extended .&lt;br /&gt;    lw_gtotal-extended1 = lw_total-extended1 .&lt;br /&gt;    lw_gtotal-driverzd = lw_total-driverzd.&lt;br /&gt;&lt;br /&gt;    APPEND  lw_gtotal TO  li_gtotal.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;* Loop table li_gtotal&lt;br /&gt;  LOOP AT li_gtotal&lt;br /&gt;    INTO lw_gtotal.&lt;br /&gt;* Sum Truck Freight&lt;br /&gt;    lv_truckf = lv_truckf + lw_gtotal-extended1.&lt;br /&gt;* Read Table i_display&lt;br /&gt;    READ TABLE i_display&lt;br /&gt;      INTO w_display&lt;br /&gt;      WITH KEY driverzd = lw_gtotal-driverzd&lt;br /&gt;                typess = lw_gtotal-typess&lt;br /&gt;                BINARY SEARCH.&lt;br /&gt;* Calcute Driver Freight&lt;br /&gt;    lv_driverf = lw_gtotal-extended * w_display-comision.&lt;br /&gt;* Calculate div 100&lt;br /&gt;    lv_dritot = lv_dritot + lv_driverf / 100.&lt;br /&gt;&lt;br /&gt;    AT END OF typess.&lt;br /&gt;* Grand Total&lt;br /&gt;      lv_totdriver = lv_totdriver + lv_dritot.&lt;br /&gt;      lv_tottruck = lv_tottruck + lv_truckf.&lt;br /&gt;* Write Grand Total&lt;br /&gt;      WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;               2(15)  lw_gtotal-typess,&lt;br /&gt;               18(26) lv_dritot RIGHT-JUSTIFIED,&lt;br /&gt;               44(26) lv_truckf RIGHT-JUSTIFIED,&lt;br /&gt;               75 c_line.&quot;&#39;|&#39;.&lt;br /&gt;* Clear Varibales&lt;br /&gt;      CLEAR: lv_dritot,&lt;br /&gt;             lv_truckf,&lt;br /&gt;             lv_driverf.&lt;br /&gt;&lt;br /&gt;      AT LAST.&lt;br /&gt;&lt;br /&gt;        FORMAT COLOR 4.&lt;br /&gt;* Write Grand Total&lt;br /&gt;        WRITE:  /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          2(12) text-t20,&quot;&#39;Grand Total&#39;,&lt;br /&gt;         18(26) lv_totdriver RIGHT-JUSTIFIED,&lt;br /&gt;         44(26) lv_tottruck RIGHT-JUSTIFIED,&lt;br /&gt;         75 c_line.&quot;&#39;|&#39;.&lt;br /&gt;        FORMAT COLOR OFF.&lt;br /&gt;        ULINE /1(75).&lt;br /&gt;* Clear Varibales&lt;br /&gt;        CLEAR: lv_totdriver,&lt;br /&gt;               lv_tottruck.&lt;br /&gt;&lt;br /&gt;      ENDAT.&lt;br /&gt;&lt;br /&gt;    ENDAT.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_DETAIL&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_HEADER_FORMAT                                          *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Header Format.                                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_header_format .&lt;br /&gt;&lt;br /&gt;* Format Header&lt;br /&gt;  ULINE.&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          178 c_line,&quot;&#39;|&#39;,&lt;br /&gt;         /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          70 text-015,&lt;br /&gt;         178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          text-t21,13 s_delive-low, &quot; &#39;From:&#39;&lt;br /&gt;           178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;        text-t22,13 s_delive-high, &quot; &#39;Through:&#39;&lt;br /&gt;         178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          155 text-025,&lt;br /&gt;          165 sy-pagno,&lt;br /&gt;          178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;  ULINE.&lt;br /&gt;&lt;br /&gt;  WRITE:&lt;br /&gt;          /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          65 text-t07 LEFT-JUSTIFIED, &quot;&#39;External&#39;,&lt;br /&gt;          135 text-t08, &quot;&#39;Extended&#39;,&lt;br /&gt;          150 text-t09, &quot;&#39;Billing&#39;,&lt;br /&gt;          178 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          2 text-t01, &quot;&#39;Date&#39;,&lt;br /&gt;         65 text-t03 LEFT-JUSTIFIED, &quot;&#39;Ticket&#39;,&lt;br /&gt;        105 text-t04, &quot;&#39;Ton&#39;,&lt;br /&gt;        120 text-t05, &quot;&#39;Rate&#39;,&lt;br /&gt;        135 text-t05, &quot;&#39;Rate&#39;,&lt;br /&gt;        150 text-t05, &quot;&#39;Rate&#39;,&lt;br /&gt;        169 text-t06, &quot;&#39;Extend&#39;.&lt;br /&gt;        178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  ULINE.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_HEADER_FORMAT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_TITLE_TOTAL                                            *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Title Total                                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_title_total .&lt;br /&gt;&lt;br /&gt;* Format Header&lt;br /&gt;  ULINE.&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          178 c_line,&quot;&#39;|&#39;,&lt;br /&gt;         /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          70 text-015,&lt;br /&gt;         178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          text-t21,13 s_delive-low, &quot; &#39;From:&#39;&lt;br /&gt;           178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;        text-t22,13 s_delive-high, &quot; &#39;Through:&#39;&lt;br /&gt;         178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          155 text-025,&lt;br /&gt;          165 sy-pagno,&lt;br /&gt;          178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;  ULINE.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_TITLE_TOTAL&lt;br /&gt;&lt;br /&gt;*BEGIN GCC_195.99 24.02.2009 EXCHNEO_F10 Change Format Report List&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_FORMAT                                                 *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Format New Page                                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*FORM f_format .&lt;br /&gt;** Format Header&lt;br /&gt;*  ULINE.&lt;br /&gt;*  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*          178 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*         /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*          70 text-015,&lt;br /&gt;*         178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;*&lt;br /&gt;*  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*          text-t21,13 s_delive-low, &quot; &#39;From:&#39;&lt;br /&gt;*           178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;*&lt;br /&gt;*  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*        text-t22,13 s_delive-high, &quot; &#39;Through:&#39;&lt;br /&gt;*         178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;*&lt;br /&gt;*  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*          155 text-025,&lt;br /&gt;*          165 sy-pagno,&lt;br /&gt;*          178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;*  ULINE.&lt;br /&gt;*&lt;br /&gt;*  WRITE:&lt;br /&gt;*          /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*          65 text-t07 LEFT-JUSTIFIED, &quot;&#39;External&#39;,&lt;br /&gt;*          135 text-t08, &quot;&#39;Extended&#39;,&lt;br /&gt;*          150 text-t09, &quot;&#39;Billing&#39;,&lt;br /&gt;*          178 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*          /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*          178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;*&lt;br /&gt;*  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;*          2 text-t01, &quot;&#39;Date&#39;,&lt;br /&gt;*         65 text-t03 LEFT-JUSTIFIED, &quot;&#39;Ticket&#39;,&lt;br /&gt;*        105 text-t04, &quot;&#39;Ton&#39;,&lt;br /&gt;*        120 text-t05, &quot;&#39;Rate&#39;,&lt;br /&gt;*        135 text-t05, &quot;&#39;Rate&#39;,&lt;br /&gt;*        150 text-t05, &quot;&#39;Rate&#39;,&lt;br /&gt;*        169 text-t06, &quot;&#39;Extend&#39;.&lt;br /&gt;*        178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;*&lt;br /&gt;*  ULINE.&lt;br /&gt;*ENDFORM.                    &quot; F_FORMAT&lt;br /&gt;* END GCC_195.99 24.02.2009 EXCHNEO_F10 Change  Format Report List&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_AUTHORITY_CHECK                                        *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*  Authority for sales organization                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_authority_check .&lt;br /&gt;* Varible Local&lt;br /&gt;  DATA lv_flag TYPE i.&lt;br /&gt;&lt;br /&gt;  lv_flag = 0.&lt;br /&gt;&lt;br /&gt;  SELECT vkorg&lt;br /&gt;    FROM tvko&lt;br /&gt;    INTO TABLE i_tvko&lt;br /&gt;    WHERE vkorg IN s_comco.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_tvko&lt;br /&gt;      INTO  w_tvko.&lt;br /&gt;&lt;br /&gt;      AUTHORITY-CHECK OBJECT &#39;V_VBAK_VKO&#39;&lt;br /&gt;               ID &#39;VKORG&#39; FIELD w_tvko-vkorg&lt;br /&gt;               ID &#39;VTWEG&#39; DUMMY&lt;br /&gt;               ID &#39;SPART&#39; DUMMY&lt;br /&gt;               ID &#39;ACTVT&#39; FIELD &#39;03&#39;.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;        lv_flag = 1.&lt;br /&gt;        EXIT.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;    IF lv_flag  = 1.&lt;br /&gt;&lt;br /&gt;      MESSAGE i398(00)&lt;br /&gt;        WITH text-t26.&lt;br /&gt;      STOP.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.                    &quot; F_AUTHORITY_CHECK&lt;br /&gt;&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_DETAIL2&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*        Detail Commission Report Copy&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_detail2 .&lt;br /&gt;&lt;br /&gt;* Declaration Types Local&lt;br /&gt;  TYPES: BEGIN OF lty_report,&lt;br /&gt;      driverzd  TYPE likp-vbeln,&lt;br /&gt;      typess    TYPE t179t-vtext,&lt;br /&gt;      comision  TYPE pa9001-dvr_com_perc,&lt;br /&gt;      total     TYPE wertv12,&lt;br /&gt;      name      TYPE kna1-name1,&lt;br /&gt;      date      TYPE likp-lfdat,&lt;br /&gt;      number    TYPE likp-lifex,&lt;br /&gt;      tons      TYPE lips-lfimg,&lt;br /&gt;      driver    TYPE konv-kbetr,&lt;br /&gt;      extended  TYPE wertv12,&lt;br /&gt;      billing   TYPE konv-kbetr,&lt;br /&gt;      extended1 TYPE wertv12,&lt;br /&gt;    END OF lty_report.&lt;br /&gt;&lt;br /&gt;* Declaration Types Local&lt;br /&gt;  TYPES: BEGIN OF lty_total,&lt;br /&gt;      driverzd  TYPE likp-vbeln,&lt;br /&gt;      typess    TYPE t179t-vtext,&lt;br /&gt;      extended  TYPE wertv12,&lt;br /&gt;      extended1 TYPE wertv12,&lt;br /&gt;    END OF lty_total.&lt;br /&gt;&lt;br /&gt;  TYPES: BEGIN OF lty_gtotal,&lt;br /&gt;        typess    TYPE t179t-vtext,&lt;br /&gt;        extended  TYPE wertv12,&lt;br /&gt;        extended1 TYPE wertv12,&lt;br /&gt;        driverzd  TYPE likp-vbeln,&lt;br /&gt;      END OF lty_gtotal.&lt;br /&gt;&lt;br /&gt;* Declaration structure and table internal local&lt;br /&gt;  DATA: lw_report TYPE lty_report,&lt;br /&gt;        lw_total TYPE lty_total,&lt;br /&gt;        lw_gtotal TYPE lty_gtotal,&lt;br /&gt;        li_report TYPE STANDARD TABLE OF lty_report,&lt;br /&gt;        li_total TYPE STANDARD TABLE OF lty_total,&lt;br /&gt;        li_gtotal TYPE STANDARD TABLE OF lty_gtotal.&lt;br /&gt;&lt;br /&gt;* Declaration Field Symbol Local&lt;br /&gt;  FIELD-SYMBOLS: &lt;lfs_aux&gt; TYPE lty_report.&lt;br /&gt;&lt;br /&gt;* Declaration variable local&lt;br /&gt;  DATA: lv_driver TYPE likp-vbeln,&lt;br /&gt;        lv_name TYPE kna1-name1,&lt;br /&gt;        lv_type TYPE t179t-vtext,&lt;br /&gt;        lv_ton TYPE wertv12,&lt;br /&gt;        lv_extended TYPE wertv12,&lt;br /&gt;        lv_extended1 TYPE wertv12,&lt;br /&gt;        lv_comis TYPE pa9001-dvr_com_perc,&lt;br /&gt;        lv_total TYPE wertv12,&lt;br /&gt;        lv_tot_driver TYPE wertv12,&lt;br /&gt;        lv_driverf TYPE wertv12,&lt;br /&gt;        lv_truckf TYPE wertv12,&lt;br /&gt;        lv_dritot TYPE wertv12,&lt;br /&gt;        lv_totdriver TYPE wertv12,&lt;br /&gt;        lv_tottruck TYPE wertv12.&lt;br /&gt;* sort i_display&lt;br /&gt;  SORT i_display&lt;br /&gt;    BY driverzd&lt;br /&gt;       typess&lt;br /&gt;       date&lt;br /&gt;       number.&lt;br /&gt;* Loop table i_display&lt;br /&gt;  LOOP AT i_display&lt;br /&gt;     INTO w_display.&lt;br /&gt;* Move corresponding structure to table internal&lt;br /&gt;    MOVE-CORRESPONDING w_display TO lw_report.&lt;br /&gt;&lt;br /&gt;    APPEND lw_report TO li_report.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;* Loop table li_report&lt;br /&gt;  LOOP AT li_report&lt;br /&gt;    ASSIGNING &lt;lfs_aux&gt;.&lt;br /&gt;* Assigning date to variables&lt;br /&gt;    lv_driver = &lt;lfs_aux&gt;-driverzd.&lt;br /&gt;    lv_name = &lt;lfs_aux&gt;-name.&lt;br /&gt;    lv_type = &lt;lfs_aux&gt;-typess.&lt;br /&gt;    lv_comis = &lt;lfs_aux&gt;-comision.&lt;br /&gt;&lt;br /&gt;    AT NEW driverzd.&lt;br /&gt;&lt;br /&gt;      NEW-PAGE.&lt;br /&gt;* Header Format&lt;br /&gt;      PERFORM f_header_format_copy. &quot; GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;&lt;br /&gt;* Write Driver Number&lt;br /&gt;      WRITE: /1  c_line,&quot;&#39;|&#39;,&lt;br /&gt;             4 text-t11,&quot;&#39;Driver Number&#39;,&lt;br /&gt;            35 lv_driver,&lt;br /&gt;            45 lv_name,&lt;br /&gt;            178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;    ENDAT.&lt;br /&gt;* Write Type&lt;br /&gt;    AT NEW typess.&lt;br /&gt;&lt;br /&gt;      WRITE: /1 c_line,&quot; &#39;|&#39;,&lt;br /&gt;              2 text-t12,&quot;&#39;Type&#39;,&lt;br /&gt;              lv_type,&lt;br /&gt;              178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;    ENDAT.&lt;br /&gt;* Write data report&lt;br /&gt;    WRITE: /1  c_line,&quot;&#39;|&#39;,&lt;br /&gt;            8(10)  &lt;lfs_aux&gt;-date ,&lt;br /&gt;            65(35) &lt;lfs_aux&gt;-number LEFT-JUSTIFIED,&lt;br /&gt;           95(17)  &lt;lfs_aux&gt;-tons RIGHT-JUSTIFIED,&lt;br /&gt;           111(14) &lt;lfs_aux&gt;-driver RIGHT-JUSTIFIED,&lt;br /&gt;           127(14) &lt;lfs_aux&gt;-extended RIGHT-JUSTIFIED,&lt;br /&gt;*BEGIN &quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;*           147(10) &lt;lfs_aux&gt;-billing RIGHT-JUSTIFIED,&lt;br /&gt;*           169(10) &lt;lfs_aux&gt;-extended1 RIGHT-JUSTIFIED,&lt;br /&gt;*END &quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;           178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;* Sum Total Freight Type&lt;br /&gt;    lv_ton = lv_ton + &lt;lfs_aux&gt;-tons.&lt;br /&gt;    lv_extended = lv_extended + &lt;lfs_aux&gt;-extended.&lt;br /&gt;    lv_extended1 = lv_extended1 + &lt;lfs_aux&gt;-extended1.&lt;br /&gt;&lt;br /&gt;    AT END OF typess.&lt;br /&gt;* Write Total Freight Type&lt;br /&gt;      FORMAT COLOR 3.&lt;br /&gt;      WRITE: /1 c_line,&quot; &#39;|&#39;,&lt;br /&gt;            2 text-t13,&quot;&#39;Total Freight Type&#39;,&lt;br /&gt;          95(17) lv_ton RIGHT-JUSTIFIED,&lt;br /&gt;          110 lv_extended RIGHT-JUSTIFIED,&lt;br /&gt;*BEGIN &quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;*          160 lv_extended1 RIGHT-JUSTIFIED,&lt;br /&gt;*END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;          178  c_line.&quot;&#39;|&#39;.&lt;br /&gt;* Write Driver Comission&lt;br /&gt;      WRITE: /1  c_line,&quot;&#39;|&#39;,&lt;br /&gt;              2 text-t14,&quot;&#39;Driver Comission&#39;,&lt;br /&gt;              26 lv_comis RIGHT-JUSTIFIED, c_porc,&quot;&#39;%&#39;,&lt;br /&gt;              178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 30.04.2009&lt;br /&gt;      &quot; Hierachy to Exclude from driver commission.&lt;br /&gt;      IF s_hierac-low  EQ space AND&lt;br /&gt;         s_hierac-high EQ space.&lt;br /&gt;** END GCC_723 EXCHNEO_F10 30.04.2009&lt;br /&gt;* Calculate Total Driver&lt;br /&gt;        lv_total = ( lv_comis * lv_extended ) / 100.&lt;br /&gt;** BEGIN GCC_723 EXCHNEO_F10 30.04.2009&lt;br /&gt;      ELSE.&lt;br /&gt;        lv_total = lv_extended.&lt;br /&gt;      ENDIF.&lt;br /&gt;** END GCC_723 EXCHNEO_F10 30.04.2009&lt;br /&gt;&lt;br /&gt;* Write Total Driver&lt;br /&gt;      CLEAR lv_comis.&lt;br /&gt;      WRITE: /1 c_line,&quot; &#39;|&#39;,&lt;br /&gt;             2 text-t15,&quot;&#39;Total Driver&#39;,&lt;br /&gt;             26 lv_total RIGHT-JUSTIFIED,&lt;br /&gt;             178 c_line.&quot; &#39;|&#39;.&lt;br /&gt;&lt;br /&gt;      FORMAT COLOR OFF.&lt;br /&gt;* Sum Total driver&lt;br /&gt;      lv_tot_driver = lv_tot_driver + lv_total.&lt;br /&gt;* Clear Variables&lt;br /&gt;      CLEAR: lv_total,&lt;br /&gt;             lv_extended,&lt;br /&gt;             lv_extended1,&lt;br /&gt;             lv_ton.&lt;br /&gt;    ENDAT.&lt;br /&gt;    AT END OF driverzd.&lt;br /&gt;&lt;br /&gt;      FORMAT COLOR 4.&lt;br /&gt;* Write Sum Total Driver&lt;br /&gt;      WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;             2 text-t16,&lt;br /&gt;             26 lv_tot_driver,&lt;br /&gt;             178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;      FORMAT COLOR OFF.&lt;br /&gt;      CLEAR lv_tot_driver.&lt;br /&gt;      ULINE.&lt;br /&gt;&lt;br /&gt;    ENDAT.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  NEW-PAGE.&lt;br /&gt;  SKIP.&lt;br /&gt;&lt;br /&gt;  PERFORM f_title_total.&lt;br /&gt;&lt;br /&gt;* Write Detail Total&lt;br /&gt;  ULINE /1(75).&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          2 text-t17,&quot;&#39;Hierarchy Type&#39;,&lt;br /&gt;         35 text-t18,&quot;&#39;Driver Freight&#39;,&lt;br /&gt;         59 text-t19,&quot;&#39;Truck Freight&#39;,&lt;br /&gt;         75 c_line.&quot;&#39;|&#39;.&lt;br /&gt;  ULINE /1(75).&lt;br /&gt;* Sort i_display&lt;br /&gt;  SORT i_display&lt;br /&gt;    BY driverzd&lt;br /&gt;       typess&lt;br /&gt;       date&lt;br /&gt;       number.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  LOOP AT i_display&lt;br /&gt;     INTO w_display.&lt;br /&gt;* Move structure to structure&lt;br /&gt;    MOVE-CORRESPONDING w_display TO lw_total.&lt;br /&gt;&lt;br /&gt;    COLLECT lw_total INTO li_total.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;* Sort table li_total&lt;br /&gt;  SORT li_total&lt;br /&gt;    BY typess.&lt;br /&gt;&lt;br /&gt;  LOOP AT li_total&lt;br /&gt;    INTO lw_total.&lt;br /&gt;* Assigning date&lt;br /&gt;    lw_gtotal-typess = lw_total-typess .&lt;br /&gt;    lw_gtotal-extended = lw_total-extended .&lt;br /&gt;    lw_gtotal-extended1 = lw_total-extended1 .&lt;br /&gt;    lw_gtotal-driverzd = lw_total-driverzd.&lt;br /&gt;&lt;br /&gt;    APPEND  lw_gtotal TO  li_gtotal.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;* Loop table li_gtotal&lt;br /&gt;  LOOP AT li_gtotal&lt;br /&gt;    INTO lw_gtotal.&lt;br /&gt;* Sum Truck Freight&lt;br /&gt;    lv_truckf = lv_truckf + lw_gtotal-extended1.&lt;br /&gt;* Read Table i_display&lt;br /&gt;    READ TABLE i_display&lt;br /&gt;      INTO w_display&lt;br /&gt;      WITH KEY driverzd = lw_gtotal-driverzd&lt;br /&gt;                typess = lw_gtotal-typess&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;* Calcute Driver Freight&lt;br /&gt;      lv_driverf = lw_gtotal-extended * w_display-comision.&lt;br /&gt;* Calculate div 100&lt;br /&gt;      lv_dritot = lv_dritot + lv_driverf / 100.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    AT END OF typess.&lt;br /&gt;* Grand Total&lt;br /&gt;      lv_totdriver = lv_totdriver + lv_dritot.&lt;br /&gt;      lv_tottruck = lv_tottruck + lv_truckf.&lt;br /&gt;* Write Grand Total&lt;br /&gt;      WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;               2(15)  lw_gtotal-typess,&lt;br /&gt;               18(26) lv_dritot RIGHT-JUSTIFIED,&lt;br /&gt;               44(26) lv_truckf RIGHT-JUSTIFIED,&lt;br /&gt;               75 c_line.&quot;&#39;|&#39;.&lt;br /&gt;* Clear Varibales&lt;br /&gt;      CLEAR: lv_dritot,&lt;br /&gt;             lv_truckf,&lt;br /&gt;             lv_driverf.&lt;br /&gt;&lt;br /&gt;      AT LAST.&lt;br /&gt;&lt;br /&gt;        FORMAT COLOR 4.&lt;br /&gt;* Write Grand Total&lt;br /&gt;        WRITE:  /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          2(12) text-t20,&quot;&#39;Grand Total&#39;,&lt;br /&gt;         18(26) lv_totdriver RIGHT-JUSTIFIED,&lt;br /&gt;         44(26) lv_tottruck RIGHT-JUSTIFIED,&lt;br /&gt;         75 c_line.&quot;&#39;|&#39;.&lt;br /&gt;        FORMAT COLOR OFF.&lt;br /&gt;        ULINE /1(75).&lt;br /&gt;* Clear Varibales&lt;br /&gt;        CLEAR: lv_totdriver,&lt;br /&gt;               lv_tottruck.&lt;br /&gt;&lt;br /&gt;      ENDAT.&lt;br /&gt;&lt;br /&gt;    ENDAT.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;ENDFORM.                                                    &quot; F_DETAIL2&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_HEADER_FORMAT_COPY&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*  Header for Commission Report Copy&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_header_format_copy .&lt;br /&gt;&lt;br /&gt;* Format Header&lt;br /&gt;  ULINE.&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          178 c_line,&quot;&#39;|&#39;,&lt;br /&gt;         /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          76 v_vtext,&lt;br /&gt;         /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          70 text-026,&lt;br /&gt;         178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          text-t21,13 s_delive-low, &quot; &#39;From:&#39;&lt;br /&gt;           178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;        text-t22,13 s_delive-high, &quot; &#39;Through:&#39;&lt;br /&gt;         178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          155 text-025,&lt;br /&gt;          165 sy-pagno,&lt;br /&gt;          178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;  ULINE.&lt;br /&gt;&lt;br /&gt;  WRITE:&lt;br /&gt;          /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          65 text-t07 LEFT-JUSTIFIED, &quot;&#39;External&#39;,&lt;br /&gt;          135 text-t08, &quot;&#39;Extended&#39;,&lt;br /&gt;*          150 text-t09, &quot;&#39;Billing&#39;, &quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;          178 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  WRITE: /1 c_line,&quot;&#39;|&#39;,&lt;br /&gt;          2 text-t01, &quot;&#39;Date&#39;,&lt;br /&gt;         65 text-t03 LEFT-JUSTIFIED, &quot;&#39;Ticket&#39;,&lt;br /&gt;        105 text-t04, &quot;&#39;Ton&#39;,&lt;br /&gt;        120 text-t05, &quot;&#39;Rate&#39;,&lt;br /&gt;        135 text-t05, &quot;&#39;Rate&#39;,&lt;br /&gt;*        150 text-t05, &quot;&#39;Rate&#39;,&quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;*        169 text-t06, &quot;&#39;Extend&#39;.&quot;GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;        178 c_line.&quot;&#39;|&#39;.&lt;br /&gt;&lt;br /&gt;  ULINE.&lt;br /&gt;ENDFORM.                    &quot; F_HEADER_FORMAT_COPY&lt;br /&gt;** END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_CLEAR_HEADERS&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form F_CLEAR_HEADERS .&lt;br /&gt;&lt;br /&gt; CLEAR: w_lips,&lt;br /&gt;        w_vbpa,&lt;br /&gt;        w_likp,&lt;br /&gt;        w_kna1,&lt;br /&gt;        w_pa9001,&lt;br /&gt;        w_lfa1,&lt;br /&gt;        w_lfm1,&lt;br /&gt;        w_vbak,&lt;br /&gt;        w_konv,&lt;br /&gt;        w_mvke.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;endform.                    &quot; F_CLEAR_HEADERS&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_ALV                                                    *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Call ALV Function                                              *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_alv .&lt;br /&gt;* Call Init Fieldcat 1&lt;br /&gt;  PERFORM f_init_fieldcat.&lt;br /&gt;* Call Sort&lt;br /&gt;  PERFORM f_sort.&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;* Define ALV output format&lt;br /&gt;  PERFORM f_init_layout.&lt;br /&gt;*&gt;&gt; END   GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;&lt;br /&gt;* Call Events Header and Footer&lt;br /&gt;  PERFORM f_build_event.&lt;br /&gt;* Call Diplay Table&lt;br /&gt;  PERFORM f_show_data.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_ALV&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_INIT_FIELDCAT                                          *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Make fieldcat 1 ALV                                            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_init_fieldcat .&lt;br /&gt;* Clear Internal tables&lt;br /&gt;  CLEAR i_fieldcat1.&lt;br /&gt;  REFRESH i_fieldcat1.&lt;br /&gt;*By this table we will define the areas that we want to show&lt;br /&gt;* the list of departure&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;DRIVERZD&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 1.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-004.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;TYPESS&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 2.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-006.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;COMISION&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 3.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-014.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;TOTAL&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 4.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-024.&lt;br /&gt;  w_fieldcat-datatype = &#39;CURR&#39;.&lt;br /&gt;  w_fieldcat-do_sum   = c_x.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;NAME&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 5.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-005.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;DATE&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 6.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-007.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;NUMBER&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 7.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-008.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;TONS&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 8.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-009.&lt;br /&gt;  w_fieldcat-datatype = &#39;CURR&#39;.&lt;br /&gt;  w_fieldcat-do_sum   = c_x.&quot;&#39;X&#39;.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;DRIVER&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 9.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-010.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;EXTENDED&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 10.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-011.&lt;br /&gt;  w_fieldcat-datatype = &#39;CURR&#39;.&lt;br /&gt;  w_fieldcat-do_sum   = c_x.&quot;&#39;X&#39;.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;BILLING&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 11.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-012.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;EXTENDED1&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 12.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-013.&lt;br /&gt;  w_fieldcat-datatype = &#39;CURR&#39;.&lt;br /&gt;  w_fieldcat-do_sum   = c_x.&quot;&#39;X&#39;.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* BEGIN GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;* Static records&lt;br /&gt;  w_fieldcat-fieldname = &#39;VBELN&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 13.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-t25.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* END GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;&lt;br /&gt;* BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;  w_fieldcat-fieldname = &#39;TRAID&#39;.&lt;br /&gt;  w_fieldcat-col_pos = 14.&lt;br /&gt;  w_fieldcat-reptext_ddic  = text-t27.&lt;br /&gt;  APPEND w_fieldcat TO i_fieldcat1.&lt;br /&gt;  CLEAR w_fieldcat.&lt;br /&gt;* END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;ENDFORM.                    &quot; F_INIT_FIELDCAT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_BUILD_EVENT                                            *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*  Build Events                                                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_build_event.&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;  DATA: lw_event TYPE slis_alv_event.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_EVENTS_GET&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_list_type     = 0&lt;br /&gt;    IMPORTING&lt;br /&gt;      et_events       = i_events[]&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      list_type_wrong = 1&lt;br /&gt;      OTHERS          = 2.&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;    MESSAGE ID sy-msgid&lt;br /&gt;          TYPE sy-msgty&lt;br /&gt;        NUMBER sy-msgno&lt;br /&gt;          WITH sy-msgv1&lt;br /&gt;               sy-msgv2&lt;br /&gt;               sy-msgv3&lt;br /&gt;               sy-msgv4.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  SORT i_events&lt;br /&gt;    BY name.&lt;br /&gt;&lt;br /&gt;* ALV_GRID Function Module&lt;br /&gt;  READ TABLE i_events&lt;br /&gt;    INTO lw_event&lt;br /&gt;      WITH KEY name =  slis_ev_end_of_list&lt;br /&gt;      BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    MOVE &#39;F_END_OF_LIST&#39; TO lw_event-form.&lt;br /&gt;    MODIFY i_events FROM lw_event INDEX sy-tabix.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF sy-batch NE c_x.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_events&lt;br /&gt;      INTO lw_event&lt;br /&gt;        WITH KEY name =  slis_ev_top_of_list&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;      MOVE &#39;F_TOP_OF_LIST&#39; TO lw_event-form.&lt;br /&gt;      MODIFY i_events FROM lw_event INDEX sy-tabix.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;*&gt;&gt; END   GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_BUILD_EVENT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_SHOW_DATA                                              *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Call Dispaly ALV                                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_show_data .&lt;br /&gt;&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;* Program name&lt;br /&gt;  v_repid = sy-repid.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_GRID_DISPLAY&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_callback_program     = v_repid&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.99 EXCHNEO_F10 24.02.2009 Change Format Report list&lt;br /&gt;      i_callback_pf_status_set  = c_f_pf_status_set&lt;br /&gt;      i_callback_user_command   = c_f_user_command&lt;br /&gt;*&gt;&gt; END GCC_195.99 EXCHNEO_F10 24.02.2009 Change Format Report List&lt;br /&gt;      i_callback_top_of_page = c_f_title&lt;br /&gt;      it_events              = i_events[]&lt;br /&gt;      i_structure_name       = c_i_display&lt;br /&gt;      is_layout              = w_layout&lt;br /&gt;      it_fieldcat            = i_fieldcat1[]&lt;br /&gt;      it_sort                = i_sort[]&lt;br /&gt;      i_default = c_x&lt;br /&gt;      i_save                 = &#39;A&#39;&quot;c_a&lt;br /&gt;      is_variant             = w_xvariant&lt;br /&gt;    TABLES&lt;br /&gt;      t_outtab               = i_display&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      program_error          = 1&lt;br /&gt;      OTHERS                 = 2.&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;    MESSAGE ID sy-msgid&lt;br /&gt;      TYPE sy-msgty&lt;br /&gt;        NUMBER sy-msgno&lt;br /&gt;          WITH sy-msgv1&lt;br /&gt;               sy-msgv2&lt;br /&gt;               sy-msgv3&lt;br /&gt;               sy-msgv4.&lt;br /&gt;  ENDIF.&lt;br /&gt;*&gt;&gt; END   GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;ENDFORM.                    &quot; F_SHOW_DATA&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_SORT                                                   *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Call Sort group subtotal                                       *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_sort .&lt;br /&gt;* Group by driverzd&lt;br /&gt;  w_sort-fieldname = &#39;DRIVERZD&#39;.&lt;br /&gt;  w_sort-spos = 1.&lt;br /&gt;  w_sort-up = c_x.&quot;&#39;X&#39;.&lt;br /&gt;  w_sort-subtot = c_x.&quot;&#39;X&#39;.&lt;br /&gt;  APPEND w_sort TO i_sort.&lt;br /&gt;  CLEAR w_sort.&lt;br /&gt;&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;  w_sort-fieldname = &#39;TYPESS&#39;.&lt;br /&gt;  w_sort-spos = 2.&lt;br /&gt;  w_sort-up = c_x.&quot;&#39;X&#39;.&lt;br /&gt;  w_sort-subtot = c_x.&quot;&#39;X&#39;.&lt;br /&gt;  APPEND w_sort TO i_sort.&lt;br /&gt;  CLEAR w_sort.&lt;br /&gt;*&gt;&gt; END   GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_SORT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_INIT_LAYOUT                                            *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*   Define ALV output format                                           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&gt;&gt; BEGIN GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;FORM f_init_layout .&lt;br /&gt;&lt;br /&gt;  w_layout-zebra = c_x.&lt;br /&gt;  w_layout-detail_popup = c_x.&lt;br /&gt;  w_layout-colwidth_optimize = c_x.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_INIT_LAYOUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_ALV_TITLE                                              *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*  Create ALV Title                                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Dinamic Call&lt;br /&gt;FORM f_alv_title.&lt;br /&gt;&lt;br /&gt;  IF i_title_alv[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;* Header Title&lt;br /&gt;    i_title_alv-typ  = c_h.&lt;br /&gt;    i_title_alv-info = v_vtext.&lt;br /&gt;    APPEND i_title_alv.&lt;br /&gt;    CLEAR i_title_alv.&lt;br /&gt;&lt;br /&gt;    i_title_alv-typ  = c_s.&lt;br /&gt;    i_title_alv-key = text-015.&lt;br /&gt;    APPEND i_title_alv.&lt;br /&gt;    CLEAR i_title_alv.&lt;br /&gt;&lt;br /&gt;    i_title_alv-typ  = c_s.&lt;br /&gt;    i_title_alv-key  = text-016.&lt;br /&gt;    i_title_alv-info = s_delive-low.&lt;br /&gt;    APPEND i_title_alv.&lt;br /&gt;    CLEAR i_title_alv.&lt;br /&gt;&lt;br /&gt;    IF s_delive-high IS NOT INITIAL.&lt;br /&gt;&lt;br /&gt;      i_title_alv-typ  = c_s.&lt;br /&gt;      i_title_alv-key  = text-017.&lt;br /&gt;      i_title_alv-info = s_delive-high.&lt;br /&gt;      APPEND i_title_alv.&lt;br /&gt;      CLEAR i_title_alv.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    CALL FUNCTION &#39;REUSE_ALV_COMMENTARY_WRITE&#39;&lt;br /&gt;      EXPORTING&lt;br /&gt;        it_list_commentary = i_title_alv[].&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_ALV_TITLE&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*       FORM F_TOP_OF_LIST                                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  Build Top of List Event                                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Dinamic Call&lt;br /&gt;FORM f_top_of_list.&lt;br /&gt;&lt;br /&gt;  IF i_title_alv[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;* Header Title&lt;br /&gt;    i_title_alv-typ  = c_h.&lt;br /&gt;    i_title_alv-info = v_vtext.&lt;br /&gt;    APPEND i_title_alv.&lt;br /&gt;    CLEAR i_title_alv.&lt;br /&gt;&lt;br /&gt;    i_title_alv-typ  = c_s.&lt;br /&gt;    i_title_alv-key = text-015.&lt;br /&gt;    APPEND i_title_alv.&lt;br /&gt;    CLEAR i_title_alv.&lt;br /&gt;&lt;br /&gt;    i_title_alv-typ  = c_s.&lt;br /&gt;    i_title_alv-key = text-016.&lt;br /&gt;&lt;br /&gt;    IF s_delive-high IS NOT INITIAL.&lt;br /&gt;&lt;br /&gt;      i_title_alv-typ  = c_s.&lt;br /&gt;      i_title_alv-key  = text-017.&lt;br /&gt;      i_title_alv-info = s_delive-high.&lt;br /&gt;      APPEND i_title_alv.&lt;br /&gt;      CLEAR i_title_alv.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_COMMENTARY_WRITE&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      it_list_commentary = i_title_alv[].&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot;F_TOP_OF_LIST&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*       FORM F_END_OF_LIST                                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  Build End of List Event                                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Dinamic Call&lt;br /&gt;FORM f_end_of_list.&lt;br /&gt;&lt;br /&gt;  CLEAR: i_footer_alv.&lt;br /&gt;&lt;br /&gt;  IF i_footer_alv[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;* User&lt;br /&gt;    i_footer_alv-typ  = c_s.&lt;br /&gt;    i_footer_alv-key = text-018. &quot;User&lt;br /&gt;    i_footer_alv-info = sy-uname.&lt;br /&gt;    APPEND i_footer_alv.&lt;br /&gt;&lt;br /&gt;* Date&lt;br /&gt;    i_footer_alv-typ  = c_s.&lt;br /&gt;    i_footer_alv-key = text-019. &quot;Date&lt;br /&gt;    CONCATENATE space&lt;br /&gt;                sy-datlo+6(2)&lt;br /&gt;                c_diag&lt;br /&gt;                sy-datlo+4(2)&lt;br /&gt;                c_diag&lt;br /&gt;                sy-datlo+0(4)&lt;br /&gt;                INTO i_footer_alv-info.&lt;br /&gt;    APPEND i_footer_alv.&lt;br /&gt;&lt;br /&gt;* Time&lt;br /&gt;    i_footer_alv-typ  = c_s.&lt;br /&gt;    i_footer_alv-key = text-020. &quot;Time&lt;br /&gt;    CONCATENATE space&lt;br /&gt;                sy-timlo+0(2)&lt;br /&gt;                c_dp&lt;br /&gt;                sy-timlo+2(2)&lt;br /&gt;                c_dp&lt;br /&gt;                sy-timlo+4(2)&lt;br /&gt;           INTO i_footer_alv-info.&lt;br /&gt;    APPEND i_footer_alv.&lt;br /&gt;    CLEAR: i_footer_alv.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_COMMENTARY_WRITE&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      it_list_commentary = i_footer_alv[].&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot;F_END_OF_LIST&lt;br /&gt;*&gt;&gt; END   GCC_195.01 EXCHNEO_F10 11.02.2009&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_PF_STATUS_SET                                          *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Button Show                                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_CE_FUNC_EXCLUDE  Function Exclude                          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_pf_status_set&lt;br /&gt;* BEGIN GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;  USING p_ce_func_exclude TYPE slis_t_extab.                &quot;#EC CALLED&lt;br /&gt;&lt;br /&gt;  DATA li_fcode_attrib_tab LIKE smp_dyntxt OCCURS 4 WITH HEADER LINE.&lt;br /&gt;&lt;br /&gt;  CLEAR: li_fcode_attrib_tab,&lt;br /&gt;         li_fcode_attrib_tab[].&lt;br /&gt;&lt;br /&gt;* Attributes for the Button&lt;br /&gt;  li_fcode_attrib_tab-text      = text-t24. &quot; Comment&lt;br /&gt;  li_fcode_attrib_tab-icon_id   = &#39;@UI@&#39;.   &quot; Create Label.&lt;br /&gt;  li_fcode_attrib_tab-icon_text = text-t24. &quot; Text for the Button&lt;br /&gt;  li_fcode_attrib_tab-quickinfo = space.&lt;br /&gt;  li_fcode_attrib_tab-path      = space.&lt;br /&gt;  APPEND li_fcode_attrib_tab.&lt;br /&gt;&lt;br /&gt;* BEGIN GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;*Add Button for Comission Report Driver Copy&lt;br /&gt;  li_fcode_attrib_tab-text      = text-t28. &quot; Comment&lt;br /&gt;  li_fcode_attrib_tab-icon_id   = &#39;@UI@&#39;.   &quot; Create Label.&lt;br /&gt;  li_fcode_attrib_tab-icon_text = text-t28. &quot; Text for the Button&lt;br /&gt;  li_fcode_attrib_tab-quickinfo = space.&lt;br /&gt;  li_fcode_attrib_tab-path      = space.&lt;br /&gt;  APPEND li_fcode_attrib_tab.&lt;br /&gt;* END GCC_723 EXCHNEO_F10 29.04.2009&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Put the Button&lt;br /&gt;*  PERFORM dynamic_report_fcodes(rhteiln0) TABLES fcode_attrib_tab&lt;br /&gt;  PERFORM dynamic_report_fcodes&lt;br /&gt;    IN PROGRAM rhteiln0&lt;br /&gt;        TABLES li_fcode_attrib_tab&lt;br /&gt;         USING p_ce_func_exclude &#39; &#39; &#39; &#39;.&lt;br /&gt;&lt;br /&gt;  SET PF-STATUS &#39;ALVLIST&#39;&lt;br /&gt;      EXCLUDING p_ce_func_exclude&lt;br /&gt;     OF PROGRAM &#39;RHTEILN0&#39;.&lt;br /&gt;* END GCC_195.99 EXCHNEO_F10 24.02.2009 Change  Format Report List&lt;br /&gt;ENDFORM.                    &quot;F_PF_STATUS_SET&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_VARIANT_INIT                                           *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Variant Init                                                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_variant_init .&lt;br /&gt;  CLEAR w_variant.&lt;br /&gt;  w_variant-report = v_repid.&lt;br /&gt;ENDFORM.                    &quot; F_VARIANT_INIT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_CALL_VARIANT                                           *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Call Variant                                                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_call_variant .&lt;br /&gt;&lt;br /&gt;* Get default variant&lt;br /&gt;  w_xvariant = w_variant.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_VARIANT_DEFAULT_GET&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_save        = c_save&lt;br /&gt;    CHANGING&lt;br /&gt;      cs_variant    = w_xvariant&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      wrong_input   = 1&lt;br /&gt;      not_found     = 2&lt;br /&gt;      program_error = 3&lt;br /&gt;      OTHERS        = 4.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    p_vari = w_xvariant-variant.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_CALL_VARIANT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_F4_FOR_VARIANT                                         *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Display all existing variants                                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_f4_for_variant .&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_VARIANT_F4&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      is_variant = w_variant&lt;br /&gt;      i_save     = c_save&lt;br /&gt;    IMPORTING&lt;br /&gt;      e_exit     = v_exit&lt;br /&gt;      es_variant = w_xvariant&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      not_found  = 2.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 2.&lt;br /&gt;&lt;br /&gt;    MESSAGE ID sy-msgid&lt;br /&gt;          TYPE c_s&lt;br /&gt;        NUMBER sy-msgno&lt;br /&gt;          WITH sy-msgv1&lt;br /&gt;               sy-msgv2&lt;br /&gt;               sy-msgv3&lt;br /&gt;               sy-msgv4.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    IF v_exit = space.&lt;br /&gt;&lt;br /&gt;      p_vari = w_xvariant-variant.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_F4_FOR_VARIANT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_VALI_VARIANT                                           *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Validate Variant                                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_vali_variant .&lt;br /&gt;* Push List Variant&lt;br /&gt;  IF NOT p_vari IS INITIAL.&lt;br /&gt;&lt;br /&gt;    MOVE w_variant TO w_xvariant.&lt;br /&gt;    MOVE p_vari TO w_xvariant-variant.&lt;br /&gt;&lt;br /&gt;    CALL FUNCTION &#39;REUSE_ALV_VARIANT_EXISTENCE&#39;&lt;br /&gt;      EXPORTING&lt;br /&gt;        i_save        = c_save&lt;br /&gt;      CHANGING&lt;br /&gt;        cs_variant    = w_xvariant&lt;br /&gt;      EXCEPTIONS&lt;br /&gt;        wrong_input   = 1&lt;br /&gt;        not_found     = 2&lt;br /&gt;        program_error = 3&lt;br /&gt;        OTHERS        = 4.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      w_variant = w_xvariant.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    PERFORM f_variant_init.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_VALI_VARIANT&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbapersjuniors.blogspot.com/feeds/7518919938428967786/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/alv-grid-reporte-de-nomina-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/7518919938428967786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/7518919938428967786'/><link rel='alternate' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/alv-grid-reporte-de-nomina-de.html' title='ALV GRID: REPORTE DE NOMINA DE CONDUCTORES'/><author><name>Jose Angel Moreno Nieblas</name><uri>http://www.blogger.com/profile/07557229350909629318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5446296579082811811.post-6563699777377077472</id><published>2010-07-22T16:25:00.000-07:00</published><updated>2010-07-22T16:31:44.129-07:00</updated><title type='text'>ALV GRID: REPORTE DE COSTO DE VENTAS</title><content type='html'>&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Programa Principal&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;************************************************************************&lt;br /&gt;** Nombre del Programa: ZCXRE_CSDIS0MX512                             **&lt;br /&gt;** Descripción        : Creación de reporte para ofrecer visibilidad  **&lt;br /&gt;**                      de las operaciones comerciales de PROMEXMA en **&lt;br /&gt;**                      cuanto a la relación costo-venta de productos.**&lt;br /&gt;** Funcional          : Alfredo Vazquez Herrera.                      **&lt;br /&gt;** Consultor ABAP     : Jose Angel Moreno Nieblas MROSALES            **&lt;br /&gt;** Fecha Creación     : 23.06.2009                                    **&lt;br /&gt;** ID Requerimiento   : 25707                                         **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;REPORT  zcxre_csdis0mx512.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;** Declaración de Includes.                                           **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;INCLUDE:    zcxre_csdis0mx512_a,    &quot;Delaraciones Globales&lt;br /&gt;            zcxre_csdis0mx512_b.    &quot;Funciones&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;** Evento de inicialización.                                          **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;INITIALIZATION.&lt;br /&gt;&lt;br /&gt;  PERFORM f_inicializar_variante. &quot;Inicializa la variable&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;** Evento Selección de Pantalla.                                      **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.&lt;br /&gt;&lt;br /&gt;  PERFORM f_obtener_variante. &quot;Rutina que obtiene una variante default&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN.&lt;br /&gt;&lt;br /&gt;  PERFORM f_cargar_variante. &quot;Rutina que obtiene una variante&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;** Proceso Principal.                                                 **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_datos. &quot;Rutina que obtiene toda la información&lt;br /&gt;*                             para llenar la tabla a mostar en el ALV&lt;br /&gt;&lt;br /&gt;    PERFORM f_llenar_layout. &quot;Hace el llenado de la tabla principal&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;** Acciones a realizarse al final de la selección.                    **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;PERFORM f_reporte_alv.  &quot;Muestra el reporte ALV&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Declaraciones&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;************************************************************************&lt;br /&gt;** Nombre del Programa: ZCXRE_CSDIS0MX512                             **&lt;br /&gt;** Descripción        : Creación de reporte para ofrecer visibilidad  **&lt;br /&gt;**                      de las operaciones comerciales de PROMEXMA en **&lt;br /&gt;**                      cuanto a la relación costo-venta de productos.**&lt;br /&gt;** Funcional          : Alfredo Vazquez Herrera.                      **&lt;br /&gt;** Consultor ABAP     : Jose Angel Moreno Nieblas MROSALES            **&lt;br /&gt;** Fecha Creación     : 23.06.2009                                    **&lt;br /&gt;** ID Requerimiento   : 25707                                         **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  T A B L A S                                                       **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;TABLES: vbrp,&lt;br /&gt;        vbrk,&lt;br /&gt;        t001w,&lt;br /&gt;        kna1,&lt;br /&gt;        t023t,&lt;br /&gt;        vbkd,&lt;br /&gt;        makt,&lt;br /&gt;        ekko,&lt;br /&gt;        vbap,&lt;br /&gt;        ekpo,&lt;br /&gt;        mbew.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  C O N S T A N T E S                                               **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;CONSTANTS: c_x TYPE c VALUE &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  T I P O S                                                         **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;TYPE-POOLS: slis.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra VBRP&lt;br /&gt;TYPES: BEGIN OF ty_vbrp,&lt;br /&gt;  vbeln TYPE vbrp-vbeln,  &quot;Factura&lt;br /&gt;  fkimg TYPE vbrp-fkimg,  &quot;Cantidad facturada verdaderamente&lt;br /&gt;  gewei TYPE vbrp-gewei,  &quot;Unidad de peso&lt;br /&gt;  netwr TYPE vbrp-netwr,  &quot;Valor neto&lt;br /&gt;  aubel TYPE vbrp-aubel,  &quot;Documento de ventas&lt;br /&gt;  aupos TYPE vbrp-aupos,  &quot;Posición documento ventas&lt;br /&gt;  matnr TYPE vbrp-matnr,  &quot;Número de material&lt;br /&gt;  matkl TYPE vbrp-matkl,  &quot;Grupo de artículos&lt;br /&gt;  werks TYPE vbrp-werks.  &quot;Centro&lt;br /&gt;TYPES: END OF ty_vbrp.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra T001W&lt;br /&gt;TYPES: BEGIN OF ty_t001w,&lt;br /&gt;  werks TYPE t001w-werks, &quot;Centro&lt;br /&gt;  name1 TYPE t001w-name1. &quot;Nombre&lt;br /&gt;TYPES: END OF ty_t001w.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra VBRK&lt;br /&gt;TYPES: BEGIN OF ty_vbrk,&lt;br /&gt;  vbeln TYPE vbrk-vbeln,  &quot;Factura&lt;br /&gt;  waerk TYPE vbrk-waerk,  &quot;Moneda de documento comercial&lt;br /&gt;  vkorg TYPE vbrk-vkorg,  &quot;Organización de ventas&lt;br /&gt;  fkdat TYPE vbrk-fkdat,  &quot;Fecha de impresión de factura&lt;br /&gt;  kunrg TYPE vbrk-kunrg,  &quot;Pagador&lt;br /&gt;  xblnr TYPE vbrk-xblnr.  &quot;Número de documento de referencia&lt;br /&gt;TYPES: END OF ty_vbrk.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra KNA1&lt;br /&gt;TYPES: BEGIN OF ty_kna1,&lt;br /&gt;  kunnr TYPE kna1-kunnr,  &quot;Nº de cliente&lt;br /&gt;  name1 TYPE kna1-name1,                                    &quot;Nombre 1&lt;br /&gt;  name2 TYPE kna1-name2.                                    &quot;Nombre 2&lt;br /&gt;TYPES: END OF ty_kna1.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra T023T&lt;br /&gt;TYPES: BEGIN OF ty_t023t,&lt;br /&gt;  matkl TYPE t023t-matkl, &quot;Grupo de artículos&lt;br /&gt;  wgbez TYPE t023t-wgbez. &quot;Denominación del grupo de artículos&lt;br /&gt;TYPES: END OF ty_t023t.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra VBKD&lt;br /&gt;TYPES: BEGIN OF ty_vbkd,&lt;br /&gt;  vbeln TYPE vbkd-vbeln,  &quot;Número de documento comercial&lt;br /&gt;  posnr TYPE vbkd-posnr,  &quot;Número de posición del documento comercial&lt;br /&gt;  ihrez TYPE vbkd-ihrez.  &quot;Referencia&lt;br /&gt;TYPES: END OF ty_vbkd.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra MAKT&lt;br /&gt;TYPES: BEGIN OF ty_makt,&lt;br /&gt;  matnr TYPE makt-matnr,  &quot;Número de material&lt;br /&gt;  maktx TYPE makt-maktx.  &quot;Texto breve de material&lt;br /&gt;TYPES: END OF ty_makt.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra EKKO&lt;br /&gt;TYPES: BEGIN OF ty_ekko,&lt;br /&gt;  ebeln TYPE ekko-ebeln,  &quot;Número del documento de compras&lt;br /&gt;  ekorg TYPE ekko-ekorg,  &quot;Organización de compras&lt;br /&gt;  ekgrp TYPE ekko-ekgrp,  &quot;Grupo de compras&lt;br /&gt;  waers TYPE ekko-waers,  &quot;Clave de moneda&lt;br /&gt;  ihrez TYPE ekko-ihrez.  &quot;Referencia&lt;br /&gt;TYPES: END OF ty_ekko.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra EKPO&lt;br /&gt;TYPES: BEGIN OF ty_ekpo,&lt;br /&gt;  ebeln TYPE ekpo-ebeln,  &quot;Número del documento de compras&lt;br /&gt;  matnr TYPE ekpo-matnr,  &quot;Número de material&lt;br /&gt;  netpr TYPE ekpo-netpr,  &quot;Precio neto en doc.compras moneda documento&lt;br /&gt;  netwr TYPE ekpo-netwr.  &quot;Valor neto de pedido en moneda de pedido&lt;br /&gt;TYPES: END OF ty_ekpo.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra VBAP&lt;br /&gt;TYPES: BEGIN OF ty_vbap,&lt;br /&gt;  vbeln TYPE vbap-vbeln,  &quot;Documento de ventas&lt;br /&gt;  posnr TYPE vbap-posnr,  &quot;Posición documento ventas&lt;br /&gt;  waerk TYPE vbap-waerk,  &quot;Moneda de documento comercial&lt;br /&gt;  netpr TYPE vbap-netpr.  &quot;Precio neto&lt;br /&gt;TYPES: END OF ty_vbap.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar información de la tabla maestra MBEW&lt;br /&gt;TYPES: BEGIN OF ty_mbew,&lt;br /&gt;  matnr TYPE mbew-matnr,  &quot;Número de material&lt;br /&gt;  bwkey TYPE mbew-bwkey,  &quot;Ámbito de valoración&lt;br /&gt;  verpr TYPE mbew-verpr.  &quot;Precio variable/Precio interno periódico&lt;br /&gt;TYPES: END OF ty_mbew.&lt;br /&gt;&lt;br /&gt;*Tipo para guardar la cebecera de la tabla principal [i_layout]&lt;br /&gt;TYPES: BEGIN OF ty_namefields,&lt;br /&gt;  name TYPE char40.       &quot;Nombre del campo&lt;br /&gt;TYPES: END OF ty_namefields.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  E S T R U C T U R A S                                             **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;DATA: w_layout     TYPE zst0140_csdis0mx512,&lt;br /&gt;      w_layout_alv TYPE slis_layout_alv,&lt;br /&gt;      w_xvariant   TYPE disvariant,&lt;br /&gt;      w_variant    TYPE disvariant,&lt;br /&gt;      w_namefield  TYPE ty_namefields,&lt;br /&gt;      w_vbrp       TYPE ty_vbrp,&lt;br /&gt;      w_t001w      TYPE ty_t001w,&lt;br /&gt;      w_vbrk       TYPE ty_vbrk,&lt;br /&gt;      w_kna1       TYPE ty_kna1,&lt;br /&gt;      w_t023t      TYPE ty_t023t,&lt;br /&gt;      w_vbkd       TYPE ty_vbkd,&lt;br /&gt;      w_makt       TYPE ty_makt,&lt;br /&gt;      w_ekpo       TYPE ty_ekpo,&lt;br /&gt;      w_ekko       TYPE ty_ekko,&lt;br /&gt;      w_vbap       TYPE ty_vbap,&lt;br /&gt;      w_mbew       TYPE ty_mbew.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  T A B L A S   I N T E R N A S                                     **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;DATA: i_layout     TYPE ztt0140_csdis0mx512,&lt;br /&gt;      i_fieldcat   TYPE slis_t_fieldcat_alv, &quot; Catalogue of field.&lt;br /&gt;      i_namefield  TYPE STANDARD TABLE OF ty_namefields,&lt;br /&gt;      i_vbrp       TYPE STANDARD TABLE OF ty_vbrp,&lt;br /&gt;      i_t001w      TYPE STANDARD TABLE OF ty_t001w,&lt;br /&gt;      i_t001w_temp TYPE STANDARD TABLE OF ty_t001w,&lt;br /&gt;      i_vbrk       TYPE STANDARD TABLE OF ty_vbrk,&lt;br /&gt;      i_vbrk_temp  TYPE STANDARD TABLE OF ty_vbrk,&lt;br /&gt;      i_kna1       TYPE STANDARD TABLE OF ty_kna1,&lt;br /&gt;      i_t023t      TYPE STANDARD TABLE OF ty_t023t,&lt;br /&gt;      i_vbkd       TYPE STANDARD TABLE OF ty_vbkd,&lt;br /&gt;      i_makt       TYPE STANDARD TABLE OF ty_makt,&lt;br /&gt;      i_ekpo       TYPE STANDARD TABLE OF ty_ekpo,&lt;br /&gt;      i_ekko       TYPE STANDARD TABLE OF ty_ekko,&lt;br /&gt;      i_ekko_temp  TYPE STANDARD TABLE OF ty_ekko,&lt;br /&gt;      i_vbap       TYPE STANDARD TABLE OF ty_vbap,&lt;br /&gt;      i_mbew       TYPE STANDARD TABLE OF ty_mbew.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  F I E L D S   S Y M B O L S                                       **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;FIELD-SYMBOLS: &lt;fs_fieldcat&gt; LIKE LINE OF i_fieldcat.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**                     P A R A M E T R O S                            **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: BEGIN OF BLOCK bkl1 WITH FRAME TITLE text-001.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS: s_werks FOR vbrp-werks OBLIGATORY,&lt;br /&gt;                s_fkdat FOR vbrk-fkdat OBLIGATORY,&lt;br /&gt;                s_kunrg FOR vbrk-kunrg OBLIGATORY,&lt;br /&gt;                s_matkl FOR vbrp-matkl,&lt;br /&gt;                s_matnr FOR vbrp-matnr.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: END OF BLOCK bkl1.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: BEGIN OF BLOCK bkl2 WITH FRAME TITLE text-002.&lt;br /&gt;&lt;br /&gt;PARAMETERS: p_layout TYPE disvariant-variant.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: END OF BLOCK bkl2.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  M A C R O S                                                       **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;DEFINE message_error.&lt;br /&gt;&lt;br /&gt;  message id      sy-msgid&lt;br /&gt;          type    sy-msgty&lt;br /&gt;          number  sy-msgno&lt;br /&gt;          with    sy-msgv1&lt;br /&gt;                  sy-msgv2&lt;br /&gt;                  sy-msgv3&lt;br /&gt;                  sy-msgv4.&lt;br /&gt;&lt;br /&gt;END-OF-DEFINITION.&lt;br /&gt;&lt;br /&gt;DEFINE read_table_mnew.&lt;br /&gt;&lt;br /&gt;  clear: w_layout-ebeln,        &quot;Número de documento&lt;br /&gt;         w_layout-netpr_ekpo.   &quot;Costo unitario&lt;br /&gt;&lt;br /&gt;  read table i_mbew&lt;br /&gt;        into w_mbew&lt;br /&gt;    with key matnr = w_vbrp-matnr &quot;Material&lt;br /&gt;             bwkey = w_vbrp-werks &quot;Centro&lt;br /&gt;    binary search.&lt;br /&gt;&lt;br /&gt;  if sy-subrc eq 0.&lt;br /&gt;&lt;br /&gt;    move: w_mbew-verpr to w_layout-netpr_ekpo. &quot;Costo&lt;br /&gt;*                                               unitario&lt;br /&gt;&lt;br /&gt;  endif.&lt;br /&gt;&lt;br /&gt;END-OF-DEFINITION.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Rutinas&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;************************************************************************&lt;br /&gt;** Nombre del Programa: ZCXRE_CSDIS0MX512                             **&lt;br /&gt;** Descripción        : Creación de reporte para ofrecer visibilidad  **&lt;br /&gt;**                      de las operaciones comerciales de PROMEXMA en **&lt;br /&gt;**                      cuanto a la relación costo-venta de productos.**&lt;br /&gt;** Funcional          : Alfredo Vazquez Herrera.                      **&lt;br /&gt;** Consultor ABAP     : Jose Angel Moreno Nieblas MROSALES            **&lt;br /&gt;** Fecha Creación     : 23.06.2009                                    **&lt;br /&gt;** ID Requerimiento   : 25707                                         **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_REPORTE_ALV                                            *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Muestra el reporte en forma de ALV                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_reporte_alv .&lt;br /&gt;&lt;br /&gt;  PERFORM f_int_fieldcat_alv. &quot;Inicializa el fieldcatalog&lt;br /&gt;&lt;br /&gt;  PERFORM f_layout_alv. &quot;Determina el formato de la salida del ALV&lt;br /&gt;&lt;br /&gt;  PERFORM f_mostrar_alv.  &quot;Despliega el reporte ALV&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_REPORTE_ALV&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_INT_FIELDCAT_ALV                                       *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Inicializa la tabla para agrupar los datos en el ALV           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_int_fieldcat_alv .&lt;br /&gt;&lt;br /&gt;* Llamado de la función [REUSE_ALV_FIELDCATALOG_MERGE] para inicializar&lt;br /&gt;* el fieldcat [i_fieldcat] con la estructura [w_layout]&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_FIELDCATALOG_MERGE&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_program_name         = sy-repid&lt;br /&gt;      i_internal_tabname     = &#39;W_LAYOUT&#39;&lt;br /&gt;      i_inclname             = &#39;ZCXRE_CSDIS0MX512_A&#39;&lt;br /&gt;    CHANGING&lt;br /&gt;      ct_fieldcat            = i_fieldcat[]&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      inconsistent_interface = 1&lt;br /&gt;      program_error          = 2&lt;br /&gt;      OTHERS                 = 3.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;*   Utilizando un macro que contiene los mensajes de error&lt;br /&gt;    message_error.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_fieldcat&lt;br /&gt;      ASSIGNING &lt;fs_fieldcat&gt;.&lt;br /&gt;&lt;br /&gt;      &lt;fs_fieldcat&gt;-ddictxt = &#39;L&#39;.&lt;br /&gt;&lt;br /&gt;      CASE &lt;fs_fieldcat&gt;-fieldname.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;WEKRS&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-003.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;NAME1&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-004.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;FKDAT&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-005.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;VBELN&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-006.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;XBLNR&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-007.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;KUNRG&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-008.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;NAMEC&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-009.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;MATKL&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-010.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;WGBEZ&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-011.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;AUBEL&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-012.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;AUPOS&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-013.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;IHREZ&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-014.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;MATNR&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-015.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;MAKTX&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-016.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;FKIMG&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-017.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;NETPR_VBAP&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-018.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;EBELN&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-019.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;NETPR_EKPO&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-020.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;NETWR_VBRP&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-021.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;NETWR_EKPO&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-022.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;MARGEN&#39;.&lt;br /&gt;&lt;br /&gt;          &lt;fs_fieldcat&gt;-seltext_l = text-023.&lt;br /&gt;&lt;br /&gt;      ENDCASE.&lt;br /&gt;&lt;br /&gt;      MODIFY TABLE i_fieldcat&lt;br /&gt;      FROM &lt;fs_fieldcat&gt;&lt;br /&gt;      TRANSPORTING: seltext_l   &quot;Texto largo para la cabecera&lt;br /&gt;                    ddictxt.    &quot;Tipo de texto para la cabecera&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_INT_FIELDCAT_ALV&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_MOSTRAR_ALV                                            *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Imprime el alv                                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_mostrar_alv .&lt;br /&gt;&lt;br /&gt;* Llamado de la función [REUSE_ALV_GRID_DISPLAY] para imprimir en&lt;br /&gt;* pantalla el ALV.&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_GRID_DISPLAY&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_callback_program       = sy-repid&lt;br /&gt;      i_callback_pf_status_set = &#39;F_SET_STATUS&#39;&lt;br /&gt;      i_callback_user_command  = &#39;F_USER_COMAND&#39;&lt;br /&gt;      i_structure_name         = &#39;W_LAYOUT&#39;&lt;br /&gt;      is_layout                = w_layout_alv&lt;br /&gt;      it_fieldcat              = i_fieldcat[]&lt;br /&gt;      i_save                   = &#39;X&#39;&lt;br /&gt;      is_variant               = w_variant&lt;br /&gt;    TABLES&lt;br /&gt;      t_outtab                 = i_layout&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      program_error            = 1&lt;br /&gt;      OTHERS                   = 2.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;*   Utilizando un macro que contiene los mensajes de error&lt;br /&gt;    message_error.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_MOSTRAR_ALV&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_LAYOUT_ALV                                             *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Define el formato de salida del ALV                            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_layout_alv .&lt;br /&gt;&lt;br /&gt;* Se encarga de mostrar las líneas de un color.&lt;br /&gt;  w_layout_alv-zebra             = c_x.&lt;br /&gt;&lt;br /&gt;* Muestra la información en el reglón siguiente en caso de que no quepa&lt;br /&gt;* en ese renglón.&lt;br /&gt;  w_layout_alv-detail_popup      = c_x.&lt;br /&gt;&lt;br /&gt;* Se encarga de poner el ancho de la columna de acuerdo al tamaño de&lt;br /&gt;* la información que trae.&lt;br /&gt;  w_layout_alv-colwidth_optimize = c_x.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_LAYOUT_ALV&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_DATOS                                          *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Contiene las rutinas y los autority-check para obtener la      *&lt;br /&gt;*       información correspondientes para mostrar el reporte ALV       *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_datos .&lt;br /&gt;&lt;br /&gt;  PERFORM f_obtener_vbrp. &quot;Obtiene datos de la tabla VBRP&lt;br /&gt;&lt;br /&gt;  PERFORM f_obtener_vbrk. &quot;Obtiene datos de la tabla VBRK&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_DATOS&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_VBRP                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra VBRP                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  En la condición WHERE no se encuentra el campo llave de la tabla    *&lt;br /&gt;*  debido a que no cuento con la información necesaria para obtenerlo  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_vbrp .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla VBRP guardando en la&lt;br /&gt;* tabla interna [i_vbrp] con las condiciones del numero de material&lt;br /&gt;* [s_matnr], grupo de artículos [s_matkl] y el centro [s_werks]:&lt;br /&gt;  SELECT  vbeln                   &quot;Factura&lt;br /&gt;          fkimg                   &quot;Cantidad facturada verdaderamente&lt;br /&gt;          gewei                   &quot;Unidad de peso&lt;br /&gt;          netwr                   &quot;Valor neto&lt;br /&gt;          aubel                   &quot;Documento de ventas&lt;br /&gt;          aupos                   &quot;Posición documento ventas&lt;br /&gt;          matnr                   &quot;Número de material&lt;br /&gt;          matkl                   &quot;Grupo de artículos&lt;br /&gt;          werks                   &quot;Centro&lt;br /&gt;    FROM  vbrp&lt;br /&gt;    INTO TABLE  i_vbrp&lt;br /&gt;    WHERE matnr IN s_matnr&lt;br /&gt;    AND   matkl IN s_matkl&lt;br /&gt;    AND   werks IN s_werks.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_vbrp] por:&lt;br /&gt;    SORT i_vbrp&lt;br /&gt;    BY   vbeln                    &quot;Factura&lt;br /&gt;         matnr.                   &quot;Número de material&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_t001w. &quot;Obtiene datos de la tabla T001W&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_vbkd. &quot;Obtiene datos de la tabla VBKD&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_t023t. &quot;Obtiene datos de la tabla T023T&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_makt. &quot;Obtiene datos de la tabla MAKT&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_vbap. &quot;Obtiene datos de la tabla VBAP&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_mbew. &quot;Obtiene datos de la tabla MBEW&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_vbrp.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_VBRP&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_VBRK                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra VBRK                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_vbrk .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla VBRK guardando en la&lt;br /&gt;* tabla interna [i_vbrk] con las condiciones de la fecha de impresión&lt;br /&gt;* de factura [s_fkdat] y del pagador [s_kunrg]:&lt;br /&gt;  SELECT  vbeln                   &quot;Factura&lt;br /&gt;          waerk                   &quot;Moneda de documento comercial&lt;br /&gt;          vkorg                   &quot;Organización de ventas&lt;br /&gt;          fkdat                   &quot;Fecha de impresión de factura&lt;br /&gt;          kunrg                   &quot;Pagador&lt;br /&gt;          xblnr                   &quot;Número de documento de referencia&lt;br /&gt;    FROM  vbrk&lt;br /&gt;    INTO TABLE i_vbrk&lt;br /&gt;    FOR ALL ENTRIES IN i_vbrp&lt;br /&gt;    WHERE vbeln EQ i_vbrp-vbeln&lt;br /&gt;    AND   fkdat IN s_fkdat&lt;br /&gt;    AND   kunrg IN s_kunrg.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    MOVE i_vbrk TO i_vbrk_temp.&lt;br /&gt;&lt;br /&gt;    CLEAR i_vbrk.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_vbrk_temp&lt;br /&gt;      INTO w_vbrk.&lt;br /&gt;&lt;br /&gt;*     Aplicando el AUTHORITY-CHECK [V_VBRK_VKO]&lt;br /&gt;      AUTHORITY-CHECK OBJECT &#39;V_VBRK_VKO&#39;&lt;br /&gt;      ID &#39;VKORG&#39; FIELD w_vbrk-vkorg&lt;br /&gt;      ID &#39;ACTVT&#39; FIELD &#39;03&#39;.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        APPEND w_vbrk TO i_vbrk.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      CLEAR w_vbrk.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_vbrk] por:&lt;br /&gt;    SORT i_vbrk&lt;br /&gt;    BY   vbeln.                   &quot;Factura&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_kna1. &quot;Obtiene datos de la tabla KNA1&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;*   Limpiando la tabla interna [i_vbrk]&lt;br /&gt;    CLEAR i_vbrk.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_VBRK&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_T001W                                          *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra T001W                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_t001w .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla T001W guardando en la&lt;br /&gt;* tabla interna [i_t001w] con la condición del centro [werks] que&lt;br /&gt;* coincidan con los registros de la tabla interna [i_vbrp-werks]:&lt;br /&gt;  SELECT werks                   &quot;Centro&lt;br /&gt;         name1                   &quot;Nombre&lt;br /&gt;    FROM t001w&lt;br /&gt;    INTO TABLE i_t001w&lt;br /&gt;    FOR ALL ENTRIES IN i_vbrp&lt;br /&gt;    WHERE werks EQ i_vbrp-werks.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_t001w] por:&lt;br /&gt;    SORT i_t001w&lt;br /&gt;    BY   werks.                   &quot;Centro&lt;br /&gt;&lt;br /&gt;*   Copiando la tabla interna [i_t001w] a una temporal del mismo tipo&lt;br /&gt;*   para aplicarle el AUTORITY-CHECK&lt;br /&gt;    MOVE i_t001w TO i_t001w_temp.&lt;br /&gt;&lt;br /&gt;    CLEAR i_t001w.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_t001w_temp&lt;br /&gt;      INTO w_t001w.&lt;br /&gt;&lt;br /&gt;*     Aplicando el AUTHORITY-CHECK [V_BEST_WRK]&lt;br /&gt;      AUTHORITY-CHECK OBJECT &#39;M_BEST_WRK&#39;&lt;br /&gt;      ID &#39;WERKS&#39; FIELD w_t001w-werks&lt;br /&gt;      ID &#39;ACTVT&#39; FIELD &#39;03&#39;.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        APPEND w_t001w TO i_t001w.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      CLEAR w_t001w.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_t001w.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_T001W&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_VBAP                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra VBAP                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_vbap .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla VBAP guardando en la&lt;br /&gt;* tabla interna [i_vbap] con las condiciones de: factura [vbeln]&lt;br /&gt;* y del número de posición del documento [posnr] que coincidan con&lt;br /&gt;* los registros de la tabla interna [i_vbrp-vbeln] y [i_vbrp-posnr]:&lt;br /&gt;  SELECT vbeln                   &quot;Factura&lt;br /&gt;         posnr                   &quot;Número de posición del documento&lt;br /&gt;         waerk                   &quot;Moneda de documento comercial&lt;br /&gt;         netpr                   &quot;Precio Neto&lt;br /&gt;    FROM vbap&lt;br /&gt;    INTO TABLE i_vbap&lt;br /&gt;    FOR ALL ENTRIES IN i_vbrp&lt;br /&gt;    WHERE vbeln EQ i_vbrp-aubel&lt;br /&gt;    AND   posnr EQ i_vbrp-aupos.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_vbap] por:&lt;br /&gt;    SORT i_vbap&lt;br /&gt;     BY  vbeln                   &quot;Factura&lt;br /&gt;         posnr.                  &quot;Número de posición del documento&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_vbap.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_VBAP&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_VBKD                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra VBKD                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_vbkd .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla VBKD guardando en la&lt;br /&gt;* tabla interna [i_vbkd] con la condición de la factura [vbeln] que&lt;br /&gt;* coincidan con los registros de la tabla interna [i_vbrp-aubel]:&lt;br /&gt;  SELECT   vbeln                   &quot;Factura&lt;br /&gt;           posnr                   &quot;Número de posición del documento&lt;br /&gt;           ihrez                   &quot;Referencia&lt;br /&gt;    FROM   vbkd&lt;br /&gt;    INTO TABLE i_vbkd&lt;br /&gt;    FOR ALL ENTRIES IN i_vbrp&lt;br /&gt;    WHERE vbeln EQ i_vbrp-aubel&lt;br /&gt;    AND posnr EQ 0.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_vbkd] por:&lt;br /&gt;    SORT i_vbkd&lt;br /&gt;    BY   vbeln.                   &quot;Factura&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_ekko. &quot;Obtiene datos de la tabla EKKO&lt;br /&gt;&lt;br /&gt;    PERFORM f_obtener_ekpo. &quot;Obtiene datos de la tabla EKPO&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_vbkd.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_VBKD&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_EKKO                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra EKKO                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  En la condición WHERE no se encuentra el campo llave de la tabla    *&lt;br /&gt;*  debido a que no cuento con la información necesaria para obtenerlo  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_ekko .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla EKKO guardando en la&lt;br /&gt;* tabla interna [i_ekko] con la condición de la referencia [ihrez] que&lt;br /&gt;* coincidan con los registros de la tabla interna [i_vbkd-ihrez]:&lt;br /&gt;  SELECT   ebeln                   &quot;Número de documento de compras&lt;br /&gt;           ekorg                   &quot;Organización de compras&lt;br /&gt;           ekgrp                   &quot;Grupo de compras&lt;br /&gt;           waers                   &quot;Clave de moneda&lt;br /&gt;           ihrez                   &quot;Referencia&lt;br /&gt;    FROM   ekko&lt;br /&gt;    INTO TABLE i_ekko&lt;br /&gt;    FOR ALL ENTRIES IN i_vbkd&lt;br /&gt;    WHERE ihrez EQ i_vbkd-ihrez.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_ekko] por:&lt;br /&gt;    SORT i_ekko&lt;br /&gt;    BY   ihrez.                   &quot;Referencia&lt;br /&gt;&lt;br /&gt;*   Copiando la tabla interna [i_ekko] a una temporal del mismo tipo&lt;br /&gt;*   para aplicarle el AUTORITY-CHECK&lt;br /&gt;    MOVE i_ekko TO i_ekko_temp.&lt;br /&gt;&lt;br /&gt;    CLEAR i_ekko.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_ekko_temp&lt;br /&gt;      INTO w_ekko.&lt;br /&gt;&lt;br /&gt;*     Aplicando el AUTHORITY-CHECK [V_BEST_EKO]&lt;br /&gt;      AUTHORITY-CHECK OBJECT &#39;M_BEST_EKO&#39;&lt;br /&gt;      ID &#39;EKORG&#39; FIELD w_ekko-ekorg&lt;br /&gt;      ID &#39;ACTVT&#39; FIELD &#39;03&#39;.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        APPEND w_ekko TO i_ekko.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      CLEAR w_ekko.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;    MOVE i_ekko TO i_ekko_temp.&lt;br /&gt;&lt;br /&gt;    CLEAR i_ekko.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_ekko_temp&lt;br /&gt;      INTO w_ekko.&lt;br /&gt;&lt;br /&gt;*     Aplicando el AUTHORITY-CHECK [V_BEST_EKG]&lt;br /&gt;      AUTHORITY-CHECK OBJECT &#39;M_BEST_EKG&#39;&lt;br /&gt;      ID &#39;EKGRP&#39; FIELD w_ekko-ekgrp&lt;br /&gt;      ID &#39;ACTVT&#39; FIELD &#39;03&#39;.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        APPEND w_ekko TO i_ekko.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      CLEAR w_ekko.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_ekko.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_EKKO&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_EKPO                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra EKPO                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_ekpo .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla EKPO guardando en la&lt;br /&gt;* tabla interna [i_ekpo] con la condición del número del documento de&lt;br /&gt;* compras [ebeln] que coincidan con los registros de la tabla interna&lt;br /&gt;* [i_ekko-ebeln]:&lt;br /&gt;  SELECT   ebeln                   &quot;Número del documento de compras&lt;br /&gt;           matnr                   &quot;Número del material&lt;br /&gt;           netpr                   &quot;Precio neto&lt;br /&gt;           netwr                   &quot;Valor neto&lt;br /&gt;   FROM    ekpo&lt;br /&gt;   INTO TABLE i_ekpo&lt;br /&gt;   FOR ALL ENTRIES IN i_ekko&lt;br /&gt;   WHERE ebeln EQ i_ekko-ebeln.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_ekpo] por:&lt;br /&gt;    SORT i_ekpo&lt;br /&gt;    BY   ebeln                   &quot;Número del documento de compras&lt;br /&gt;         matnr.                  &quot;Número de material&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_ekpo.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_EKPO&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_LLENAR_LAYOUT                                          *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina que llena nuestra tabla principal para ser mostrada     *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_llenar_layout .&lt;br /&gt;&lt;br /&gt;* Declaración de variables locales&lt;br /&gt;  DATA: lv_name(70) TYPE c VALUE &#39;&#39;. &quot;Para el nombre del cliente&lt;br /&gt;&lt;br /&gt;  LOOP AT i_vbrp&lt;br /&gt;    INTO w_vbrp.&lt;br /&gt;&lt;br /&gt;    MOVE: w_vbrp-werks TO w_layout-werks,       &quot;Centro&lt;br /&gt;          w_vbrp-netwr TO w_layout-netwr_vbrp,  &quot;Importe de venta&lt;br /&gt;          w_vbrp-matkl TO w_layout-matkl,       &quot;Grupo de material&lt;br /&gt;          w_vbrp-aubel TO w_layout-aubel,       &quot;Pedido&lt;br /&gt;          w_vbrp-aupos TO w_layout-aupos,       &quot;Línea&lt;br /&gt;          w_vbrp-matnr TO w_layout-matnr,       &quot;No. Material&lt;br /&gt;          w_vbrp-fkimg TO w_layout-fkimg,       &quot;Cantidad facturada&lt;br /&gt;          w_vbrp-gewei TO w_layout-gewei.       &quot;Unidad de peso&lt;br /&gt;&lt;br /&gt;    READ TABLE  i_t001w&lt;br /&gt;          INTO  w_t001w&lt;br /&gt;      WITH KEY  werks = w_vbrp-werks &quot;Centro&lt;br /&gt;      BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      MOVE: w_t001w-name1 TO w_layout-name1.    &quot;Descripción centro&lt;br /&gt;&lt;br /&gt;      READ TABLE i_vbrk&lt;br /&gt;            INTO w_vbrk&lt;br /&gt;        WITH KEY vbeln = w_vbrp-vbeln &quot;Factura&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        MOVE: w_vbrk-fkdat TO w_layout-fkdat,   &quot;Fecha de factura&lt;br /&gt;              w_vbrk-vbeln TO w_layout-vbeln,   &quot;No. factura SAP&lt;br /&gt;              w_vbrk-xblnr TO w_layout-xblnr,   &quot;No. factura fiscal&lt;br /&gt;              w_vbrk-kunrg TO w_layout-kunrg,   &quot;No. cliente&lt;br /&gt;              w_vbrk-waerk TO w_layout-waers_vbap,  &quot;Moneda&lt;br /&gt;              w_vbrk-waerk TO w_layout-waers_ekko1, &quot;Moneda&lt;br /&gt;              w_vbrk-waerk TO w_layout-waers_ekko2, &quot;Moneda&lt;br /&gt;              w_vbrk-waerk TO w_layout-waers_ekko3, &quot;Moneda&lt;br /&gt;              w_vbrk-waerk TO w_layout-waers_ekko4. &quot;Moneda&lt;br /&gt;&lt;br /&gt;        READ TABLE i_kna1&lt;br /&gt;              INTO w_kna1&lt;br /&gt;          WITH KEY kunnr = w_layout-kunrg &quot;Cliente&lt;br /&gt;          BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*         Concatenando los nombres del cliente.&lt;br /&gt;          CONCATENATE w_kna1-name1&lt;br /&gt;                      w_kna1-name2&lt;br /&gt;                 INTO lv_name&lt;br /&gt;                 SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;          MOVE: lv_name TO w_layout-namec.    &quot;Descripción cliente&lt;br /&gt;&lt;br /&gt;          READ TABLE i_vbap&lt;br /&gt;                INTO w_vbap&lt;br /&gt;            WITH KEY vbeln = w_vbrp-aubel &quot;Pedido&lt;br /&gt;                     posnr = w_vbrp-aupos &quot;Linea&lt;br /&gt;            BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;            MOVE: w_vbap-netpr TO w_layout-netpr_vbap.  &quot;Precio&lt;br /&gt;*                                                       Unitario de&lt;br /&gt;*                                                         Venta&lt;br /&gt;&lt;br /&gt;            READ TABLE i_vbkd&lt;br /&gt;                  INTO w_vbkd&lt;br /&gt;              WITH KEY vbeln = w_vbrp-aubel&lt;br /&gt;              BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;            IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;              MOVE: w_vbkd-ihrez TO w_layout-ihrez.   &quot;Referencia&lt;br /&gt;&lt;br /&gt;              READ TABLE i_ekko&lt;br /&gt;                    INTO w_ekko&lt;br /&gt;                WITH KEY ihrez = w_layout-ihrez &quot;Referencia&lt;br /&gt;                BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;              IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;                IF w_layout-ihrez IS INITIAL.&lt;br /&gt;&lt;br /&gt;*                 Utilizando un macro que contiene el read table a mbew&lt;br /&gt;                  read_table_mnew.&lt;br /&gt;&lt;br /&gt;                ELSE.&lt;br /&gt;&lt;br /&gt;                  MOVE: w_ekko-ebeln TO w_layout-ebeln. &quot;Orden de&lt;br /&gt;*                                                        compra&lt;br /&gt;&lt;br /&gt;                  READ TABLE i_ekpo&lt;br /&gt;                        INTO w_ekpo&lt;br /&gt;                    WITH KEY ebeln = w_layout-ebeln  &quot;Documento&lt;br /&gt;                             matnr = w_vbrp-matnr    &quot;Material&lt;br /&gt;                    BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;                  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;                    MOVE: w_ekpo-netpr TO w_layout-netpr_ekpo, &quot;Costo&lt;br /&gt;*                                                             unitario&lt;br /&gt;                          w_ekpo-netwr TO w_layout-netwr_ekpo. &quot;Costo de&lt;br /&gt;*                                                             venta&lt;br /&gt;&lt;br /&gt;                  ENDIF.&lt;br /&gt;&lt;br /&gt;                ENDIF.&lt;br /&gt;&lt;br /&gt;              ELSE.&lt;br /&gt;&lt;br /&gt;*               Utilizando un macro que contiene el read table a mbew&lt;br /&gt;                read_table_mnew.&lt;br /&gt;&lt;br /&gt;              ENDIF.&lt;br /&gt;&lt;br /&gt;            ENDIF.&lt;br /&gt;&lt;br /&gt;            READ TABLE i_t023t&lt;br /&gt;                  INTO w_t023t&lt;br /&gt;              WITH KEY matkl = w_vbrp-matkl &quot;Grupo de Material&lt;br /&gt;              BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;            IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;              MOVE: w_t023t-wgbez TO w_layout-wgbez.  &quot;Descripción&lt;br /&gt;*                                                      Grupo de Material&lt;br /&gt;&lt;br /&gt;              READ TABLE i_makt&lt;br /&gt;                    INTO w_makt&lt;br /&gt;                WITH KEY matnr = w_vbrp-matnr &quot;Material&lt;br /&gt;                BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;              IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;                MOVE: w_makt-maktx TO w_layout-maktx. &quot;Descripción del&lt;br /&gt;*                                                           Material&lt;br /&gt;&lt;br /&gt;*               Asignando el resultado de la resta al margen&lt;br /&gt;                w_layout-margen = w_layout-netwr_vbrp - &quot;Importe Venta&lt;br /&gt;                                  w_layout-netwr_ekpo.  &quot;Costo Venta&lt;br /&gt;&lt;br /&gt;                APPEND w_layout TO i_layout.&lt;br /&gt;&lt;br /&gt;              ENDIF.&lt;br /&gt;&lt;br /&gt;            ENDIF.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    CLEAR w_layout.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_LLENAR_LAYOUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_T023T                                          *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra T023T                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_t023t .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla T023T guardando en la&lt;br /&gt;* tabla interna [i_t023t] con las condiciones: grupo de artículos&lt;br /&gt;* [maktl] y el lenguaje del usuario [spras] que coincidan con los&lt;br /&gt;* registros de la tabla interna [i_vbrp-matkl] y [sy-langu]:&lt;br /&gt;  SELECT matkl                   &quot;Grupo de artículos&lt;br /&gt;         wgbez                   &quot;Descripción grupo de material&lt;br /&gt;    FROM t023t&lt;br /&gt;    INTO TABLE i_t023t&lt;br /&gt;    FOR ALL ENTRIES IN i_vbrp&lt;br /&gt;    WHERE matkl = i_vbrp-matkl&lt;br /&gt;    AND   spras = sy-langu.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_t023t] por:&lt;br /&gt;    SORT i_t023t&lt;br /&gt;    BY matkl.                   &quot;Grupo de artículos&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_t023t.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_T023T&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_MAKT                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra MAKT                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_makt .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla MAKT guardando en la&lt;br /&gt;* tabla interna [i_makt] con la condición del número de material [matnr]&lt;br /&gt;* que coincidan con los registros de la tabla interna [i_vbro-matnr]:&lt;br /&gt;  SELECT matnr                   &quot;Número de material&lt;br /&gt;         maktx                   &quot;Texto breve del material&lt;br /&gt;    FROM makt&lt;br /&gt;    INTO TABLE i_makt&lt;br /&gt;    FOR ALL ENTRIES IN i_vbrp&lt;br /&gt;    WHERE matnr = i_vbrp-matnr.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_makt] por:&lt;br /&gt;    SORT i_makt&lt;br /&gt;    BY   matnr.                   &quot;Número de material&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_makt.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_MAKT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_MBEW                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra MBEW                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_mbew .&lt;br /&gt;* Selecciona los siguientes campos de la tabla MBEW guardando en la&lt;br /&gt;* tabla interna [i_mbew] con las condiciones: número de material [matnr]&lt;br /&gt;* y ámbito de valoración [bwkey] que coincidan con los registros de la&lt;br /&gt;* tabla interna [i_vbrp-matnr] y [i_vbrp-werks]:&lt;br /&gt;  SELECT matnr                   &quot;Número de material&lt;br /&gt;         bwkey                   &quot;Ámbito de valoración&lt;br /&gt;         verpr                   &quot;Precio variable / interno periódico&lt;br /&gt;    FROM mbew&lt;br /&gt;    INTO TABLE i_mbew&lt;br /&gt;    FOR ALL ENTRIES IN i_vbrp&lt;br /&gt;    WHERE matnr = i_vbrp-matnr&lt;br /&gt;    AND   bwkey = i_vbrp-werks.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_mbew] por:&lt;br /&gt;    SORT i_mbew&lt;br /&gt;    BY   matnr                   &quot;Número de material&lt;br /&gt;         bwkey.                  &quot;Ámbito de valoración&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_mbew.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_MBEW&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_KNA1                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene información de la tabla maestra KNA1                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_kna1 .&lt;br /&gt;&lt;br /&gt;* Selecciona los siguientes campos de la tabla KNAI guardando en la&lt;br /&gt;* tabla interna [i_kna1] con la condición del número de cliente [kunnr]&lt;br /&gt;* coincidan con los registros de la tabla interna [i_vbrk-kunrg]:&lt;br /&gt;  SELECT kunnr                   &quot;No. Cliente&lt;br /&gt;         name1                                              &quot;Nombre 1&lt;br /&gt;         name2                                              &quot;Nombre 2&lt;br /&gt;    FROM kna1&lt;br /&gt;    INTO TABLE i_kna1&lt;br /&gt;    FOR ALL ENTRIES IN i_vbrk&lt;br /&gt;    WHERE kunnr = i_vbrk-kunrg.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*   Ordenando la tabla interna [i_kna1] por:&lt;br /&gt;    SORT i_kna1&lt;br /&gt;    BY kunnr.                   &quot;No. Cliente&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR i_kna1.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_KNA1&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_VARIANTE                                       *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene una variante almacenada con el matchcode               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_variante .&lt;br /&gt;&lt;br /&gt;* Declaración de variables locales&lt;br /&gt;  DATA: lv_exit TYPE c VALUE &#39;&#39;. &quot;Guarda la acción del usuario&lt;br /&gt;&lt;br /&gt;* Llamado a la función [REUSE_ALV_VARIANT_F4] para buscar una variante&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_VARIANT_F4&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      is_variant    = w_xvariant&lt;br /&gt;      i_save        = &#39;A&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      e_exit        = lv_exit&lt;br /&gt;      es_variant    = w_xvariant&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      not_found     = 1&lt;br /&gt;      program_error = 2&lt;br /&gt;      OTHERS        = 3.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;*   Utilizando un macro que contiene los mensajes de error&lt;br /&gt;    message_error.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    IF lv_exit = space.&lt;br /&gt;&lt;br /&gt;      p_layout = w_xvariant-variant.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_VARIANTE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_INICIALIZAR_VARIANTE                                   *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Inicializando la variante default                              *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_inicializar_variante .&lt;br /&gt;&lt;br /&gt;* Indica el nombre del programa principal&lt;br /&gt;  w_variant-report    = sy-repid.&lt;br /&gt;&lt;br /&gt;* Indica el usuario&lt;br /&gt;  w_variant-username  = sy-uname.&lt;br /&gt;&lt;br /&gt;* Se toma la variante&lt;br /&gt;  w_xvariant = w_variant.&lt;br /&gt;&lt;br /&gt;* Llamado a la función [REUSE_ALV_VARIANT_DEFAULT_GET] para guardar la&lt;br /&gt;* la variante&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_VARIANT_DEFAULT_GET&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_save        = &#39;A&#39;&lt;br /&gt;    CHANGING&lt;br /&gt;      cs_variant    = w_xvariant&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      wrong_input   = 1&lt;br /&gt;      not_found     = 2&lt;br /&gt;      program_error = 3&lt;br /&gt;      OTHERS        = 4.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    p_layout = w_xvariant-variant.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_INICIALIZAR_VARIANTE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_CARGAR_VARIANTE                                        *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Activa una variante existente                                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_cargar_variante .&lt;br /&gt;&lt;br /&gt;  IF NOT p_layout IS INITIAL.&lt;br /&gt;&lt;br /&gt;    MOVE w_variant TO w_xvariant.&lt;br /&gt;    MOVE p_layout  TO w_xvariant-variant.&lt;br /&gt;&lt;br /&gt;*   Llamado de la función [REUSE_ALV_VARIANT_EXISTENCE] para aplicar una&lt;br /&gt;*   variante exitente en el ALV&lt;br /&gt;    CALL FUNCTION &#39;REUSE_ALV_VARIANT_EXISTENCE&#39;&lt;br /&gt;      EXPORTING&lt;br /&gt;        i_save        = &#39;A&#39;&lt;br /&gt;      CHANGING&lt;br /&gt;        cs_variant    = w_xvariant&lt;br /&gt;      EXCEPTIONS&lt;br /&gt;        wrong_input   = 1&lt;br /&gt;        not_found     = 2&lt;br /&gt;        program_error = 3&lt;br /&gt;        OTHERS        = 4.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;      w_variant = w_xvariant.&lt;br /&gt;&lt;br /&gt;    ELSE.&lt;br /&gt;&lt;br /&gt;*     Utilizando un macro que contiene los mensajes de error&lt;br /&gt;      message_error.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    PERFORM f_inicializar_variante. &quot;Rutina que inicializa la variante&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_CARGAR_VARIANTE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_SET_STATUS                                             *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Asignación del PF_STATUS al ALV                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_set_status&lt;br /&gt;  USING rt_extab TYPE slis_t_extab.&lt;br /&gt;&lt;br /&gt;* Asigna un PF-STATUS [PF0100]&lt;br /&gt;  SET PF-STATUS &#39;PF0100&#39; EXCLUDING rt_extab.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_SET_STATUS&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_USER_COMAND                                            *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina que asigna un USER-COMMAND al PF-STATUS PF0100          *&lt;br /&gt;*       p_v_okcode    Contiene la acción del usuario                   *&lt;br /&gt;*       p_v_selfield  Contiene la selección del campo                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_user_comand&lt;br /&gt;  USING    p_v_okcode    TYPE sy-ucomm&lt;br /&gt;           p_v_selfield  TYPE slis_selfield.&lt;br /&gt;&lt;br /&gt;  IF p_v_okcode = &#39;&amp;amp;EXCEL&#39;.&lt;br /&gt;&lt;br /&gt;*   Rutina que guarda un archivo en formato excel&lt;br /&gt;    PERFORM f_bajar_excel.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot;F_USER_COMAND&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_BAJAR_EXCEL                                            *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina que guarda la tabla i_report en archivo de excel        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_bajar_excel .&lt;br /&gt;&lt;br /&gt;* Declaración de variables locales&lt;br /&gt;  DATA: lv_namefile TYPE string VALUE &#39;&#39;, &quot;Guarda el nombre del reporte&lt;br /&gt;        lv_fullpath TYPE string VALUE &#39;&#39;, &quot;Guarda la ruta donde guarda&lt;br /&gt;        lv_action   TYPE i.               &quot;Guarda la acción de usuario&lt;br /&gt;&lt;br /&gt;  LOOP AT i_fieldcat&lt;br /&gt;    ASSIGNING &lt;fs_fieldcat&gt;.&lt;br /&gt;&lt;br /&gt;    MOVE &lt;fs_fieldcat&gt;-seltext_l TO w_namefield-name.&lt;br /&gt;&lt;br /&gt;    APPEND w_namefield TO i_namefield.&lt;br /&gt;&lt;br /&gt;    CLEAR w_namefield.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  &quot;Se concatena dentro [v_namefile] con el fin de obtener el nombre&lt;br /&gt;  &quot;del archivo por default separados por [c_separador1] lo siguiente:&lt;br /&gt;  CONCATENATE &#39;REPORT&#39; &quot;Nombre del reporte&lt;br /&gt;              sy-datlo  &quot;Fecha del sistema&lt;br /&gt;              sy-uzeit  &quot;Hora del sistema&lt;br /&gt;       INTO   lv_namefile&lt;br /&gt;       SEPARATED BY &#39;_&#39;.&lt;br /&gt;&lt;br /&gt;* Llamado de la función [GUI_FILE_SAVE_DIALOG] para guadar la ruta y el&lt;br /&gt;* nombre del archivo&lt;br /&gt;  CALL FUNCTION &#39;GUI_FILE_SAVE_DIALOG&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      window_title      = &#39;GUARDAR ARCHIVO EN:&#39;&lt;br /&gt;      default_extension = &#39;.XLS&#39;&lt;br /&gt;      default_file_name = lv_namefile&lt;br /&gt;      initial_directory = &#39;C:\&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      fullpath          = lv_fullpath&lt;br /&gt;      user_action       = lv_action.&lt;br /&gt;&lt;br /&gt;  IF lv_action = 9.&lt;br /&gt;&lt;br /&gt;    RETURN.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;*  Llamado de la función [GUI_DOWNLOAD] para descargar el archivo en el&lt;br /&gt;*  directorio y con el nombre escogidos.&lt;br /&gt;    CALL FUNCTION &#39;GUI_DOWNLOAD&#39;&lt;br /&gt;      EXPORTING&lt;br /&gt;        filename                = lv_fullpath&lt;br /&gt;        filetype                = &#39;DAT&#39;&lt;br /&gt;      TABLES&lt;br /&gt;        data_tab                = i_layout&lt;br /&gt;        fieldnames              = i_namefield&lt;br /&gt;      EXCEPTIONS&lt;br /&gt;        file_write_error        = 1&lt;br /&gt;        no_batch                = 2&lt;br /&gt;        gui_refuse_filetransfer = 3&lt;br /&gt;        invalid_type            = 4&lt;br /&gt;        no_authority            = 5&lt;br /&gt;        unknown_error           = 6&lt;br /&gt;        header_not_allowed      = 7&lt;br /&gt;        separator_not_allowed   = 8&lt;br /&gt;        filesize_not_allowed    = 9&lt;br /&gt;        header_too_long         = 10&lt;br /&gt;        dp_error_create         = 11&lt;br /&gt;        dp_error_send           = 12&lt;br /&gt;        dp_error_write          = 13&lt;br /&gt;        unknown_dp_error        = 14&lt;br /&gt;        access_denied           = 15&lt;br /&gt;        dp_out_of_memory        = 16&lt;br /&gt;        disk_full               = 17&lt;br /&gt;        dp_timeout              = 18&lt;br /&gt;        file_not_found          = 19&lt;br /&gt;        dataprovider_exception  = 20&lt;br /&gt;        control_flush_error     = 21&lt;br /&gt;        OTHERS                  = 22.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;*     Utilizando un macro que contiene los mensajes de error&lt;br /&gt;      message_error.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_BAJAR_EXCEL&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbapersjuniors.blogspot.com/feeds/6563699777377077472/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/alv-grid-reporte-de-costo-de-ventas.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/6563699777377077472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/6563699777377077472'/><link rel='alternate' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/alv-grid-reporte-de-costo-de-ventas.html' title='ALV GRID: REPORTE DE COSTO DE VENTAS'/><author><name>Jose Angel Moreno Nieblas</name><uri>http://www.blogger.com/profile/07557229350909629318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5446296579082811811.post-3929475793351691031</id><published>2010-07-22T09:32:00.001-07:00</published><updated>2010-07-22T09:39:31.646-07:00</updated><title type='text'>ALV GRID: REPORTE DE SALDOS A FAVOR</title><content type='html'>&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Programa Principal&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGCCRE_AR01_SALDOS_FAVOR                      *&lt;br /&gt;* Description          : Reporte de Saldos a Favor                     *&lt;br /&gt;* Functional           : Willvert Ruiz                                 *&lt;br /&gt;* Developer            : Isa Villarreal exchneo_f14                    *&lt;br /&gt;* Creation Date        : 20.05.2010                                    *&lt;br /&gt;* ID Component         : AR01                                          *&lt;br /&gt;* Requirement Number   : AR01                                          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                      MODIFICATIONS LOG                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Description          : Agregar columnas, parametros de seleccion     *&lt;br /&gt;* Functional           : Javier Echavez                                *&lt;br /&gt;* Developer            : Jose Angel Moreno Nieblas EXCHNEO_F09         *&lt;br /&gt;* Modification date    : 06.07.2010                                    *&lt;br /&gt;* ID Component         : AR01                                          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;REPORT  zgccre_ar01_saldos_favor.&lt;br /&gt;&lt;br /&gt;INCLUDE zgccre_ar01_saldos_favor_a.&lt;br /&gt;INCLUDE zgccre_ar01_saldos_favor_b.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* A T   S E L E C T I O N   S C R E E N                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_blart-low.&lt;br /&gt;&lt;br /&gt;  SELECT blart&lt;br /&gt;         ltext&lt;br /&gt;    FROM t003t&lt;br /&gt;    INTO TABLE i_blart&lt;br /&gt;   WHERE ( blart EQ c_anticipo&lt;br /&gt;      OR  blart EQ c_abono ) &quot;EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;     AND spras = sy-langu.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;F4IF_INT_TABLE_VALUE_REQUEST&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      retfield        = &#39;BLART&#39;&lt;br /&gt;      window_title    = text-020&lt;br /&gt;      value_org       = &#39;S&#39;&lt;br /&gt;    TABLES&lt;br /&gt;      value_tab       = i_blart&lt;br /&gt;      return_tab      = i_match&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      parameter_error = 1&lt;br /&gt;      no_values_found = 2&lt;br /&gt;      OTHERS          = 3.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;    READ TABLE i_match INDEX 1.&lt;br /&gt;    MOVE i_match-fieldval TO s_blart-low.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 28.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_pernr-low .&lt;br /&gt;&lt;br /&gt;  PERFORM f_select_pernr.&lt;br /&gt;&lt;br /&gt;  MOVE i_match-fieldval TO s_pernr-low.&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_pernr-high.&lt;br /&gt;&lt;br /&gt;  PERFORM f_select_pernr.&lt;br /&gt;&lt;br /&gt;  MOVE i_match-fieldval TO s_pernr-high.&lt;br /&gt;&lt;br /&gt;* END: EXCHNEO_F14 28.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN OUTPUT.&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;perform f_valida_blart.&lt;br /&gt;&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* A T   S E L E C T I O N   S C R E E N                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Process on value request&lt;br /&gt;&lt;br /&gt;* Use list variant entered&lt;br /&gt;&lt;br /&gt;INITIALIZATION.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;  PERFORM f_authority_check.&lt;br /&gt;&lt;br /&gt;* Valida el asesor y el segmnto.&lt;br /&gt;  PERFORM f_validaciones.&lt;br /&gt;&lt;br /&gt;  PERFORM f_carga_info.&lt;br /&gt;&lt;br /&gt;* Forma el reporte&lt;br /&gt;  PERFORM f_genera_salida.&lt;br /&gt;&lt;br /&gt;* Obtains the catalog for alv report&lt;br /&gt;  PERFORM f_fills_catalog.&lt;br /&gt;&lt;br /&gt;* Obtains column name for alv report&lt;br /&gt;  PERFORM f_fieldcat.&lt;br /&gt;&lt;br /&gt;  PERFORM f_build_events.&lt;br /&gt;&lt;br /&gt;* Sort ALV&lt;br /&gt;  PERFORM f_sort .&lt;br /&gt;&lt;br /&gt;* Shows the report&lt;br /&gt;  PERFORM f_shows_report.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Declaraciones&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGCCRE_AR01_SALDOS_FAVOR                      *&lt;br /&gt;* Description          : Reporte de Saldos a Favor                     *&lt;br /&gt;* Functional           : Willvert Ruiz                                 *&lt;br /&gt;* Developer            : Isa Villarreal exchneo_f14                    *&lt;br /&gt;* Creation Date        : 20.05.2010                                    *&lt;br /&gt;* ID Component         : AR01                                          *&lt;br /&gt;* Requirement Number   : AR01                                          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                      MODIFICATIONS LOG                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Description          : Agregar columnas, parametros de seleccion     *&lt;br /&gt;* Functional           : Javier Echavez                                *&lt;br /&gt;* Developer            : Jose Angel Moreno Nieblas EXCHNEO_F09         *&lt;br /&gt;* Modification date    : 06.07.2010                                    *&lt;br /&gt;* ID Component         : AR01                                          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;TABLES:  bsid,&lt;br /&gt;         knvv,&lt;br /&gt;         bkpf,&lt;br /&gt;         knvp,&lt;br /&gt;         ddshretval..&lt;br /&gt;&lt;br /&gt;TYPE-POOLS:&lt;br /&gt;  slis.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_clientes,&lt;br /&gt;         kunnr TYPE kna1-kunnr,&lt;br /&gt;       END OF ty_clientes.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;TYPES: BEGIN OF ty_knb1,&lt;br /&gt;        bukrs LIKE knb1-bukrs,&lt;br /&gt;        kunnr LIKE knb1-bukrs,&lt;br /&gt;       END OF ty_knb1.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_grp_bsid,&lt;br /&gt;        zuonr LIKE bsid-zuonr,&lt;br /&gt;        kunnr LIKE bsid-kunnr,&lt;br /&gt;        gjahr LIKE bsid-gjahr,&lt;br /&gt;        dmbtr LIKE bsid-dmbtr,&lt;br /&gt;       END OF ty_grp_bsid.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_grp_docs,&lt;br /&gt;        belnr LIKE bsid-belnr,&lt;br /&gt;        zuonr LIKE bsid-zuonr,&lt;br /&gt;        blart LIKE bsid-blart,&lt;br /&gt;        dmbtr LIKE bsid-dmbtr,&lt;br /&gt;       END OF ty_grp_docs.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_bsad,&lt;br /&gt;         bukrs TYPE bsad-bukrs,&lt;br /&gt;         kunnr TYPE bsad-kunnr,&lt;br /&gt;         augbl TYPE bsad-augbl,&lt;br /&gt;         gjahr TYPE bsad-gjahr,&lt;br /&gt;         belnr TYPE bsad-belnr,&lt;br /&gt;         buzei TYPE bsad-buzei,&lt;br /&gt;         budat TYPE bsad-budat,&lt;br /&gt;         blart TYPE bsad-blart,&lt;br /&gt;         dmbtr TYPE bsad-dmbtr,&lt;br /&gt;         hkont TYPE bsad-hkont,&lt;br /&gt;         vbeln TYPE bsad-vbeln,&lt;br /&gt;         kkber TYPE bsad-kkber,&lt;br /&gt;         sgtxt TYPE bsad-sgtxt,&lt;br /&gt;         shkzg TYPE bsad-shkzg,&lt;br /&gt;         zuonr TYPE bsad-zuonr,&lt;br /&gt;      END OF ty_bsad.&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_t001,&lt;br /&gt;  bukrs       TYPE t001-bukrs,        &quot;Sociedad.&lt;br /&gt;END OF ty_t001.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_knvp,&lt;br /&gt;         kunnr TYPE kna1-kunnr,&lt;br /&gt;         pernr TYPE knvp-pernr,&lt;br /&gt;       END OF ty_knvp.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_knvv,&lt;br /&gt;         kunnr TYPE kna1-kunnr,&lt;br /&gt;         vkgrp TYPE knvv-vkgrp,&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;         vkbur TYPE knvv-vkbur,&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;       END OF ty_knvv.&lt;br /&gt;&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;TYPES: BEGIN OF ty_tvkbt,&lt;br /&gt;  vkbur TYPE tvkbt-vkbur,&lt;br /&gt;  bezei TYPE tvkbt-bezei.&lt;br /&gt;TYPES: END OF ty_tvkbt.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_bsid,&lt;br /&gt;         bukrs TYPE bsid-bukrs,&lt;br /&gt;         kunnr TYPE bsid-kunnr,&lt;br /&gt;         gjahr TYPE bsid-gjahr,&lt;br /&gt;         belnr TYPE bsid-belnr,&lt;br /&gt;         buzei TYPE bsid-buzei,&lt;br /&gt;         budat TYPE bsid-budat,&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;         bldat TYPE bsid-bldat,&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;         blart TYPE bsid-blart,&lt;br /&gt;         dmbtr TYPE bsid-dmbtr,&lt;br /&gt;         hkont TYPE bsid-hkont,&lt;br /&gt;         vbeln TYPE bsid-vbeln,&lt;br /&gt;         kkber TYPE bsid-kkber,&lt;br /&gt;         sgtxt TYPE bsid-sgtxt,&lt;br /&gt;         shkzg TYPE bsid-shkzg,  &quot;mgvg&lt;br /&gt;         zuonr TYPE bsid-zuonr,  &quot;mgvg&lt;br /&gt;         vbeln2 TYPE vbrk-vbeln,  &quot;mgvg&lt;br /&gt;       END OF ty_bsid.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_bkpf,&lt;br /&gt;         bukrs TYPE bsid-bukrs,&lt;br /&gt;         belnr TYPE bsid-belnr,&lt;br /&gt;         gjahr TYPE bsid-gjahr,&lt;br /&gt;         usnam TYPE bkpf-usnam,&lt;br /&gt;       END OF ty_bkpf.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_bseg,&lt;br /&gt;         bukrs TYPE bsid-bukrs,&lt;br /&gt;         belnr TYPE bsid-belnr,&lt;br /&gt;         gjahr TYPE bsid-gjahr,&lt;br /&gt;         dmbtr TYPE bseg-dmbtr,&lt;br /&gt;         hkont TYPE bseg-hkont,&lt;br /&gt;       END OF ty_bseg.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_pa0002,&lt;br /&gt;         pernr TYPE pa0002-pernr,&lt;br /&gt;         vorna TYPE pa0002-vorna,&lt;br /&gt;         nach2 TYPE pa0002-nach2,&lt;br /&gt;         nachn TYPE pa0002-nachn,&lt;br /&gt;       END OF ty_pa0002.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_tvgrt,&lt;br /&gt;         vkgrp TYPE tvgrt-vkgrp,&lt;br /&gt;         bezei TYPE tvgrt-bezei,&lt;br /&gt;       END OF ty_tvgrt.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_kna1,&lt;br /&gt;         kunnr TYPE kna1-kunnr,&lt;br /&gt;         name1 TYPE kna1-name1,&lt;br /&gt;       END OF ty_kna1.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_t014t,&lt;br /&gt;         kkber TYPE t014t-kkber,&lt;br /&gt;         kkbtx TYPE t014t-kkbtx,&lt;br /&gt;       END OF ty_t014t.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_vbrk,&lt;br /&gt;         vbeln TYPE vbrk-vbeln,&lt;br /&gt;       END   OF ty_vbrk.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_blart,&lt;br /&gt;         blart TYPE t003t-blart,&lt;br /&gt;         ltext TYPE t003t-ltext,&lt;br /&gt;       END   OF ty_blart.&lt;br /&gt;&lt;br /&gt;CONSTANTS: c_irango_cred TYPE bseg-hkont VALUE &#39;0000110000&#39;,&lt;br /&gt;           c_frango_cred TYPE bseg-hkont VALUE &#39;0000110999&#39;,&lt;br /&gt;           c_irango_cont TYPE bseg-hkont VALUE &#39;0000100000&#39;,&lt;br /&gt;           c_frango_cont TYPE bseg-hkont VALUE &#39;0000100100&#39;,&lt;br /&gt;           c_asesor TYPE knvp-parvw VALUE &#39;ZE&#39;,&lt;br /&gt;           c_anticipo TYPE bsid-blart VALUE &#39;DZ&#39;,&lt;br /&gt;           c_abono TYPE bsid-blart VALUE &#39;DG&#39;,&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;           c_acount TYPE bsid-blart VALUE &#39;AB&#39;,&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;           c_s     TYPE bsid-shkzg VALUE &#39;S&#39;,&lt;br /&gt;           c_h     TYPE bsid-shkzg VALUE &#39;H&#39;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  S T R U C T U R E S                                               **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;*&lt;br /&gt;DATA: w_sort        TYPE slis_sortinfo_alv,&lt;br /&gt;      w_title_alv   TYPE slis_listheader,&lt;br /&gt;      w_footer_alv  TYPE slis_listheader,&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;      w_tvkbt       TYPE ty_tvkbt,&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;      w_variant     TYPE disvariant,&lt;br /&gt;      w_xvariant    TYPE disvariant.&lt;br /&gt;&lt;br /&gt;* Catalog table&lt;br /&gt;DATA: i_fieldcat  TYPE slis_t_fieldcat_alv.&lt;br /&gt;DATA i_sort TYPE slis_t_sortinfo_alv.&lt;br /&gt;&lt;br /&gt;DATA: i_title_alv   TYPE slis_t_listheader,&lt;br /&gt;      i_footer_alv  TYPE slis_t_listheader,&lt;br /&gt;      i_events      TYPE  slis_t_event.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF i_out OCCURS 0,&lt;br /&gt;         belnr LIKE bsid-belnr,&lt;br /&gt;         blart LIKE bsid-blart,&lt;br /&gt;         bukrs LIKE bsid-bukrs,&lt;br /&gt;         total LIKE bsid-dmbtr,&lt;br /&gt;         abierto LIKE bsid-dmbtr,&lt;br /&gt;         bezei LIKE tvgrt-bezei,&lt;br /&gt;         asesor LIKE pa0002-pernr,&lt;br /&gt;         nombre(30) TYPE c,&lt;br /&gt;         kunnr LIKE bsid-kunnr,&lt;br /&gt;         name1 LIKE kna1-name1,&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*         budat LIKE bsid-budat,&lt;br /&gt;         bldat LIKE bsid-bldat,&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;         gjahr LIKE bsid-gjahr,&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*         kkbtx LIKE t014t-kkbtx,&lt;br /&gt;         bezei2 LIKE tvkbt-bezei,&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*         hkont LIKE bsid-hkont,&lt;br /&gt;         thkont(10) TYPE c,&lt;br /&gt;         usnam LIKE bkpf-usnam,&lt;br /&gt;         sgtxt LIKE bsid-sgtxt,&lt;br /&gt;       END OF i_out.&lt;br /&gt;&lt;br /&gt;DATA: i_clientes   TYPE STANDARD TABLE OF ty_clientes  WITH HEADER LINE,&lt;br /&gt;      i_knvp       TYPE STANDARD TABLE OF ty_knvp  WITH HEADER LINE,&lt;br /&gt;      i_knvv       TYPE STANDARD TABLE OF ty_knvv  WITH HEADER LINE,&lt;br /&gt;      i_bsid       TYPE STANDARD TABLE OF ty_bsid  WITH HEADER LINE,&lt;br /&gt;      i_bsid2      TYPE STANDARD TABLE OF ty_bsid  WITH HEADER LINE,&lt;br /&gt;      i_bkpf       TYPE STANDARD TABLE OF ty_bkpf  WITH HEADER LINE,&lt;br /&gt;      i_bseg       TYPE STANDARD TABLE OF ty_bseg  WITH HEADER LINE,&lt;br /&gt;      i_pa0002     TYPE STANDARD TABLE OF ty_pa0002  WITH HEADER LINE,&lt;br /&gt;      i_tvgrt      TYPE STANDARD TABLE OF ty_tvgrt  WITH HEADER LINE,&lt;br /&gt;      i_kna1       TYPE STANDARD TABLE OF ty_kna1  WITH HEADER LINE,&lt;br /&gt;      i_t014t      TYPE STANDARD TABLE OF ty_t014t  WITH HEADER LINE,&lt;br /&gt;      i_t001       TYPE STANDARD TABLE OF ty_t001 WITH HEADER LINE,&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;      i_tvkbt      TYPE STANDARD TABLE OF ty_tvkbt,&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;      i_vbrk       TYPE STANDARD TABLE OF ty_vbrk WITH HEADER LINE,&lt;br /&gt;      i_blart      TYPE STANDARD TABLE OF ty_blart WITH HEADER LINE.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;DATA: i_knb1 TYPE STANDARD TABLE OF ty_knb1 WITH HEADER LINE,&lt;br /&gt;      i_grp_bsid TYPE STANDARD TABLE OF ty_grp_bsid WITH HEADER LINE,&lt;br /&gt;      i_bsid_ab TYPE STANDARD TABLE OF ty_bsid WITH HEADER LINE,&lt;br /&gt;      i_grp_docs TYPE STANDARD TABLE OF ty_grp_docs WITH HEADER LINE,&lt;br /&gt;      i_bsad TYPE STANDARD TABLE OF ty_bsad WITH HEADER LINE.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF i_bseg2 OCCURS 0,&lt;br /&gt;        bukrs LIKE bseg-bukrs,&lt;br /&gt;        belnr LIKE bseg-belnr,&lt;br /&gt;        gjahr LIKE bseg-gjahr,&lt;br /&gt;        buzei LIKE bseg-buzei,&lt;br /&gt;        dmbtr LIKE bseg-dmbtr,&lt;br /&gt;        hkont LIKE bseg-hkont,&lt;br /&gt;      END OF i_bseg2.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF i_bseg3 OCCURS 0,&lt;br /&gt;        bukrs LIKE bseg-bukrs,&lt;br /&gt;        belnr LIKE bseg-belnr,&lt;br /&gt;        gjahr LIKE bseg-gjahr,&lt;br /&gt;        buzei LIKE bseg-buzei,&lt;br /&gt;        dmbtr LIKE bseg-dmbtr,&lt;br /&gt;        hkont LIKE bseg-hkont,&lt;br /&gt;      END OF i_bseg3.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF i_bseg_sum1 OCCURS 0,&lt;br /&gt;        bukrs LIKE bseg-bukrs,&lt;br /&gt;        belnr LIKE bseg-belnr,&lt;br /&gt;        gjahr LIKE bseg-gjahr,&lt;br /&gt;        dmbtr LIKE bseg-dmbtr,&lt;br /&gt;      END OF i_bseg_sum1.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF i_bseg_sum2 OCCURS 0,&lt;br /&gt;        bukrs LIKE bseg-bukrs,&lt;br /&gt;        belnr LIKE bseg-belnr,&lt;br /&gt;        gjahr LIKE bseg-gjahr,&lt;br /&gt;        dmbtr LIKE bseg-dmbtr,&lt;br /&gt;      END OF i_bseg_sum2.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF i_pa0001 OCCURS 0,&lt;br /&gt;        pernr LIKE pa0001-pernr,&lt;br /&gt;        ename LIKE pa0001-ename,&lt;br /&gt;      END OF i_pa0001.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF i_knvp_sel OCCURS 0,&lt;br /&gt;        pernr LIKE knvp-pernr,&lt;br /&gt;      END OF i_knvp_sel.&lt;br /&gt;&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF i_match OCCURS 0,  &quot;Esta tabla nos devuelve la ayuda&lt;br /&gt;               shlpname  LIKE ddshretval-shlpname,&lt;br /&gt;               fieldname LIKE ddshretval-fieldname,&lt;br /&gt;               recordpos LIKE ddshretval-recordpos,&lt;br /&gt;               fieldval  LIKE ddshretval-fieldval,&lt;br /&gt;               retfield  LIKE ddshretval-retfield,&lt;br /&gt;      END OF i_match.&lt;br /&gt;&lt;br /&gt;RANGES: r_bukrs FOR t001-bukrs,&lt;br /&gt;        r_kunnr FOR kna1-kunnr.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DATA: v_apunta TYPE sy-tabix,&lt;br /&gt;      v_title_alv  TYPE lvc_title.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS:&lt;br /&gt;    s_bukrs FOR bsid-bukrs OBLIGATORY,&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;    s_vkbur FOR knvv-vkbur,&lt;br /&gt;*    s_kkber FOR bsid-kkber,&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;    s_blart FOR bsid-blart OBLIGATORY DEFAULT &#39;DZ&#39;,&lt;br /&gt;    s_kunnr FOR bsid-kunnr,&lt;br /&gt;    s_vkgrp FOR knvv-vkgrp,&lt;br /&gt;    s_pernr FOR knvp-pernr ,&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*    s_budat FOR bsid-budat,&lt;br /&gt;    s_bldat FOR bsid-bldat,&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;    s_user FOR bkpf-usnam.&lt;br /&gt;&lt;br /&gt;PARAMETERS:&lt;br /&gt;    p_cred AS CHECKBOX DEFAULT &#39;X&#39;,&lt;br /&gt;    p_cont AS CHECKBOX DEFAULT &#39;X&#39;,&lt;br /&gt;    p_ncred AS CHECKBOX DEFAULT &#39;X&#39;.&lt;br /&gt;SELECTION-SCREEN: END OF BLOCK blk1.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Rutinas&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Program name         : ZGCCRE_AR01_SALDOS_FAVOR                      *&lt;br /&gt;* Description          : Reporte de Saldos a Favor                     *&lt;br /&gt;* Functional           : Willvert Ruiz                                 *&lt;br /&gt;* Developer            : Isa Villarreal exchneo_f14                    *&lt;br /&gt;* Creation Date        : 20.05.2010                                    *&lt;br /&gt;* ID Component         : AR01                                          *&lt;br /&gt;* Requirement Number   : AR01                                          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                      MODIFICATIONS LOG                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Description          : Se agregaron validaciones para cliente y tipo *&lt;br /&gt;*                        de Documento, Corrección para mostrar documen-*&lt;br /&gt;*                       -tos DG, agrupar saldos a favor y corregir     *&lt;br /&gt;*                        monto total                                   *&lt;br /&gt;* Functional           : Willvert Ruiz                                 *&lt;br /&gt;* Developer            : Rubén David Garza Castro E-RGARZA EXCHNEO_F14 *&lt;br /&gt;* Modification date    : 24.06.2010                                    *&lt;br /&gt;* ID Component         :                                               *&lt;br /&gt;* Requirement Number   : OCT-AR01                                      *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Description          : Agregar columnas, parametros de seleccion     *&lt;br /&gt;* Functional           : Javier Echavez                                *&lt;br /&gt;* Developer            : Jose Angel Moreno Nieblas EXCHNEO_F09         *&lt;br /&gt;* Modification date    : 06.07.2010                                    *&lt;br /&gt;* ID Component         : AR01                                          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_CARGA_INFO                                             *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Carga la información de las tablas                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_carga_info .&lt;br /&gt;  CONSTANTS: lc_clave_cont TYPE bseg-bschl VALUE &#39;40&#39;,&lt;br /&gt;             lc_cta_deud   TYPE bseg-koart VALUE &#39;S&#39;,&lt;br /&gt;             lc_debe       TYPE bseg-shkzg VALUE &#39;S&#39;.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;  DATA: lv_tabix LIKE sy-tabix.&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;  IF NOT i_clientes[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;* Lee BSID.&lt;br /&gt;    SELECT bukrs&lt;br /&gt;           kunnr&lt;br /&gt;           gjahr&lt;br /&gt;           belnr&lt;br /&gt;           buzei&lt;br /&gt;           budat&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;           bldat&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;           blart&lt;br /&gt;           dmbtr&lt;br /&gt;           hkont&lt;br /&gt;           vbeln&lt;br /&gt;           kkber&lt;br /&gt;           sgtxt&lt;br /&gt;           shkzg&lt;br /&gt;           zuonr&lt;br /&gt;       INTO TABLE i_bsid&lt;br /&gt;       FROM bsid&lt;br /&gt;       FOR ALL ENTRIES IN i_clientes&lt;br /&gt;       WHERE bukrs IN s_bukrs&lt;br /&gt;         AND kunnr = i_clientes-kunnr&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*         AND budat IN s_budat&lt;br /&gt;         AND bldat IN s_bldat.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*         AND blart IN s_blart &quot;mgvg&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*         AND kkber IN s_kkber.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;    IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;      MESSAGE e208(00) WITH text-007.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    SELECT bukrs&lt;br /&gt;           kunnr&lt;br /&gt;           gjahr&lt;br /&gt;           belnr&lt;br /&gt;           buzei&lt;br /&gt;           budat&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;           bldat&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;           blart&lt;br /&gt;           dmbtr&lt;br /&gt;           hkont&lt;br /&gt;           vbeln&lt;br /&gt;           kkber&lt;br /&gt;           sgtxt&lt;br /&gt;           shkzg&lt;br /&gt;           zuonr&lt;br /&gt;       INTO TABLE i_bsid&lt;br /&gt;       FROM bsid&lt;br /&gt;       WHERE bukrs IN s_bukrs&lt;br /&gt;         AND kunnr IN s_kunnr&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*         AND budat IN s_budat&lt;br /&gt;         AND bldat IN s_bldat.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*         AND blart IN s_blart&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*         AND kkber IN s_kkber.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;    IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;      MESSAGE e208(00) WITH text-007.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF i_bsid[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;    MESSAGE i368(00) WITH text-003.&lt;br /&gt;    STOP.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Lee la contabilización en BSEG del documento.&lt;br /&gt;  SELECT bukrs&lt;br /&gt;         belnr&lt;br /&gt;         gjahr&lt;br /&gt;         dmbtr&lt;br /&gt;         hkont&lt;br /&gt;     INTO TABLE i_bseg&lt;br /&gt;     FROM bseg&lt;br /&gt;     FOR ALL ENTRIES IN i_bsid&lt;br /&gt;     WHERE bukrs = i_bsid-bukrs&lt;br /&gt;       AND belnr = i_bsid-belnr&lt;br /&gt;       AND gjahr = i_bsid-gjahr&lt;br /&gt;       AND bschl = lc_clave_cont&lt;br /&gt;       AND koart = lc_cta_deud&lt;br /&gt;       AND shkzg = lc_debe.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;    SORT i_bseg&lt;br /&gt;      BY bukrs&lt;br /&gt;         belnr&lt;br /&gt;         gjahr.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;** Ahora depura los docs dependiendo si son contado o crédito.&lt;br /&gt;*  LOOP AT i_bsid.&lt;br /&gt;*    MOVE sy-tabix TO v_apunta.&lt;br /&gt;*    READ TABLE i_bseg&lt;br /&gt;*      WITH KEY bukrs = i_bsid-bukrs&lt;br /&gt;*               belnr = i_bsid-belnr&lt;br /&gt;*               gjahr = i_bsid-gjahr&lt;br /&gt;*               BINARY SEARCH.&lt;br /&gt;*    IF sy-subrc = 0.&lt;br /&gt;*      MOVE i_bseg-hkont TO i_bsid-hkont.&lt;br /&gt;*      MODIFY i_bsid INDEX v_apunta TRANSPORTING hkont.&lt;br /&gt;*    ENDIF.&lt;br /&gt;*&lt;br /&gt;*    IF p_cred &lt;&gt; &#39;X&#39;.&lt;br /&gt;*&lt;br /&gt;*      IF i_bsid-hkont &gt;= c_irango_cred AND&lt;br /&gt;*         i_bsid-hkont &lt;= c_frango_cred.&lt;br /&gt;**         La cuenta se queda.&lt;br /&gt;*      ELSE.&lt;br /&gt;*        DELETE i_bsid INDEX v_apunta.&lt;br /&gt;*      ENDIF.&lt;br /&gt;*    ENDIF.&lt;br /&gt;*&lt;br /&gt;*  ENDLOOP.&lt;br /&gt;&lt;br /&gt;*  LOOP AT i_bsid.&lt;br /&gt;*    MOVE sy-tabix TO v_apunta.&lt;br /&gt;*    READ TABLE i_bseg&lt;br /&gt;*      WITH KEY bukrs = i_bsid-bukrs&lt;br /&gt;*               belnr = i_bsid-belnr&lt;br /&gt;*               gjahr = i_bsid-gjahr&lt;br /&gt;*               BINARY SEARCH.&lt;br /&gt;*    IF sy-subrc = 0.&lt;br /&gt;*      MOVE i_bseg-hkont TO i_bsid-hkont.&lt;br /&gt;*      MODIFY i_bsid INDEX v_apunta TRANSPORTING hkont.&lt;br /&gt;*    ENDIF.&lt;br /&gt;*    IF p_cont &lt;&gt; &#39;X&#39;.&lt;br /&gt;*      IF i_bsid-hkont &gt;= c_irango_cont AND&lt;br /&gt;*         i_bsid-hkont &lt;= c_frango_cont.&lt;br /&gt;**         La cuenta se queda.&lt;br /&gt;*      ELSE.&lt;br /&gt;*        DELETE i_bsid INDEX v_apunta.&lt;br /&gt;*      ENDIF.&lt;br /&gt;*    ENDIF.&lt;br /&gt;*&lt;br /&gt;*  ENDLOOP.&lt;br /&gt;*&lt;br /&gt;** Verifica que hayan quedado valores.&lt;br /&gt;*  IF i_bsid[] IS INITIAL.&lt;br /&gt;*    MESSAGE i368(00) WITH text-003.&lt;br /&gt;*    STOP.&lt;br /&gt;*  ENDIF.&lt;br /&gt;&lt;br /&gt;  SORT i_bsid BY belnr blart.&lt;br /&gt;&lt;br /&gt;  LOOP AT i_bsid.&lt;br /&gt;&lt;br /&gt;    lv_tabix = sy-tabix.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_bseg&lt;br /&gt;      WITH KEY bukrs = i_bsid-bukrs&lt;br /&gt;               belnr = i_bsid-belnr&lt;br /&gt;               gjahr = i_bsid-gjahr&lt;br /&gt;               BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;      MOVE i_bseg-hkont TO i_bsid-hkont.&lt;br /&gt;      MOVE i_bsid-zuonr TO i_bsid-vbeln2.&lt;br /&gt;      MODIFY i_bsid&lt;br /&gt;       TRANSPORTING hkont&lt;br /&gt;                    vbeln2.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;    MOVE: i_bsid-zuonr TO i_grp_bsid-zuonr,&lt;br /&gt;          i_bsid-dmbtr TO i_grp_bsid-dmbtr,&lt;br /&gt;          i_bsid-kunnr TO i_grp_bsid-kunnr,&lt;br /&gt;          i_bsid-gjahr TO i_grp_bsid-gjahr.&lt;br /&gt;&lt;br /&gt;    IF i_bsid-shkzg = &#39;H&#39;.&lt;br /&gt;&lt;br /&gt;      i_grp_bsid-dmbtr = i_grp_bsid-dmbtr * -1.&lt;br /&gt;&lt;br /&gt;      MOVE: i_bsid-belnr TO i_grp_docs-belnr,&lt;br /&gt;            i_bsid-zuonr TO i_grp_docs-zuonr,&lt;br /&gt;            i_bsid-blart TO i_grp_docs-blart.&lt;br /&gt;      i_grp_docs-dmbtr = i_grp_bsid-dmbtr.&lt;br /&gt;      APPEND i_grp_docs.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    COLLECT i_grp_bsid.&lt;br /&gt;    CLEAR i_grp_bsid.&lt;br /&gt;&lt;br /&gt;    IF i_bsid-blart = &#39;AB&#39; AND&lt;br /&gt;       i_bsid-shkzg = &#39;H&#39;.&lt;br /&gt;&lt;br /&gt;      MOVE-CORRESPONDING i_bsid TO i_bsid_ab.&lt;br /&gt;      APPEND i_bsid_ab.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;  SORT i_grp_docs&lt;br /&gt;    BY zuonr&lt;br /&gt;       dmbtr.&lt;br /&gt;&lt;br /&gt;  SELECT bukrs&lt;br /&gt;         kunnr&lt;br /&gt;         augbl&lt;br /&gt;         gjahr&lt;br /&gt;         belnr&lt;br /&gt;         buzei&lt;br /&gt;         budat&lt;br /&gt;         blart&lt;br /&gt;         dmbtr&lt;br /&gt;         hkont&lt;br /&gt;         vbeln&lt;br /&gt;         kkber&lt;br /&gt;         sgtxt&lt;br /&gt;         shkzg&lt;br /&gt;         zuonr&lt;br /&gt;     INTO TABLE i_bsad&lt;br /&gt;     FROM bsad&lt;br /&gt;      FOR ALL ENTRIES IN i_bsid_ab&lt;br /&gt;    WHERE bukrs = i_bsid_ab-bukrs&lt;br /&gt;      AND kunnr = i_bsid_ab-kunnr&lt;br /&gt;      AND augbl = i_bsid_ab-belnr.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    SORT i_bsad&lt;br /&gt;      BY blart.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_bsad.&lt;br /&gt;&lt;br /&gt;      IF i_bsad-blart NE &#39;DG&#39; AND&lt;br /&gt;         i_bsad-blart NE &#39;DZ&#39;.&lt;br /&gt;&lt;br /&gt;        DELETE i_bsad INDEX sy-tabix.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;    SORT i_bsad&lt;br /&gt;      BY bukrs&lt;br /&gt;         belnr.&lt;br /&gt;&lt;br /&gt;    SELECT bukrs&lt;br /&gt;           belnr&lt;br /&gt;           gjahr&lt;br /&gt;           buzei&lt;br /&gt;           dmbtr&lt;br /&gt;           hkont&lt;br /&gt;        INTO TABLE i_bseg2&lt;br /&gt;        FROM bseg&lt;br /&gt;        FOR ALL ENTRIES IN i_bsad&lt;br /&gt;       WHERE bukrs = i_bsad-bukrs&lt;br /&gt;         AND belnr = i_bsad-belnr&lt;br /&gt;         AND bschl = &#39;40&#39;&lt;br /&gt;         AND shkzg = &#39;S&#39;.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;      SORT i_bseg2&lt;br /&gt;        BY bukrs&lt;br /&gt;           belnr.&lt;br /&gt;      LOOP AT i_bseg2.&lt;br /&gt;        MOVE-CORRESPONDING i_bseg2 TO i_bseg_sum1.&lt;br /&gt;        COLLECT i_bseg_sum1.&lt;br /&gt;        CLEAR i_bseg_sum1.&lt;br /&gt;      ENDLOOP.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    SORT i_bsad&lt;br /&gt;      BY bukrs&lt;br /&gt;         kunnr&lt;br /&gt;         augbl&lt;br /&gt;         blart.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;* Elimina registros con saldo en contra&lt;br /&gt;  DELETE i_grp_bsid WHERE dmbtr &gt;= 0.&lt;br /&gt;&lt;br /&gt;  SORT i_grp_bsid&lt;br /&gt;    BY zuonr&lt;br /&gt;       kunnr&lt;br /&gt;       gjahr.&lt;br /&gt;&lt;br /&gt;* borra de I_BSID los documentos con saldo en contra.&lt;br /&gt;  LOOP AT i_bsid.&lt;br /&gt;&lt;br /&gt;    lv_tabix = sy-tabix.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_grp_bsid&lt;br /&gt;      WITH KEY zuonr = i_bsid-zuonr&lt;br /&gt;               kunnr = i_bsid-kunnr&lt;br /&gt;               gjahr = i_bsid-gjahr&lt;br /&gt;    BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;      DELETE i_bsid INDEX lv_tabix.&lt;br /&gt;&lt;br /&gt;    ELSE.&lt;br /&gt;&lt;br /&gt;      i_bsid-dmbtr = ABS( i_grp_bsid-dmbtr ).&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;      IF i_bsid-blart = &#39;AB&#39;.&lt;br /&gt;&lt;br /&gt;        READ TABLE i_bsad&lt;br /&gt;          WITH KEY bukrs = i_bsid-bukrs&lt;br /&gt;                   kunnr = i_bsid-kunnr&lt;br /&gt;                   augbl = i_bsid-belnr&lt;br /&gt;                   blart = &#39;DZ&#39;&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;          READ TABLE i_bseg2&lt;br /&gt;            WITH KEY bukrs = i_bsad-bukrs&lt;br /&gt;                     belnr = i_bsad-belnr&lt;br /&gt;            BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;            MOVE: i_bsad-blart TO i_bsid-blart,&lt;br /&gt;                  i_bsad-belnr TO i_bsid-belnr,&lt;br /&gt;                  i_bseg2-hkont TO i_bsid-hkont.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ELSE.&lt;br /&gt;&lt;br /&gt;          READ TABLE i_bsad&lt;br /&gt;            WITH KEY bukrs = i_bsid-bukrs&lt;br /&gt;                     kunnr = i_bsid-kunnr&lt;br /&gt;                     augbl = i_bsid-belnr&lt;br /&gt;                     blart = &#39;DG&#39;&lt;br /&gt;          BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;            READ TABLE i_bseg2&lt;br /&gt;              WITH KEY bukrs = i_bsad-bukrs&lt;br /&gt;                       belnr = i_bsad-belnr&lt;br /&gt;              BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;            IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;              MOVE: i_bsad-blart TO i_bsid-blart,&lt;br /&gt;                    i_bsad-belnr TO i_bsid-belnr,&lt;br /&gt;                    i_bsad-vbeln TO i_bsid-vbeln.&lt;br /&gt;&lt;br /&gt;            ENDIF.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;      MODIFY i_bsid&lt;br /&gt;       INDEX lv_tabix&lt;br /&gt;       TRANSPORTING dmbtr&lt;br /&gt;                    blart&lt;br /&gt;                    belnr&lt;br /&gt;                    hkont&lt;br /&gt;                    vbeln.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  SORT i_grp_docs&lt;br /&gt;    BY zuonr&lt;br /&gt;       dmbtr.&lt;br /&gt;&lt;br /&gt;  SELECT bukrs&lt;br /&gt;         belnr&lt;br /&gt;         gjahr&lt;br /&gt;         buzei&lt;br /&gt;         dmbtr&lt;br /&gt;         hkont&lt;br /&gt;    INTO TABLE i_bseg3&lt;br /&gt;    FROM bseg&lt;br /&gt;    FOR ALL ENTRIES IN i_bsid&lt;br /&gt;   WHERE bukrs = i_bsid-bukrs&lt;br /&gt;     AND belnr = i_bsid-belnr&lt;br /&gt;     AND bschl = &#39;40&#39;&lt;br /&gt;     AND shkzg = &#39;S&#39;.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    SORT i_bseg3&lt;br /&gt;      BY bukrs&lt;br /&gt;         belnr&lt;br /&gt;         dmbtr.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_bseg3.&lt;br /&gt;      MOVE-CORRESPONDING i_bseg3 TO i_bseg_sum2.&lt;br /&gt;      COLLECT i_bseg_sum2.&lt;br /&gt;      CLEAR i_bseg_sum2.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;  SELECT vbeln&lt;br /&gt;   INTO TABLE i_vbrk&lt;br /&gt;   FROM vbrk&lt;br /&gt;    FOR ALL ENTRIES IN i_bsid&lt;br /&gt;  WHERE vbeln = i_bsid-vbeln2.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_bsid.&lt;br /&gt;      IF i_bsid-blart = c_anticipo. &quot;DZ&lt;br /&gt;&lt;br /&gt;        READ TABLE i_vbrk&lt;br /&gt;         WITH KEY vbeln = i_bsid-vbeln2&lt;br /&gt;         BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;          DELETE i_bsid .&lt;br /&gt;          CONTINUE.&lt;br /&gt;        ENDIF.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      IF i_bsid-blart = c_abono. &quot;DG&lt;br /&gt;&lt;br /&gt;        IF i_bsid-zuonr(10) NE i_bsid-vbeln.&lt;br /&gt;*          DELETE i_bsid.&lt;br /&gt;*          CONTINUE.&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  SORT i_bsid&lt;br /&gt;    BY belnr&lt;br /&gt;       bukrs&lt;br /&gt;       blart&lt;br /&gt;       zuonr&lt;br /&gt;       gjahr&lt;br /&gt;       kunnr .&lt;br /&gt;&lt;br /&gt;  DELETE ADJACENT DUPLICATES FROM i_bsid&lt;br /&gt;                        COMPARING belnr&lt;br /&gt;                                  bukrs&lt;br /&gt;                                  blart&lt;br /&gt;                                  zuonr&lt;br /&gt;                                  gjahr&lt;br /&gt;                                  kunnr.&lt;br /&gt;&lt;br /&gt;* Lee la cabecera de los documentos encontrados.&lt;br /&gt;  SELECT bukrs&lt;br /&gt;         belnr&lt;br /&gt;         gjahr&lt;br /&gt;         usnam&lt;br /&gt;     INTO TABLE i_bkpf&lt;br /&gt;     FROM bkpf&lt;br /&gt;     FOR ALL ENTRIES IN i_bsid&lt;br /&gt;     WHERE bukrs = i_bsid-bukrs&lt;br /&gt;       AND belnr = i_bsid-belnr&lt;br /&gt;       AND gjahr = i_bsid-gjahr&lt;br /&gt;       AND usnam IN s_user.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;    MESSAGE i368(00) WITH text-003.&lt;br /&gt;    STOP.&lt;br /&gt;  ELSE.&lt;br /&gt;    SORT i_bkpf&lt;br /&gt;      BY bukrs&lt;br /&gt;         belnr&lt;br /&gt;         gjahr.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Vuelve a cargar la KNVV y KNVP&lt;br /&gt;  SELECT kunnr&lt;br /&gt;         pernr&lt;br /&gt;  INTO TABLE i_knvp&lt;br /&gt;  FROM knvp&lt;br /&gt;  FOR ALL ENTRIES IN i_bsid&lt;br /&gt;  WHERE kunnr = i_bsid-kunnr&lt;br /&gt;    AND vkorg = i_bsid-bukrs&lt;br /&gt;    AND parvw = c_asesor.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;    SORT i_knvp&lt;br /&gt;      BY kunnr.&lt;br /&gt;&lt;br /&gt;    SELECT pernr&lt;br /&gt;           vorna&lt;br /&gt;           nach2&lt;br /&gt;           nachn&lt;br /&gt;      INTO TABLE i_pa0002&lt;br /&gt;      FROM pa0002&lt;br /&gt;      FOR ALL ENTRIES IN i_knvp&lt;br /&gt;      WHERE pernr = i_knvp-pernr.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;      SORT i_pa0002&lt;br /&gt;        BY pernr.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  SELECT kunnr&lt;br /&gt;         vkgrp&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;         vkbur&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;    INTO TABLE i_knvv&lt;br /&gt;    FROM knvv&lt;br /&gt;    FOR ALL ENTRIES IN i_bsid&lt;br /&gt;   WHERE kunnr = i_bsid-kunnr&lt;br /&gt;     AND vkgrp IN s_vkgrp&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;     AND vkbur IN s_vkbur.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;    SORT i_knvv&lt;br /&gt;      BY kunnr.&lt;br /&gt;&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;    SELECT vkbur&lt;br /&gt;           bezei&lt;br /&gt;      FROM tvkbt&lt;br /&gt;      INTO TABLE i_tvkbt&lt;br /&gt;      FOR ALL ENTRIES IN i_knvv&lt;br /&gt;      WHERE spras EQ &#39;S&#39;&lt;br /&gt;        AND vkbur EQ i_knvv-vkbur.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      SORT i_tvkbt&lt;br /&gt;        BY vkbur.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;    SELECT vkgrp&lt;br /&gt;           bezei&lt;br /&gt;      INTO TABLE i_tvgrt&lt;br /&gt;      FROM tvgrt&lt;br /&gt;      FOR ALL ENTRIES IN i_knvv&lt;br /&gt;      WHERE vkgrp = i_knvv-vkgrp.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;      SORT i_tvgrt&lt;br /&gt;        BY vkgrp.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Carga los nombres de los clientes.&lt;br /&gt;  SELECT kunnr&lt;br /&gt;         name1&lt;br /&gt;    INTO TABLE i_kna1&lt;br /&gt;    FROM kna1&lt;br /&gt;    FOR ALL ENTRIES IN i_bsid&lt;br /&gt;    WHERE kunnr = i_bsid-kunnr.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;    SORT i_kna1&lt;br /&gt;      BY kunnr.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  SELECT kkber&lt;br /&gt;         kkbtx&lt;br /&gt;    INTO TABLE i_t014t&lt;br /&gt;    FROM t014t&lt;br /&gt;    FOR ALL ENTRIES IN i_bsid&lt;br /&gt;    WHERE kkber = i_bsid-kkber&lt;br /&gt;      AND spras = sy-langu.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;    SORT i_t014t&lt;br /&gt;      BY kkber.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  &quot;Obtener documnentos relacionados con zuonr.&lt;br /&gt;  IF i_bsid IS NOT INITIAL.&lt;br /&gt;&lt;br /&gt;    SELECT bukrs&lt;br /&gt;             kunnr&lt;br /&gt;             gjahr&lt;br /&gt;             belnr&lt;br /&gt;             buzei&lt;br /&gt;             budat&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;             bldat&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;             blart&lt;br /&gt;             dmbtr&lt;br /&gt;             hkont&lt;br /&gt;             vbeln&lt;br /&gt;             kkber&lt;br /&gt;             sgtxt&lt;br /&gt;             shkzg&lt;br /&gt;             zuonr&lt;br /&gt;         INTO TABLE i_bsid2&lt;br /&gt;         FROM bsid&lt;br /&gt;          FOR ALL ENTRIES IN i_bsid&lt;br /&gt;         WHERE zuonr = i_bsid-zuonr.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    IF sy-subrc NE 0.&lt;br /&gt;      REFRESH i_bsid2.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_CARGA_INFO&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_VALIDACIONES                                           *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Validaciones del asesor y del segmento                         *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_validaciones .&lt;br /&gt;&lt;br /&gt;* Los criterios de Asesor Comercial y segmnto están ligados al cliente&lt;br /&gt;* por lo tanto serán llenados inicialmente para facilitar el acceso a&lt;br /&gt;* BSID.&lt;br /&gt;&lt;br /&gt;  REFRESH i_clientes.&lt;br /&gt;&lt;br /&gt;* Primero validamos el Asesor Comercial.&lt;br /&gt;  IF NOT s_pernr[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;    SELECT kunnr&lt;br /&gt;           pernr&lt;br /&gt;      INTO TABLE i_knvp&lt;br /&gt;      FROM knvp&lt;br /&gt;      WHERE kunnr IN s_kunnr&lt;br /&gt;        AND pernr IN s_pernr&lt;br /&gt;        AND vkorg IN s_bukrs &quot;EXCHNEO_F14 28.06.2010 E-RGARZA&lt;br /&gt;        AND parvw = c_asesor.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;      SORT i_knvp&lt;br /&gt;        BY kunnr.&lt;br /&gt;&lt;br /&gt;      LOOP AT i_knvp.&lt;br /&gt;        MOVE i_knvp-kunnr TO i_clientes-kunnr.&lt;br /&gt;        APPEND i_clientes.&lt;br /&gt;      ENDLOOP.&lt;br /&gt;    ELSE.&lt;br /&gt;      MESSAGE i368(00) WITH text-001.&lt;br /&gt;      STOP.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  &quot;INICIO MGVG&lt;br /&gt;* Validar que cliente exista.&lt;br /&gt;  IF NOT s_kunnr[] IS INITIAL AND&lt;br /&gt;         i_clientes IS INITIAL.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;    SELECT bukrs&lt;br /&gt;           kunnr&lt;br /&gt;      INTO TABLE i_knb1&lt;br /&gt;      FROM knb1&lt;br /&gt;     WHERE bukrs IN s_bukrs&lt;br /&gt;       AND kunnr IN s_kunnr.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;      MESSAGE s368(00) WITH text-004 DISPLAY LIKE &#39;E&#39;.&lt;br /&gt;      STOP.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;    SELECT kunnr&lt;br /&gt;      INTO TABLE i_clientes&lt;br /&gt;      FROM kna1&lt;br /&gt;     WHERE kunnr IN s_kunnr.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc NE 0.&lt;br /&gt;      MESSAGE i368(00) WITH text-004.&lt;br /&gt;      STOP.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;  &quot;FIN MGVG&lt;br /&gt;&lt;br /&gt;* Ahora validamos el Segmnto.&lt;br /&gt;  IF NOT s_vkgrp[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;    IF NOT i_clientes[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;      SELECT kunnr&lt;br /&gt;             vkgrp&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;             vkbur&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;        INTO TABLE i_knvv&lt;br /&gt;        FROM knvv&lt;br /&gt;        FOR ALL ENTRIES IN i_clientes&lt;br /&gt;       WHERE kunnr = i_clientes-kunnr&lt;br /&gt;         AND vkgrp IN s_vkgrp&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;         AND vkbur IN s_vkbur.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;        SORT i_knvp&lt;br /&gt;          BY kunnr.&lt;br /&gt;&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;        SELECT vkbur&lt;br /&gt;               bezei&lt;br /&gt;          FROM tvkbt&lt;br /&gt;          INTO TABLE i_tvkbt&lt;br /&gt;          FOR ALL ENTRIES IN i_knvv&lt;br /&gt;          WHERE spras EQ &#39;S&#39;&lt;br /&gt;            AND vkbur EQ i_knvv-vkbur.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;          SORT i_tvkbt&lt;br /&gt;            BY vkbur.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;        REFRESH i_clientes.&lt;br /&gt;        LOOP AT i_knvv.&lt;br /&gt;          MOVE i_knvv-kunnr TO i_clientes-kunnr.&lt;br /&gt;          APPEND i_clientes.&lt;br /&gt;        ENDLOOP.&lt;br /&gt;      ELSE.&lt;br /&gt;        MESSAGE i368(00) WITH text-002.&lt;br /&gt;        STOP.&lt;br /&gt;      ENDIF.&lt;br /&gt;    ELSE.&lt;br /&gt;      SELECT kunnr&lt;br /&gt;             vkgrp&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;             vkbur&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;        INTO TABLE i_knvv&lt;br /&gt;        FROM knvv&lt;br /&gt;       WHERE kunnr IN s_kunnr&lt;br /&gt;         AND vkgrp IN s_vkgrp&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;         AND vkbur IN s_vkbur.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;        SORT i_knvp&lt;br /&gt;          BY kunnr.&lt;br /&gt;&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;        SELECT vkbur&lt;br /&gt;               bezei&lt;br /&gt;          FROM tvkbt&lt;br /&gt;          INTO TABLE i_tvkbt&lt;br /&gt;          FOR ALL ENTRIES IN i_knvv&lt;br /&gt;          WHERE spras EQ &#39;S&#39;&lt;br /&gt;            AND vkbur EQ i_knvv-vkbur.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;          SORT i_tvkbt&lt;br /&gt;            BY vkbur.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;        REFRESH i_clientes.&lt;br /&gt;&lt;br /&gt;        LOOP AT i_knvv.&lt;br /&gt;          MOVE i_knvv-kunnr TO i_clientes-kunnr.&lt;br /&gt;          APPEND i_clientes.&lt;br /&gt;        ENDLOOP.&lt;br /&gt;      ELSE.&lt;br /&gt;        MESSAGE i368(00) WITH text-002.&lt;br /&gt;        STOP.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Al terminar ya tenemos los clientes que aplican.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_VALIDACIONES&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_GENERA_SALIDA                                          *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Genera la salida del report                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_genera_salida .&lt;br /&gt;&lt;br /&gt;  REFRESH i_out.&lt;br /&gt;&lt;br /&gt;  SORT i_t014t.&lt;br /&gt;  SORT i_bkpf.&lt;br /&gt;  SORT i_knvv.&lt;br /&gt;  SORT i_knvp.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  LOOP AT i_bsid WHERE blart IN s_blart.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_bkpf&lt;br /&gt;      WITH KEY bukrs = i_bsid-bukrs&lt;br /&gt;               belnr = i_bsid-belnr&lt;br /&gt;               gjahr = i_bsid-gjahr&lt;br /&gt;               BINARY SEARCH.&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;      IF ( p_cred = &#39;X&#39; AND&lt;br /&gt;         ( i_bsid-hkont &gt;= c_irango_cred AND&lt;br /&gt;          i_bsid-hkont &lt;= c_frango_cred ) ) OR&lt;br /&gt;         ( p_cont = &#39;X&#39; AND&lt;br /&gt;         ( i_bsid-hkont &gt;= c_irango_cont AND&lt;br /&gt;           i_bsid-hkont &lt;= c_frango_cont ) ).&lt;br /&gt;&lt;br /&gt;*         La cuenta se queda.&lt;br /&gt;      ELSE.&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;        IF i_bsid-blart NE &#39;DG&#39;.&lt;br /&gt;&lt;br /&gt;*          DELETE i_bsid .&lt;br /&gt;          CONTINUE.&lt;br /&gt;        ELSE.&lt;br /&gt;&lt;br /&gt;          IF p_ncred NE &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;            CONTINUE.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;      ENDIF.&lt;br /&gt;      MOVE-CORRESPONDING i_bsid TO i_out.&lt;br /&gt;      MOVE i_bkpf-usnam TO i_out-usnam.&lt;br /&gt;&lt;br /&gt;*       Si es DZ el documento se toma del BELNR&lt;br /&gt;      IF i_bsid-blart = c_anticipo.&lt;br /&gt;        MOVE i_bsid-belnr TO i_out-belnr.&lt;br /&gt;&lt;br /&gt;      ELSEIF i_bsid-blart = c_abono.&lt;br /&gt;        MOVE i_bsid-vbeln TO i_out-belnr.&lt;br /&gt;      ELSE.&lt;br /&gt;        CONTINUE.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      MOVE i_bsid-dmbtr TO i_out-abierto.&lt;br /&gt;&lt;br /&gt;      MOVE i_bsid-dmbtr TO i_out-total.&lt;br /&gt;&lt;br /&gt;*      carga de bseg el importa total del pago.&lt;br /&gt;      READ TABLE i_bseg_sum1&lt;br /&gt;        WITH KEY bukrs = i_bsid-bukrs&lt;br /&gt;                 belnr = i_bsid-belnr&lt;br /&gt;                 gjahr = i_bsid-gjahr&lt;br /&gt;                 BINARY SEARCH.&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;        MOVE i_bseg_sum1-dmbtr TO i_out-total.&lt;br /&gt;&lt;br /&gt;      ELSE.&lt;br /&gt;&lt;br /&gt;        READ TABLE i_bseg_sum2&lt;br /&gt;          WITH KEY bukrs = i_bsid-bukrs&lt;br /&gt;                   belnr = i_bsid-belnr&lt;br /&gt;                   gjahr = i_bsid-gjahr&lt;br /&gt;                   BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;          MOVE i_bseg_sum2-dmbtr TO i_out-total.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*       Saca la descripción del VKGRP (Segmento).&lt;br /&gt;      READ TABLE i_knvv&lt;br /&gt;        WITH KEY kunnr = i_bsid-kunnr&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*        i_out-vkbur = i_knvv-vkbur.&lt;br /&gt;        READ TABLE i_tvkbt&lt;br /&gt;              INTO w_tvkbt&lt;br /&gt;          WITH KEY vkbur = i_knvv-vkbur&lt;br /&gt;          BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;          i_out-bezei2 = w_tvkbt-bezei.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;        READ TABLE i_tvgrt&lt;br /&gt;          WITH KEY vkgrp = i_knvv-vkgrp&lt;br /&gt;          BINARY SEARCH.&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;          MOVE i_tvgrt-bezei TO i_out-bezei.&lt;br /&gt;        ENDIF.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;*       Saca el nombre del asesor&lt;br /&gt;      READ TABLE i_knvp&lt;br /&gt;        WITH KEY kunnr = i_bsid-kunnr&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;        MOVE i_knvp-pernr TO i_out-asesor.&lt;br /&gt;        READ TABLE i_pa0002&lt;br /&gt;          WITH KEY pernr = i_knvp-pernr&lt;br /&gt;          BINARY SEARCH.&lt;br /&gt;        IF sy-subrc = 0.&lt;br /&gt;          CONCATENATE i_pa0002-vorna&lt;br /&gt;                      i_pa0002-nach2&lt;br /&gt;                      i_pa0002-nachn&lt;br /&gt;                   INTO i_out-nombre&lt;br /&gt;                   SEPARATED BY space.&lt;br /&gt;        ENDIF.&lt;br /&gt;      ENDIF.&lt;br /&gt;*       Carga el nombre del cliente&lt;br /&gt;      READ TABLE i_kna1&lt;br /&gt;        WITH KEY kunnr = i_bsid-kunnr&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;        MOVE i_kna1-name1 TO i_out-name1.&lt;br /&gt;      ENDIF.&lt;br /&gt;*       Saca la denominación de la zona.&lt;br /&gt;      READ TABLE i_t014t&lt;br /&gt;        WITH KEY kkber = i_bsid-kkber&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*        MOVE i_t014t-kkbtx TO i_out-kkbtx.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;      ENDIF.&lt;br /&gt;*     Valida que leyenda debe desplegar&lt;br /&gt;      IF i_bsid-hkont &gt;= c_irango_cred AND&lt;br /&gt;         i_bsid-hkont &lt;= c_frango_cred.&lt;br /&gt;        MOVE text-t99 TO i_out-thkont.&lt;br /&gt;      ENDIF.&lt;br /&gt;      IF i_bsid-hkont &gt;= c_irango_cont AND&lt;br /&gt;         i_bsid-hkont &lt;= c_frango_cont.&lt;br /&gt;        MOVE text-t98 TO i_out-thkont.&lt;br /&gt;      ENDIF.&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;      IF i_bsid-blart = &#39;DG&#39;.&lt;br /&gt;        MOVE text-t97 TO i_out-thkont.&lt;br /&gt;      ENDIF.&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;      APPEND i_out.&lt;br /&gt;    ENDIF.&lt;br /&gt;    CLEAR i_out.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  &quot;inicio mgvg&lt;br /&gt;*  LOOP AT i_out.&lt;br /&gt;*&lt;br /&gt;*    LOOP AT i_bsid2&lt;br /&gt;*      WHERE zuonr = i_out-belnr&lt;br /&gt;*        AND gjahr = i_out-gjahr&lt;br /&gt;*        AND bukrs = i_out-bukrs.&lt;br /&gt;*&lt;br /&gt;*      IF  ( i_bsid2-blart = c_abono OR&lt;br /&gt;*            i_bsid2-blart = c_anticipo ).&lt;br /&gt;*        IF i_bsid2-shkzg = c_s.&lt;br /&gt;*          i_out-total = i_out-total - i_bsid2-dmbtr.&lt;br /&gt;*        ELSEIF i_bsid2-shkzg = c_h.&lt;br /&gt;*          i_out-total = i_out-total + i_bsid2-dmbtr.&lt;br /&gt;*        ENDIF.&lt;br /&gt;*      ENDIF.&lt;br /&gt;*&lt;br /&gt;*      IF i_bsid2-shkzg = c_s.&lt;br /&gt;*        i_out-abierto = i_out-abierto - i_bsid2-dmbtr.&lt;br /&gt;*      ELSEIF i_bsid2-shkzg = c_h.&lt;br /&gt;*        i_out-abierto = i_out-abierto + i_bsid2-dmbtr.&lt;br /&gt;*      ENDIF.&lt;br /&gt;*&lt;br /&gt;*      MODIFY TABLE i_out TRANSPORTING abierto total.&lt;br /&gt;*&lt;br /&gt;*    ENDLOOP.&lt;br /&gt;*&lt;br /&gt;*    CLEAR: i_out-abierto,&lt;br /&gt;*           i_out-total.&lt;br /&gt;*&lt;br /&gt;*  ENDLOOP.&lt;br /&gt;  &quot;fin mgvg&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_GENERA_SALIDA&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_FILLS_CATALOG&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Genera el catálogo de campos&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_fills_catalog .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_FIELDCATALOG_MERGE&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_program_name         = sy-repid&lt;br /&gt;      i_internal_tabname     = &#39;I_OUT&#39;&lt;br /&gt;      i_inclname             = &#39;ZGCCRE_AR01_SALDOS_FAVOR_A&#39;&lt;br /&gt;    CHANGING&lt;br /&gt;      ct_fieldcat            = i_fieldcat&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      inconsistent_interface = 1&lt;br /&gt;      program_error          = 2&lt;br /&gt;      OTHERS                 = 3.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;    MESSAGE ID sy-msgid&lt;br /&gt;          TYPE sy-msgty&lt;br /&gt;        NUMBER sy-msgno&lt;br /&gt;          WITH sy-msgv1&lt;br /&gt;               sy-msgv2&lt;br /&gt;               sy-msgv3&lt;br /&gt;               sy-msgv4.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_FILLS_CATALOG&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_FIELDCAT                                               *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Llenado del catálogo de campos                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_fieldcat .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp; Structure&lt;br /&gt;  DATA  lw_fieldcat TYPE slis_fieldcat_alv.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t01.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t01.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t01.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t01.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;NOMBRE&#39;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t02.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t02.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t02.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t02.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;BEZEI&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t03.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t03.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t03.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t03.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;ASESOR&#39;.&lt;br /&gt;&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;  lw_fieldcat-seltext_s = text-t28.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t28.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t28.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t28.&lt;br /&gt;*  lw_fieldcat-seltext_s = text-t04.&lt;br /&gt;*  lw_fieldcat-seltext_l = text-t04.&lt;br /&gt;*  lw_fieldcat-seltext_m = text-t04.&lt;br /&gt;*  lw_fieldcat-reptext_ddic = text-t04.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;KKBTX&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t05.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t05.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t05.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t05.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;HKONT&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t26.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t26.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t26.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t26.&lt;br /&gt;&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;BLDAT&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t04.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t04.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t04.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t04.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;BEZEI2&#39;.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t06.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t06.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t06.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t06.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;TOTAL&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t07.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t07.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t07.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t07.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;ABIERTO&#39;.&lt;br /&gt;&lt;br /&gt;* BEGIN: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t16.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t16.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t16.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t16.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;BUKRS&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t17.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t17.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t17.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t17.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;BELNR&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t18.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t18.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t18.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t18.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;BLART&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t19.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t19.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t19.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t19.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;KUNNR&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t20.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t20.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t20.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t20.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;NAME1&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t21.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t21.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t21.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t21.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;BUDAT&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t22.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t22.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t22.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t22.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;GJAHR&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t23.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t23.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t23.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t23.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;THKONT&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t24.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t24.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t24.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t24.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;USNAM&#39;.&lt;br /&gt;&lt;br /&gt;  lw_fieldcat-seltext_s = text-t25.&lt;br /&gt;  lw_fieldcat-seltext_l = text-t25.&lt;br /&gt;  lw_fieldcat-seltext_m = text-t25.&lt;br /&gt;  lw_fieldcat-reptext_ddic = text-t25.&lt;br /&gt;&lt;br /&gt;  MODIFY i_fieldcat&lt;br /&gt;    FROM lw_fieldcat&lt;br /&gt;TRANSPORTING ddictxt&lt;br /&gt;         seltext_s&lt;br /&gt;         seltext_l&lt;br /&gt;         seltext_m&lt;br /&gt;         reptext_ddic&lt;br /&gt;   WHERE fieldname = &#39;SGTXT&#39;.&lt;br /&gt;&lt;br /&gt;* END: EXCHNEO_F14 24.06.2010 E-RGARZA&lt;br /&gt;  SORT i_fieldcat&lt;br /&gt;    BY col_pos.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_FIELDCAT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_BUILD_EVENTS&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Eventos del ALV                                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_build_events .&lt;br /&gt;  DATA: lw_event TYPE slis_alv_event.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_EVENTS_GET&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_list_type     = 0&lt;br /&gt;    IMPORTING&lt;br /&gt;      et_events       = i_events[]&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      list_type_wrong = 1&lt;br /&gt;      OTHERS          = 2.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;    MESSAGE ID sy-msgid&lt;br /&gt;          TYPE sy-msgty&lt;br /&gt;        NUMBER sy-msgno&lt;br /&gt;          WITH sy-msgv1&lt;br /&gt;               sy-msgv2&lt;br /&gt;               sy-msgv3&lt;br /&gt;               sy-msgv4.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  SORT i_events&lt;br /&gt;    BY name.&lt;br /&gt;&lt;br /&gt;** ALV_GRID Function Module&lt;br /&gt;*  READ TABLE i_events&lt;br /&gt;*        INTO lw_event&lt;br /&gt;*    WITH KEY name =  slis_ev_end_of_list&lt;br /&gt;*      BINARY SEARCH.&lt;br /&gt;*&lt;br /&gt;*  IF sy-subrc = 0.&lt;br /&gt;*&lt;br /&gt;*    MOVE &#39;F_END_OF_LIST&#39; TO lw_event-form.&lt;br /&gt;*&lt;br /&gt;*    MODIFY i_events&lt;br /&gt;*      FROM lw_event&lt;br /&gt;*     INDEX sy-tabix.&lt;br /&gt;*&lt;br /&gt;*  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF sy-batch NE &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_events&lt;br /&gt;      INTO lw_event&lt;br /&gt;      WITH KEY name =  slis_ev_top_of_list&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;      MOVE &#39;F_TOP_OF_LIST&#39; TO lw_event-form.&lt;br /&gt;      MODIFY  i_events&lt;br /&gt;        FROM  lw_event&lt;br /&gt;        INDEX sy-tabix.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_BUILD_EVENTS&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_SORT                                                   *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Ordenamiento del ALV                                           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_sort .&lt;br /&gt;&lt;br /&gt;  w_sort-spos      = 1.&lt;br /&gt;  w_sort-fieldname = &#39;BELNR&#39;.&lt;br /&gt;  w_sort-up        = &#39;X&#39;.&lt;br /&gt;  w_sort-subtot    = &#39;X&#39;.&lt;br /&gt;  APPEND w_sort TO i_sort.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_SORT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_SHOWS_REPORT                                           *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Despliega el reporte                                           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_shows_report .&lt;br /&gt;&lt;br /&gt;* Local data&lt;br /&gt;  DATA: lv_repid    TYPE sy-repid,&lt;br /&gt;        lw_layout   TYPE slis_layout_alv.&lt;br /&gt;&lt;br /&gt;*  Assign the name of program&lt;br /&gt;  lv_repid  =  sy-repid.&lt;br /&gt;&lt;br /&gt;  lw_layout-no_colhead           = space.&lt;br /&gt;  lw_layout-zebra                = &#39;X&#39;.&lt;br /&gt;  lw_layout-no_vline             = space.&lt;br /&gt;  lw_layout-no_subtotals         = &#39;X&#39;.&lt;br /&gt;  lw_layout-totals_before_items  = space.&lt;br /&gt;  lw_layout-colwidth_optimize    = &#39;X&#39;.&lt;br /&gt;  lw_layout-detail_popup         = &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_GRID_DISPLAY&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_callback_program          = lv_repid&lt;br /&gt;      i_callback_html_top_of_page = &#39;F_HTML_TOP_OF_PAGE&#39;&lt;br /&gt;      i_grid_title                = v_title_alv&lt;br /&gt;      it_events                   = i_events[]&lt;br /&gt;      it_fieldcat                 = i_fieldcat&lt;br /&gt;      is_layout                   = lw_layout&lt;br /&gt;      i_default                   = &#39;X&#39;&lt;br /&gt;      it_sort                     = i_sort[]&lt;br /&gt;      i_save                      = &#39;A&#39;&lt;br /&gt;    TABLES&lt;br /&gt;      t_outtab                    = i_out&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      program_error               = 1&lt;br /&gt;      OTHERS                      = 2.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;    MESSAGE ID sy-msgid&lt;br /&gt;          TYPE sy-msgty&lt;br /&gt;        NUMBER sy-msgno&lt;br /&gt;          WITH sy-msgv1&lt;br /&gt;               sy-msgv2&lt;br /&gt;               sy-msgv3&lt;br /&gt;               sy-msgv4.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_SHOWS_REPORT&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_HTML_TOP_OF_PAGE&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Muestra el encabezado del ALV.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  document&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_html_top_of_page USING document TYPE REF TO cl_dd_document.&lt;br /&gt;  DATA: lv_text TYPE sdydo_text_element,&lt;br /&gt;        lv_fecha(10) TYPE c,&lt;br /&gt;        lv_saldo(30) TYPE c,&lt;br /&gt;        lv_ta   TYPE REF TO cl_dd_table_element,&lt;br /&gt;        lv_col1 TYPE REF TO cl_dd_area,&lt;br /&gt;        lv_col2 TYPE REF TO cl_dd_area,&lt;br /&gt;        lv_col3 TYPE REF TO cl_dd_area.&lt;br /&gt;&lt;br /&gt;  CALL METHOD document-&gt;add_table&lt;br /&gt;    EXPORTING&lt;br /&gt;      no_of_columns = 3&lt;br /&gt;      width         = &#39;100%&#39;&lt;br /&gt;      border        = &#39;0&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      table         = lv_ta.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;30%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lv_col1.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;40%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lv_col2.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;30%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lv_col3.&lt;br /&gt;&lt;br /&gt;*  CALL METHOD lv_ta-&gt;add_gap&lt;br /&gt;*    EXPORTING&lt;br /&gt;*      width = &#39;100%&#39;.&lt;br /&gt;  lv_text =  text-t15.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_col2-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 25.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_col2-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text &quot;Reporte&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;STRONG&#39;.&lt;br /&gt;&lt;br /&gt;  CLEAR lv_text.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_ta-&gt;new_row.&lt;br /&gt;&lt;br /&gt;  lv_text =  text-t10.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_col2-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 30.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_col2-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text &quot;Reporte&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;STRONG&#39;.&lt;br /&gt;&lt;br /&gt;  CLEAR lv_text.&lt;br /&gt;&lt;br /&gt;*  CALL METHOD document-&gt;new_line.&lt;br /&gt;*&lt;br /&gt;*  CALL METHOD document-&gt;add_gap&lt;br /&gt;*    EXPORTING&lt;br /&gt;*      width = 80.&lt;br /&gt;  CALL METHOD lv_ta-&gt;new_row.&lt;br /&gt;&lt;br /&gt;  CONCATENATE  sy-datlo+6(2) &#39;/&#39;&lt;br /&gt;               sy-datlo+4(2) &#39;/&#39;&lt;br /&gt;               sy-datlo(4)&lt;br /&gt;         INTO lv_fecha.&lt;br /&gt;&lt;br /&gt;  CONCATENATE text-t11&lt;br /&gt;              lv_fecha&lt;br /&gt;         INTO lv_text&lt;br /&gt;         SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;*  CALL METHOD document-&gt;add_text&lt;br /&gt;*    EXPORTING&lt;br /&gt;*      text         = lv_text&lt;br /&gt;*      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_col2-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 30.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_col2-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;STRONG&#39;.&lt;br /&gt;&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;  IF NOT s_bldat[] IS INITIAL.&lt;br /&gt;*  IF NOT s_budat[] IS INITIAL.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;    CLEAR lv_text.&lt;br /&gt;&lt;br /&gt;*    CALL METHOD document-&gt;new_line.&lt;br /&gt;*&lt;br /&gt;*    CALL METHOD document-&gt;add_gap&lt;br /&gt;*      EXPORTING&lt;br /&gt;*        width = 80.&lt;br /&gt;    CALL METHOD lv_ta-&gt;new_row.&lt;br /&gt;&lt;br /&gt;    CALL METHOD lv_col2-&gt;add_gap&lt;br /&gt;      EXPORTING&lt;br /&gt;        width = 25.&lt;br /&gt;&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;    CONCATENATE  s_bldat-low+6(2) &#39;/&#39;&lt;br /&gt;                 s_bldat-low+4(2) &#39;/&#39;&lt;br /&gt;                 s_bldat-low(4)&lt;br /&gt;*    CONCATENATE  s_budat-low+6(2) &#39;/&#39;&lt;br /&gt;*                 s_budat-low+4(2) &#39;/&#39;&lt;br /&gt;*                 s_budat-low(4)&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;           INTO lv_fecha.&lt;br /&gt;&lt;br /&gt;    CONCATENATE text-t12&lt;br /&gt;                lv_fecha&lt;br /&gt;           INTO lv_text&lt;br /&gt;           SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*    CONCATENATE  s_budat-high+6(2) &#39;/&#39;&lt;br /&gt;*                 s_budat-high+4(2) &#39;/&#39;&lt;br /&gt;*                 s_budat-high(4)&lt;br /&gt;    CONCATENATE  s_bldat-high+6(2) &#39;/&#39;&lt;br /&gt;                 s_bldat-high+4(2) &#39;/&#39;&lt;br /&gt;                 s_bldat-high(4)&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;           INTO lv_fecha.&lt;br /&gt;&lt;br /&gt;    CONCATENATE lv_text&lt;br /&gt;                text-t13&lt;br /&gt;                lv_fecha&lt;br /&gt;           INTO lv_text&lt;br /&gt;           SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;    CALL METHOD lv_col2-&gt;add_text&lt;br /&gt;      EXPORTING&lt;br /&gt;        text         = lv_text&lt;br /&gt;        sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;        sap_emphasis = &#39;STRONG&#39;.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;    CLEAR lv_text.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*  CALL METHOD document-&gt;new_line.&lt;br /&gt;*&lt;br /&gt;*  CALL METHOD document-&gt;add_gap&lt;br /&gt;*    EXPORTING&lt;br /&gt;*      width = 150.&lt;br /&gt;*&lt;br /&gt;*  CALL METHOD document-&gt;add_text&lt;br /&gt;*    EXPORTING&lt;br /&gt;*      text         = lv_text&lt;br /&gt;*      sap_emphasis = &#39;HEADING&#39;.&lt;br /&gt;&lt;br /&gt;  CLEAR lv_text.&lt;br /&gt;&lt;br /&gt;*  CALL METHOD document-&gt;add_gap&lt;br /&gt;*    EXPORTING&lt;br /&gt;*      width = 150.&lt;br /&gt;  CALL METHOD lv_col3-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 30.&lt;br /&gt;&lt;br /&gt;  CONCATENATE  sy-timlo+0(2) &#39;:&#39;&lt;br /&gt;               sy-timlo+2(2) &#39;:&#39;&lt;br /&gt;               sy-timlo+4(2)&lt;br /&gt;         INTO lv_fecha.&lt;br /&gt;&lt;br /&gt;  CONCATENATE text-t14&lt;br /&gt;              lv_fecha&lt;br /&gt;         INTO lv_text&lt;br /&gt;         SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;*  CALL METHOD document-&gt;add_text&lt;br /&gt;*    EXPORTING&lt;br /&gt;*      text         = lv_text&lt;br /&gt;*      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;  CALL METHOD lv_col3-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;STRONG&#39;.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot;f_html_top_of_page&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_AUTHORITY_CHECK                                        *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       Valida la autorización a la sociedad                           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_authority_check .&lt;br /&gt;&lt;br /&gt;* Obtenemos todos las sociedades solicitadas en el select-options.&lt;br /&gt;  SELECT bukrs&lt;br /&gt;    FROM t001&lt;br /&gt;    INTO TABLE i_t001&lt;br /&gt;    WHERE bukrs IN s_bukrs.&lt;br /&gt;&lt;br /&gt;* Si encontramos datos.&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;* Barremos esa tabla de datos, y le aplicamos el authority check.&lt;br /&gt;    LOOP AT i_t001.&lt;br /&gt;&lt;br /&gt;      MOVE sy-tabix TO v_apunta.&lt;br /&gt;&lt;br /&gt;      AUTHORITY-CHECK OBJECT &#39;F_BKPF_BUK&#39;&lt;br /&gt;        ID &#39;BUKRS&#39; FIELD i_t001-bukrs&lt;br /&gt;        ID &#39;ACTVT&#39; FIELD &#39;03&#39;.&lt;br /&gt;&lt;br /&gt;* Si el usuario no tiene permisos para el objeto de datos, se borra ese&lt;br /&gt;* objeto del select-options.&lt;br /&gt;      IF sy-subrc &lt;&gt; 0.&lt;br /&gt;        DELETE i_t001 INDEX v_apunta.&lt;br /&gt;      ENDIF.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;    IF i_t001[] IS INITIAL.&lt;br /&gt;      MESSAGE i368(00) WITH text-m04.    &quot;  &#39;El usuario no tiene permiso para acceder&lt;br /&gt;      &quot;  a estos datos.&#39;&lt;br /&gt;      STOP.&lt;br /&gt;    ELSE.&lt;br /&gt;*     Vacía en s_bukrs las sociedades a las que tiene permiso.&lt;br /&gt;      REFRESH s_bukrs.&lt;br /&gt;      LOOP AT i_t001.&lt;br /&gt;*          Los valores de I y EQ no son hardcode ya que no son datos transaccionales.&lt;br /&gt;        MOVE: i_t001-bukrs TO s_bukrs-low,&lt;br /&gt;              &#39;I&#39; TO s_bukrs-sign,&lt;br /&gt;              &#39;EQ&#39; TO s_bukrs-option.&lt;br /&gt;        APPEND s_bukrs.&lt;br /&gt;      ENDLOOP.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot;F_AUTHORITY_CHECK&lt;br /&gt;* BEGIN: EXCHNEO_F14 28.06.2010 E-RGARZA&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_SELECT_PERNR&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_select_pernr .&lt;br /&gt;  REFRESH: i_match,&lt;br /&gt;           i_knvp_sel,&lt;br /&gt;           i_pa0001,&lt;br /&gt;           r_kunnr,&lt;br /&gt;           r_bukrs.&lt;br /&gt;&lt;br /&gt;  CLEAR: r_bukrs,&lt;br /&gt;         r_kunnr.&lt;br /&gt;&lt;br /&gt;  DATA: lw_dynpread TYPE dynpread.&lt;br /&gt;  DATA: li_dynpread TYPE STANDARD TABLE OF dynpread.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;DYNP_VALUES_READ&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      dyname               = sy-repid&lt;br /&gt;      dynumb               = sy-dynnr&lt;br /&gt;      request              = &#39;A&#39;&lt;br /&gt;      determine_loop_index = &#39;X&#39;&lt;br /&gt;    TABLES&lt;br /&gt;      dynpfields           = li_dynpread&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      invalid_abapworkarea = 1&lt;br /&gt;      invalid_dynprofield  = 2&lt;br /&gt;      invalid_dynproname   = 3&lt;br /&gt;      invalid_dynpronummer = 4&lt;br /&gt;      invalid_request      = 5&lt;br /&gt;      no_fielddescription  = 6&lt;br /&gt;      invalid_parameter    = 7&lt;br /&gt;      undefind_error       = 8&lt;br /&gt;      double_conversion    = 9&lt;br /&gt;      stepl_not_found      = 10&lt;br /&gt;      OTHERS               = 11.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    IF s_bukrs[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;      READ TABLE li_dynpread&lt;br /&gt;            INTO lw_dynpread&lt;br /&gt;        WITH KEY fieldname = &#39;S_BUKRS-LOW&#39;.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;        IF NOT lw_dynpread-fieldvalue IS INITIAL.&lt;br /&gt;&lt;br /&gt;          MOVE: &#39;I&#39; TO r_bukrs-sign,&lt;br /&gt;                &#39;EQ&#39; TO r_bukrs-option,&lt;br /&gt;                lw_dynpread-fieldvalue TO r_bukrs-low.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      READ TABLE li_dynpread&lt;br /&gt;            INTO lw_dynpread&lt;br /&gt;        WITH KEY fieldname = &#39;S_BUKRS-HIGH&#39;.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;        IF lw_dynpread-fieldvalue IS NOT INITIAL.&lt;br /&gt;          MOVE: &#39;I&#39; TO r_bukrs-sign,&lt;br /&gt;                &#39;BT&#39; TO r_bukrs-option,&lt;br /&gt;                lw_dynpread-fieldvalue TO r_bukrs-high.&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      IF NOT r_bukrs IS INITIAL.&lt;br /&gt;        APPEND r_bukrs.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ELSE.&lt;br /&gt;&lt;br /&gt;      LOOP AT s_bukrs.&lt;br /&gt;&lt;br /&gt;        MOVE-CORRESPONDING s_bukrs TO r_bukrs.&lt;br /&gt;        APPEND r_bukrs.&lt;br /&gt;&lt;br /&gt;      ENDLOOP.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    IF s_kunnr[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;      READ TABLE li_dynpread&lt;br /&gt;            INTO lw_dynpread&lt;br /&gt;        WITH KEY fieldname = &#39;S_KUNNR-LOW&#39;.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;        IF NOT lw_dynpread-fieldvalue IS INITIAL.&lt;br /&gt;&lt;br /&gt;          MOVE: &#39;I&#39; TO r_kunnr-sign,&lt;br /&gt;                &#39;EQ&#39; TO r_kunnr-option,&lt;br /&gt;                lw_dynpread-fieldvalue TO r_kunnr-low.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      READ TABLE li_dynpread&lt;br /&gt;            INTO lw_dynpread&lt;br /&gt;        WITH KEY fieldname = &#39;S_KUNNR-HIGH&#39;.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;        IF lw_dynpread-fieldvalue IS NOT INITIAL.&lt;br /&gt;          MOVE: &#39;I&#39; TO r_kunnr-sign,&lt;br /&gt;                &#39;BT&#39; TO r_kunnr-option,&lt;br /&gt;                lw_dynpread-fieldvalue TO r_kunnr-high.&lt;br /&gt;        ENDIF.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      IF NOT r_kunnr IS INITIAL.&lt;br /&gt;&lt;br /&gt;        CALL FUNCTION &#39;CONVERSION_EXIT_ALPHA_INPUT&#39;&lt;br /&gt;          EXPORTING&lt;br /&gt;            input  = r_kunnr-low&lt;br /&gt;          IMPORTING&lt;br /&gt;            output = r_kunnr-low.&lt;br /&gt;&lt;br /&gt;        CALL FUNCTION &#39;CONVERSION_EXIT_ALPHA_INPUT&#39;&lt;br /&gt;          EXPORTING&lt;br /&gt;            input  = r_kunnr-high&lt;br /&gt;          IMPORTING&lt;br /&gt;            output = r_kunnr-high.&lt;br /&gt;&lt;br /&gt;        APPEND r_kunnr.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;    ELSE.&lt;br /&gt;&lt;br /&gt;      LOOP AT s_kunnr.&lt;br /&gt;&lt;br /&gt;        MOVE-CORRESPONDING s_kunnr TO r_kunnr.&lt;br /&gt;        APPEND r_kunnr.&lt;br /&gt;&lt;br /&gt;      ENDLOOP.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  SELECT pernr&lt;br /&gt;    INTO TABLE i_knvp_sel&lt;br /&gt;    FROM knvp&lt;br /&gt;   WHERE parvw = &#39;ZE&#39;&lt;br /&gt;     AND vkorg IN r_bukrs&lt;br /&gt;     AND kunnr IN r_kunnr.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    SORT i_knvp_sel&lt;br /&gt;      BY pernr.&lt;br /&gt;&lt;br /&gt;    DELETE ADJACENT DUPLICATES FROM i_knvp_sel.&lt;br /&gt;&lt;br /&gt;    SELECT pernr&lt;br /&gt;           ename&lt;br /&gt;      INTO TABLE i_pa0001&lt;br /&gt;      FROM pa0001&lt;br /&gt;       FOR ALL ENTRIES IN i_knvp_sel&lt;br /&gt;     WHERE pernr = i_knvp_sel-pernr.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;      CALL FUNCTION &#39;F4IF_INT_TABLE_VALUE_REQUEST&#39;&lt;br /&gt;        EXPORTING&lt;br /&gt;          retfield        = &#39;PERNR&#39;&lt;br /&gt;          window_title    = text-020&lt;br /&gt;          value_org       = &#39;S&#39;&lt;br /&gt;        TABLES&lt;br /&gt;          value_tab       = i_pa0001&lt;br /&gt;          return_tab      = i_match&lt;br /&gt;        EXCEPTIONS&lt;br /&gt;          parameter_error = 1&lt;br /&gt;          no_values_found = 2&lt;br /&gt;          OTHERS          = 3.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        READ TABLE i_match INDEX 1.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.                    &quot; F_SELECT_PERNR&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  F_VALIDA_BLART&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_valida_blart .&lt;br /&gt;  LOOP AT s_blart.&lt;br /&gt;&lt;br /&gt;    IF NOT s_blart-high IS INITIAL.&lt;br /&gt;&lt;br /&gt;      IF s_blart-high NE c_abono AND&lt;br /&gt;         s_blart-high NE c_anticipo.&lt;br /&gt;&lt;br /&gt;        DELETE s_blart INDEX sy-tabix.&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*        MESSAGE: e208(00) WITH text-006.&lt;br /&gt;        MESSAGE text-006&lt;br /&gt;           TYPE &#39;S&#39;&lt;br /&gt;           DISPLAY LIKE &#39;E&#39;.&lt;br /&gt;&lt;br /&gt;        LEAVE LIST-PROCESSING.&lt;br /&gt;        STOP.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    IF NOT s_blart-low IS INITIAL.&lt;br /&gt;&lt;br /&gt;      IF s_blart-low NE c_abono AND&lt;br /&gt;         s_blart-low NE c_anticipo.&lt;br /&gt;&lt;br /&gt;        DELETE s_blart INDEX sy-tabix.&lt;br /&gt;* BEGIN AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;*        MESSAGE: e208(00) WITH text-006.&lt;br /&gt;        MESSAGE text-006&lt;br /&gt;           TYPE &#39;S&#39;&lt;br /&gt;           DISPLAY LIKE &#39;E&#39;.&lt;br /&gt;&lt;br /&gt;        LEAVE LIST-PROCESSING.&lt;br /&gt;        STOP.&lt;br /&gt;* END AR01 Jose Moreno EXCHNEO_F09 06.07.2010.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;ENDFORM.                    &quot; F_VALIDA_BLART&lt;br /&gt;* END: EXCHNEO_F14 28.06.2010 E-RGARZA&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbapersjuniors.blogspot.com/feeds/3929475793351691031/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/alv-grid-reporte-de-saldos-favor.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/3929475793351691031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/3929475793351691031'/><link rel='alternate' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/alv-grid-reporte-de-saldos-favor.html' title='ALV GRID: REPORTE DE SALDOS A FAVOR'/><author><name>Jose Angel Moreno Nieblas</name><uri>http://www.blogger.com/profile/07557229350909629318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5446296579082811811.post-7607671959077141064</id><published>2010-07-21T14:00:00.000-07:00</published><updated>2010-07-22T09:28:57.164-07:00</updated><title type='text'>Ejemplo de ALV OO</title><content type='html'>Es es un ejemplo de un ALV OO que implementa los siguientes eventos.&lt;br /&gt;*TOP_OF_PAGE &quot;Cabecera&lt;br /&gt;*DATA_CHANGED &quot;Cuando es cambiado un campo editable&lt;br /&gt;*TOOLBAR &quot;Agrega botones al alv&lt;br /&gt;*END_OF_LIST &quot;Pie de página&lt;br /&gt;*USER_COMMAND &quot;Codigo Interno&lt;br /&gt;*HOTSPOT_CLICK &quot;Click a dato de un campo&lt;br /&gt;*ONF4 &quot;Ayuda en un campo del ALV&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Programa Principal&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa             : ZPRIMERPROGRAMA                               *&lt;br /&gt;* Descripción          : Ejemplo de creación de un ALV OO con el manejo*&lt;br /&gt;*                        de los principales eventos.                   *&lt;br /&gt;* Desarrollador        : José Ángel Moreno Nieblas    MZAVALA          *&lt;br /&gt;* Fecha Creación       : 05.06.2010                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;REPORT  zprimerprograma.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*             D E C L A R A C I O N  D E  I N C L U D E S              *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;INCLUDE: zprimerprograma_a, &quot;Declaraciones Globales.&lt;br /&gt;         zprimerprograma_b, &quot;Sub-rutinas.&lt;br /&gt;         zprimerprograma_o, &quot;PBO&lt;br /&gt;         zprimerprograma_i. &quot;PAI&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*           E V E N T O  I N I T I A L I Z A T I O N                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;INITIALIZATION.&lt;br /&gt;* Para limpiar los parámetros de selección.&lt;br /&gt;  PERFORM f_limpiar_parametros.&lt;br /&gt;  PERFORM f_inicializar_variante. &quot;Inicializa la variable&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*           E V E N T O  S E L E C C T I O N - S C R E E N             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.&lt;br /&gt;  PERFORM f_obtener_variante. &quot;Rutina que obtiene una variante default&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN.&lt;br /&gt;  PERFORM f_cargar_variante. &quot;Rutina que obtiene una variante&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*         E V E N T O  S T A R T - O F - S E L E C T I O N             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;* Para inicializar los objetos necesarios.&lt;br /&gt;  PERFORM f_crear_alv_oo.&lt;br /&gt;&lt;br /&gt;* Llamado a la pantalla 100.&lt;br /&gt;  CALL SCREEN 0100.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Declaraciones&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa             : ZPRIMERPROGRAMA_A                             *&lt;br /&gt;* Descripción          : Declarciones globales necesarias para el      *&lt;br /&gt;*                        Ejemplo de creación de un ALV OO con el manejo*&lt;br /&gt;*                        de los principales eventos.                   *&lt;br /&gt;* Desarrollador        : José Ángel Moreno Nieblas    MZAVALA          *&lt;br /&gt;* Fecha Creación       : 05.06.2010                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*        T A B L A S                                                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;TABLES: lfa1.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*        T I P O S                                                     *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;TYPES: BEGIN OF ty_lfa1,&lt;br /&gt;  lifnr        TYPE lfa1-lifnr,&lt;br /&gt;  name1        TYPE lfa1-name1,&lt;br /&gt;  name2        TYPE lfa1-name2,&lt;br /&gt;  j_sc_capital TYPE lfa1-j_sc_capital.&lt;br /&gt;TYPES: END OF ty_lfa1.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_lfb1,&lt;br /&gt;  lifnr TYPE lfb1-lifnr,&lt;br /&gt;  bukrs TYPE lfb1-bukrs,&lt;br /&gt;  webtr TYPE lfb1-webtr.&lt;br /&gt;TYPES: END OF ty_lfb1.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_t001,&lt;br /&gt;  bukrs TYPE t001-bukrs,&lt;br /&gt;  butxt TYPE t001-butxt.&lt;br /&gt;TYPES: END OF ty_t001.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_lfm1,&lt;br /&gt;  lifnr TYPE lfm1-lifnr,&lt;br /&gt;  ekorg TYPE lfm1-ekorg.&lt;br /&gt;TYPES: END OF ty_lfm1.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_t024e,&lt;br /&gt;  ekorg TYPE t024e-ekorg,&lt;br /&gt;  ekotx TYPE t024e-ekotx.&lt;br /&gt;TYPES: END OF ty_t024e.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*        E S T R U C T U R A S                                         *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;DATA: w_lfa1     TYPE ty_lfa1,&lt;br /&gt;      w_lfb1     TYPE ty_lfb1,&lt;br /&gt;      w_t001     TYPE ty_t001,&lt;br /&gt;      w_lfm1     TYPE ty_lfm1,&lt;br /&gt;      w_salida   TYPE zes_alv_oo,&lt;br /&gt;      w_fdcat    TYPE lvc_s_fcat,&lt;br /&gt;      w_layout   TYPE lvc_s_layo,&lt;br /&gt;      w_sort     TYPE lvc_s_sort,&lt;br /&gt;      w_variant  TYPE disvariant,&lt;br /&gt;      w_xvariant TYPE disvariant,&lt;br /&gt;      w_t024e    TYPE ty_t024e.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*        T A B L A S  I N T E R N N A S                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;DATA: i_lfa1   TYPE STANDARD TABLE OF ty_lfa1,&lt;br /&gt;      i_lfb1   TYPE STANDARD TABLE OF ty_lfb1,&lt;br /&gt;      i_t001   TYPE STANDARD TABLE OF ty_t001,&lt;br /&gt;      i_lfm1   TYPE STANDARD TABLE OF ty_lfm1,&lt;br /&gt;      i_salida TYPE STANDARD TABLE OF zes_alv_oo,&lt;br /&gt;      i_fdcat  TYPE lvc_t_fcat,&lt;br /&gt;      i_sort   TYPE lvc_t_sort,&lt;br /&gt;      i_t024e  TYPE STANDARD TABLE OF ty_t024e.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*       V A R I A B L E S                                              *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;DATA: v_ucomm100      TYPE sy-ucomm,&lt;br /&gt;      v_ucomm200      TYPE sy-ucomm,&lt;br /&gt;      v_block100(100) TYPE c VALUE &#39;Selection Parameters&#39;.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*       C L A S E S                                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;CLASS lcl_co_application DEFINITION DEFERRED.&lt;br /&gt;DATA: cl_application TYPE REF TO lcl_co_application.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*       CLASS lcl_co_application DEFINITION                            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*   Clase mejorada de objetos para generar el ALV OO.                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;CLASS lcl_co_application DEFINITION.&lt;br /&gt;&lt;br /&gt;  PUBLIC SECTION.&lt;br /&gt;    METHODS:&lt;br /&gt;&lt;br /&gt;*   Cuando en dato en cambiado en el ALV.&lt;br /&gt;    handle_data_changed&lt;br /&gt;    FOR EVENT data_changed&lt;br /&gt;           OF cl_gui_alv_grid&lt;br /&gt;    IMPORTING er_data_changed&lt;br /&gt;              e_onf4&lt;br /&gt;              e_onf4_before&lt;br /&gt;              e_onf4_after&lt;br /&gt;              e_ucomm,&lt;br /&gt;&lt;br /&gt;*   Cuando un dato contiene el hotspot habilitado.&lt;br /&gt;    handle_hotspot_click&lt;br /&gt;    FOR EVENT hotspot_click&lt;br /&gt;           OF cl_gui_alv_grid&lt;br /&gt;    IMPORTING e_row_id&lt;br /&gt;              e_column_id&lt;br /&gt;              es_row_no,&lt;br /&gt;&lt;br /&gt;*   Para crear la cabecera del ALV OO.&lt;br /&gt;    handle_top_of_page&lt;br /&gt;    FOR EVENT top_of_page&lt;br /&gt;           OF cl_gui_alv_grid&lt;br /&gt;    IMPORTING e_dyndoc_id&lt;br /&gt;              table_index,&lt;br /&gt;&lt;br /&gt;*   Para crear el pie de página del ALV OO.&lt;br /&gt;    handle_end_of_list&lt;br /&gt;    FOR EVENT end_of_list&lt;br /&gt;           OF cl_gui_alv_grid&lt;br /&gt;    IMPORTING e_dyndoc_id,&lt;br /&gt;&lt;br /&gt;*   Para poner texto en los subtotales.&lt;br /&gt;    handle_subtotal_text&lt;br /&gt;    FOR EVENT subtotal_text&lt;br /&gt;           OF cl_gui_alv_grid&lt;br /&gt;    IMPORTING es_subtottxt_info&lt;br /&gt;              ep_subtot_line&lt;br /&gt;              e_event_data,&lt;br /&gt;&lt;br /&gt;*   Para crear una ayuda sobre un campo del ALV OO.&lt;br /&gt;    handle_onf4&lt;br /&gt;    FOR EVENT onf4&lt;br /&gt;           OF cl_gui_alv_grid&lt;br /&gt;    IMPORTING e_fieldname&lt;br /&gt;              e_fieldvalue&lt;br /&gt;              es_row_no&lt;br /&gt;              er_event_data&lt;br /&gt;              et_bad_cells&lt;br /&gt;              e_display,&lt;br /&gt;&lt;br /&gt;*   Para agregar un botón a la barra del ALV OO.&lt;br /&gt;    handle_toolbar&lt;br /&gt;    FOR EVENT toolbar&lt;br /&gt;           OF cl_gui_alv_grid&lt;br /&gt;    IMPORTING e_object&lt;br /&gt;              e_interactive,&lt;br /&gt;&lt;br /&gt;*   Para programar el botón nuevo agregado al ALV OO.&lt;br /&gt;    handle_user_command&lt;br /&gt;    FOR EVENT user_command&lt;br /&gt;          of cl_gui_alv_grid&lt;br /&gt;    IMPORTING e_ucomm.&lt;br /&gt;&lt;br /&gt;ENDCLASS. &quot;cl_application DEFINITION&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*       O B J E T O S                                                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;DATA: o_container   TYPE REF TO cl_gui_custom_container,&lt;br /&gt;      o_html_cntrl  TYPE REF TO cl_gui_html_viewer,&lt;br /&gt;      o_html_cntrl2 TYPE REF TO cl_gui_html_viewer,&lt;br /&gt;      o_dyndoc_id   TYPE REF TO cl_dd_document,&lt;br /&gt;      o_dyndoc_id2  TYPE REF TO cl_dd_document,&lt;br /&gt;      o_parent_top  TYPE REF TO cl_gui_container,&lt;br /&gt;      o_parent_end  TYPE REF TO cl_gui_container,&lt;br /&gt;      o_parent_grid TYPE REF TO cl_gui_container,&lt;br /&gt;      o_alv_barmanager TYPE REF TO cl_alv_grid_toolbar_manager,&lt;br /&gt;      o_splitter    TYPE REF TO cl_gui_splitter_container,&lt;br /&gt;      o_grid        TYPE REF TO cl_gui_alv_grid.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*       S E L E C T - O P T I O N S  A N D  P A R A M E T R O S        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;SELECTION-SCREEN: BEGIN OF SCREEN 0001 AS SUBSCREEN.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr OBLIGATORY.&lt;br /&gt;PARAMETERS: p_layout TYPE disvariant-variant.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: END OF SCREEN 0001.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Rutinas&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa             : ZPRIMERPROGRAMA_B                             *&lt;br /&gt;* Descripción          : Declarción de las rutinas necesarias para el  *&lt;br /&gt;*                        Ejemplo de creación de un ALV OO con el manejo*&lt;br /&gt;*                        de los principales eventos.                   *&lt;br /&gt;* Desarrollador        : José Ángel Moreno Nieblas    MZAVALA          *&lt;br /&gt;* Fecha Creación       : 05.06.2010                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_DATOS                                          *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Para obtener los datos necesarios para generar el reporte.     *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_datos .&lt;br /&gt;&lt;br /&gt;  SELECT lifnr&lt;br /&gt;         name1&lt;br /&gt;         name2&lt;br /&gt;         j_sc_capital&lt;br /&gt;    FROM lfa1&lt;br /&gt;    INTO TABLE i_lfa1&lt;br /&gt;    WHERE lifnr IN s_lifnr.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    SORT i_lfa1&lt;br /&gt;      BY lifnr.&lt;br /&gt;&lt;br /&gt;    SELECT lifnr&lt;br /&gt;           bukrs&lt;br /&gt;           webtr&lt;br /&gt;      FROM lfb1&lt;br /&gt;      INTO TABLE i_lfb1&lt;br /&gt;      FOR ALL ENTRIES IN i_lfa1&lt;br /&gt;      WHERE lifnr EQ i_lfa1-lifnr.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      SORT i_lfb1&lt;br /&gt;        BY lifnr.&lt;br /&gt;&lt;br /&gt;      SELECT bukrs&lt;br /&gt;             butxt&lt;br /&gt;        FROM t001&lt;br /&gt;        INTO TABLE i_t001&lt;br /&gt;        FOR ALL ENTRIES IN i_lfb1&lt;br /&gt;        WHERE bukrs EQ i_lfb1-bukrs.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        SORT i_t001&lt;br /&gt;          BY bukrs.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    SELECT lifnr&lt;br /&gt;           ekorg&lt;br /&gt;      FROM lfm1&lt;br /&gt;      INTO TABLE i_lfm1&lt;br /&gt;      FOR ALL ENTRIES IN i_lfa1&lt;br /&gt;      WHERE lifnr EQ i_lfa1-lifnr.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      SORT i_lfm1&lt;br /&gt;        BY lifnr.&lt;br /&gt;&lt;br /&gt;      SELECT ekorg&lt;br /&gt;             ekotx&lt;br /&gt;        FROM t024e&lt;br /&gt;        INTO TABLE i_t024e&lt;br /&gt;        FOR ALL ENTRIES IN i_lfm1&lt;br /&gt;        WHERE ekorg EQ i_lfm1-ekorg.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        SORT i_t024e&lt;br /&gt;          BY ekorg.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_DATOS&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_ARMAR_SALIDA                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para crear la tabla de salida del reporte.              *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_armar_salida .&lt;br /&gt;&lt;br /&gt;* Declaraciones de varianles locales&lt;br /&gt;  DATA: lv_name(71) TYPE c,&lt;br /&gt;        lv_indice   TYPE sy-tabix,&lt;br /&gt;        lv_lines    TYPE i.&lt;br /&gt;&lt;br /&gt;  REFRESH i_salida.&lt;br /&gt;&lt;br /&gt;  CLEAR w_salida.&lt;br /&gt;&lt;br /&gt;* Se recorre la tabla general para llenar la tabla principal de&lt;br /&gt;* salida.&lt;br /&gt;  LOOP AT i_lfa1&lt;br /&gt;     INTO w_lfa1.&lt;br /&gt;&lt;br /&gt;*   Unir dos campos en una variable.&lt;br /&gt;    CONCATENATE w_lfa1-name1&lt;br /&gt;                w_lfa1-name2&lt;br /&gt;           INTO lv_name&lt;br /&gt;       SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;*   Mueve los campos correspondientes a los campos de salida.&lt;br /&gt;    MOVE: w_lfa1-lifnr TO w_salida-lifnr,&lt;br /&gt;          w_lfa1-j_sc_capital TO w_salida-capital,&lt;br /&gt;          lv_name      TO w_salida-name1.&lt;br /&gt;&lt;br /&gt;    DESCRIBE TABLE i_salida LINES lv_lines.&lt;br /&gt;&lt;br /&gt;    lv_indice = lv_lines.&lt;br /&gt;&lt;br /&gt;*   Obtener el indice de primer registro que ooincida con la llave.&lt;br /&gt;    READ TABLE i_lfb1&lt;br /&gt;          INTO w_lfb1&lt;br /&gt;      WITH KEY lifnr = w_salida-lifnr&lt;br /&gt;      BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      LOOP AT i_lfb1&lt;br /&gt;        INTO w_lfb1&lt;br /&gt;        FROM sy-tabix.&lt;br /&gt;&lt;br /&gt;        ADD 1 TO lv_indice.&lt;br /&gt;&lt;br /&gt;        IF w_lfb1-lifnr EQ w_salida-lifnr.&lt;br /&gt;&lt;br /&gt;          MOVE: w_lfb1-bukrs TO w_salida-bukrs,&lt;br /&gt;                w_lfb1-webtr TO w_salida-webtr.&lt;br /&gt;&lt;br /&gt;          READ TABLE i_t001&lt;br /&gt;                INTO w_t001&lt;br /&gt;            WITH KEY bukrs = w_lfb1-bukrs&lt;br /&gt;            BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;            MOVE: w_t001-butxt TO w_salida-butxt.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;          MODIFY i_salida FROM w_salida INDEX lv_indice.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;            CLEAR: w_salida-ekorg,&lt;br /&gt;                   w_salida-ekotx.&lt;br /&gt;&lt;br /&gt;            APPEND w_salida TO i_salida.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ELSE.&lt;br /&gt;&lt;br /&gt;          EXIT.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDLOOP.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    lv_indice = lv_lines.&lt;br /&gt;&lt;br /&gt;*   Obtener el indice de primer registro que ooincida con la llave.&lt;br /&gt;    READ TABLE i_lfm1&lt;br /&gt;          INTO w_lfm1&lt;br /&gt;      WITH KEY lifnr = w_salida-lifnr&lt;br /&gt;      BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      LOOP AT i_lfm1&lt;br /&gt;        INTO w_lfm1&lt;br /&gt;        FROM sy-tabix.&lt;br /&gt;&lt;br /&gt;        ADD 1 TO lv_indice.&lt;br /&gt;&lt;br /&gt;        IF w_lfm1-lifnr EQ w_salida-lifnr.&lt;br /&gt;&lt;br /&gt;          MOVE: w_lfm1-ekorg TO w_salida-ekorg.&lt;br /&gt;&lt;br /&gt;          READ TABLE i_t024e&lt;br /&gt;                INTO w_t024e&lt;br /&gt;            WITH KEY ekorg = w_lfm1-ekorg&lt;br /&gt;            BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;            MOVE: w_t024e-ekotx TO w_salida-ekotx.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;          MODIFY i_salida FROM w_salida INDEX lv_indice.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;            CLEAR: w_salida-bukrs,&lt;br /&gt;                   w_salida-butxt.&lt;br /&gt;&lt;br /&gt;            APPEND w_salida TO i_salida.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ELSE.&lt;br /&gt;&lt;br /&gt;          EXIT.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDLOOP.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_ARMAR_SALIDA&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_CREAR_ALV_OO                                           *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Para inicializar los componentes requeridos para mostrar el    *&lt;br /&gt;*       ALV OO.                                                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_crear_alv_oo .&lt;br /&gt;&lt;br /&gt;* Declaración de estructuras locales.&lt;br /&gt;  DATA: lw_f4   TYPE lvc_s_f4.&lt;br /&gt;&lt;br /&gt;* Declaración de tablas internas locales.&lt;br /&gt;  DATA: li_f4   TYPE lvc_t_f4.&lt;br /&gt;&lt;br /&gt;* Se crea el contenedor.&lt;br /&gt;  CREATE OBJECT o_container&lt;br /&gt;    EXPORTING&lt;br /&gt;      container_name = &#39;CONTAINER100&#39;.&lt;br /&gt;&lt;br /&gt;  IF NOT o_container IS INITIAL.&lt;br /&gt;&lt;br /&gt;*   Se crear el objeto que contendra los datos para la cabecera.&lt;br /&gt;    CREATE OBJECT o_dyndoc_id&lt;br /&gt;      EXPORTING&lt;br /&gt;        style = &#39;ALV_GRID&#39;.&lt;br /&gt;&lt;br /&gt;*   Se crear el objeto que contendra los datos para el pie de página.&lt;br /&gt;    CREATE OBJECT o_dyndoc_id2&lt;br /&gt;      EXPORTING&lt;br /&gt;        style = &#39;ALV_GRID&#39;.&lt;br /&gt;&lt;br /&gt;*   Se divide en contenedor en 3 partes.&lt;br /&gt;    CREATE OBJECT o_splitter&lt;br /&gt;      EXPORTING&lt;br /&gt;        parent  = o_container&lt;br /&gt;        rows    = 3&lt;br /&gt;        columns = 1.&lt;br /&gt;&lt;br /&gt;*   Se asigna para primera parte a otro contenedor [Cabecera]&lt;br /&gt;    CALL METHOD o_splitter-&gt;get_container&lt;br /&gt;      EXPORTING&lt;br /&gt;        row       = 1&lt;br /&gt;        column    = 1&lt;br /&gt;      RECEIVING&lt;br /&gt;        container = o_parent_top.&lt;br /&gt;&lt;br /&gt;*   Se asigna para primera parte a otro contenedor [Grid]&lt;br /&gt;    CALL METHOD o_splitter-&gt;get_container&lt;br /&gt;      EXPORTING&lt;br /&gt;        row       = 2&lt;br /&gt;        column    = 1&lt;br /&gt;      RECEIVING&lt;br /&gt;        container = o_parent_grid.&lt;br /&gt;&lt;br /&gt;*   Se asigna para primera parte a otro contenedor [Pie de Página]&lt;br /&gt;    CALL METHOD o_splitter-&gt;get_container&lt;br /&gt;      EXPORTING&lt;br /&gt;        row       = 3&lt;br /&gt;        column    = 1&lt;br /&gt;      RECEIVING&lt;br /&gt;        container = o_parent_end.&lt;br /&gt;&lt;br /&gt;*   Se asigna una altura por default a la primera división.&lt;br /&gt;    CALL METHOD o_splitter-&gt;set_row_height&lt;br /&gt;      EXPORTING&lt;br /&gt;        id     = 1&lt;br /&gt;        height = 22.&lt;br /&gt;&lt;br /&gt;*   Se asigna una altura por default a la tercera división.&lt;br /&gt;    CALL METHOD o_splitter-&gt;set_row_height&lt;br /&gt;      EXPORTING&lt;br /&gt;        id     = 3&lt;br /&gt;        height = 15.&lt;br /&gt;&lt;br /&gt;*   Se crea el objeto para almacenar el ALV.&lt;br /&gt;    CREATE OBJECT o_grid&lt;br /&gt;      EXPORTING&lt;br /&gt;        i_parent = o_parent_grid.&lt;br /&gt;&lt;br /&gt;    IF NOT o_grid IS INITIAL.&lt;br /&gt;&lt;br /&gt;*     Se crea el objeto que contiene los metodos mejorados.&lt;br /&gt;      CREATE OBJECT cl_application.&lt;br /&gt;&lt;br /&gt;*     Se activan los eventos para el GRID.&lt;br /&gt;      SET HANDLER cl_application-&gt;handle_data_changed  FOR o_grid.&lt;br /&gt;      SET HANDLER cl_application-&gt;handle_hotspot_click FOR o_grid.&lt;br /&gt;      SET HANDLER cl_application-&gt;handle_top_of_page   FOR o_grid.&lt;br /&gt;      SET HANDLER cl_application-&gt;handle_end_of_list   FOR o_grid.&lt;br /&gt;      SET HANDLER cl_application-&gt;handle_subtotal_text FOR o_grid.&lt;br /&gt;      SET HANDLER cl_application-&gt;handle_onf4          FOR o_grid.&lt;br /&gt;      SET HANDLER cl_application-&gt;handle_toolbar       FOR o_grid.&lt;br /&gt;      SET HANDLER cl_application-&gt;handle_user_command  FOR o_grid.&lt;br /&gt;&lt;br /&gt;*     Se registra una ayuda para el campo AYUDA del ALV OO.&lt;br /&gt;      lw_f4-fieldname = &#39;AYUDA&#39;.&lt;br /&gt;      lw_f4-register  = &#39;X&#39;.&lt;br /&gt;      APPEND lw_f4 TO li_f4.&lt;br /&gt;&lt;br /&gt;      CALL METHOD o_grid-&gt;register_f4_for_fields&lt;br /&gt;        EXPORTING&lt;br /&gt;          it_f4 = li_f4.&lt;br /&gt;&lt;br /&gt;*     Registrar Evento Enter para poder activar el evento data_changed.&lt;br /&gt;      CALL METHOD o_grid-&gt;register_edit_event&lt;br /&gt;        EXPORTING&lt;br /&gt;          i_event_id = cl_gui_alv_grid=&gt;mc_evt_enter.&lt;br /&gt;&lt;br /&gt;*     Registramos el evento cuando se modificar el dato por si acaso no&lt;br /&gt;*     pulsan el ENTER&lt;br /&gt;      CALL METHOD o_grid-&gt;register_edit_event&lt;br /&gt;        EXPORTING&lt;br /&gt;          i_event_id = cl_gui_alv_grid=&gt;mc_evt_modified.&lt;br /&gt;&lt;br /&gt;*     Para inicializar el catologo de campos.&lt;br /&gt;      CALL FUNCTION &#39;LVC_FIELDCATALOG_MERGE&#39;&lt;br /&gt;        EXPORTING&lt;br /&gt;          i_structure_name       = &#39;ZES_ALV_OO&#39;&lt;br /&gt;          i_client_never_display = &#39;X&#39;&lt;br /&gt;        CHANGING&lt;br /&gt;          ct_fieldcat            = i_fdcat&lt;br /&gt;        EXCEPTIONS&lt;br /&gt;          inconsistent_interface = 1&lt;br /&gt;          program_error          = 2&lt;br /&gt;          OTHERS                 = 3.&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        LOOP AT i_fdcat&lt;br /&gt;           INTO w_fdcat.&lt;br /&gt;&lt;br /&gt;          w_fdcat-colddictxt = &#39;L&#39;. &quot;Referencia texto&lt;br /&gt;          w_fdcat-col_opt    = &#39;X&#39;. &quot;Optimzar columna&lt;br /&gt;&lt;br /&gt;          CASE w_fdcat-fieldname.&lt;br /&gt;            WHEN &#39;LIFNR&#39;.&lt;br /&gt;              w_fdcat-hotspot = &#39;X&#39;. &quot;HotSpot&lt;br /&gt;            WHEN &#39;CAPITAL&#39;.&lt;br /&gt;              w_fdcat-edit   = &#39;X&#39;. &quot;Editable&lt;br /&gt;              w_fdcat-do_sum = &#39;X&#39;. &quot;Subtotal&lt;br /&gt;            WHEN &#39;WEBTR&#39;.&lt;br /&gt;              w_fdcat-edit   = &#39;X&#39;. &quot;Editable&lt;br /&gt;              w_fdcat-do_sum = &#39;X&#39;. &quot;Subtotal&lt;br /&gt;            WHEN &#39;TOTAL&#39;.&lt;br /&gt;              w_fdcat-do_sum = &#39;X&#39;. &quot;Subtotal&lt;br /&gt;            WHEN &#39;AYUDA&#39;.&lt;br /&gt;              w_fdcat-f4availabl = &#39;X&#39;. &quot;Activar Ayuda&lt;br /&gt;              w_fdcat-edit       = &#39;X&#39;. &quot;Editable&lt;br /&gt;          ENDCASE.&lt;br /&gt;&lt;br /&gt;          MODIFY i_fdcat FROM w_fdcat.&lt;br /&gt;&lt;br /&gt;        ENDLOOP.&lt;br /&gt;&lt;br /&gt;*       Llamado a una función para completar el catálogo de campos.&lt;br /&gt;        CALL FUNCTION &#39;LVC_FIELDCAT_COMPLETE&#39;&lt;br /&gt;          EXPORTING&lt;br /&gt;            i_refresh_buffer = &#39; &#39;&lt;br /&gt;            i_buffer_active  = &#39; &#39;&lt;br /&gt;          CHANGING&lt;br /&gt;            ct_fieldcat      = i_fdcat.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;*     Opimizar el ancho de la columna.&lt;br /&gt;      w_layout-cwidth_opt = &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;*     Creando un ordenamiento default con subtotales.&lt;br /&gt;      w_sort-spos      = 1.&lt;br /&gt;      w_sort-fieldname = &#39;LIFNR&#39;.&lt;br /&gt;      w_sort-subtot    = &#39;X&#39;.&lt;br /&gt;      w_sort-up        = &#39;X&#39;.&lt;br /&gt;      w_sort-comp      = &#39;X&#39;.&lt;br /&gt;      w_sort-level     = 1.&lt;br /&gt;&lt;br /&gt;      APPEND w_sort TO i_sort.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_CREAR_ALV_OO&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_MOSTRAR_ALV_OO                                         *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina que muestra el ALV OO.                                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_mostrar_alv_oo .&lt;br /&gt;&lt;br /&gt;* Llamado al métodos que inicializa el ALV OO.&lt;br /&gt;  CALL METHOD o_grid-&gt;set_table_for_first_display&lt;br /&gt;    EXPORTING&lt;br /&gt;      is_variant                    = w_variant&lt;br /&gt;      i_save                        = &#39;X&#39;&lt;br /&gt;      i_default                     = &#39;X&#39;&lt;br /&gt;      is_layout                     = w_layout&lt;br /&gt;    CHANGING&lt;br /&gt;      it_outtab                     = i_salida&lt;br /&gt;      it_fieldcatalog               = i_fdcat&lt;br /&gt;      it_sort                       = i_sort&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      invalid_parameter_combination = 1&lt;br /&gt;      program_error                 = 2&lt;br /&gt;      too_many_lines                = 3&lt;br /&gt;      OTHERS                        = 4.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;    MESSAGE ID sy-msgid&lt;br /&gt;          TYPE sy-msgty&lt;br /&gt;        NUMBER sy-msgno&lt;br /&gt;          WITH sy-msgv1&lt;br /&gt;               sy-msgv2&lt;br /&gt;               sy-msgv3&lt;br /&gt;               sy-msgv4.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Metodo que inicializa la cabecera.&lt;br /&gt;  CALL METHOD o_dyndoc_id-&gt;initialize_document.&lt;br /&gt;&lt;br /&gt;* Metodo que inicializa el pie página.&lt;br /&gt;  CALL METHOD o_dyndoc_id2-&gt;initialize_document.&lt;br /&gt;&lt;br /&gt;* Para registrar el evento en el GRID.&lt;br /&gt;  CALL METHOD o_grid-&gt;list_processing_events&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_event_name = &#39;TOP_OF_PAGE&#39;&lt;br /&gt;      i_dyndoc_id  = o_dyndoc_id.&lt;br /&gt;&lt;br /&gt;  IF o_html_cntrl IS INITIAL.&lt;br /&gt;&lt;br /&gt;*   Creando el objeto en donde se va mostrar la info.&lt;br /&gt;    CREATE OBJECT o_html_cntrl&lt;br /&gt;      EXPORTING&lt;br /&gt;        parent = o_parent_top.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Para registrar el evento en el GRID.&lt;br /&gt;  CALL METHOD o_grid-&gt;list_processing_events&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_event_name = &#39;END_OF_LIST&#39;&lt;br /&gt;      i_dyndoc_id  = o_dyndoc_id2.&lt;br /&gt;&lt;br /&gt;  IF o_html_cntrl2 IS INITIAL.&lt;br /&gt;&lt;br /&gt;*   Creando el objeto en donde se va mostrar la info.&lt;br /&gt;    CREATE OBJECT o_html_cntrl2&lt;br /&gt;      EXPORTING&lt;br /&gt;        parent = o_parent_end.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Método que obtiene el documentos.&lt;br /&gt;  CALL METHOD o_dyndoc_id-&gt;merge_document.&lt;br /&gt;&lt;br /&gt;* Referenciando el documentos al control.&lt;br /&gt;  o_dyndoc_id-&gt;html_control = o_html_cntrl.&lt;br /&gt;&lt;br /&gt;* Mostrar el documentos.&lt;br /&gt;  CALL METHOD o_dyndoc_id-&gt;display_document&lt;br /&gt;    EXPORTING&lt;br /&gt;      reuse_control      = &#39;X&#39;&lt;br /&gt;      parent             = o_parent_top&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      html_display_error = 1.&lt;br /&gt;&lt;br /&gt;* Método que obtiene el documentos.&lt;br /&gt;  CALL METHOD o_dyndoc_id2-&gt;merge_document.&lt;br /&gt;&lt;br /&gt;* Referenciando el documentos al control.&lt;br /&gt;  o_dyndoc_id2-&gt;html_control = o_html_cntrl2.&lt;br /&gt;&lt;br /&gt;* Mostrar el documentos.&lt;br /&gt;  CALL METHOD o_dyndoc_id2-&gt;display_document&lt;br /&gt;    EXPORTING&lt;br /&gt;      reuse_control      = &#39;X&#39;&lt;br /&gt;      parent             = o_parent_end&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      html_display_error = 1.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_MOSTRAR_ALV_OO&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*       CLASS lcl_co_application IMPLEMENTATION                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Clase que contiene los métodos a implementar.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;CLASS lcl_co_application IMPLEMENTATION.&lt;br /&gt;&lt;br /&gt;  METHOD handle_data_changed.&lt;br /&gt;&lt;br /&gt;*   Para el evento DATA_CHANGED&lt;br /&gt;    PERFORM f_handle_data_changed&lt;br /&gt;      USING er_data_changed&lt;br /&gt;            e_onf4&lt;br /&gt;            e_onf4_before&lt;br /&gt;            e_onf4_after&lt;br /&gt;            e_ucomm.&lt;br /&gt;&lt;br /&gt;  ENDMETHOD. &quot;HANDLE_DATA_CHANGED_CLI&lt;br /&gt;&lt;br /&gt;  METHOD handle_hotspot_click.&lt;br /&gt;&lt;br /&gt;*   Para el evento HOTSPOT_CLICK&lt;br /&gt;    PERFORM f_handle_hotspot_click&lt;br /&gt;      USING e_row_id&lt;br /&gt;            e_column_id&lt;br /&gt;            es_row_no.&lt;br /&gt;&lt;br /&gt;  ENDMETHOD. &quot;HANDLE_HOTSPOT_CLICK&lt;br /&gt;&lt;br /&gt;  METHOD handle_top_of_page.&lt;br /&gt;&lt;br /&gt;*   Para el evento TOP_OF_PAGE&lt;br /&gt;    PERFORM f_handle_top_of_page&lt;br /&gt;      USING e_dyndoc_id&lt;br /&gt;            table_index.&lt;br /&gt;&lt;br /&gt;  ENDMETHOD.                    &quot;HANDLE_TOP_OF_PAGE&lt;br /&gt;&lt;br /&gt;  METHOD handle_end_of_list.&lt;br /&gt;&lt;br /&gt;*   Para el evento END_OF_LIST&lt;br /&gt;    PERFORM f_handle_end_of_list&lt;br /&gt;      USING e_dyndoc_id.&lt;br /&gt;&lt;br /&gt;  ENDMETHOD.                    &quot;HANDLE_END_OF_LIST&lt;br /&gt;&lt;br /&gt;  METHOD handle_subtotal_text.&lt;br /&gt;&lt;br /&gt;*   Para el evento SUBTOTAL_TEXT&lt;br /&gt;    PERFORM f_handle_subtotal_text&lt;br /&gt;      USING es_subtottxt_info&lt;br /&gt;            ep_subtot_line&lt;br /&gt;            e_event_data.&lt;br /&gt;&lt;br /&gt;  ENDMETHOD.                    &quot;HANDLE_SUBTOTAL_TEXT&lt;br /&gt;&lt;br /&gt;  METHOD handle_onf4.&lt;br /&gt;&lt;br /&gt;*   Para el evento ONF4&lt;br /&gt;    PERFORM f_handle_onf4&lt;br /&gt;      USING e_fieldname&lt;br /&gt;            e_fieldvalue&lt;br /&gt;            es_row_no&lt;br /&gt;            er_event_data&lt;br /&gt;            et_bad_cells&lt;br /&gt;            e_display.&lt;br /&gt;&lt;br /&gt;    er_event_data-&gt;m_event_handled = &#39;X&#39; .&lt;br /&gt;&lt;br /&gt;  ENDMETHOD.                    &quot;HANDLE_ONF4&lt;br /&gt;&lt;br /&gt;  METHOD handle_toolbar.&lt;br /&gt;&lt;br /&gt;*   Para el evento TOOLBAR&lt;br /&gt;    PERFORM f_handle_toolbar&lt;br /&gt;      USING e_object.&lt;br /&gt;&lt;br /&gt;  ENDMETHOD.                    &quot;HANDLE_TOOLBAR&lt;br /&gt;&lt;br /&gt;  METHOD handle_user_command.&lt;br /&gt;&lt;br /&gt;*   Para el evento USER_COMMAND&lt;br /&gt;    PERFORM f_handle_user_command&lt;br /&gt;      USING e_ucomm.&lt;br /&gt;&lt;br /&gt;  ENDMETHOD.                    &quot;HANDLE_USER_COMMAND&lt;br /&gt;&lt;br /&gt;ENDCLASS. &quot;cl_application&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_HANDLE_HOTSPOT_CLICK                                   *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para procesar el evento HOTSPOT_CLICK.                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_E_ROW_ID    Contiene ID de la fila.                        *&lt;br /&gt;*      --&gt;P_E_COLUMN_ID Contiene ID de la columna.                     *&lt;br /&gt;*      --&gt;P_ES_ROW_NO   Contiene el número de fila.                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_handle_hotspot_click&lt;br /&gt;  USING p_e_row_id    TYPE lvc_s_row&lt;br /&gt;        p_e_column_id TYPE lvc_s_col&lt;br /&gt;        p_es_row_no   TYPE lvc_s_roid.&lt;br /&gt;&lt;br /&gt;  READ TABLE i_salida&lt;br /&gt;        INTO w_salida&lt;br /&gt;       INDEX p_e_row_id-index.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    MESSAGE i398(00) WITH: &#39;Vendor &#39;&lt;br /&gt;                            w_salida-lifnr&lt;br /&gt;                            &#39;was seleced&#39;&lt;br /&gt;                            space.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_HANDLE_HOTSPOT_CLICK&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_HANDLE_DATA_CHANGED                                    *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para procesar el evento DATA_CHANGED.                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_ER_DATA_CHANGED Contiene el objeto cambiado.               *&lt;br /&gt;*      --&gt;P_E_ONF4          Si se ejecutó el evento ONF4.              *&lt;br /&gt;*      --&gt;P_E_ONF4_BEFORE   Si se ejecutó el evento ONF4_BEFORE.       *&lt;br /&gt;*      --&gt;P_E_ONF4_AFTER    Si se ejecutó el evento ONF4_AFTER.        *&lt;br /&gt;*      --&gt;P_E_UCOMM         Contiene la acción de usuario.             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_handle_data_changed&lt;br /&gt;  USING p_er_data_changed TYPE REF TO cl_alv_changed_data_protocol&lt;br /&gt;        p_e_onf4          TYPE char01&lt;br /&gt;        p_e_onf4_before   TYPE char01&lt;br /&gt;        p_e_onf4_after    TYPE char01&lt;br /&gt;        p_e_ucomm         TYPE sy-ucomm.&lt;br /&gt;&lt;br /&gt;* Declaratios of local structures.&lt;br /&gt;  DATA: lw_mod_cell TYPE lvc_s_modi,&lt;br /&gt;        lw_stable   TYPE lvc_s_stbl.&lt;br /&gt;&lt;br /&gt;* Declaración de variables locales.&lt;br /&gt;  DATA: lv_formato_dec LIKE usr01-dcpfm.&lt;br /&gt;&lt;br /&gt;* Para obtener la configuración de las cantidades del usuario.&lt;br /&gt;  SELECT SINGLE dcpfm&lt;br /&gt;           INTO lv_formato_dec&lt;br /&gt;           FROM usr01&lt;br /&gt;          WHERE bname = sy-uname.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;    CLEAR lv_formato_dec.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Loop the row for modify the ALV and the output table.&lt;br /&gt;  LOOP AT p_er_data_changed-&gt;mt_mod_cells&lt;br /&gt;     INTO lw_mod_cell.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_salida&lt;br /&gt;          INTO w_salida&lt;br /&gt;         INDEX lw_mod_cell-row_id.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*     Solo los campos que se van a actualizar.&lt;br /&gt;      CASE  lw_mod_cell-fieldname.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;CAPITAL&#39;.&lt;br /&gt;&lt;br /&gt;*         Efectuando conversión [. ,]&lt;br /&gt;          CASE lv_formato_dec.&lt;br /&gt;            WHEN &#39;X&#39;. &quot;Coma Decimal&lt;br /&gt;              REPLACE &#39;.&#39; IN lw_mod_cell-value WITH &#39;,&#39;.&lt;br /&gt;            WHEN &#39;Y&#39;.   &quot;punto decimal&lt;br /&gt;              REPLACE &#39;,&#39; IN lw_mod_cell-value WITH &#39;.&#39;.&lt;br /&gt;          ENDCASE.&lt;br /&gt;&lt;br /&gt;          w_salida-capital = lw_mod_cell-value.&lt;br /&gt;&lt;br /&gt;        WHEN &#39;WEBTR&#39;.&lt;br /&gt;&lt;br /&gt;*         Efectuando conversión [. ,]&lt;br /&gt;          CASE lv_formato_dec.&lt;br /&gt;            WHEN &#39;X&#39;. &quot;Coma Decimal&lt;br /&gt;              REPLACE &#39;.&#39; IN lw_mod_cell-value WITH &#39;,&#39;.&lt;br /&gt;            WHEN &#39;Y&#39;.   &quot;punto decimal&lt;br /&gt;              REPLACE &#39;,&#39; IN lw_mod_cell-value WITH &#39;.&#39;.&lt;br /&gt;          ENDCASE.&lt;br /&gt;&lt;br /&gt;          w_salida-webtr = lw_mod_cell-value.&lt;br /&gt;&lt;br /&gt;      ENDCASE.&lt;br /&gt;&lt;br /&gt;*     Realizando calculos...&lt;br /&gt;      w_salida-total = w_salida-capital + w_salida-webtr.&lt;br /&gt;&lt;br /&gt;*     Modificando la tabla interna con los nuevos valores.&lt;br /&gt;      MODIFY i_salida&lt;br /&gt;        FROM w_salida&lt;br /&gt;       INDEX lw_mod_cell-row_id.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        CLEAR w_salida.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;*   Para actualizar la celda.&lt;br /&gt;    CALL METHOD p_er_data_changed-&gt;modify_cell&lt;br /&gt;      EXPORTING&lt;br /&gt;        i_row_id    = lw_mod_cell-row_id&lt;br /&gt;        i_fieldname = lw_mod_cell-fieldname&lt;br /&gt;        i_value     = lw_mod_cell-value.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  lw_stable-row = &#39;X&#39;.&lt;br /&gt;  lw_stable-col = &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;* Método que refresca el GRID con los nuevos valores.&lt;br /&gt;  CALL METHOD o_grid-&gt;refresh_table_display&lt;br /&gt;    EXPORTING&lt;br /&gt;      is_stable = lw_stable&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      finished  = 1&lt;br /&gt;      OTHERS    = 2.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;    MESSAGE ID sy-msgid&lt;br /&gt;          TYPE sy-msgty&lt;br /&gt;        NUMBER sy-msgno&lt;br /&gt;          WITH sy-msgv1&lt;br /&gt;               sy-msgv2&lt;br /&gt;               sy-msgv3&lt;br /&gt;               sy-msgv4.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_HANDLE_DATA_CHANGED&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_HANDLE_TOP_OF_PAGE                                     *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para procesar el evento TOP_OF_PAGE.                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_E_DYNDOC_ID  Contiene la información para la cabecera.     *&lt;br /&gt;*      --&gt;P_TABLE_INDEX  Contiene el indica inicial.                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_handle_top_of_page&lt;br /&gt;  USING p_e_dyndoc_id TYPE REF TO cl_dd_document&lt;br /&gt;        p_table_index TYPE syindex.&lt;br /&gt;&lt;br /&gt;* Declaraciones de variables locales.&lt;br /&gt;  DATA: lv_text1     TYPE sdydo_text_element,&lt;br /&gt;        lv_text2     TYPE sdydo_text_element,&lt;br /&gt;        lv_text3     TYPE sdydo_text_element,&lt;br /&gt;        lv_text4     TYPE sdydo_text_element,&lt;br /&gt;        lv_text5     TYPE sdydo_text_element,&lt;br /&gt;        lv_fecha(10) TYPE c,&lt;br /&gt;        lv_hora(8)   TYPE c.&lt;br /&gt;&lt;br /&gt;* Declaraciones de objetos locales.&lt;br /&gt;  DATA: lo_ta   TYPE REF TO cl_dd_table_element,&lt;br /&gt;        lo_col1 TYPE REF TO cl_dd_area,&lt;br /&gt;        lo_col2 TYPE REF TO cl_dd_area,&lt;br /&gt;        lo_col3 TYPE REF TO cl_dd_area.&lt;br /&gt;&lt;br /&gt;  WRITE sy-datlo TO lv_fecha DD/MM/YYYY.&lt;br /&gt;  WRITE sy-timlo TO lv_hora.&lt;br /&gt;&lt;br /&gt;  IF NOT s_lifnr-high IS INITIAL.&lt;br /&gt;&lt;br /&gt;    CONCATENATE: &#39;Vendor&#39;&lt;br /&gt;                 s_lifnr-low&lt;br /&gt;                 &#39;to&#39;&lt;br /&gt;                 s_lifnr-high&lt;br /&gt;            INTO lv_text1&lt;br /&gt;            SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CONCATENATE: &#39;Vendor&#39;&lt;br /&gt;                 s_lifnr-low&lt;br /&gt;            INTO lv_text1&lt;br /&gt;            SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  lv_text2 = &#39;The report is displayed sucessfully&#39;.&lt;br /&gt;  lv_text3 = &#39;Is Example the header in ALV OO&#39;.&lt;br /&gt;&lt;br /&gt;  CONCATENATE: &#39;Fecha&#39; &quot;Fecha&lt;br /&gt;               lv_fecha&lt;br /&gt;               INTO lv_text4&lt;br /&gt;               SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;  CONCATENATE: &#39;Hora&#39; &quot;Hora&lt;br /&gt;               lv_hora&lt;br /&gt;               INTO lv_text5&lt;br /&gt;               SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;* Crea Tabla para Cabecera de 3 Columnas&lt;br /&gt;  CALL METHOD p_e_dyndoc_id-&gt;add_table&lt;br /&gt;    EXPORTING&lt;br /&gt;      no_of_columns = 3&lt;br /&gt;      width         = &#39;100%&#39;&lt;br /&gt;      border        = &#39;0&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      table         = lo_ta.&lt;br /&gt;&lt;br /&gt;* Asignado el espacio a ocupar para la columna uno&lt;br /&gt;  CALL METHOD lo_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;50%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lo_col1.&lt;br /&gt;&lt;br /&gt;* Asignado el espacio a ocupar para la columna dos&lt;br /&gt;  CALL METHOD lo_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;35%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lo_col2.&lt;br /&gt;&lt;br /&gt;* Asignado el espacio a ocupar para la columna tres&lt;br /&gt;  CALL METHOD lo_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;15%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lo_col3.&lt;br /&gt;&lt;br /&gt;* Quitando las filas que se han de crear para esta columna.&lt;br /&gt;  CALL METHOD lo_ta-&gt;span_rows&lt;br /&gt;    EXPORTING&lt;br /&gt;      col_with_span = lo_col3&lt;br /&gt;      no_of_rows    = 3&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      span_failed   = 1&lt;br /&gt;      OTHERS        = 2.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;    MESSAGE ID sy-msgid&lt;br /&gt;          TYPE sy-msgty&lt;br /&gt;        NUMBER sy-msgno&lt;br /&gt;          WITH sy-msgv1&lt;br /&gt;               sy-msgv2&lt;br /&gt;               sy-msgv3&lt;br /&gt;               sy-msgv4.&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;*   Agregando un logo creado en Trans. OEAR.&lt;br /&gt;    CALL METHOD lo_col3-&gt;add_picture&lt;br /&gt;      EXPORTING&lt;br /&gt;        picture_id = &#39;ZLOGO&#39;.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 1 Fila 1&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 1 Fila 1&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text1&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;* Creando una fila...&lt;br /&gt;  CALL METHOD lo_ta-&gt;new_row.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 1 Fila 2&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 1 Fila 2&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text2&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 2 Fila 2&lt;br /&gt;  CALL METHOD lo_col2-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 2 Fila 2&lt;br /&gt;  CALL METHOD lo_col2-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text4 &quot;Fecha&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;* Creando una fila...&lt;br /&gt;  CALL METHOD lo_ta-&gt;new_row.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 1 Fila 3&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 1 Fila 3&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text3&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 2 Fila 3&lt;br /&gt;  CALL METHOD lo_col2-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 2 Fila 3&lt;br /&gt;  CALL METHOD lo_col2-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text5 &quot;Hora&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_HANDLE_TOP_OF_PAGE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_HANDLE_END_OF_LIST                                     *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para procesar el evento END_OF_LIST.                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_E_DYNDOC_ID  Contiene la información para la cabecera.     *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_handle_end_of_list&lt;br /&gt;  USING p_e_dyndoc_id TYPE REF TO cl_dd_document.&lt;br /&gt;&lt;br /&gt;* Declaraciones de variables locales.&lt;br /&gt;  DATA: lv_text1     TYPE sdydo_text_element,&lt;br /&gt;        lv_text2     TYPE sdydo_text_element,&lt;br /&gt;        lv_text3     TYPE sdydo_text_element,&lt;br /&gt;        lv_text4     TYPE sdydo_text_element,&lt;br /&gt;        lv_text5     TYPE sdydo_text_element.&lt;br /&gt;&lt;br /&gt;* Declaraciones de objetos locales.&lt;br /&gt;  DATA: lo_ta   TYPE REF TO cl_dd_table_element,&lt;br /&gt;        lo_col1 TYPE REF TO cl_dd_area,&lt;br /&gt;        lo_col2 TYPE REF TO cl_dd_area,&lt;br /&gt;        lo_col3 TYPE REF TO cl_dd_area.&lt;br /&gt;&lt;br /&gt;  IF NOT s_lifnr-high IS INITIAL.&lt;br /&gt;&lt;br /&gt;    CONCATENATE: &#39;Vendor&#39;&lt;br /&gt;                 s_lifnr-low&lt;br /&gt;                 &#39;to&#39;&lt;br /&gt;                 s_lifnr-high&lt;br /&gt;            INTO lv_text1&lt;br /&gt;            SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CONCATENATE: &#39;Vendor&#39;&lt;br /&gt;                 s_lifnr-low&lt;br /&gt;            INTO lv_text1&lt;br /&gt;            SEPARATED BY space.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  lv_text2 = &#39;The report is displayed sucessfully&#39;.&lt;br /&gt;  lv_text3 = &#39;Is Example the footer in ALV OO&#39;.&lt;br /&gt;  lv_text4 = &#39;The footer creating tables&#39;.&lt;br /&gt;  lv_text5 = &#39;Columns and Rows with texts&#39;.&lt;br /&gt;&lt;br /&gt;* Crea Tabla para Cabecera de 2 Columnas&lt;br /&gt;  CALL METHOD p_e_dyndoc_id-&gt;add_table&lt;br /&gt;    EXPORTING&lt;br /&gt;      no_of_columns = 2&lt;br /&gt;      width         = &#39;100%&#39;&lt;br /&gt;      border        = &#39;0&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      table         = lo_ta.&lt;br /&gt;&lt;br /&gt;* Asignado el espacio a ocupar para la columna uno&lt;br /&gt;  CALL METHOD lo_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;15%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lo_col1.&lt;br /&gt;&lt;br /&gt;* Asignado el espacio a ocupar para la columna dos&lt;br /&gt;  CALL METHOD lo_ta-&gt;add_column&lt;br /&gt;    EXPORTING&lt;br /&gt;      width  = &#39;15%&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      column = lo_col2.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 1 Fila 1&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 1 Fila 1&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text1&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;* Creando una fila...&lt;br /&gt;  CALL METHOD lo_ta-&gt;new_row.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 1 Fila 2&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 1 Fila 2&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text2&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 2 Fila 2&lt;br /&gt;  CALL METHOD lo_col2-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 2 Fila 2&lt;br /&gt;  CALL METHOD lo_col2-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text4&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;* Creando una fila...&lt;br /&gt;  CALL METHOD lo_ta-&gt;new_row.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 1 Fila 3&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 1 Fila 3&lt;br /&gt;  CALL METHOD lo_col1-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text3&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;* Agregando espacio a la Columna 2 Fila 3&lt;br /&gt;  CALL METHOD lo_col2-&gt;add_gap&lt;br /&gt;    EXPORTING&lt;br /&gt;      width = 10.&lt;br /&gt;&lt;br /&gt;* Agregando texto a la Columna 2 Fila 3&lt;br /&gt;  CALL METHOD lo_col2-&gt;add_text&lt;br /&gt;    EXPORTING&lt;br /&gt;      text         = lv_text5&lt;br /&gt;      sap_fontsize = &#39;MEDIUM&#39;&lt;br /&gt;      sap_emphasis = &#39;Strong&#39;.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_HANDLE_END_OF_LIST&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_HANDLE_SUBTOTAL_TEXT                                   *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para procesar el evento SUBTOTAL_TEXT.                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_ES_SUBTOTTXT_INFO Contiene el texto de total.              *&lt;br /&gt;*      --&gt;P_EP_SUBTOT_LINE    Contiene la linea del subtotal.          *&lt;br /&gt;*      --&gt;P_E_EVENT_DATA      Contiene texto subtotal del contenedor.  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_handle_subtotal_text&lt;br /&gt;  USING p_es_subtottxt_info TYPE lvc_s_stxt&lt;br /&gt;        p_ep_subtot_line    TYPE REF TO data&lt;br /&gt;        p_e_event_data      TYPE REF TO cl_alv_event_data.&lt;br /&gt;&lt;br /&gt;* Declaración de apuntadores locales.&lt;br /&gt;  FIELD-SYMBOLS: &lt;lfs_data&gt; TYPE ANY.&lt;br /&gt;&lt;br /&gt;* Campo con los totales&lt;br /&gt;  CASE p_es_subtottxt_info-criteria.&lt;br /&gt;    WHEN &#39;LIFNR&#39;.&lt;br /&gt;&lt;br /&gt;*     Asignado un texto del subtotal.&lt;br /&gt;      ASSIGN  p_e_event_data-&gt;m_data-&gt;* TO &lt;lfs_data&gt;.&lt;br /&gt;      &lt;lfs_data&gt; = &#39;Subtotal Vendor&#39;.&lt;br /&gt;&lt;br /&gt;      p_es_subtottxt_info-crit_text = &#39;Subtotal Vendor&#39;.&lt;br /&gt;&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_HANDLE_SUBTOTAL_TEXT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_OBTENER_VARIANTE                                       *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Obtiene una variante almacenada con el matchcode               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_obtener_variante .&lt;br /&gt;&lt;br /&gt;* Declaración de variables locales&lt;br /&gt;  DATA: lv_exit TYPE c VALUE &#39;&#39;. &quot;Guarda la acción del usuario&lt;br /&gt;&lt;br /&gt;* Llamado a la función [REUSE_ALV_VARIANT_F4] para buscar una variante&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_VARIANT_F4&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      is_variant    = w_xvariant&lt;br /&gt;      i_save        = &#39;A&#39;&lt;br /&gt;    IMPORTING&lt;br /&gt;      e_exit        = lv_exit&lt;br /&gt;      es_variant    = w_xvariant&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      not_found     = 1&lt;br /&gt;      program_error = 2&lt;br /&gt;      OTHERS        = 3.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    IF lv_exit = space.&lt;br /&gt;&lt;br /&gt;      p_layout = w_xvariant-variant.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_OBTENER_VARIANTE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_CARGAR_VARIANTE                                        *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Activa una variante existente                                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_cargar_variante .&lt;br /&gt;&lt;br /&gt;  IF NOT p_layout IS INITIAL.&lt;br /&gt;&lt;br /&gt;*   Indica el nombre del programa principal&lt;br /&gt;    w_variant-report    = sy-repid.&lt;br /&gt;&lt;br /&gt;*   Indica el usuario&lt;br /&gt;    w_variant-username  = sy-uname.&lt;br /&gt;&lt;br /&gt;    MOVE w_variant TO w_xvariant.&lt;br /&gt;    MOVE p_layout  TO w_xvariant-variant.&lt;br /&gt;&lt;br /&gt;*   Llamado de la función [REUSE_ALV_VARIANT_EXISTENCE] para aplicar una&lt;br /&gt;*   variante exitente en el ALV&lt;br /&gt;    CALL FUNCTION &#39;REUSE_ALV_VARIANT_EXISTENCE&#39;&lt;br /&gt;      EXPORTING&lt;br /&gt;        i_save        = &#39;A&#39;&lt;br /&gt;      CHANGING&lt;br /&gt;        cs_variant    = w_xvariant&lt;br /&gt;      EXCEPTIONS&lt;br /&gt;        wrong_input   = 1&lt;br /&gt;        not_found     = 2&lt;br /&gt;        program_error = 3&lt;br /&gt;        OTHERS        = 4.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;      w_variant = w_xvariant.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    CLEAR w_variant.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_CARGAR_VARIANTE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_INICIALIZAR_VARIANTE                                   *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Inicializando la variante default                              *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_inicializar_variante .&lt;br /&gt;&lt;br /&gt;* Indica el nombre del programa principal&lt;br /&gt;  w_variant-report    = sy-repid.&lt;br /&gt;&lt;br /&gt;* Indica el usuario&lt;br /&gt;  w_variant-username  = sy-uname.&lt;br /&gt;&lt;br /&gt;* Se toma la variante&lt;br /&gt;  w_xvariant = w_variant.&lt;br /&gt;&lt;br /&gt;* Llamado a la función [REUSE_ALV_VARIANT_DEFAULT_GET] para guardar la&lt;br /&gt;* la variante&lt;br /&gt;  CALL FUNCTION &#39;REUSE_ALV_VARIANT_DEFAULT_GET&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_save        = &#39;A&#39;&lt;br /&gt;    CHANGING&lt;br /&gt;      cs_variant    = w_xvariant&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      wrong_input   = 1&lt;br /&gt;      not_found     = 2&lt;br /&gt;      program_error = 3&lt;br /&gt;      OTHERS        = 4.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;    p_layout = w_xvariant-variant.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_INICIALIZAR_VARIANTE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_HANDLE_ONF4                                            *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para procesar el evento ONF4.                           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_E_FIELDNAME   Contiene el nombre del campo.                *&lt;br /&gt;*      --&gt;P_E_FIELDVALUE  Contiene el valor de la celda.               *&lt;br /&gt;*      --&gt;P_ES_ROW_NO     Contiene el ID de la fila.                   *&lt;br /&gt;*      --&gt;P_ER_EVENT_DATA Contiene el objeto con los datos.            *&lt;br /&gt;*      --&gt;P_ET_BAD_CELLS  Contiene las celdas incorrectas.             *&lt;br /&gt;*      --&gt;P_E_DISPLAY     Activa que solo de despliegue.               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_handle_onf4&lt;br /&gt;  USING p_e_fieldname   TYPE lvc_fname&lt;br /&gt;        p_e_fieldvalue  TYPE lvc_value&lt;br /&gt;        p_es_row_no     TYPE lvc_s_roid&lt;br /&gt;        p_er_event_data TYPE REF TO cl_alv_event_data&lt;br /&gt;        p_et_bad_cells  TYPE lvc_t_modi&lt;br /&gt;        p_e_display     TYPE char01.&lt;br /&gt;&lt;br /&gt;* Declaración de estructuras locales.&lt;br /&gt;  DATA: lw_return TYPE ddshretval,&lt;br /&gt;        lw_stable TYPE lvc_s_stbl.&lt;br /&gt;&lt;br /&gt;* Declaración de tablas internas locales.&lt;br /&gt;  DATA: li_t247   TYPE STANDARD TABLE OF t247,&lt;br /&gt;        li_return TYPE STANDARD TABLE OF ddshretval.&lt;br /&gt;&lt;br /&gt;* Detectando el campo para desplegar la ayuda correspondiente.&lt;br /&gt;  CASE  p_e_fieldname.&lt;br /&gt;    WHEN &#39;AYUDA&#39;.&lt;br /&gt;&lt;br /&gt;*     Función para obtener los nombres de los meses.&lt;br /&gt;      CALL FUNCTION &#39;MONTH_NAMES_GET&#39;&lt;br /&gt;        EXPORTING&lt;br /&gt;          language              = sy-langu&lt;br /&gt;        TABLES&lt;br /&gt;          month_names           = li_t247&lt;br /&gt;        EXCEPTIONS&lt;br /&gt;          month_names_not_found = 1&lt;br /&gt;          OTHERS                = 2.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;        MESSAGE ID sy-msgid&lt;br /&gt;              TYPE sy-msgty&lt;br /&gt;            NUMBER sy-msgno&lt;br /&gt;              WITH sy-msgv1&lt;br /&gt;                   sy-msgv2&lt;br /&gt;                   sy-msgv3&lt;br /&gt;                   sy-msgv4.&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;*     Despliega la ayuda para el campo.&lt;br /&gt;      CALL FUNCTION &#39;F4IF_INT_TABLE_VALUE_REQUEST&#39;&lt;br /&gt;        EXPORTING&lt;br /&gt;          retfield        = &#39;LTX&#39;&lt;br /&gt;          dynpprog        = sy-repid&lt;br /&gt;          dynpnr          = sy-dynnr&lt;br /&gt;          window_title    = &#39;Months&#39;&lt;br /&gt;          value_org       = &#39;S&#39;&lt;br /&gt;        TABLES&lt;br /&gt;          value_tab       = li_t247&lt;br /&gt;          return_tab      = li_return&lt;br /&gt;        EXCEPTIONS&lt;br /&gt;          parameter_error = 1&lt;br /&gt;          no_values_found = 2&lt;br /&gt;          OTHERS          = 3.&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*       Accesando al valor escogido...&lt;br /&gt;        READ TABLE li_return&lt;br /&gt;              INTO lw_return&lt;br /&gt;             INDEX 1.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*         Accesando a linea en la cual se desplego la ayuda.&lt;br /&gt;          READ TABLE i_salida&lt;br /&gt;                INTO w_salida&lt;br /&gt;               INDEX p_es_row_no-row_id.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;*           Actualizando el valor...&lt;br /&gt;            w_salida-ayuda = lw_return-fieldval.&lt;br /&gt;&lt;br /&gt;            MODIFY i_salida&lt;br /&gt;              FROM w_salida&lt;br /&gt;             INDEX sy-tabix.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      lw_stable-row = &#39;X&#39;.&lt;br /&gt;      lw_stable-col = &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;*     Refrescando el GRID con los nuevos valores.&lt;br /&gt;      CALL METHOD o_grid-&gt;refresh_table_display&lt;br /&gt;        EXPORTING&lt;br /&gt;          is_stable = lw_stable&lt;br /&gt;        EXCEPTIONS&lt;br /&gt;          finished  = 1&lt;br /&gt;          OTHERS    = 2.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;        MESSAGE ID sy-msgid&lt;br /&gt;              TYPE sy-msgty&lt;br /&gt;            NUMBER sy-msgno&lt;br /&gt;              WITH sy-msgv1&lt;br /&gt;                   sy-msgv2&lt;br /&gt;                   sy-msgv3&lt;br /&gt;                   sy-msgv4.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_HANDLE_ONF4&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_HANDLE_TOOLBAR                                         *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para procesar el evento TOOLBAR.                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_E_OBJECT  Contiene el objeto con los datos.                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_handle_toolbar&lt;br /&gt;  USING p_e_object TYPE REF TO cl_alv_event_toolbar_set.&lt;br /&gt;&lt;br /&gt;* Declaración de estructuras locales.&lt;br /&gt;  DATA: lw_toolbar TYPE stb_button.&lt;br /&gt;&lt;br /&gt;* Agregando un separador.&lt;br /&gt;  CLEAR lw_toolbar.&lt;br /&gt;  lw_toolbar-butn_type = 3.&lt;br /&gt;  APPEND lw_toolbar TO p_e_object-&gt;mt_toolbar.&lt;br /&gt;&lt;br /&gt;* Agregando el boton MAIL a la barra de botones del GRID.&lt;br /&gt;  CLEAR lw_toolbar.&lt;br /&gt;  lw_toolbar-icon      = icon_mail.&lt;br /&gt;  lw_toolbar-butn_type = 0.&lt;br /&gt;  lw_toolbar-function  = &#39;MAIL&#39;.&lt;br /&gt;  lw_toolbar-quickinfo = &#39;Enviar info al Mail&#39;.&lt;br /&gt;  lw_toolbar-disabled  = space.&lt;br /&gt;  lw_toolbar-text      = &#39;Mail&#39;.&lt;br /&gt;&lt;br /&gt;  APPEND lw_toolbar TO p_e_object-&gt;mt_toolbar.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_HANDLE_TOOLBAR&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_HANDLE_USER_COMMAND                                    *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para procesar el evento USER_COMMAND.                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_E_UCOMM  Contiene la acción del usuario en el GRID.        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_handle_user_command&lt;br /&gt;  USING p_e_ucomm TYPE sy-ucomm.&lt;br /&gt;&lt;br /&gt;* Evaluar los botones del ALV GRID OO.&lt;br /&gt;  CASE p_e_ucomm.&lt;br /&gt;    WHEN &#39;MAIL&#39;.&lt;br /&gt;      MESSAGE &#39;Pulsó el botón MAIL&#39;&lt;br /&gt;         TYPE &#39;I&#39;.&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_HANDLE_USER_COMMAND&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_LIMPIAR_PARAMETROS                                     *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para limpiar los parámetros de selección.               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_limpiar_parametros .&lt;br /&gt;&lt;br /&gt;  CLEAR: p_layout,&lt;br /&gt;         s_lifnr,&lt;br /&gt;         w_variant,&lt;br /&gt;         w_xvariant.&lt;br /&gt;&lt;br /&gt;  REFRESH s_lifnr.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_LIMPIAR_PARAMETROS&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include PBO&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa             : ZPRIMERPROGRAMA_O                             *&lt;br /&gt;* Descripción          : Para todos los procesos antes de la pantalla  *&lt;br /&gt;*                        Ejemplo de creación de un ALV OO con el manejo*&lt;br /&gt;*                        de los principales eventos.                   *&lt;br /&gt;* Desarrollador        : José Ángel Moreno Nieblas    MZAVALA          *&lt;br /&gt;* Fecha Creación       : 05.06.2010                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  STATUS_0100  OUTPUT                                    *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Para asignar un titulo y botones a la pantalla 100.            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE status_0100 OUTPUT.&lt;br /&gt;&lt;br /&gt;  SET PF-STATUS &#39;PF0100&#39;.&lt;br /&gt;  SET TITLEBAR &#39;T0100&#39;.&lt;br /&gt;&lt;br /&gt;ENDMODULE.                 &quot; STATUS_0100  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  STATUS_0200  OUTPUT                                    *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Para asignar un titulo y botones a la pantalla 200.            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE status_0200 OUTPUT.&lt;br /&gt;&lt;br /&gt;  SET PF-STATUS &#39;PF0200&#39;.&lt;br /&gt;  SET TITLEBAR &#39;T0100&#39;.&lt;br /&gt;&lt;br /&gt;ENDMODULE.               &quot; STATUS_0200  OUTPUT&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include PAI&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa             : ZPRIMERPROGRAMA_I                             *&lt;br /&gt;* Descripción          : Para todos los procesos despues de la pantalla*&lt;br /&gt;*                        Ejemplo de creación de un ALV OO con el manejo*&lt;br /&gt;*                        de los principales eventos.                   *&lt;br /&gt;* Desarrollador        : José Ángel Moreno Nieblas    MZAVALA          *&lt;br /&gt;* Fecha Creación       : 05.06.2010                                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  EXIT100  INPUT                                         *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*   Para salir de la pantalla 100 sin respetar los campos obligatorios.*&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE exit100 INPUT.&lt;br /&gt;&lt;br /&gt;  CASE v_ucomm100.&lt;br /&gt;    WHEN &#39;BACK&#39;&lt;br /&gt;      OR &#39;CANC&#39;&lt;br /&gt;      OR &#39;EXIT&#39;.&lt;br /&gt;&lt;br /&gt;      LEAVE PROGRAM.&lt;br /&gt;&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;ENDMODULE.                 &quot; EXIT100  INPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  USER_COMMAND_0100  INPUT                               *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Para evaluar los botones de la patalla 100.                    *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE user_command_0100 INPUT.&lt;br /&gt;&lt;br /&gt;  CASE v_ucomm100.&lt;br /&gt;    WHEN &#39;EXEC&#39;.&lt;br /&gt;&lt;br /&gt;*     Para obtener los datos para el reporte.&lt;br /&gt;      PERFORM f_obtener_datos.&lt;br /&gt;&lt;br /&gt;*     Para crear el reporte de salida.&lt;br /&gt;      PERFORM f_armar_salida.&lt;br /&gt;&lt;br /&gt;*     Para mostrar el ALV OO.&lt;br /&gt;      PERFORM f_mostrar_alv_oo.&lt;br /&gt;&lt;br /&gt;*     Llamado a la pantalla 0200.&lt;br /&gt;      CALL SCREEN 0200.&lt;br /&gt;&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;ENDMODULE.                 &quot; USER_COMMAND_0100  INPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  USER_COMMAND_0200  INPUT                               *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Para evaluar los botones de la pantalla 200.                   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE user_command_0200 INPUT.&lt;br /&gt;&lt;br /&gt;  CASE v_ucomm200.&lt;br /&gt;    WHEN &#39;BACK&#39;&lt;br /&gt;      OR &#39;CANC&#39;.&lt;br /&gt;&lt;br /&gt;      SET SCREEN 0100.&lt;br /&gt;      LEAVE SCREEN.&lt;br /&gt;&lt;br /&gt;    WHEN &#39;EXIT&#39;.&lt;br /&gt;&lt;br /&gt;      LEAVE PROGRAM.&lt;br /&gt;&lt;br /&gt;  ENDCASE.&lt;br /&gt;&lt;br /&gt;ENDMODULE.                 &quot; USER_COMMAND_0200  INPUT&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Pantalla 100&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;PROCESS BEFORE OUTPUT.&lt;br /&gt;&lt;br /&gt;* Asignar un titulo y un estatus.&lt;br /&gt;  MODULE status_0100.&lt;br /&gt;&lt;br /&gt;* Llamado de la subcreen 0001&lt;br /&gt;  CALL SUBSCREEN sub100 INCLUDING sy-repid &#39;0001&#39;.&lt;br /&gt;&lt;br /&gt;PROCESS AFTER INPUT.&lt;br /&gt;&lt;br /&gt;* Para obtener los valores de la screen.&lt;br /&gt;  CALL SUBSCREEN sub100.&lt;br /&gt;&lt;br /&gt;* Para salir aunque tenga parámetros obligatorios.&lt;br /&gt;  MODULE exit100 AT EXIT-COMMAND.&lt;br /&gt;&lt;br /&gt;* Validar la acción de usuario.&lt;br /&gt;  MODULE user_command_0100.   &lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Pantalla 200&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;PROCESS BEFORE OUTPUT.&lt;br /&gt;&lt;br /&gt;* Asignar un titulo y un estatus.&lt;br /&gt;  MODULE status_0200.&lt;br /&gt;&lt;br /&gt;PROCESS AFTER INPUT.&lt;br /&gt;&lt;br /&gt;* Validar la acción de usuario.&lt;br /&gt;  MODULE user_command_0200.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbapersjuniors.blogspot.com/feeds/7607671959077141064/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/codigo-neoris-abap-software-factory.html#comment-form' title='20 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/7607671959077141064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/7607671959077141064'/><link rel='alternate' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/codigo-neoris-abap-software-factory.html' title='Ejemplo de ALV OO'/><author><name>Jose Angel Moreno Nieblas</name><uri>http://www.blogger.com/profile/07557229350909629318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5446296579082811811.post-5702657130931988070</id><published>2010-07-21T10:54:00.000-07:00</published><updated>2010-07-21T11:02:52.442-07:00</updated><title type='text'>Funcion para leer los valores de una pantalla</title><content type='html'>&lt;strong&gt;1. Declaraciones&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;* Estructuras&lt;br /&gt;DATA: lw_dynpro TYPE dynpread.&lt;br /&gt;&lt;br /&gt;* Tablas Internas&lt;br /&gt;DATA: li_dynpro TYPE STANDARD TABLE OF dynpread.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Se llenan todos los parametros que se requieren leer de la pantalla en la tabla.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;lw_dynpro-fieldname = &#39;P_COUNTRY&#39;.&lt;br /&gt;&lt;br /&gt;APPEND lw_dynpro TO li_dynpro.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Se aplica la siguiente funcion:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;CALL FUNCTION &#39;DYNP_VALUES_READ&#39;&lt;br /&gt;EXPORTING&lt;br /&gt;dyname = sy-repid &quot;Programa&lt;br /&gt;dynumb = sy-dynnr &quot;No de pantalla&lt;br /&gt;translate_to_upper = &#39;X&#39; &quot;Ponerlo en mayusculas&lt;br /&gt;TABLES&lt;br /&gt;dynpfields = li_dynpro &quot;Tabla con los valores a leer&lt;br /&gt;EXCEPTIONS&lt;br /&gt;invalid_abapworkarea = 1&lt;br /&gt;invalid_dynprofield = 2&lt;br /&gt;invalid_dynproname = 3&lt;br /&gt;invalid_dynpronummer = 4&lt;br /&gt;invalid_request = 5&lt;br /&gt;no_fielddescription = 6&lt;br /&gt;invalid_parameter = 7&lt;br /&gt;undefind_error = 8&lt;br /&gt;double_conversion = 9&lt;br /&gt;stepl_not_found = 10&lt;br /&gt;OTHERS = 11.&lt;br /&gt;&lt;br /&gt;IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;SORT li_dynpro&lt;br /&gt;BY fieldname.&lt;br /&gt;&lt;br /&gt;* Se busca el valor de acuerdo a los valores leidos...&lt;br /&gt;READ TABLE li_dynpro&lt;br /&gt;INTO lw_dynpro&lt;br /&gt;WITH KEY fieldname = &#39;P_COUNTRY&#39;&lt;br /&gt;BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;* Se asigna y se obtiene el valor leido de la pantalla.&lt;br /&gt;p_country = lw_dynpro-fieldvalue.&lt;br /&gt;&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;ENDIF.</content><link rel='replies' type='application/atom+xml' href='http://abbapersjuniors.blogspot.com/feeds/5702657130931988070/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/funcion-para-leer-los-valores-de-una.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/5702657130931988070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/5702657130931988070'/><link rel='alternate' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/funcion-para-leer-los-valores-de-una.html' title='Funcion para leer los valores de una pantalla'/><author><name>Jose Angel Moreno Nieblas</name><uri>http://www.blogger.com/profile/07557229350909629318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5446296579082811811.post-5361797022667066502</id><published>2010-07-16T09:41:00.000-07:00</published><updated>2010-07-22T09:26:24.964-07:00</updated><title type='text'>CALL TRANSACTION VA01, VF01, FB01 Y F-32 CON OPCION JOB</title><content type='html'>va01 - creacion de la solicitud de la nota de credito.&lt;br /&gt;vf01 - creacion del documento de nota de credito.&lt;br /&gt;vb01 - reversa del documento de descuento.&lt;br /&gt;f-32 - creacion de documento de compensacion de la nota y del descuento.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Programa Principal&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa            : Z_PROG_OTCCAR18                                *&lt;br /&gt;* Descripción         : Creacion de nota de credito (Bonificacion      *&lt;br /&gt;*                       pronto pago)                                   *&lt;br /&gt;* Consultor Funcional : Willver Ruiz, Maria de Llano, Héctor Soto      *&lt;br /&gt;* Consultor técnico   : Cristina Rangel -  exchneo_f10                 *&lt;br /&gt;* ID Componente       : OTCAR18                                        *&lt;br /&gt;* Número de Req.      : OTCAR18                                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* LOG DE MODIFICACIONES                                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Descripción         : Cancelacion de descuentro FI y creacion de     *&lt;br /&gt;*                       descuento SD.                                  *&lt;br /&gt;* Consultor funcional : Javer Echavez                                  *&lt;br /&gt;* Consultor técnico   : Jose Angel Moreno Nieblas EXCHNEO_F09          *&lt;br /&gt;* Fecha Modificación  : 03.07.2010                                     *&lt;br /&gt;* ID Componente       : OTCAR18                                        *&lt;br /&gt;* Número de Req.      : OTCAR18                                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;REPORT  z_prog_otccar18.&lt;br /&gt;&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Declaración de Includes.                                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;INCLUDE: z_prog_otccar18_a, &quot;Declaraciones globales&lt;br /&gt;         z_prog_otccar18_b. &quot;Subrutinas&lt;br /&gt;&lt;br /&gt;*TABLES: vbfa.&lt;br /&gt;&lt;br /&gt;************************** CONSTANTES *********************************&lt;br /&gt;*CONSTANTS: c_tipo1 LIKE vbfa-vbtyp_n    VALUE &#39;O&#39;,&lt;br /&gt;*           c_tipo2 LIKE vbfa-vbtyp_v    VALUE &#39;M&#39;,&lt;br /&gt;*           c_tipo3 LIKE vbrp-augru_auft VALUE &#39;Z7&#39;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*******************************  TIPOS *******************************&lt;br /&gt;*TYPES:&lt;br /&gt;*BEGIN OF ty_vbfa,&lt;br /&gt;*  vbelv   LIKE vbfa-vbelv,&lt;br /&gt;*  vbeln   LIKE vbfa-vbeln,&lt;br /&gt;*  vbtyp_n LIKE vbfa-vbtyp_n,&lt;br /&gt;*  vbtyp_v LIKE vbfa-vbtyp_v,&lt;br /&gt;*END OF ty_vbfa.&lt;br /&gt;*&lt;br /&gt;*TYPES:&lt;br /&gt;*BEGIN OF ty_vbrp,&lt;br /&gt;*  vbeln       LIKE vbrp-vbeln,&lt;br /&gt;*  posnr       LIKE vbrp-posnr,&lt;br /&gt;*  augru_auft  LIKE vbrp-augru_auft,&lt;br /&gt;*END OF ty_vbrp.&lt;br /&gt;*&lt;br /&gt;************************* ESTRUCTURAS *******************************&lt;br /&gt;*DATA: w_vbfa     TYPE ty_vbfa,&lt;br /&gt;*      w_vbrp     TYPE ty_vbrp.&lt;br /&gt;&lt;br /&gt;*DATA: w_bdcdata  TYPE bdcdata,&lt;br /&gt;*      w_msgcoll  TYPE bdcmsgcoll,&lt;br /&gt;*      w_params   TYPE ctu_params.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;*********************************   TABLAS  ****************************&lt;br /&gt;*DATA: i_bdcdata TYPE STANDARD TABLE OF bdcdata,&lt;br /&gt;*      i_msgcoll TYPE STANDARD TABLE OF bdcmsgcoll.&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*      i_msgcoll1 type standard table of bdcmsgcoll.&lt;br /&gt;*DATA: t_bkpf LIKE bkpf OCCURS 0 WITH HEADER LINE,&lt;br /&gt;*      t_bseg LIKE bseg OCCURS 0  WITH HEADER LINE.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;DATA: v_existe_nc(1) TYPE c.&lt;br /&gt;&lt;br /&gt;******************************** PARAMETROS ****************************&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*PARAMETERS: p_fact LIKE vbfa-vbeln.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*  CLEAR: w_vbfa,&lt;br /&gt;*         w_vbrp.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;  CLEAR v_existe_nc.&lt;br /&gt;* Se busca si existe una nota de credito relacionada a la factura&lt;br /&gt;  PERFORM f_search_nc&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*             USING p_fact&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;             CHANGING v_existe_nc.&lt;br /&gt;&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;  IF v_existe_nc EQ &#39;X&#39;.&lt;br /&gt;*IF v_existe_nc EQ space.\&lt;br /&gt;&lt;br /&gt;    LOOP AT i_bkpf&lt;br /&gt;       INTO w_bkpf.&lt;br /&gt;&lt;br /&gt;      READ TABLE i_bseg&lt;br /&gt;            INTO w_bseg&lt;br /&gt;        WITH KEY belnr = w_bkpf-belnr&lt;br /&gt;                 bukrs = w_bkpf-bukrs&lt;br /&gt;                 gjahr = w_bkpf-gjahr&lt;br /&gt;        BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        READ TABLE i_bsad&lt;br /&gt;              INTO w_bsad&lt;br /&gt;          WITH KEY bukrs = w_bseg-bukrs&lt;br /&gt;                   augbl = w_bseg-belnr&lt;br /&gt;                   gjahr = w_bseg-gjahr&lt;br /&gt;          BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc EQ 0&lt;br /&gt;          AND NOT w_bsad-vbeln IS INITIAL.&lt;br /&gt;&lt;br /&gt;          READ TABLE i_compensadas&lt;br /&gt;                INTO w_compensadas&lt;br /&gt;            WITH KEY bukrs = w_bsad-bukrs&lt;br /&gt;                     gjahr = w_bsad-gjahr&lt;br /&gt;                     sktbl = w_bseg-belnr&lt;br /&gt;                     belnr = w_bsad-belnr&lt;br /&gt;                     vbeln = w_bsad-vbeln&lt;br /&gt;            BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;          IF sy-subrc NE 0.&lt;br /&gt;*            AND ( w_bkpf-tcode = &#39;VF01&#39;&lt;br /&gt;*            OR w_bkpf-tcode = &#39;VF02&#39;&lt;br /&gt;*            OR w_bkpf-tcode = &#39;VF04&#39; ) .&lt;br /&gt;&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;* Genera el call transaction para la transaccion VA01&lt;br /&gt;&lt;br /&gt;*  Si no existe una Nota de Crédito por Pronto Pago se hace un call&lt;br /&gt;*  transaction a VA01 para la creación de la Solicitud de la Nota de&lt;br /&gt;*  Crédito con referencia a la factura (Parámetro de Entrada)  que&lt;br /&gt;*  OTC017 esta validando como OK ,&lt;br /&gt;&lt;br /&gt;            PERFORM f_call_va01&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;              USING w_bsad-vbeln.&lt;br /&gt;*              USING p_fact.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;* Genera el call transaction para la transaccion VF01&lt;br /&gt;&lt;br /&gt;* llamar la transacción VF01, hecha en el mismo mandante, para la&lt;br /&gt;* creación del documento Nota de Crédito donde se llenara el campo&lt;br /&gt;* Documento desde parámetros de memoria.&lt;br /&gt;            PERFORM f_call_vf01.&lt;br /&gt;&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;** Genera el call transaction para la transaccion FB01&lt;br /&gt;*&lt;br /&gt;**  Antes de hacer el Call Transaction a VF01 verificar que ya este&lt;br /&gt;**  creada la Solicitud de Nota de Crédito&lt;br /&gt;*&lt;br /&gt;** Falta Especifiar como validar que ya se haya creado la solicitud de&lt;br /&gt;** Nota de Credito&lt;br /&gt;*&lt;br /&gt;**  Posterior al proceso de Creación de Nota de Crédito se realizará un&lt;br /&gt;**  proceso de  reversa de la aplicación contable del Descuento por&lt;br /&gt;**  pronto pago , mediante la transacción  FB01&lt;br /&gt;*      PERFORM f_call_fb01&lt;br /&gt;*        USING w_bsid.&lt;br /&gt;**           TABLES t_bkpf&lt;br /&gt;**                  t_bseg.&lt;br /&gt;&lt;br /&gt;            w_logcom-mandt = sy-mandt.&lt;br /&gt;            w_logcom-bukrs = w_bsad-bukrs.&lt;br /&gt;            w_logcom-gjahr = w_bsad-gjahr.&lt;br /&gt;            w_logcom-sktbl = w_bseg-belnr.&lt;br /&gt;            w_logcom-belnr = w_bsad-belnr.&lt;br /&gt;            w_logcom-vbeln = w_bsad-vbeln.&lt;br /&gt;&lt;br /&gt;            APPEND w_logcom TO i_logcom.&lt;br /&gt;&lt;br /&gt;            IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;              CLEAR w_logcom.&lt;br /&gt;&lt;br /&gt;            ENDIF.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF NOT i_logcom[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;    MODIFY z0140_logfactura FROM TABLE i_logcom.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      COMMIT WORK AND WAIT.&lt;br /&gt;      WAIT UP TO 5 SECONDS.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*Para obtener los documentos de FI.&lt;br /&gt;  PERFORM f_doctos_fi.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_CALL_VA01&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text *----------------------------------------------------------------------* FORM f_call_va01   USING p_factura LIKE vbrk-vbeln.    DATA: lv_p                TYPE char1      VALUE &#39;P&#39;,         lv_vsart            TYPE rvari_vnam VALUE &#39;VSART&#39;,         lv_prog             TYPE sycprog    VALUE &#39;Z_PROG_OTCCAR18&#39;,         lv_vsart_value      TYPE vbkd-vsart,         lv_vsbed            TYPE rvari_vnam VALUE &#39;VSBED&#39;,         lv_auart            TYPE rvari_vnam VALUE &#39;AUART&#39;,         lv_augru            TYPE rvari_vnam VALUE &#39;AUGRU&#39;,         lv_vsbed_value      TYPE vbak-vsbed,         lv_augru_value      TYPE vbak-augru,         lv_auart_value      TYPE vbak-auart,         i_vsart             TYPE RANGE OF vsart,         i_vsbed             TYPE RANGE OF vsbed,         i_auart             TYPE RANGE OF auart,         i_augru             TYPE RANGE OF vbak-augru.  *INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010. *  DATA: lv_factura  TYPE vbrk-vbeln.  *  lv_factura = p_factura.    REFRESH: i_bdcdata,            i_msgcoll. *FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.  * Falta Definición Funcional *  SELECT SINGLE *         vbeln &quot;Factura *    INTO lv_factura *    FROM vbrk *   WHERE vbeln = p_factura. * *  &quot;Si existen datos *  IF sy-subrc EQ 0.    CALL FUNCTION &#39;Z_AB_READ_TVARV&#39;     EXPORTING       i_type       = lv_p       i_programid  = lv_prog       i_fieldname  = lv_augru     IMPORTING       e_parameter  = lv_augru_value     TABLES       t_seloptions = i_augru     EXCEPTIONS       ee_not_found = 1       ee_wrongtype = 2       OTHERS       = 3.   IF sy-subrc &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;Z_AB_READ_TVARV&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_type       = lv_p&lt;br /&gt;      i_programid  = lv_prog&lt;br /&gt;      i_fieldname  = lv_auart&lt;br /&gt;    IMPORTING&lt;br /&gt;      e_parameter  = lv_auart_value&lt;br /&gt;    TABLES&lt;br /&gt;      t_seloptions = i_auart&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      ee_not_found = 1&lt;br /&gt;      ee_wrongtype = 2&lt;br /&gt;      OTHERS       = 3.&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;Z_AB_READ_TVARV&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_type       = lv_p&lt;br /&gt;      i_programid  = lv_prog&lt;br /&gt;      i_fieldname  = lv_vsart&lt;br /&gt;    IMPORTING&lt;br /&gt;      e_parameter  = lv_vsart_value&lt;br /&gt;    TABLES&lt;br /&gt;      t_seloptions = i_vsart&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      ee_not_found = 1&lt;br /&gt;      ee_wrongtype = 2&lt;br /&gt;      OTHERS       = 3.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION &#39;Z_AB_READ_TVARV&#39;&lt;br /&gt;    EXPORTING&lt;br /&gt;      i_type       = lv_p&lt;br /&gt;      i_programid  = lv_prog&lt;br /&gt;      i_fieldname  = lv_vsbed&lt;br /&gt;    IMPORTING&lt;br /&gt;      e_parameter  = lv_vsbed_value&lt;br /&gt;    TABLES&lt;br /&gt;      t_seloptions = i_vsbed&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      ee_not_found = 1&lt;br /&gt;      ee_wrongtype = 2&lt;br /&gt;      OTHERS       = 3.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  REFRESH i_bdcdata.&lt;br /&gt;  PERFORM f_fill_bdcdata&lt;br /&gt;      USING: &#39;X&#39; &#39;SAPMV45A&#39;       &#39;0101&#39;,&lt;br /&gt;             &#39; &#39; &#39;BDC_OKCODE&#39;     &#39;/00&#39;,&lt;br /&gt;             &#39; &#39; &#39;VBAK-AUART&#39;     lv_auart_value,&lt;br /&gt;&lt;br /&gt;             &#39;X&#39; &#39;SAPLV45C&#39;       &#39;0100&#39;,&lt;br /&gt;             &#39; &#39; &#39;BDC_OKCODE&#39;     &#39;=UEBR&#39;,&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*             &#39; &#39; &#39;VBRK-VBELN&#39;     lv_factura,&lt;br /&gt;             &#39; &#39; &#39;VBRK-VBELN&#39;     p_factura,&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;             &#39;X&#39; &#39;SAPMV45A&#39;       &#39;4001&#39;,&lt;br /&gt;             &#39; &#39; &#39;BDC_OKCODE&#39;     &#39;=KKAU&#39;,&lt;br /&gt;&lt;br /&gt;             &#39;X&#39; &#39;SAPMV45A&#39;       &#39;4002&#39;,&lt;br /&gt;             &#39; &#39; &#39;BDC_OKCODE&#39;     &#39;/EBACK&#39;,&lt;br /&gt;             &#39; &#39; &#39;VBAK-AUGRU&#39;     lv_augru_value,&lt;br /&gt;&lt;br /&gt;             &#39;X&#39; &#39;SAPMV45A&#39;       &#39;4001&#39;,&lt;br /&gt;             &#39; &#39; &#39;BDC_OKCODE&#39;     &#39;=FEAZ&#39;,&lt;br /&gt;&lt;br /&gt;             &#39;X&#39; &#39;SAPMV45A&#39;       &#39;4001&#39;,&lt;br /&gt;             &#39; &#39; &#39;BDC_OKCODE&#39;     &#39;=SICH&#39;.&lt;br /&gt;*             &#39; &#39; &#39;VBAK-VSBED&#39;     lv_vsbed_value,&lt;br /&gt;*             &#39; &#39; &#39;VBKD-KZAZU&#39;     &#39;X&#39;,&lt;br /&gt;*             &#39; &#39; &#39;VBKD-VSART&#39;     lv_vsart_value.&lt;br /&gt;&lt;br /&gt;  w_params-dismode = &#39;N&#39;.&lt;br /&gt;  w_params-updmode = &#39;S&#39;.&lt;br /&gt;  w_params-nobinpt = &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;  CALL TRANSACTION &#39;VA01&#39;&lt;br /&gt;     USING i_bdcdata&lt;br /&gt;     OPTIONS FROM w_params&lt;br /&gt;     MESSAGES INTO i_msgcoll.&lt;br /&gt;&lt;br /&gt;*  ENDIF.&lt;br /&gt;&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*  COMMIT WORK AND WAIT.&lt;br /&gt;*&lt;br /&gt;*  WAIT UP TO 5 SECONDS.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_CALL_VA01&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_CALL_VF01&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text *----------------------------------------------------------------------* FORM f_call_vf01 .    REFRESH: i_bdcdata, *INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.            i_msgcoll. *FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.  * Falta Definición Funcional   PERFORM f_fill_bdcdata       USING: &#39;X&#39; &#39;SAPMV60A&#39;     &#39;0102&#39;,             &#39; &#39; &#39;BDC_OKCODE&#39;    &#39;/00&#39;, *            &#39; &#39; &#39;KOMFK-VBELN(01)&#39;  &#39;888000330&#39;,&quot;Falta Especificar               &#39;X&#39; &#39;SAPMV60A&#39;     &#39;0104&#39;,              &#39; &#39; &#39;BDC_OKCODE&#39;   &#39;=SICH&#39;.    w_params-dismode = &#39;N&#39;.   w_params-updmode = &#39;S&#39;.   w_params-nobinpt = &#39;X&#39;.    CALL TRANSACTION &#39;VF01&#39;      USING i_bdcdata      OPTIONS FROM w_params      MESSAGES INTO i_msgcoll.  *INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.   IF sy-subrc EQ 0.      READ TABLE i_msgcoll           INTO w_msgcoll       WITH KEY msgtyp = &#39;S&#39;                msgid  = &#39;VF&#39;                msgnr  = &#39;311&#39;.      IF sy-subrc NE 0.        READ TABLE i_msgcoll             INTO w_msgcoll         WITH KEY msgtyp = &#39;S&#39;                  msgid  = &#39;VF&#39;                  msgnr  = &#39;050&#39;.        IF sy-subrc NE 0.          CLEAR w_msgcoll.        ENDIF.      ENDIF.      w_logcom-nocre = w_msgcoll-msgv1.      CALL FUNCTION &#39;CONVERSION_EXIT_ALPHA_INPUT&#39;       EXPORTING         input  = w_logcom-nocre       IMPORTING         output = w_logcom-nocre.    ENDIF.  *  COMMIT WORK AND WAIT. *  WAIT UP TO 3 SECONDS. *FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.  ENDFORM.                    &quot; F_CALL_VF01 *&amp;amp;---------------------------------------------------------------------* *&amp;amp;      Form  F_SEARCH_NC                                              * *&amp;amp;---------------------------------------------------------------------* * 1. Verificar que no exista una Nota de Crédito por Descuento de * *    Contado anterior para la misma factura :                          * *  Accesar la tabla VBFA  con el número de factura generada con los    * *  siguientes parámetros:                                              * *  VBFA-VBELV = Número de Factura dado como parámetro                  * *  VBFA-VBTYP_N = O                                                    * *  VBFA-VBTYP_V = M                                                    * *  Si existen registros  validar la clase de Nota de Crédito  en la    * *  VBRP Accesar con el campo VBFA-VBELN y verificar el motivo de Nota  * *  de Credito que sea por Pago por Pronto Pago  ,                      * *  si  VBRP-AUGRU_AUFT= Z7  no  ejecutar el proceso                    * *----------------------------------------------------------------------* *      &lt;--P_V_EXISTE_NC  text                                          * *----------------------------------------------------------------------* FORM f_search_nc *INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010. *        USING p_fact LIKE vbrk-vbeln *FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.         CHANGING pv_existe_nc.  *INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010. **  Accesar la tabla VBFA  con el número de factura generada con los **  siguientes parámetros: **  VBFA-VBELV = Número de Factura dado como parámetro **  VBFA-VBTYP_N = O **  VBFA-VBTYP_V = M *  SELECT vbelv *         vbeln *         vbtyp_n *         vbtyp_v *    UP TO 1 ROWS *    FROM vbfa *    INTO w_vbfa *    WHERE vbelv   = p_fact *      AND vbtyp_n = c_tipo1   &quot;&#39;O&#39; *      AND vbtyp_v = c_tipo2.   &quot;&#39;M&#39; * *    IF sy-subrc = 0. * *      EXIT. * *    ENDIF. * *  ENDSELECT. * *  IF sy-subrc = 0. ** Si existe la nota de credito se valida el tipo ** Si existen registros  validar la clase de Nota de Crédito  en la VBRP ** Accesar con el campo VBFA-VBELN y verificar el motivo de Nota de ** Credito ** que sea por Pago por Pronto Pago  , si  VBRP-AUGRU_AUFT = Z7 ** no  ejecutar el proceso *    SELECT vbeln *           posnr *           augru_auft *      UP TO 1 ROWS *      FROM vbrp *      INTO w_vbrp *      WHERE vbeln      = vbfa-vbeln *        AND augru_auft = c_tipo3.                           &quot;&#39;Z7&#39; * *      IF sy-subrc = 0. * *        EXIT. * *      ENDIF. * *    ENDSELECT. * *    IF sy-subrc = 0. ** Si existe una nota de credito anterior no se sigue el proceso. *      pv_existe_nc = &#39;X&#39;. * *    ENDIF. * *  ENDIF.   REFRESH r_blart.    r_blart-sign   = &#39;I&#39;.   r_blart-option = &#39;EQ&#39;.   r_blart-low    = &#39;DZ&#39;.   APPEND r_blart.    r_blart-sign   = &#39;I&#39;.   r_blart-option = &#39;EQ&#39;.   r_blart-low    = &#39;AB&#39;.   APPEND r_blart.  * Se seleccionan los siguientes datos de la tablas BKPF:   SELECT bukrs &quot;Sociedad          belnr &quot;Número de un documento contable          gjahr &quot;Ejercicio          blart &quot;Clase de documento          bldat &quot;Cabecera de documento para Contabilidad          budat &quot;Fecha de contabilización          monat &quot;Mes Contable          tcode &quot;Código transacción          xblnr &quot;Número de documento de referencia          waers &quot;Clave de moneda     FROM bkpf     INTO TABLE i_bkpf    WHERE bukrs IN s_bukrs      AND gjahr EQ p_gjahr      AND budat IN s_budat      AND blart IN r_blart.    IF sy-subrc EQ 0.      SORT i_bkpf       BY bukrs          gjahr          budat          blart.  *   Se seleccionan los siguientes datos de la tablas BSEG:     SELECT bukrs &quot;Sociedad            belnr &quot;Número de un documento contable            gjahr &quot;Ejercicio            augbl &quot;Número del documento de compensación            bschl &quot;Clave de contabilización            gsber &quot;División            mwskz &quot;Indicador IVA            wrbtr &quot;Importe en la moneda del documento            kostl &quot;Centro de coste            hkont &quot;Cuenta de mayor            kunnr &quot;Nº de cliente 1            zfbdt &quot;Fecha de Vencimiento       FROM bseg       INTO TABLE i_bseg       FOR ALL ENTRIES IN i_bkpf      WHERE belnr EQ i_bkpf-belnr        AND bukrs EQ i_bkpf-bukrs        AND gjahr EQ i_bkpf-gjahr        AND ktosl EQ &#39;SKT&#39;.      IF sy-subrc EQ 0.        SORT i_bseg         BY belnr            bukrs            gjahr.  *     Se seleccionan los siguientes datos de la tablas BSAD:       SELECT bukrs &quot;Sociedad              kunnr &quot;Nº de cliente 1              augbl &quot;Número del documento de compensación              gjahr &quot;Ejercicio              belnr &quot;Número de un documento contable              vbeln &quot;Factura         FROM bsad         INTO TABLE i_bsad         FOR ALL ENTRIES IN i_bseg        WHERE bukrs EQ i_bseg-bukrs          AND kunnr IN s_kunnr          AND augbl EQ i_bseg-belnr          AND gjahr EQ i_bseg-gjahr          AND belnr NE i_bseg-belnr.        IF sy-subrc EQ 0.          SORT i_bsad           BY bukrs              augbl              gjahr.  *       Si existe una nota de credito anterior no se sigue el proceso.         pv_existe_nc = &#39;X&#39;.  *       Se usa select a todos los campos debido a toda la informacion es *       necesaria.         SELECT *           FROM z0140_logfactura           INTO TABLE i_compensadas           FOR ALL ENTRIES IN i_bsad          WHERE bukrs EQ i_bsad-bukrs            AND gjahr EQ i_bsad-gjahr            AND belnr EQ i_bsad-belnr            AND vbeln EQ i_bsad-vbeln.          IF sy-subrc EQ 0.            SORT i_compensadas             BY bukrs                gjahr                sktbl                belnr                vbeln.          ENDIF.        ENDIF.      ENDIF.    ENDIF. *FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.  ENDFORM.                    &quot; F_SEARCH_NC &lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Declaraciones&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa            : Z_PROG_OTCCAR18_A                              *&lt;br /&gt;* Descripción         : Declaraciones gloables necesarias para la      *&lt;br /&gt;*                       cancelacion de descuentro FI y creacion de     *&lt;br /&gt;*                       descuento SD.                                  *&lt;br /&gt;* Consultor funcional : Javer Echavez                                  *&lt;br /&gt;* Consultor técnico   : Jose Angel Moreno Nieblas EXCHNEO_F09          *&lt;br /&gt;* Fecha Modificación  : 03.07.2010                                     *&lt;br /&gt;* ID Componente       : OTCAR18                                        *&lt;br /&gt;* Número de Req.      : OTCAR18                                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  T A B L A S                                                       **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;TABLES: bkpf,&lt;br /&gt;        bsad.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  T I P O S                                                         **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;TYPES: BEGIN OF ty_bkpf,&lt;br /&gt;  bukrs TYPE bkpf-bukrs, &quot;Sociedad&lt;br /&gt;  belnr TYPE bkpf-belnr, &quot;Número de un documento contable&lt;br /&gt;  gjahr TYPE bkpf-gjahr, &quot;Ejercicio&lt;br /&gt;  blart TYPE bkpf-blart, &quot;Clase de documento&lt;br /&gt;  bldat TYPE bkpf-bldat, &quot;Cabecera de documento para Contabilidad&lt;br /&gt;  budat TYPE bkpf-budat, &quot;Fecha de contabilización&lt;br /&gt;  monat TYPE bkpf-monat, &quot;Mes Contable&lt;br /&gt;  tcode TYPE bkpf-tcode, &quot;Código transacción&lt;br /&gt;  xblnr TYPE bkpf-xblnr, &quot;Número de documento de referencia&lt;br /&gt;  waers TYPE bkpf-waers. &quot;Clave de moneda&lt;br /&gt;TYPES: END OF ty_bkpf.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_bseg,&lt;br /&gt;  bukrs TYPE bseg-bukrs, &quot;Sociedad&lt;br /&gt;  belnr TYPE bseg-belnr, &quot;Número de un documento contable&lt;br /&gt;  gjahr TYPE bseg-gjahr, &quot;Ejercicio&lt;br /&gt;  augbl TYPE bseg-augbl, &quot;Número del documento de compensación&lt;br /&gt;  bschl TYPE bseg-bschl, &quot;Clave de contabilización&lt;br /&gt;  gsber TYPE bseg-gsber, &quot;División&lt;br /&gt;  mwskz TYPE bseg-mwskz, &quot;Indicador IVA&lt;br /&gt;  wrbtr TYPE bseg-wrbtr, &quot;Importe en la moneda del documento&lt;br /&gt;  kostl TYPE bseg-kostl, &quot;Centro de coste&lt;br /&gt;  hkont TYPE bseg-hkont, &quot;Cuenta de mayor&lt;br /&gt;  kunnr TYPE bseg-kunnr, &quot;Nº de cliente 1&lt;br /&gt;  zfbdt TYPE bseg-zfbdt. &quot;Fecha de Vencimiento&lt;br /&gt;TYPES: END OF ty_bseg.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_bseg_2,&lt;br /&gt;  bukrs TYPE bseg-bukrs, &quot;Sociedad&lt;br /&gt;  belnr TYPE bseg-belnr, &quot;Número de un documento contable&lt;br /&gt;  gjahr TYPE bseg-gjahr, &quot;Ejercicio&lt;br /&gt;  koart TYPE bseg-koart, &quot;Clase de cuenta&lt;br /&gt;  mwskz TYPE bseg-mwskz, &quot;Indicador IVA&lt;br /&gt;  wrbtr TYPE bseg-wrbtr, &quot;Importe en la moneda del documento&lt;br /&gt;  vbeln TYPE bseg-vbeln, &quot;Factura&lt;br /&gt;  wmwst TYPE bseg-wmwst, &quot;Importe del impuesto&lt;br /&gt;  ktosl TYPE bseg-ktosl,&lt;br /&gt;  kunnr TYPE bseg-kunnr. &quot;Nº de cliente 1&lt;br /&gt;TYPES: END OF ty_bseg_2.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_bsad,&lt;br /&gt;  bukrs TYPE bsad-bukrs, &quot;Sociedad&lt;br /&gt;  kunnr TYPE bsad-kunnr, &quot;Nº de cliente 1&lt;br /&gt;  augbl TYPE bsad-augbl, &quot;Número del documento de compensación&lt;br /&gt;  gjahr TYPE bsad-gjahr, &quot;Ejercicio&lt;br /&gt;  belnr TYPE bsad-belnr, &quot;Número de un documento contable&lt;br /&gt;  vbeln TYPE bsad-vbeln. &quot;Factura&lt;br /&gt;TYPES: END OF ty_bsad.&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF ty_bsid,&lt;br /&gt;  bukrs TYPE bsid-bukrs, &quot;Sociedad&lt;br /&gt;  kunnr TYPE bsid-kunnr, &quot;Nº de cliente 1&lt;br /&gt;  gjahr TYPE bsid-gjahr, &quot;Ejercicio&lt;br /&gt;  augbl TYPE bsid-augbl, &quot;Número del documento de compensación&lt;br /&gt;  belnr TYPE bsid-belnr, &quot;Número de un documento contable&lt;br /&gt;  budat TYPE bsid-budat, &quot;Fecha de contabilización&lt;br /&gt;  bldat TYPE bsid-bldat, &quot;Cabecera de documento para Contabilidad&lt;br /&gt;  waers TYPE bsid-waers, &quot;Clave de moneda&lt;br /&gt;  xblnr TYPE bsid-xblnr, &quot;Número de documento de referencia&lt;br /&gt;  blart TYPE bsid-blart, &quot;Clase de documento&lt;br /&gt;  monat TYPE bsid-monat, &quot;Mes Contable&lt;br /&gt;  bschl TYPE bsid-bschl, &quot;Clave de contabilización&lt;br /&gt;  gsber TYPE bsid-gsber, &quot;División&lt;br /&gt;  mwskz TYPE bsid-mwskz, &quot;Indicador IVA&lt;br /&gt;  wrbtr TYPE bsid-wrbtr, &quot;Importe en la moneda del documento&lt;br /&gt;  wmwst TYPE bsid-wmwst, &quot;Importe del impuesto&lt;br /&gt;  hkont TYPE bsid-hkont, &quot;Cuenta de mayor&lt;br /&gt;  zfbdt TYPE bsid-zfbdt, &quot;Fecha de Vencimiento&lt;br /&gt;  vbeln TYPE bsid-vbeln, &quot;Factura&lt;br /&gt;  kostl TYPE bsid-kostl. &quot;Centro de coste&lt;br /&gt;TYPES: END OF ty_bsid.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  E S T R U C T U R A S                                             **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;DATA: w_bdcdata     TYPE bdcdata,&lt;br /&gt;      w_msgcoll     TYPE bdcmsgcoll,&lt;br /&gt;      w_params      TYPE ctu_params,&lt;br /&gt;      w_bseg        TYPE ty_bseg,&lt;br /&gt;      w_bseg_2      TYPE ty_bseg_2,&lt;br /&gt;      w_baux        TYPE ty_bseg_2,&lt;br /&gt;      w_bseg_3      TYPE ty_bseg_2,&lt;br /&gt;      w_compensadas TYPE z0140_logfactura,&lt;br /&gt;      w_logcom      TYPE z0140_logfactura,&lt;br /&gt;      w_bkpf        TYPE ty_bkpf,&lt;br /&gt;      w_bsid        TYPE ty_bsid,&lt;br /&gt;      w_bsad        TYPE ty_bsad.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  T A B L A S   I N T E R N A S                                     **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;DATA: i_bdcdata     TYPE STANDARD TABLE OF bdcdata,&lt;br /&gt;      i_msgcoll     TYPE STANDARD TABLE OF bdcmsgcoll,&lt;br /&gt;      i_bseg        TYPE STANDARD TABLE OF ty_bseg,&lt;br /&gt;      i_bseg_2      TYPE STANDARD TABLE OF ty_bseg_2,&lt;br /&gt;      i_bkpf        TYPE STANDARD TABLE OF ty_bkpf,&lt;br /&gt;      i_bsid        TYPE STANDARD TABLE OF ty_bsid,&lt;br /&gt;      i_compensadas TYPE STANDARD TABLE OF z0140_logfactura,&lt;br /&gt;      i_logcom      TYPE STANDARD TABLE OF z0140_logfactura,&lt;br /&gt;      i_bsad        TYPE STANDARD TABLE OF ty_bsad.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  R A N G O S                                                       **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;RANGES: r_blart FOR bkpf-blart.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;** O P C I O N E S   D E   S E L E C C I Ó N   Y   P A R A M E T R O S**&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS: s_kunnr FOR bsad-kunnr,&lt;br /&gt;                s_bukrs FOR bkpf-bukrs  OBLIGATORY.&lt;br /&gt;&lt;br /&gt;PARAMETERS:     p_gjahr TYPE bkpf-gjahr OBLIGATORY.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS: s_budat FOR bkpf-budat  OBLIGATORY.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: END OF BLOCK b1.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Rutinas&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa            : Z_PROG_OTCCAR18_B                              *&lt;br /&gt;* Descripción         : Subrutinas necesarias para la cancelacion de   *&lt;br /&gt;*                       descuentro FI y creacion de descuento SD.      *&lt;br /&gt;* Consultor funcional : Javer Echavez                                  *&lt;br /&gt;* Consultor técnico   : Jose Angel Moreno Nieblas EXCHNEO_F09          *&lt;br /&gt;* Fecha Modificación  : 03.07.2010                                     *&lt;br /&gt;* ID Componente       : OTCAR18                                        *&lt;br /&gt;* Número de Req.      : OTCAR18                                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_CALL_F32                                               *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Para realizar la carga a la transaccion F-32.                  *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_call_f32 .&lt;br /&gt;&lt;br /&gt;* Declaracion de variables locales.&lt;br /&gt;  DATA: lv_budat(10) TYPE c.&lt;br /&gt;&lt;br /&gt;  REFRESH: i_bdcdata,&lt;br /&gt;           i_msgcoll.&lt;br /&gt;&lt;br /&gt;  WRITE w_bsid-budat TO lv_budat MM/DD/YYYY.&lt;br /&gt;&lt;br /&gt;  PERFORM f_fill_bdcdata&lt;br /&gt;   USING: &#39;X&#39; &#39;SAPMF05A&#39;         &#39;0131&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_CURSOR&#39;       &#39;RF05A-XPOS1(03)&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_OKCODE&#39;       &#39;=PA&#39;,&lt;br /&gt;          &#39; &#39; &#39;RF05A-AGKON&#39;      w_bsid-kunnr,&lt;br /&gt;          &#39; &#39; &#39;BKPF-BUDAT&#39;       lv_budat,&lt;br /&gt;          &#39; &#39; &#39;BKPF-MONAT&#39;       w_bsid-monat,&lt;br /&gt;          &#39; &#39; &#39;BKPF-BUKRS&#39;       w_bsid-bukrs,&lt;br /&gt;          &#39; &#39; &#39;BKPF-WAERS&#39;       w_bsid-waers,&lt;br /&gt;          &#39; &#39; &#39;RF05A-XNOPS&#39;      &#39;X&#39;,&lt;br /&gt;          &#39; &#39; &#39;RF05A-XPOS1(01)&#39;  &#39; &#39;,&lt;br /&gt;          &#39; &#39; &#39;RF05A-XPOS1(03)&#39;  &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;  PERFORM f_fill_bdcdata&lt;br /&gt;   USING: &#39;X&#39; &#39;SAPMF05A&#39;         &#39;0731&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_CURSOR&#39;       &#39;RF05A-SEL01(02)&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_OKCODE&#39;       &#39;=PA&#39;,&lt;br /&gt;          &#39; &#39; &#39;RF05A-SEL01(01)&#39;  w_logcom-docre,&lt;br /&gt;          &#39; &#39; &#39;RF05A-SEL01(02)&#39;  w_logcom-docnc.&lt;br /&gt;&lt;br /&gt;  PERFORM f_fill_bdcdata&lt;br /&gt;   USING: &#39;X&#39; &#39;SAPDF05X&#39;         &#39;3100&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_OKCODE&#39;       &#39;=BU&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_SUBSCR&#39;       &#39;SAPDF05X                                6102PAGE&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_CURSOR&#39;       &#39;DF05B-PSSKT(01)&#39;,&lt;br /&gt;          &#39; &#39; &#39;RF05A-ABPOS&#39;      &#39;1&#39;.&lt;br /&gt;&lt;br /&gt;  w_params-dismode = &#39;N&#39;.&lt;br /&gt;  w_params-updmode = &#39;S&#39;.&lt;br /&gt;  w_params-nobinpt = &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;  CALL TRANSACTION &#39;F-32&#39;&lt;br /&gt;     USING i_bdcdata&lt;br /&gt;     OPTIONS FROM w_params&lt;br /&gt;     MESSAGES INTO i_msgcoll.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_msgcoll&lt;br /&gt;          INTO w_msgcoll&lt;br /&gt;      WITH KEY msgtyp = &#39;S&#39;&lt;br /&gt;               msgid  = &#39;F5&#39;&lt;br /&gt;               msgnr  = &#39;312&#39;.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      w_logcom-docom = w_msgcoll-msgv1.&lt;br /&gt;&lt;br /&gt;      CALL FUNCTION &#39;CONVERSION_EXIT_ALPHA_INPUT&#39;&lt;br /&gt;        EXPORTING&lt;br /&gt;          input  = w_logcom-docom&lt;br /&gt;        IMPORTING&lt;br /&gt;          output = w_logcom-docom.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_CALL_F32&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_DOCTOS_FI                                              *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Rutina para obtener los documentos FI.                         *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_doctos_fi .&lt;br /&gt;&lt;br /&gt;* Declaracion de variables locales&lt;br /&gt;  DATA: lv_indice TYPE sy-tabix.&lt;br /&gt;&lt;br /&gt;  IF NOT i_logcom[] IS INITIAL.&lt;br /&gt;&lt;br /&gt;*   Se seleccionan los siguientes campos de la tabla BSID:&lt;br /&gt;    SELECT bukrs &quot;Sociedad&lt;br /&gt;           kunnr &quot;Nº de cliente 1&lt;br /&gt;           gjahr &quot;Ejercicio&lt;br /&gt;           augbl &quot;Número del documento de compensación&lt;br /&gt;           belnr &quot;Número de un documento contable&lt;br /&gt;           budat &quot;Fecha de contabilización&lt;br /&gt;           bldat &quot;Cabecera de documento para Contabilidad&lt;br /&gt;           waers &quot;Clave de moneda&lt;br /&gt;           xblnr &quot;Número de documento de referencia&lt;br /&gt;           blart &quot;Clase de documento&lt;br /&gt;           monat &quot;Mes Contable&lt;br /&gt;           bschl &quot;Clave de contabilización&lt;br /&gt;           gsber &quot;División&lt;br /&gt;           mwskz &quot;Indicador IVA&lt;br /&gt;           wrbtr &quot;Importe en la moneda del documento&lt;br /&gt;           wmwst &quot;Importe del impuesto&lt;br /&gt;           hkont &quot;Cuenta de mayor&lt;br /&gt;           zfbdt &quot;Fecha de Vencimiento&lt;br /&gt;           vbeln &quot;Factura&lt;br /&gt;           kostl &quot;Centro de coste&lt;br /&gt;      FROM bsid&lt;br /&gt;      INTO TABLE i_bsid&lt;br /&gt;      FOR ALL ENTRIES IN i_logcom&lt;br /&gt;      WHERE bukrs EQ i_logcom-bukrs&lt;br /&gt;        AND gjahr EQ i_logcom-gjahr&lt;br /&gt;        AND vbeln EQ i_logcom-nocre.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      SORT i_bsid&lt;br /&gt;        BY bukrs&lt;br /&gt;           gjahr&lt;br /&gt;           vbeln.&lt;br /&gt;&lt;br /&gt;      SELECT bukrs &quot;Sociedad&lt;br /&gt;             belnr &quot;Número de un documento contable&lt;br /&gt;             gjahr &quot;Ejercicio&lt;br /&gt;             koart &quot;Clase de cuenta&lt;br /&gt;             mwskz &quot;Indicador IVA&lt;br /&gt;             wrbtr &quot;Importe en la moneda del documento&lt;br /&gt;             vbeln &quot;Factura&lt;br /&gt;             wmwst &quot;Importe del impuesto&lt;br /&gt;             ktosl&lt;br /&gt;             kunnr &quot;Nº de cliente 1&lt;br /&gt;        FROM bseg&lt;br /&gt;        INTO TABLE i_bseg_2&lt;br /&gt;        FOR ALL ENTRIES IN i_bsid&lt;br /&gt;        WHERE bukrs EQ i_bsid-bukrs&lt;br /&gt;          AND gjahr EQ i_bsid-gjahr&lt;br /&gt;          AND belnr EQ i_bsid-belnr.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;        SORT i_bseg_2&lt;br /&gt;          BY bukrs&lt;br /&gt;             belnr&lt;br /&gt;             gjahr&lt;br /&gt;             koart.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;      SORT i_bsad&lt;br /&gt;        BY kunnr.&lt;br /&gt;&lt;br /&gt;*     Eliminando todos los clientes que no esten considerados.&lt;br /&gt;      LOOP AT i_bsid&lt;br /&gt;         INTO w_bsid.&lt;br /&gt;&lt;br /&gt;        lv_indice = sy-tabix.&lt;br /&gt;&lt;br /&gt;        READ TABLE i_bsad&lt;br /&gt;              INTO w_bsad&lt;br /&gt;          WITH KEY kunnr = w_bsid-kunnr&lt;br /&gt;          BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;        IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;          DELETE i_bsid&lt;br /&gt;           INDEX lv_indice.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDLOOP.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Actualizando los datos del log...&lt;br /&gt;  LOOP AT i_logcom&lt;br /&gt;     INTO w_logcom.&lt;br /&gt;&lt;br /&gt;    lv_indice = sy-tabix.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_bsid&lt;br /&gt;          INTO w_bsid&lt;br /&gt;      WITH KEY bukrs = w_logcom-bukrs&lt;br /&gt;               gjahr = w_logcom-gjahr&lt;br /&gt;               vbeln = w_logcom-nocre&lt;br /&gt;      BINARY SEARCH.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      w_logcom-docnc = w_bsid-belnr.&lt;br /&gt;&lt;br /&gt;      READ TABLE i_bseg&lt;br /&gt;            INTO w_bseg&lt;br /&gt;        WITH KEY bukrs = w_logcom-bukrs&lt;br /&gt;                 gjahr = w_logcom-gjahr&lt;br /&gt;                 belnr = w_logcom-sktbl.&lt;br /&gt;&lt;br /&gt;      IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;        CLEAR w_bseg.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;* Genera el call transaction para la transaccion FB01&lt;br /&gt;&lt;br /&gt;*  Antes de hacer el Call Transaction a VF01 verificar que ya este&lt;br /&gt;*  creada la Solicitud de Nota de Crédito&lt;br /&gt;&lt;br /&gt;* Falta Especifiar como validar que ya se haya creado la solicitud de&lt;br /&gt;* Nota de Credito&lt;br /&gt;&lt;br /&gt;*  Posterior al proceso de Creación de Nota de Crédito se realizará un&lt;br /&gt;*  proceso de  reversa de la aplicación contable del Descuento por&lt;br /&gt;*  pronto pago , mediante la transacción  FB01&lt;br /&gt;      PERFORM f_call_fb01&lt;br /&gt;        USING w_bsid.&lt;br /&gt;*           TABLES t_bkpf&lt;br /&gt;*                  t_bseg.&lt;br /&gt;&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*   Generar carga para la compensacion del documento.&lt;br /&gt;      PERFORM f_call_f32.&lt;br /&gt;&lt;br /&gt;      MODIFY i_logcom&lt;br /&gt;        FROM w_logcom&lt;br /&gt;       INDEX lv_indice.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;  MODIFY z0140_logfactura FROM TABLE i_logcom.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    COMMIT WORK.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_DOCTOS_FI&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_CALL_FB01                                              *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Se realiza un call transaction a la FB01.                      *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  P_W_BSID  Contiene los datos para la grabacion FB01.           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_call_fb01&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;  USING p_w_bsid TYPE ty_bsid.&lt;br /&gt;*          TABLES t_bkpf STRUCTURE t_bkpf&lt;br /&gt;*                 t_bseg STRUCTURE t_bseg.&lt;br /&gt;&lt;br /&gt;* Declaracion de variables locales.&lt;br /&gt;  DATA: lv_budat(10) TYPE c,&lt;br /&gt;        lv_zfbdt(10) TYPE c,&lt;br /&gt;        lv_band      TYPE c,&lt;br /&gt;        lv_comp      TYPE bsid-wrbtr,&lt;br /&gt;        lv_bldat(10) TYPE c.&lt;br /&gt;&lt;br /&gt;  WRITE: p_w_bsid-bldat TO lv_bldat MM/DD/YYYY,&lt;br /&gt;         p_w_bsid-zfbdt TO lv_zfbdt MM/DD/YYYY,&lt;br /&gt;         p_w_bsid-budat TO lv_budat MM/DD/YYYY.&lt;br /&gt;&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;  REFRESH: i_bdcdata,&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;           i_msgcoll.&lt;br /&gt;&lt;br /&gt;  READ TABLE i_bseg_2&lt;br /&gt;        INTO w_bseg_2&lt;br /&gt;    WITH KEY bukrs = w_bsid-bukrs&lt;br /&gt;             gjahr = w_bsid-gjahr&lt;br /&gt;             belnr = w_bsid-belnr&lt;br /&gt;             koart = &#39;S&#39;.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    CLEAR lv_comp.&lt;br /&gt;&lt;br /&gt;    LOOP AT i_bseg_2&lt;br /&gt;       INTO w_baux&lt;br /&gt;       FROM sy-tabix.&lt;br /&gt;&lt;br /&gt;      IF    w_baux-bukrs = w_bseg_2-bukrs&lt;br /&gt;        AND w_baux-gjahr = w_bseg_2-gjahr&lt;br /&gt;        AND w_baux-belnr = w_bseg_2-belnr&lt;br /&gt;        AND w_baux-koart = w_bseg_2-koart.&lt;br /&gt;&lt;br /&gt;        IF w_baux-ktosl IS INITIAL.&lt;br /&gt;&lt;br /&gt;          lv_comp = lv_comp + w_baux-wrbtr + w_baux-wmwst.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;        IF w_baux-ktosl EQ &#39;MWS&#39;.&lt;br /&gt;&lt;br /&gt;          lv_comp = lv_comp + w_baux-wrbtr + w_baux-wmwst.&lt;br /&gt;&lt;br /&gt;          IF NOT w_baux-mwskz IS INITIAL.&lt;br /&gt;&lt;br /&gt;            lv_band = &#39;S&#39;.&lt;br /&gt;&lt;br /&gt;          ELSE.&lt;br /&gt;&lt;br /&gt;            lv_band = &#39;N&#39;.&lt;br /&gt;&lt;br /&gt;          ENDIF.&lt;br /&gt;&lt;br /&gt;        ENDIF.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  READ TABLE i_bseg_2&lt;br /&gt;        INTO w_bseg_3&lt;br /&gt;    WITH KEY bukrs = w_bsid-bukrs&lt;br /&gt;             gjahr = w_bsid-gjahr&lt;br /&gt;             belnr = w_bsid-belnr&lt;br /&gt;             koart = &#39;D&#39;.&lt;br /&gt;&lt;br /&gt;  IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;    CLEAR w_bseg_3.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;*RF05A-NEWBS / BSEG-BSCHL&lt;br /&gt;*RF05A-NEWKO / BSEG-HKONT, KUNNR&lt;br /&gt;*COBL-GSBER / BSEG-GSBER&lt;br /&gt;*COBL-KOSTL / BSEG-KOSTL&lt;br /&gt;  PERFORM f_fill_bdcdata&lt;br /&gt;   USING: &#39;X&#39; &#39;SAPMF05A&#39;  &#39;0100&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_OKCODE&#39;  &#39;/00&#39;,&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;          &#39; &#39; &#39;BKPF-BLDAT&#39;   lv_bldat,&lt;br /&gt;          &#39; &#39; &#39;BKPF-BLART&#39;   &#39;DR&#39;,&lt;br /&gt;          &#39; &#39; &#39;BKPF-BUKRS&#39;   p_w_bsid-bukrs,&lt;br /&gt;          &#39; &#39; &#39;BKPF-BUDAT&#39;   lv_budat,&lt;br /&gt;          &#39; &#39; &#39;BKPF-MONAT&#39;   p_w_bsid-monat,&lt;br /&gt;          &#39; &#39; &#39;BKPF-WAERS&#39;   p_w_bsid-waers,&lt;br /&gt;*          &#39; &#39; &#39;BKPF-XBLNR&#39;   p_w_bsid-xblnr,&lt;br /&gt;*          &#39; &#39; &#39;FS006-DOCID&#39;  &#39;*&#39;,&lt;br /&gt;          &#39; &#39; &#39;RF05A-NEWBS&#39;  &#39;50&#39;,&lt;br /&gt;          &#39; &#39; &#39;RF05A-NEWKO&#39;  w_bseg-hkont.&lt;br /&gt;&lt;br /&gt;  PERFORM f_fill_bdcdata&lt;br /&gt;   USING: &#39;X&#39; &#39;SAPMF05A&#39;     &#39;0300&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_OKCODE&#39;   &#39;/00&#39;,&lt;br /&gt;          &#39; &#39; &#39;BSEG-WRBTR&#39;   lv_comp,&lt;br /&gt;          &#39; &#39; &#39;COBL-GSBER&#39;   w_bseg-gsber,&lt;br /&gt;          &#39; &#39; &#39;COBL-KOSTL&#39;   w_bseg-kostl,&lt;br /&gt;          &#39; &#39; &#39;RF05A-NEWBS&#39;  &#39;05&#39;,&lt;br /&gt;          &#39; &#39; &#39;RF05A-NEWKO&#39;  w_bseg_3-kunnr.&lt;br /&gt;&lt;br /&gt;  IF lv_band = &#39;S&#39;.&lt;br /&gt;&lt;br /&gt;    PERFORM f_fill_bdcdata&lt;br /&gt;     USING: &#39; &#39; &#39;BKPF-XMWST&#39; &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  PERFORM f_fill_bdcdata&lt;br /&gt;   USING: &#39;X&#39; &#39;SAPMF05A&#39;     &#39;0301&#39;,&lt;br /&gt;          &#39; &#39; &#39;BDC_OKCODE&#39;   &#39;=BU&#39;,&lt;br /&gt;          &#39; &#39; &#39;BSEG-GSBER&#39;   w_bseg-gsber,&lt;br /&gt;          &#39; &#39; &#39;BSEG-WRBTR&#39;   w_bseg_3-wrbtr,&lt;br /&gt;          &#39; &#39; &#39;BSEG-ZFBDT&#39;   lv_zfbdt.&lt;br /&gt;&lt;br /&gt;*             &#39; &#39; &#39;BKPF-BLDAT&#39;  t_bkpf-bldat,&lt;br /&gt;*             &#39; &#39; &#39;BKPF-BLART&#39;  t_bkpf-blart,&lt;br /&gt;*             &#39; &#39; &#39;BKPF-BUKRS&#39;  t_bkpf-bukrs,&lt;br /&gt;*             &#39; &#39; &#39;BKPF-BUDAT&#39;  t_bkpf-budat,&lt;br /&gt;*             &#39; &#39; &#39;BKPF-MONAT&#39;  t_bkpf-monat,&lt;br /&gt;*             &#39; &#39; &#39;BKPF-WAERS&#39;  t_bkpf-waers,&lt;br /&gt;*             &#39; &#39; &#39;BKPF-XBLNR&#39;  t_bkpf-xblnr,&lt;br /&gt;*             &#39; &#39; &#39;FS006-DOCID&#39;  &#39;*&#39;,&lt;br /&gt;*             &#39; &#39; &#39;RF05A-NEWBS&#39;  t_bseg-bschl,&lt;br /&gt;*             &#39; &#39; &#39;RF05A-NEWKO&#39;  t_bseg-hkont,&lt;br /&gt;*&lt;br /&gt;*             &#39;X&#39; &#39;SAPMF05A&#39;  &#39;0300&#39;,&lt;br /&gt;*             &#39; &#39; &#39;BDC_OKCODE&#39;  &#39;/00&#39;,&lt;br /&gt;*             &#39; &#39; &#39;BSEG-WRBTR&#39;    t_bseg-wrbtr,&lt;br /&gt;*             &#39; &#39; &#39;RF05A-NEWBS&#39;  t_bseg-bschl,&lt;br /&gt;*             &#39; &#39; &#39;RF05A-NEWKO&#39;  t_bseg-kunnr,&lt;br /&gt;*             &#39; &#39; &#39;DKACB-FMORE&#39;  &#39;X&#39;,&lt;br /&gt;*&lt;br /&gt;*             &#39;X&#39; &#39;SAPLKACB&#39;  &#39;0002&#39;,&lt;br /&gt;*             &#39; &#39; &#39;BDC_OKCODE&#39;  &#39;=ENTE&#39;,&lt;br /&gt;*             &#39; &#39; &#39;COBL-GSBER&#39;  t_bseg-gsber,&lt;br /&gt;*             &#39; &#39; &#39;COBL-KOSTL&#39;  t_bseg-kostl,&lt;br /&gt;*&lt;br /&gt;*             &#39;X&#39; &#39;SAPMF05A&#39;  &#39;0301&#39;,&lt;br /&gt;*             &#39; &#39; &#39;BDC_OKCODE&#39;  &#39;=BU&#39;,&lt;br /&gt;*             &#39; &#39; &#39;BSEG-WRBTR&#39;  t_bseg-wrbtr,&lt;br /&gt;*             &#39; &#39; &#39;BSEG-ZFBDT&#39;  t_bseg-zfbdt.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;  w_params-dismode = &#39;N&#39;.&lt;br /&gt;  w_params-updmode = &#39;S&#39;.&lt;br /&gt;  w_params-nobinpt = &#39;X&#39;.&lt;br /&gt;&lt;br /&gt;  CALL TRANSACTION &#39;FB01&#39;&lt;br /&gt;     USING i_bdcdata&lt;br /&gt;     OPTIONS FROM w_params&lt;br /&gt;     MESSAGES INTO i_msgcoll.&lt;br /&gt;&lt;br /&gt;*INI OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;  IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;    READ TABLE i_msgcoll&lt;br /&gt;          INTO w_msgcoll&lt;br /&gt;      WITH KEY msgtyp = &#39;S&#39;&lt;br /&gt;               msgid  = &#39;F5&#39;&lt;br /&gt;               msgnr  = &#39;312&#39;.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      w_logcom-docre = w_msgcoll-msgv1.&lt;br /&gt;&lt;br /&gt;      CALL FUNCTION &#39;CONVERSION_EXIT_ALPHA_INPUT&#39;&lt;br /&gt;        EXPORTING&lt;br /&gt;          input  = w_logcom-docre&lt;br /&gt;        IMPORTING&lt;br /&gt;          output = w_logcom-docre.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;*  COMMIT WORK AND WAIT.&lt;br /&gt;*  WAIT UP TO 3 SECONDS.&lt;br /&gt;*FIN OTCAR18 Jose A. Moreno EXCHNEO_F09 03.07.2010.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; F_CALL_FB01&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  FILL_BDCDATA                                             *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Fill BDCDATA to call transactions                              *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;p_start  Screen                                              *&lt;br /&gt;*      --&gt;p_name   Name                                                *&lt;br /&gt;*      --&gt;p_value  Value                                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM f_fill_bdcdata&lt;br /&gt;     USING p_start TYPE any&lt;br /&gt;           p_name  TYPE any&lt;br /&gt;           p_value TYPE any.&lt;br /&gt;&lt;br /&gt;  CLEAR w_bdcdata.&lt;br /&gt;&lt;br /&gt;  IF p_start IS INITIAL.&lt;br /&gt;&lt;br /&gt;    MOVE p_name  TO w_bdcdata-fnam.&lt;br /&gt;    MOVE p_value TO w_bdcdata-fval.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    MOVE p_name  TO w_bdcdata-program.&lt;br /&gt;    MOVE p_value TO w_bdcdata-dynpro.&lt;br /&gt;    MOVE p_start TO w_bdcdata-dynbegin.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CONDENSE w_bdcdata-fval.&lt;br /&gt;&lt;br /&gt;  APPEND w_bdcdata TO i_bdcdata.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    &quot; FILL_BDCDATA&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Programa Principal para JOB&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa            : Z_PROG_OTCCAR18_JOB                            *&lt;br /&gt;* Descripción         : Cancelacion de descuentro FI y creacion de     *&lt;br /&gt;*                       descuento SD.                                  *&lt;br /&gt;* Consultor funcional : Javer Echavez                                  *&lt;br /&gt;* Consultor técnico   : Jose Angel Moreno Nieblas EXCHNEO_F09          *&lt;br /&gt;* Fecha Modificación  : 03.07.2010                                     *&lt;br /&gt;* ID Componente       : OTCAR18                                        *&lt;br /&gt;* Número de Req.      : OTCAR18                                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;REPORT  z_prog_otccar18_job.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Declaración de Includes.                                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;INCLUDE z_prog_otccar18_job_a.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Evento duranto la pantalla.                                          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;AT SELECTION-SCREEN OUTPUT.&lt;br /&gt;&lt;br /&gt;  IF NOT b_job IS INITIAL.&lt;br /&gt;&lt;br /&gt;    IF p_date IS INITIAL.&lt;br /&gt;&lt;br /&gt;      MESSAGE text-003&lt;br /&gt;         TYPE &#39;S&#39;&lt;br /&gt;         DISPLAY LIKE &#39;E&#39;.&lt;br /&gt;&lt;br /&gt;      STOP.&lt;br /&gt;      LEAVE LIST-PROCESSING.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;    IF p_time IS INITIAL.&lt;br /&gt;&lt;br /&gt;      MESSAGE text-004&lt;br /&gt;         TYPE &#39;S&#39;&lt;br /&gt;         DISPLAY LIKE &#39;E&#39;.&lt;br /&gt;&lt;br /&gt;      STOP.&lt;br /&gt;      LEAVE LIST-PROCESSING.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Evento de inicio del proceso.                                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;  IF NOT b_job IS INITIAL.&lt;br /&gt;&lt;br /&gt;    CONCATENATE sy-repid&lt;br /&gt;                sy-datlo&lt;br /&gt;                sy-timlo&lt;br /&gt;           INTO v_namejob.&lt;br /&gt;&lt;br /&gt;    CALL FUNCTION &#39;JOB_OPEN&#39;&lt;br /&gt;      EXPORTING&lt;br /&gt;        jobname          = v_namejob&lt;br /&gt;        jobclass         = &#39;A&#39;&lt;br /&gt;      IMPORTING&lt;br /&gt;        jobcount         = v_jobcount&lt;br /&gt;      EXCEPTIONS&lt;br /&gt;        cant_create_job  = 1&lt;br /&gt;        invalid_job_data = 2&lt;br /&gt;        jobname_missing  = 3&lt;br /&gt;        OTHERS           = 4.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc NE 0.&lt;br /&gt;&lt;br /&gt;      MESSAGE ID sy-msgid&lt;br /&gt;            TYPE sy-msgty&lt;br /&gt;          NUMBER sy-msgno&lt;br /&gt;            WITH sy-msgv1&lt;br /&gt;                 sy-msgv2&lt;br /&gt;                 sy-msgv3&lt;br /&gt;                 sy-msgv4.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF NOT b_job IS INITIAL.&lt;br /&gt;&lt;br /&gt;    SUBMIT z_prog_otccar18&lt;br /&gt;      VIA JOB v_namejob&lt;br /&gt;      NUMBER v_jobcount&lt;br /&gt;      WITH p_gjahr = p_gjahr&lt;br /&gt;      WITH s_budat IN s_budat&lt;br /&gt;      WITH s_bukrs IN s_bukrs&lt;br /&gt;      WITH s_kunnr IN s_kunnr&lt;br /&gt;      AND RETURN.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;&lt;br /&gt;    SUBMIT z_prog_otccar18&lt;br /&gt;      WITH p_gjahr = p_gjahr&lt;br /&gt;      WITH s_budat IN s_budat&lt;br /&gt;      WITH s_bukrs IN s_bukrs&lt;br /&gt;      WITH s_kunnr IN s_kunnr&lt;br /&gt;      AND RETURN.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF NOT b_job IS INITIAL.&lt;br /&gt;&lt;br /&gt;    CALL FUNCTION &#39;JOB_CLOSE&#39;&lt;br /&gt;      EXPORTING&lt;br /&gt;        jobcount             = v_jobcount&lt;br /&gt;        jobname              = v_namejob&lt;br /&gt;        sdlstrtdt            = p_date&lt;br /&gt;        sdlstrttm            = p_time&lt;br /&gt;        strtimmed            = &#39; &#39;&lt;br /&gt;      IMPORTING&lt;br /&gt;        job_was_released     = v_release&lt;br /&gt;      EXCEPTIONS&lt;br /&gt;        cant_start_immediate = 1&lt;br /&gt;        invalid_startdate    = 2&lt;br /&gt;        jobname_missing      = 3&lt;br /&gt;        job_close_failed     = 4&lt;br /&gt;        job_nosteps          = 5&lt;br /&gt;        job_notex            = 6&lt;br /&gt;        lock_failed          = 7&lt;br /&gt;        invalid_target       = 8&lt;br /&gt;        OTHERS               = 9.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc EQ 0.&lt;br /&gt;&lt;br /&gt;      MESSAGE text-005&lt;br /&gt;         TYPE &#39;S&#39;.&lt;br /&gt;&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN: 5px 20px 20px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-BOTTOM: 2px&quot; class=&quot;smallfont&quot;&gt;Include de Declaraciones para JOB&lt;/div&gt;&lt;br /&gt;&lt;pre style=&quot;BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; WIDTH: 480px; PADDING-RIGHT: 6px; HEIGHT: 200px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px&quot; dir=&quot;ltr&quot; class=&quot;alt2&quot;&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*                             TEMPLATE                                 *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Programa            : Z_PROG_OTCCAR18_JOB_B                          *&lt;br /&gt;* Descripción         : Cancelacion de descuentro FI y creacion de     *&lt;br /&gt;*                       descuento SD.                                  *&lt;br /&gt;* Consultor funcional : Javer Echavez                                  *&lt;br /&gt;* Consultor técnico   : Jose Angel Moreno Nieblas EXCHNEO_F09          *&lt;br /&gt;* Fecha Modificación  : 03.07.2010                                     *&lt;br /&gt;* ID Componente       : OTCAR18                                        *&lt;br /&gt;* Número de Req.      : OTCAR18                                        *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  T A B L A S                                                       **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;TABLES: bkpf,&lt;br /&gt;        bsad.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;**  V A R I A B L E S                                                 **&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;DATA: v_namejob  TYPE btcjob,&lt;br /&gt;      v_jobcount TYPE btcjobcnt,&lt;br /&gt;      v_release  TYPE char01.&lt;br /&gt;&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;** O P C I O N E S   D E   S E L E C C I Ó N   Y   P A R A M E T R O S**&lt;br /&gt;**--------------------------------------------------------------------**&lt;br /&gt;SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS: s_kunnr FOR bsad-kunnr,&lt;br /&gt;                s_bukrs FOR bkpf-bukrs  OBLIGATORY.&lt;br /&gt;&lt;br /&gt;PARAMETERS:     p_gjahr TYPE bkpf-gjahr OBLIGATORY.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS: s_budat FOR bkpf-budat  OBLIGATORY.&lt;br /&gt;&lt;br /&gt;PARAMETERS: b_job TYPE char01 AS CHECKBOX.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: END OF BLOCK b1.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.&lt;br /&gt;&lt;br /&gt;PARAMETERS: p_date TYPE tbtcjob-sdlstrtdt,&lt;br /&gt;            p_time TYPE tbtcjob-sdlstrttm.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN: END OF BLOCK b2.&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abbapersjuniors.blogspot.com/feeds/5361797022667066502/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/call-transaction-va01-vf01-fb01-y-f-32.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/5361797022667066502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5446296579082811811/posts/default/5361797022667066502'/><link rel='alternate' type='text/html' href='http://abbapersjuniors.blogspot.com/2010/07/call-transaction-va01-vf01-fb01-y-f-32.html' title='CALL TRANSACTION VA01, VF01, FB01 Y F-32 CON OPCION JOB'/><author><name>Jose Angel Moreno Nieblas</name><uri>http://www.blogger.com/profile/07557229350909629318</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>