<?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: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-20322244708988911</id><updated>2011-11-27T17:51:50.979-06:00</updated><category term='REPORTES - ALV'/><category term='REPORTES'/><category term='MODULE POOL - EJEMPLO'/><category term='INTERCONEXIONES DE LENGUAJES'/><category term='#Intro'/><category term='MODULOS SAP - TRANSACCIONES'/><category term='ABAP - SINTAXIS'/><category term='MODULE POOL - FUNCIONES'/><title type='text'>ABAPTMAN - SAP / R3</title><subtitle type='html'>ESTE ES EL BLOG DE RESPALDO DE CÓDIGO, PARA FUNCIONES Y EXTRACTOS QUE PARECEN INTERESANTES PARA DARLE UNA MEJOR PRESENTACIÓN A NUESTROS TRABAJOS O PROYECTOS, YA SEA EN REPORTE O EN DYNPRO, ESPERO RESULTE DE UTILIDAD.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-5591222917948135387</id><published>2009-01-05T09:21:00.005-06:00</published><updated>2009-01-20T12:59:04.685-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES'/><title type='text'>Tabla Interna Dinamica</title><content type='html'>&lt;p&gt;&lt;br /&gt;Codigo para la generacion de una tabla interna de forma dinamica en tiempo de ejecucion, cuando no se conocen los campos que esta va a contener en tiempo de diseño.&lt;br /&gt;&lt;br /&gt;En este caso solo lo hice para guardar los meses del año, pero segun la logica de programacion de cada situacion, esto puede ser ajustado a las necesidades del desarrollo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Espero sea de utilidad.&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Report  ZPRUEBAS_ABAP&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; reporte para la creacion de una tabla interna dinamica.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;REPORT  ZPRUEBAS_ABAP.&lt;br /&gt;DATA: t_fieldcat TYPE lvc_t_fcat,&lt;br /&gt;t_fieldcat_wa TYPE LINE OF lvc_t_fcat.&lt;br /&gt;&lt;br /&gt;DATA: tabla TYPE REF TO data,&lt;br /&gt;     EP_TABLE TYPE REF TO data,&lt;br /&gt;     EP_line  TYPE REF TO data.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF MESES OCCURS 0,&lt;br /&gt;     MES(12) TYPE C,&lt;br /&gt;END OF MESES.&lt;br /&gt;&lt;br /&gt;TYPE-POOLS: slis.&lt;br /&gt;&lt;br /&gt;FIELD-SYMBOLS: &lt;br /&gt;     &amp;lt;l_table&amp;gt; TYPE STANDARD TABLE &lt;br /&gt;     &amp;lt;l_line&amp;gt; TYPE ANY &lt;br /&gt;     &amp;lt;l_field&amp;gt; TYPE ANY &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt; MESES-MES = 'ENERO'.          APPEND MESES.&lt;br /&gt; MESES-MES = 'FEBRERO'.       APPEND MESES.&lt;br /&gt; MESES-MES = 'MARZO'.         APPEND MESES.&lt;br /&gt; MESES-MES = 'ABRIL'.           APPEND MESES.&lt;br /&gt; MESES-MES = 'MAYO'.          APPEND MESES.&lt;br /&gt; MESES-MES = 'JUNIO'.          APPEND MESES.&lt;br /&gt; MESES-MES = 'JULIO'.          APPEND MESES.&lt;br /&gt; MESES-MES = 'AGOSTO'.      APPEND MESES.&lt;br /&gt; MESES-MES = 'SEPTIEMBRE'. APPEND MESES.&lt;br /&gt; MESES-MES = 'OCTUBRE'.     APPEND MESES.&lt;br /&gt; MESES-MES = 'NOVIEMBRE'.  APPEND MESES.&lt;br /&gt; MESES-MES = 'DICIEMBRE'.   APPEND MESES.&lt;br /&gt;&lt;br /&gt; LOOP AT MESES.&lt;br /&gt;   t_fieldcat_wa-col_pos = SY-TABIX.&lt;br /&gt;   t_fieldcat_wa-fieldname = MESES-MES.&lt;br /&gt;   APPEND t_fieldcat_wa TO t_fieldcat.&lt;br /&gt; ENDLOOP.&lt;br /&gt;&lt;br /&gt; CALL METHOD cl_alv_table_create=&gt;create_dynamic_table&lt;br /&gt;   EXPORTING&lt;br /&gt;     it_fieldcatalog = t_fieldcat&lt;br /&gt;   IMPORTING&lt;br /&gt;     ep_table = tabla&lt;br /&gt;   EXCEPTIONS&lt;br /&gt;    GENERATE_SUBPOOL_DIR_FULL = 1&lt;br /&gt;    others = 2&lt;br /&gt;   .&lt;br /&gt; IF sy-subrc = 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; ASSIGN tabla-&gt;* TO &amp;lt;l_table&amp;gt;.&lt;br /&gt; CREATE DATA ep_line LIKE LINE OF &amp;lt;l_table&amp;gt;.&lt;br /&gt; ASSIGN ep_line-&gt;* TO &amp;lt;l_line&amp;gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; LOOP AT MESES.&lt;br /&gt;   assign component MESES-MES of structure &amp;lt;l_line&amp;gt; to &amp;lt;l_field&amp;gt;.&lt;br /&gt;   &amp;lt;l_field&amp;gt; = SY-TABIX.&lt;br /&gt; ENDLOOP.&lt;br /&gt; insert &amp;lt;l_line&amp;gt; into table &amp;lt;l_table&amp;gt;.&lt;br /&gt;&lt;br /&gt; LOOP AT MESES.&lt;br /&gt;   assign component meses-mes of structure &amp;lt;l_line&amp;gt; to &amp;lt;l_field&amp;gt;.&lt;br /&gt;   write: / MESES-MES, ': ', &amp;lt;l_field&amp;gt;.&lt;br /&gt; ENDLOOP.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-5591222917948135387?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/5591222917948135387/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=5591222917948135387' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/5591222917948135387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/5591222917948135387'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2009/01/tabla-interna-dinamica.html' title='Tabla Interna Dinamica'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-2526654349480263099</id><published>2008-09-01T09:46:00.000-05:00</published><updated>2008-09-01T09:47:08.345-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='INTERCONEXIONES DE LENGUAJES'/><title type='text'>Conexion a Bases de Datos Externas</title><content type='html'>Aveces es necesario hacer operaciones con bases de datos externas a SAP, ya sea para interfases o para datos complementarios, aunque no es recomendable por licenciamientos de SAP, esta es la forma de hacerlo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EVGW4AH1p2o/SLv_Wo9ELEI/AAAAAAAAAGI/apEDr_0Pfys/s1600-h/BDS1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_EVGW4AH1p2o/SLv_Wo9ELEI/AAAAAAAAAGI/apEDr_0Pfys/s320/BDS1.JPG" alt="" id="BLOGGER_PHOTO_ID_5241063355791453250" border="0" /&gt;&lt;/a&gt;Primero que nada, es necesario realizar una coneccion hacia la base de datos externa, esto lo hacemos mediante la transaccion DBCO.&lt;br /&gt;&lt;br /&gt;hacemos clic en el boton "NEW ENTRY" y tecleamos los datos correspondientes a la base de damos los datos necesarios para la coneccion.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EVGW4AH1p2o/SLv_mis4SAI/AAAAAAAAAGQ/HfWzdC9vRuA/s1600-h/BDS.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 126px; height: 214px;" src="http://4.bp.blogspot.com/_EVGW4AH1p2o/SLv_mis4SAI/AAAAAAAAAGQ/HfWzdC9vRuA/s320/BDS.JPG" alt="" id="BLOGGER_PHOTO_ID_5241063628990859266" border="0" /&gt;&lt;/a&gt;Existe una lista de bases de datos a las que podemos acceder:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ya teniendo la conexion, este el el fragmento de codigo que debemos insertar.&lt;br /&gt;&lt;br /&gt;*&lt;span&gt;Abrimos&lt;/span&gt; conexion&lt;br /&gt;EXEC SQL.&lt;br /&gt;CONNECT TO 'CONEX01' AS 'R'&lt;br /&gt;ENDEXEC.&lt;br /&gt;&lt;br /&gt;EXEC SQL.&lt;br /&gt;SET CONNECTION 'R'&lt;br /&gt;ENDEXEC.&lt;br /&gt;&lt;br /&gt;*&lt;span&gt;borramos&lt;/span&gt; &lt;span&gt;el&lt;/span&gt; &lt;span&gt;contenido&lt;/span&gt; &lt;span&gt;de&lt;/span&gt; &lt;span&gt;la&lt;/span&gt; &lt;span&gt;tabla&lt;/span&gt; alumnos&lt;br /&gt;EXEC SQL.&lt;br /&gt;DELETE  CE.ALUMNOS@DESAR&lt;br /&gt;ENDEXEC.&lt;br /&gt;&lt;br /&gt;IF sy-subrc = 0.&lt;br /&gt;*&lt;span&gt;insertamos&lt;/span&gt; &lt;span&gt;el&lt;/span&gt; &lt;span&gt;valor&lt;/span&gt; &lt;span&gt;ANTONIO&lt;/span&gt; LOPEZ &lt;span&gt;en&lt;/span&gt; &lt;span&gt;la&lt;/span&gt; &lt;span&gt;tabla&lt;/span&gt; alumnos&lt;br /&gt;EXEC SQL.&lt;br /&gt;  INSERT INTO CE.ALUMNOS@DESAR (NOMBRE)&lt;br /&gt;         VALUES (:'&lt;span&gt;ANTONIO&lt;/span&gt; LOPEZ')&lt;br /&gt;ENDEXEC.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;*&lt;span&gt;Cerramos&lt;/span&gt; &lt;span&gt;conexion&lt;/span&gt;&lt;br /&gt;EXEC SQL.&lt;br /&gt;SET CONNECTION DEFAULT&lt;br /&gt;ENDEXEC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-2526654349480263099?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/2526654349480263099/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=2526654349480263099' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2526654349480263099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2526654349480263099'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/09/conexion-bases-de-datos-externas.html' title='Conexion a Bases de Datos Externas'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EVGW4AH1p2o/SLv_Wo9ELEI/AAAAAAAAAGI/apEDr_0Pfys/s72-c/BDS1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-4071624976408051154</id><published>2008-08-21T17:02:00.003-05:00</published><updated>2008-08-21T17:39:19.140-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='INTERCONEXIONES DE LENGUAJES'/><title type='text'>Ejecucion de programa de windows desde sap</title><content type='html'>Funcion para ejecutar una aplicacion win32 por medio de sap, se pueden pasar parametros a la funcion por medio del COMMANDLINE.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  EJECUTA_EXE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;* FORM EJECUTA_EXE।   CALL FUNCTION 'WS_EXECUTE'       EXPORTING *         DOCUMENT           = ' ' *         CD                 = ' ' *         COMMANDLINE        = ' ' *         INFORM             = ' '      PROGRAM            = 'CALC।EXE' *    EXCEPTIONS            FRONTEND_ERROR     = 1            NO_BATCH           = 2            PROG_NOT_FOUND     = 3            ILLEGAL_OPTION     = 4            GUI_REFUSE_EXECUTE = 5            OTHERS             = 6.&lt;br /&gt;IF sy-subrc &lt;&gt; 0.&lt;br /&gt;&lt;br /&gt;  TEXT-01 = 'EL ARCHIVO NO PUEDE SER GENERADO'.&lt;br /&gt;  CASE sy-subrc.&lt;br /&gt;    WHEN 1.&lt;br /&gt;      TEXT-02 = 'ERROR DE EJECUCION DE SAM'.&lt;br /&gt;      perform f_mensaje_informa using text-01 text-02.&lt;br /&gt;    WHEN 2.&lt;br /&gt;      TEXT-02 = 'NO EJECUCION EN SAM'.&lt;br /&gt;      perform f_mensaje_informa using text-01 text-02.&lt;br /&gt;    WHEN 3.&lt;br /&gt;      TEXT-02 = 'PROGRAMA "SAM" A EJECUTAR NO ENCONTRADO'.&lt;br /&gt;      perform f_mensaje_informa using text-01 text-02.&lt;br /&gt;    WHEN 4.&lt;br /&gt;      TEXT-02 = 'OPCION NO APMITIDA PARA EJECUCION EN SAM'.&lt;br /&gt;      perform f_mensaje_informa using text-01 text-02.&lt;br /&gt;    WHEN 5.&lt;br /&gt;      TEXT-02 = 'EJECUCION RECHAZADA EN SAP'.&lt;br /&gt;      perform f_mensaje_informa using text-01 text-02.&lt;br /&gt;    WHEN 6.&lt;br /&gt;      TEXT-02 = 'ERROR DESCONOCIDO'.&lt;br /&gt;      perform f_mensaje_informa using text-01 text-02.&lt;br /&gt;  ENDCASE.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                    " EJECUTA_EXE&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_MENSAJE_INFORMA&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;FORM F_MENSAJE_INFORMA USING    P_TEXT_01&lt;br /&gt;                               P_TEXT_02.&lt;br /&gt; CALL FUNCTION 'POPUP_TO_INFORM'&lt;br /&gt;      EXPORTING&lt;br /&gt;           TXT1  = P_TEXT_01&lt;br /&gt;           TXT2  = P_TEXT_02&lt;br /&gt;           TITEL = 'WARNING Ventana informativa!!!!'.&lt;br /&gt;ENDFORM.                    " F_MENSAJE_INFORMA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-4071624976408051154?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/4071624976408051154/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=4071624976408051154' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/4071624976408051154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/4071624976408051154'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/08/ejecucion-de-programa-de-windows-desde.html' title='Ejecucion de programa de windows desde sap'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-455994905992354040</id><published>2008-08-21T15:59:00.003-05:00</published><updated>2008-08-21T16:59:01.466-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='INTERCONEXIONES DE LENGUAJES'/><title type='text'>FTP, Carga y Descarga de archivos.</title><content type='html'>Este es el reporte para subir y bajar un archivo de texto desde una ubicacion ftp,&lt;br /&gt;&lt;br /&gt;Es importante mencionar que el ftp tiene que estar protegido con contraseña, ya que esta se manda a encriptar primero mediante CALL 'AB_RFC_X_SCRAMBLE_STRING' y despues se conecta al ftp, si no lleva contraseña, este nuca se conecta o muestra mensaje de error de privilegios no validos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DATA:&lt;br /&gt;* VARIABLES PARA CONECCION &lt;span&gt;FTP&lt;/span&gt;&lt;br /&gt;    USER(64) TYPE C value 'usuario',&lt;br /&gt;   PWD(64) TYPE C value 'password',&lt;br /&gt;    HOST(64) TYPE C value 'host',&lt;br /&gt;   FILENAME(80) TYPE C value 'carga/archivo।txt', &lt;br /&gt;    DEST LIKE RFCDES-RFCDEST VALUE 'SAPFTP',&lt;br /&gt;    HDL TYPE I,&lt;br /&gt;    KEY TYPE I VALUE 26101957,&lt;br /&gt;    DSTLEN TYPE I,&lt;br /&gt;    BLOB_LENGTH TYPE I,&lt;br /&gt;   BND1(18) TYPE C,&lt;br /&gt;    BND2(1) TYPE C,&lt;br /&gt;&lt;br /&gt;* TABLAS INTERNAS&lt;br /&gt;    BEGIN OF BLOB OCCURS 0,&lt;br /&gt;           LINE(82) TYPE c,&lt;br /&gt;    END OF BLOB,&lt;br /&gt;&lt;br /&gt;   BEGIN OF IT_&lt;span&gt;TABLE &lt;/span&gt;OCCURS 0,&lt;br /&gt;        PROVEEDOR(10),&lt;br /&gt;        MATERIAL(18),&lt;br /&gt;        ORG(4),&lt;br /&gt;   END OF IT_TABLE.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*--- Inicio de Programa&lt;br /&gt;  PERFORM TRY_UPLOAD_FILE.&lt;br /&gt;  PERFORM TRY_DOWNLOAD_FILE.&lt;br /&gt;*--- Fin de Programa&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  TRY_UPLOAD_FILE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;FORM TRY_UPLOAD_FILE.&lt;br /&gt;&lt;br /&gt; DESCRIBE FIELD PWD LENGTH DSTLEN.&lt;br /&gt; CALL 'AB_RFC_X_SCRAMBLE_STRING'&lt;br /&gt;       ID 'SOURCE'      FIELD PWD    ID 'KEY'         FIELD KEY&lt;br /&gt;       ID 'SCR'         FIELD 'X'    ID 'DESTINATION' FIELD PWD&lt;br /&gt;       ID 'DSTLEN'      FIELD DSTLEN.  &lt;br /&gt;&lt;br /&gt;*BLOB_LENGTH = 77.&lt;br /&gt;*este campo es el que le dice al sap de que longuitud es cada renglon que traeremos del ftp&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; CALL FUNCTION 'FTP_SERVER_TO_R3'&lt;br /&gt;      EXPORTING&lt;br /&gt;               HANDLE      = HDL&lt;br /&gt;               FNAME       = FILENAME&lt;br /&gt; IMPORTING&lt;br /&gt;               BLOB_LENGTH = BLOB_LENGTH&lt;br /&gt;      TABLES&lt;br /&gt;    BLOB        = BLOB.&lt;br /&gt;&lt;br /&gt; CALL FUNCTION 'FTP_DISCONNECT'&lt;br /&gt;      EXPORTING&lt;br /&gt;               HANDLE = HDL.&lt;br /&gt;&lt;br /&gt;*como el archivo lo insertamos en una cadena, loopeamos la tabla y la separamos.&lt;br /&gt; loop at blob.&lt;br /&gt;         IT_TABLE-proveedor             = blob-line+0(10).&lt;br /&gt;         &lt;span&gt;IT&lt;/span&gt;_&lt;span&gt;TABLE&lt;/span&gt;-material              = blob-line+10(18).&lt;br /&gt;         &lt;span&gt;IT&lt;/span&gt;_&lt;span&gt;TABLE&lt;/span&gt;-org                  = blob-line+28(4).&lt;br /&gt;         append &lt;span&gt;IT&lt;/span&gt;_&lt;span&gt;TABLE&lt;/span&gt;.&lt;br /&gt; endloop.&lt;br /&gt;ENDFORM.                    " TRY_UPLOAD_FILE&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  TRY_DOWNLOAD_FILE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;FORM TRY_DOWNLOAD_FILE.&lt;br /&gt; DESCRIBE FIELD PWD LENGTH DSTLEN.&lt;br /&gt; CALL 'AB_RFC_X_SCRAMBLE_STRING'&lt;br /&gt;       ID 'SOURCE'      FIELD PWD    ID 'KEY'         FIELD KEY&lt;br /&gt;       ID 'SCR'         FIELD 'X'    ID 'DESTINATION' FIELD PWD&lt;br /&gt;       ID 'DSTLEN'      FIELD DSTLEN.&lt;br /&gt;&lt;br /&gt; CALL FUNCTION 'FTP_CONNECT'&lt;br /&gt;      EXPORTING&lt;br /&gt;               USER            = USER&lt;br /&gt;               PASSWORD        = PWD&lt;br /&gt;               HOST            = HOST&lt;br /&gt;               RFC_DESTINATION = DEST&lt;br /&gt;      IMPORTING&lt;br /&gt;   HANDLE          = HDL.&lt;br /&gt;&lt;br /&gt;DESCRIBE TABLE it_datos1 LINES lines.&lt;br /&gt;blob_length = lines * 75 .&lt;br /&gt; CALL FUNCTION 'FTP_R3_TO_SERVER'&lt;br /&gt;      EXPORTING&lt;br /&gt;               HANDLE      = HDL&lt;br /&gt;               FNAME       = FILENAME2&lt;br /&gt;               BLOB_LENGTH = BLOB_LENGTH&lt;br /&gt;      TABLES&lt;br /&gt;               BLOB        = IT_TABLE.&lt;br /&gt;&lt;br /&gt; CALL FUNCTION 'FTP_DISCONNECT'&lt;br /&gt;      EXPORTING&lt;br /&gt;               HANDLE = HDL.&lt;br /&gt;ENDFORM.                    " TRY_DOWNLOAD_FILE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-455994905992354040?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/455994905992354040/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=455994905992354040' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/455994905992354040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/455994905992354040'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/08/ftp-carga-y-descarga-de-archivos.html' title='FTP, Carga y Descarga de archivos.'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-6918485240084846616</id><published>2008-03-25T17:10:00.002-06:00</published><updated>2008-03-25T17:11:51.722-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES'/><title type='text'>Iconos para Reportes</title><content type='html'>REPORT ZICONS .&lt;br /&gt;TABLES: ICON.&lt;br /&gt;INCLUDE &lt;ICON&gt;.&lt;br /&gt;FIELD-SYMBOLS: &lt;F&gt;.&lt;br /&gt;&lt;br /&gt;SELECT * FROM ICON.&lt;br /&gt;   ASSIGN (ICON-NAME) TO &lt;F&gt;.&lt;br /&gt;   WRITE:   /(5) &lt;F&gt;, 20 '@',21 ICON-ID+1(2),23 '@',ICON-OLENG,&lt;br /&gt;            ICON-BUTTON,ICON-STATUS,ICON-MESSAGE,ICON-FUNCTION,&lt;br /&gt;            ICON-NAME.&lt;br /&gt;ENDSELECT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-6918485240084846616?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/6918485240084846616/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=6918485240084846616' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6918485240084846616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6918485240084846616'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/03/iconos-para-reportes.html' title='Iconos para Reportes'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-7291034880982360822</id><published>2008-03-25T16:21:00.003-06:00</published><updated>2008-03-25T16:33:09.601-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULE POOL - FUNCIONES'/><title type='text'>Graficos de Abap</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EVGW4AH1p2o/R-l9bGCvQ2I/AAAAAAAAAE4/M-XMeISLv5I/s1600-h/sap+graph.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_EVGW4AH1p2o/R-l9bGCvQ2I/AAAAAAAAAE4/M-XMeISLv5I/s320/sap+graph.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5181810750698505058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;REPORT ZGRAPH .&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF ITAB_DATA OCCURS 0,&lt;br /&gt;           DATANAME(15),&lt;br /&gt;           QUANTITY1 TYPE I,&lt;br /&gt;           QUANTITY2 TYPE I,&lt;br /&gt;           QUANTITY3 TYPE I,&lt;br /&gt;      END OF ITAB_DATA,&lt;br /&gt;      BEGIN OF ITAB_OPTIONS OCCURS 0,&lt;br /&gt;           OPTION(20),&lt;br /&gt;      END OF ITAB_OPTIONS.&lt;br /&gt;&lt;br /&gt;   ITAB_DATA-DATANAME = 'Electricidad'.&lt;br /&gt;   ITAB_DATA-QUANTITY1 = 55.&lt;br /&gt;   ITAB_DATA-QUANTITY2 = 62.&lt;br /&gt;   ITAB_DATA-QUANTITY3 = 59.&lt;br /&gt;   APPEND ITAB_DATA.&lt;br /&gt;&lt;br /&gt;   ITAB_DATA-DATANAME = 'Gas'.&lt;br /&gt;   ITAB_DATA-QUANTITY1 = 35.&lt;br /&gt;   ITAB_DATA-QUANTITY2 = 52.&lt;br /&gt;   ITAB_DATA-QUANTITY3 = 44.&lt;br /&gt;   APPEND ITAB_DATA.&lt;br /&gt;&lt;br /&gt;   ITAB_DATA-DATANAME = 'Agua'.&lt;br /&gt;   ITAB_DATA-QUANTITY1 = 18.&lt;br /&gt;   ITAB_DATA-QUANTITY2 = 22.&lt;br /&gt;   ITAB_DATA-QUANTITY3 = 19.&lt;br /&gt;   APPEND ITAB_DATA.&lt;br /&gt;&lt;br /&gt;   CALL FUNCTION 'GRAPH_MATRIX_3D'&lt;br /&gt;        EXPORTING&lt;br /&gt;             COL1        = 'Ene'&lt;br /&gt;             COL2        = 'Feb'&lt;br /&gt;             COL3        = 'Mar'&lt;br /&gt;             TITL        = 'Gastos'&lt;br /&gt;        TABLES&lt;br /&gt;             DATA        = ITAB_DATA&lt;br /&gt;             OPTS        = ITAB_OPTIONS&lt;br /&gt;        EXCEPTIONS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-7291034880982360822?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/7291034880982360822/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=7291034880982360822' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/7291034880982360822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/7291034880982360822'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/03/graficos-de-abap.html' title='Graficos de Abap'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EVGW4AH1p2o/R-l9bGCvQ2I/AAAAAAAAAE4/M-XMeISLv5I/s72-c/sap+graph.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-6798156455401979190</id><published>2008-03-25T15:40:00.000-06:00</published><updated>2008-03-25T15:42:59.492-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULE POOL - FUNCIONES'/><title type='text'>Principales Funciones abap</title><content type='html'>Cálculos&lt;br /&gt;CALCULATE_DATE: Calcula la fecha futura basada en la entrada.&lt;br /&gt;&lt;br /&gt;DATE_TO_DAY: Vuelve el día para la fecha incorporada. &lt;br /&gt;&lt;br /&gt;DATE_COMPUTE_DAY: Vuelve el día laborable por una fecha&lt;br /&gt;&lt;br /&gt;DATE_GET_WEEK: Vuelve la semana por una fecha&lt;br /&gt;&lt;br /&gt;Los módulos de la función se relacionaron con (ALV) AVANZARON EL ESPECTADOR de la LISTA&lt;br /&gt;REUSE_ALV_LIST_DISPLAY : Espectador de la lista de ABAP (EXHIBICIÓN de la LISTA)&lt;br /&gt;&lt;br /&gt;REUSE_ALV_GRID_DISPLAY : Pantalla completa de ALV GridControl&lt;br /&gt;&lt;br /&gt;REUSE_ALV_FIELDCATALOG_MERGE : Cree el catálogo del campo de la estructura del diccionario o de la tabla interna&lt;br /&gt;&lt;br /&gt;El módulo de la función se relacionó para cambiar seguir&lt;br /&gt;CHANGEDOCUMENT_READ_HEADERS : Documentos leída y del formato del cambio&lt;br /&gt;&lt;br /&gt;DAY_ATTRIBUTES_GET: Cualidades de las vueltas para una gama de las fechas especificadas&lt;br /&gt;&lt;br /&gt;MONTHS_BETWEEN_TWO_DATES : Para conseguir el número de meses entre las dos fechas.&lt;br /&gt;&lt;br /&gt;END_OF_MONTH_DETERMINE_2 : Determina el final de un mes.&lt;br /&gt;&lt;br /&gt;HR_HK_DIFF_BT_2_DATES : Encuentre la diferencia entre dos fechas en años, meses y días.&lt;br /&gt;&lt;br /&gt;FIMA_DAYS_AND_MONTHS_AND_YEARS : Encuentre la diferencia entre dos fechas en años, meses y días.&lt;br /&gt;&lt;br /&gt;MONTH_NAMES_GET: Consiga los nombres del mes&lt;br /&gt;&lt;br /&gt;WEEK_GET_FIRST_DAY: Consiga el primer día de la semana&lt;br /&gt;&lt;br /&gt;HRGPBS_HESA_DATE_FORMAT : Ajuste a formato la fecha en formato de dd/mm/yyyy&lt;br /&gt;&lt;br /&gt;SD_CALC_DURATION_FROM_DATETIME : Encuentre la diferencia entre dos fechas/horas y divulgue la diferencia sobre horas&lt;br /&gt;&lt;br /&gt;L_MC_TIME_DIFFERENCE: Encuentre la diferencia del tiempo entre dos fechas/horas&lt;br /&gt;&lt;br /&gt;HR_99S_INTERVAL_BETWEEN_DATES : Diferencia entre dos fechas en los días, semanas, meses&lt;br /&gt;&lt;br /&gt;LAST_DAY_OF_MONTHS: Vuelve el día pasado del mes&lt;br /&gt;&lt;br /&gt;DATE_CHECK_PLAUSIBILITY :Compruebe para saber si hay la fecha inválida.&lt;br /&gt;&lt;br /&gt;DATE_2D_TO_4D_CONVERSION :Entrada del año: carácter 2 al carácter 4.&lt;br /&gt;&lt;br /&gt;DAY_IN_WEEK:Entre la fecha y dará el nombre del día el lunes 2 1 - martes….&lt;br /&gt;&lt;br /&gt;Módulos de la función relacionados con el formato&lt;br /&gt;&lt;br /&gt;CLOI_PUT_SIGN_IN_FRONT : Exhibe la muestra negativa delante del número&lt;br /&gt;&lt;br /&gt;RKD_WORD_WRAP: Envuelva el texto en varias líneas&lt;br /&gt;&lt;br /&gt;CONVERSION_EXIT_ALPHA_INPUT : Rellene los ceros al número en la izquierda&lt;br /&gt;&lt;br /&gt;CONVERSION_EXIT_ALPHA_OUTPUT : Elimine los ceros al número en la izquierda&lt;br /&gt;&lt;br /&gt;Los módulos de la función se relacionaron con los avisos del diálogo&lt;br /&gt;POPUP_TO_CONFIRM: Exhibe un diálogo del popup con un mensaje definido por el usario para la confirmación&lt;br /&gt;&lt;br /&gt;POPUP_TO_GET_VALUE: Exhibe un diálogo del popup que solicita un valor para una tabla-fieldname particular&lt;br /&gt;&lt;br /&gt;SAPGUI_PROGRESS_INDICATOR : Exhibe una barra del progreso con el texto para denotar el porcentaje de la terminación y del estado&lt;br /&gt;&lt;br /&gt;FILENAME_GET: Exhibe un diálogo del popup para conseguir el nombre de fichero del servidor de la presentación&lt;br /&gt;&lt;br /&gt;F4_DATE: Exhibe un diálogo del popup para elegir la fecha&lt;br /&gt;&lt;br /&gt;GUI_UPLOAD: Upload un archivo del servidor de la presentación&lt;br /&gt;&lt;br /&gt;POPUP_TO_SELECT_MONTH : Exhiba un pop-up para seleccionar un mes&lt;br /&gt;&lt;br /&gt;Módulos de la función relacionados con la comunicación del RFC&lt;br /&gt;RFC_CONNECTION_CLOSE: Cierre una conexión del RFC&lt;br /&gt;&lt;br /&gt;RFC_GET_SYSTEM_INFO: Dé la información del sistema de un sistema alejado&lt;br /&gt;&lt;br /&gt;Los módulos de la función se relacionaron con los archivos de la lectura/de la escritura &lt;br /&gt;FILE_READ_AND_CONVERT_SAP_DATA: Uploads el archivo de la presentación o del servidor del uso en una tabla interna &lt;br /&gt;&lt;br /&gt;SUBST_GET_FILE_LIST: Para conseguir la lista de archivos del servidor del uso.&lt;br /&gt;&lt;br /&gt;ALSM_EXCEL_TO_INTERNAL_TABLE : Transferencia de datos de la herencia con Excel&lt;br /&gt;&lt;br /&gt;Módulos de la función relacionados con enviar email&lt;br /&gt;SO_NEW_DOCUMENT_ATT_SEND_API1 - Envía email con los textos y los accesorios&lt;br /&gt;SO_NEW_DOCUMENT_SEND_API1 - Envía email con los textos.&lt;br /&gt;&lt;br /&gt;Los módulos de la función se relacionaron con la ayuda F4&lt;br /&gt;F4IF_INT_TABLE_VALUE_REQUEST - Ayuda F4 también que vuelve el valor que se exhibirá en tabla interna&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-6798156455401979190?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/6798156455401979190/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=6798156455401979190' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6798156455401979190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6798156455401979190'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/03/principales-funciones-abap.html' title='Principales Funciones abap'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-2797242471933430983</id><published>2008-03-12T12:38:00.002-06:00</published><updated>2008-03-12T12:51:31.730-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULE POOL - FUNCIONES'/><title type='text'>Campos repetidos en dos tablas...</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Continuando con mis posts con programas simples pero útiles, ahora les&lt;br /&gt;traigo un que recibe dos tablas y devuelve todos los campos que&lt;br /&gt;comparten ambas tablas (Comparando los dominios y no los nombres claro&lt;br /&gt;está...)&lt;br/&gt;&lt;br/&gt;&lt;a href='http://4.bp.blogspot.com/_eKAKUbdu3CI/R6dNxP_yFSI/AAAAAAAAARA/2DA1ynrk_cs/s1600-h/ZREPEATED_1.JPG' onblur='try {parent.deselectBloggerImageGracefully();} catch(e) {}'&gt;&lt;img border='0' id='BLOGGER_PHOTO_ID_5163181006306546978' alt='' src='http://4.bp.blogspot.com/_eKAKUbdu3CI/R6dNxP_yFSI/AAAAAAAAARA/2DA1ynrk_cs/s400/ZREPEATED_1.JPG' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;a href='http://1.bp.blogspot.com/_eKAKUbdu3CI/R6dN2f_yFTI/AAAAAAAAARI/emmSfufCEFI/s1600-h/ZREPEATED_2.JPG' onblur='try {parent.deselectBloggerImageGracefully();} catch(e) {}'&gt;&lt;img border='0' id='BLOGGER_PHOTO_ID_5163181096500860210' alt='' src='http://1.bp.blogspot.com/_eKAKUbdu3CI/R6dN2f_yFTI/AAAAAAAAARI/emmSfufCEFI/s400/ZREPEATED_2.JPG' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;code&gt;&lt;br/&gt;REPORT ydummy_atg NO STANDARD PAGE HEADING.&lt;br/&gt;&lt;br/&gt;TYPES: BEGIN OF ty_repeated,&lt;br/&gt;       fieldname TYPE dd03p-fieldname,&lt;br/&gt;       ddtext TYPE dd03p-ddtext,&lt;br/&gt;       END OF ty_repeated.&lt;br/&gt;&lt;br/&gt;DATA: dd03p_table1 TYPE STANDARD TABLE OF dd03p,&lt;br/&gt;      dd03p_table2 TYPE STANDARD TABLE OF dd03p,&lt;br/&gt;      t_repeated TYPE STANDARD TABLE OF ty_repeated&lt;br/&gt;      WITH HEADER LINE.&lt;br/&gt;&lt;br/&gt;DATA: long_1 TYPE i,&lt;br/&gt;      long_2 TYPE i,&lt;br/&gt;      w_title TYPE string.&lt;br/&gt;&lt;br/&gt;FIELD-SYMBOLS: &amp;amp;lt;fs_dd03p&amp;amp;gt; LIKE LINE OF dd03p_table1,&lt;br/&gt;               &amp;amp;lt;fs_dd03p_aux&amp;amp;gt; LIKE LINE OF dd03p_table1,&lt;br/&gt;               &amp;amp;lt;fs_repeated&amp;amp;gt; LIKE LINE OF t_repeated.&lt;br/&gt;&lt;br/&gt;SELECTION-SCREEN BEGIN OF BLOCK test.&lt;br/&gt;PARAMETERS:&lt;br/&gt;           p_tab_1 TYPE dd17s-sqltab,&lt;br/&gt;           p_tab_2 TYPE dd17s-sqltab.&lt;br/&gt;SELECTION-SCREEN END OF BLOCK test.&lt;br/&gt;&lt;br/&gt;START-OF-SELECTION.&lt;br/&gt;&lt;br/&gt;  CONCATENATE p_tab_1 p_tab_2 INTO&lt;br/&gt;  w_title SEPARATED BY '-'.&lt;br/&gt;&lt;br/&gt;  sy-title = w_title.&lt;br/&gt;&lt;br/&gt;  CALL FUNCTION 'DDIF_TABL_GET'&lt;br/&gt;       EXPORTING&lt;br/&gt;            name          = p_tab_1&lt;br/&gt;            state         = 'A'&lt;br/&gt;            langu         = sy-langu&lt;br/&gt;       TABLES&lt;br/&gt;            dd03p_tab     = dd03p_table1&lt;br/&gt;       EXCEPTIONS&lt;br/&gt;            illegal_input = 1&lt;br/&gt;            OTHERS        = 2.&lt;br/&gt;&lt;br/&gt;  DELETE dd03p_table1 WHERE rollname EQ space.&lt;br/&gt;&lt;br/&gt;  CALL FUNCTION 'DDIF_TABL_GET'&lt;br/&gt;       EXPORTING&lt;br/&gt;            name          = p_tab_2&lt;br/&gt;            state         = 'A'&lt;br/&gt;            langu         = sy-langu&lt;br/&gt;       TABLES&lt;br/&gt;            dd03p_tab     = dd03p_table2&lt;br/&gt;       EXCEPTIONS&lt;br/&gt;            illegal_input = 1&lt;br/&gt;            OTHERS        = 2.&lt;br/&gt;&lt;br/&gt;  DELETE dd03p_table2 WHERE rollname EQ space.&lt;br/&gt;&lt;br/&gt;  DESCRIBE TABLE dd03p_table1 LINES long_1.&lt;br/&gt;  DESCRIBE TABLE dd03p_table2 LINES long_2.&lt;br/&gt;&lt;br/&gt;  IF long_1 GT long_2.&lt;br/&gt;    LOOP AT dd03p_table1 ASSIGNING &amp;amp;lt;fs_dd03p&amp;amp;gt;.&lt;br/&gt;      READ TABLE dd03p_table2 ASSIGNING &amp;amp;lt;fs_dd03p_aux&amp;amp;gt;&lt;br/&gt;      WITH KEY rollname = &amp;amp;lt;fs_dd03p&amp;amp;gt;-rollname.&lt;br/&gt;      IF sy-subrc EQ 0.&lt;br/&gt;        MOVE &amp;amp;lt;fs_dd03p_aux&amp;amp;gt;-fieldname TO t_repeated-fieldname.&lt;br/&gt;        MOVE &amp;amp;lt;fs_dd03p_aux&amp;amp;gt;-ddtext TO t_repeated-ddtext.&lt;br/&gt;        APPEND t_repeated.&lt;br/&gt;      ENDIF.&lt;br/&gt;    ENDLOOP.&lt;br/&gt;  ELSE.&lt;br/&gt;    LOOP AT dd03p_table2 ASSIGNING &amp;amp;lt;fs_dd03p&amp;amp;gt;.&lt;br/&gt;      READ TABLE dd03p_table1 ASSIGNING &amp;amp;lt;fs_dd03p_aux&amp;amp;gt;&lt;br/&gt;      WITH KEY rollname = &amp;amp;lt;fs_dd03p&amp;amp;gt;-rollname.&lt;br/&gt;      IF sy-subrc EQ 0.&lt;br/&gt;        MOVE &amp;amp;lt;fs_dd03p_aux&amp;amp;gt;-fieldname TO t_repeated-fieldname.&lt;br/&gt;        MOVE &amp;amp;lt;fs_dd03p_aux&amp;amp;gt;-ddtext TO t_repeated-ddtext.&lt;br/&gt;        APPEND t_repeated.&lt;br/&gt;      ENDIF.&lt;br/&gt;    ENDLOOP.&lt;br/&gt;  ENDIF.&lt;br/&gt;&lt;br/&gt;  LOOP AT t_repeated ASSIGNING &amp;amp;lt;fs_repeated&amp;amp;gt;.&lt;br/&gt;    WRITE:/ &amp;amp;lt;fs_repeated&amp;amp;gt;-fieldname,&amp;amp;lt;fs_repeated&amp;amp;gt;-ddtext.&lt;br/&gt;  ENDLOOP.&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-2797242471933430983?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/2797242471933430983/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=2797242471933430983' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2797242471933430983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2797242471933430983'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/03/campos-repetidos-en-dos-tablas.html' title='Campos repetidos en dos tablas...'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_eKAKUbdu3CI/R6dNxP_yFSI/AAAAAAAAARA/2DA1ynrk_cs/s72-c/ZREPEATED_1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-1755014833712157581</id><published>2008-03-12T12:33:00.002-06:00</published><updated>2008-03-12T12:53:02.488-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='INTERCONEXIONES DE LENGUAJES'/><title type='text'>Tablas por Modulo y Precedencia</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div&gt;Tablas en FI y sus relaciones.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;img border='0' src='http://3.bp.blogspot.com/_-GVRLC2t5Bs/R9fqeMGtZ0I/AAAAAAAAABU/OG4gmYcJrts/s400/tables2.gif' alt='' style='margin: 0px auto 10px; display: block; text-align: center;' id='BLOGGER_PHOTO_ID_5176864101052016450'/&gt; &lt;img border='0' src='http://2.bp.blogspot.com/_-GVRLC2t5Bs/R9fq-8GtZ1I/AAAAAAAAABc/dhhocpuCLPI/s400/tables3.gif' alt='' style='margin: 0px auto 10px; display: block; text-align: center;' id='BLOGGER_PHOTO_ID_5176864663692732242'/&gt; &lt;img border='0' src='http://1.bp.blogspot.com/_-GVRLC2t5Bs/R9frHsGtZ2I/AAAAAAAAABk/XW-LmpA6igc/s400/tables4.gif' alt='' style='margin: 0px auto 10px; display: block; text-align: center;' id='BLOGGER_PHOTO_ID_5176864814016587618'/&gt; &lt;img border='0' src='http://3.bp.blogspot.com/_-GVRLC2t5Bs/R9frVMGtZ3I/AAAAAAAAABs/LFH1WtmLu_0/s400/tables5.gif' alt='' style='margin: 0px auto 10px; display: block; text-align: center;' id='BLOGGER_PHOTO_ID_5176865045944821618'/&gt; &lt;img border='0' src='http://4.bp.blogspot.com/_-GVRLC2t5Bs/R9frfcGtZ4I/AAAAAAAAAB0/CvIpgldMFLs/s400/tables6.gif' alt='' style='margin: 0px auto 10px; display: block; text-align: center;' id='BLOGGER_PHOTO_ID_5176865222038480770'/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-1755014833712157581?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/1755014833712157581/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=1755014833712157581' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/1755014833712157581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/1755014833712157581'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/03/tablas-por-modulo-y-precedencia.html' title='Tablas por Modulo y Precedencia'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-GVRLC2t5Bs/R9fqeMGtZ0I/AAAAAAAAABU/OG4gmYcJrts/s72-c/tables2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-5552992746522726939</id><published>2008-03-07T18:11:00.010-06:00</published><updated>2008-03-14T18:14:12.505-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='#Intro'/><title type='text'>Introduccion</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_EVGW4AH1p2o/R9sTBDfxdaI/AAAAAAAAAEw/mZuE2_Xi3vg/s1600-h/sapabaptman.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_EVGW4AH1p2o/R9sTBDfxdaI/AAAAAAAAAEw/mZuE2_Xi3vg/s320/sapabaptman.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5177753105431885218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Este es un Blog de codigo ABAP, en el se encuentran extractos de programas que resultan utiles.&lt;br /&gt;Este Blog fue creado apenas en este año, espero poder segui haciendolo crecer para brindar un recurso util en procesos de programacion, Las categorias se encuentran en la parte derecha.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EVGW4AH1p2o/R9HhizfxdUI/AAAAAAAAAEA/T51Kk_ec77E/s1600-h/sap_foto.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_EVGW4AH1p2o/R9HhizfxdUI/AAAAAAAAAEA/T51Kk_ec77E/s400/sap_foto.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5175165434880685378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SAP AG (Systeme, Anwendungen und Produkte) (Sistemas, Aplicaciones y Productos), con sede en Walldorf (Alemania), es el primer proveedor de software empresarial en el mundo. Como empresa, comercializa un conjunto de aplicaciones de software para soluciones integradas de negocios, entre ellas mySAP Business Suite, que provee soluciones escalables que permiten mejorar continuamente, con más de 1.000 procesos de negocio consideradas las mejores prácticas empresariales.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9HhrTfxdVI/AAAAAAAAAEI/lbjyZLBWZqg/s1600-h/sap.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9HhrTfxdVI/AAAAAAAAAEI/lbjyZLBWZqg/s320/sap.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5175165580909573458" /&gt;&lt;/a&gt;&lt;br /&gt;SAP es considerada como el tercer proveedor independiente de software del mundo y el mayor fabricante europeo de software. Con 12 millones de usuarios, 100.700 instalaciones, y más de 1.500 socios, es la compañía más grande de software Inter-empresa. A finales de 2005, SAP empleaba a 35.873 personas (fuente empleados) en más de 50 países y sus ingresos anuales fueron de 8.513 millones de euros.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9HiLTfxdXI/AAAAAAAAAEY/B5SkUBR2ZrU/s1600-h/abap4.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9HiLTfxdXI/AAAAAAAAAEY/B5SkUBR2ZrU/s320/abap4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5175166130665387378" /&gt;&lt;/a&gt;&lt;br /&gt;ABAP (Advanced Business Application Programming) es un lenguaje de cuarta generación, propiedad de SAP, que se utiliza para programar la mayoría de sus productos (R/3, mySAP Business suite...). Utiliza sentencias de Open SQL para conectarse con prácticamente cualquier base de datos. Cuenta con miles de funciones para el manejo de archivos, bases de datos, fechas, etc... Permite conexiones RFC (Remote Function Calls) para conectar a los sistemas SAP con cualquier otro sistema o lenguaje de programación.&lt;br /&gt;&lt;br /&gt;SAP suministra de manera casi gratuita una instalación limitada de R/3 llamada MiniSAP para la práctica de la programación en ABAP.&lt;br /&gt;&lt;br /&gt;*source Wikipedia&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-5552992746522726939?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/5552992746522726939/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=5552992746522726939' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/5552992746522726939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/5552992746522726939'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/03/introduccion.html' title='Introduccion'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EVGW4AH1p2o/R9sTBDfxdaI/AAAAAAAAAEw/mZuE2_Xi3vg/s72-c/sapabaptman.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-1061321837273789128</id><published>2008-03-07T11:23:00.003-06:00</published><updated>2008-03-07T11:32:34.661-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES - ALV'/><title type='text'>ALV ROBOT.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EVGW4AH1p2o/R9F8JzfxdHI/AAAAAAAAACU/KGmzEUone0M/s1600-h/alvrobot.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_EVGW4AH1p2o/R9F8JzfxdHI/AAAAAAAAACU/KGmzEUone0M/s320/alvrobot.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5175053954709550194" /&gt;&lt;/a&gt;&lt;br /&gt;Este es un reporte que muestra un tipo de ALV sin necesidad de usar dynpro, es solo un simple reporte, en el cual me apoyo de una tabla llamada ZRF_t0002, contiene entre otros campos:&lt;br /&gt;zrf_t0002-id_cliente, zrf_t0002-nombre, zrf_t0002-apellido1, zrf_t0002-apellido2.&lt;br /&gt;es facil de impelementar y le da una vista mas profesional a nuetros reportes, espero sea de utilidad.&lt;br /&gt;&lt;br /&gt;REPORT zalv_robot .&lt;br /&gt;&lt;br /&gt;TABLES: ddshretval,&lt;br /&gt;        zrf_t0002.&lt;br /&gt;&lt;br /&gt;TYPE-POOLS: slis.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF it_cliente OCCURS 0,&lt;br /&gt;               cliente LIKE zrf_t0002-id_cliente,&lt;br /&gt;           END OF it_cliente.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF it_match OCCURS 0,  " 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 it_match.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TYPES: BEGIN OF tp_data,&lt;br /&gt;    cliente    LIKE zrf_t0002-id_cliente,&lt;br /&gt;    nombre       LIKE zrf_t0002-nombre,&lt;br /&gt;    apellido1    LIKE zrf_t0002-apellido1,&lt;br /&gt;    apellido2    LIKE zrf_t0002-apellido2,&lt;br /&gt;END OF tp_data,&lt;br /&gt;tp_tbl_data TYPE STANDARD TABLE OF tp_data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Report data to be shown.&lt;br /&gt;DATA: it_data TYPE STANDARD TABLE OF tp_data.&lt;br /&gt;&lt;br /&gt;* Heading of the report.&lt;br /&gt;DATA: t_heading TYPE slis_t_listheader.&lt;br /&gt;&lt;br /&gt;*======================= Selection Screen ==========================*&lt;br /&gt;DATA: vcliente LIKE zrf_t0002-id_cliente,&lt;br /&gt;      vnombre LIKE zrf_t0002-nombre.&lt;br /&gt;SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.&lt;br /&gt;SELECT-OPTIONS id_cli FOR zrf_t0002-id_cliente.&lt;br /&gt;SELECTION-SCREEN: END OF BLOCK b1.&lt;br /&gt;&lt;br /&gt;*======================== Event Blocks =============================*&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR id_cli-low.&lt;br /&gt;  SELECT id_cliente&lt;br /&gt;  FROM   zrf_t0002&lt;br /&gt;  INTO   TABLE it_cliente&lt;br /&gt;  WHERE  id_cliente IN id_cli.&lt;br /&gt;  SORT   it_cliente BY cliente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'&lt;br /&gt;       EXPORTING&lt;br /&gt;            retfield        = 'CLIENTE'&lt;br /&gt;            window_title    = 'CLIENTE'&lt;br /&gt;            value_org       = 'S'&lt;br /&gt;       TABLES&lt;br /&gt;            value_tab       = it_cliente&lt;br /&gt;            return_tab      = it_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 it_match INDEX 1.&lt;br /&gt;    vcliente = it_match-fieldval.&lt;br /&gt;    MOVE vcliente TO id_cli-low.&lt;br /&gt;    SELECT SINGLE nombre FROM zrf_t0002&lt;br /&gt;    INTO vnombre WHERE id_cliente IN id_cli.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR id_cli-high.&lt;br /&gt;  SELECT id_cliente&lt;br /&gt;  FROM   zrf_t0002&lt;br /&gt;  INTO   TABLE it_cliente&lt;br /&gt;  WHERE  id_cliente IN id_cli.&lt;br /&gt;  SORT   it_cliente BY cliente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'&lt;br /&gt;       EXPORTING&lt;br /&gt;            retfield        = 'ID_CLIENTE'&lt;br /&gt;            window_title    = 'CLIENTE'&lt;br /&gt;            value_org       = 'S'&lt;br /&gt;       TABLES&lt;br /&gt;            value_tab       = it_cliente&lt;br /&gt;            return_tab      = it_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 it_match INDEX 1.&lt;br /&gt;    vcliente = it_match-fieldval.&lt;br /&gt;    MOVE vcliente TO id_cli-high.&lt;br /&gt;    SELECT SINGLE nombre FROM zrf_t0002&lt;br /&gt;    INTO vnombre WHERE id_cliente IN id_cli.&lt;br /&gt;&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;  PERFORM get_data USING it_data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;  PERFORM build_alv USING it_data t_heading.&lt;br /&gt;&lt;br /&gt;*======================== Subroutines ==============================*&lt;br /&gt;&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  get_data&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*       Gets the information to be shown in the report.&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;FORM get_data USING t_data TYPE tp_tbl_data.&lt;br /&gt;&lt;br /&gt;  SELECT zrf_t0002~id_cliente&lt;br /&gt;  zrf_t0002~nombre&lt;br /&gt;  zrf_t0002~apellido1&lt;br /&gt;  zrf_t0002~apellido2&lt;br /&gt;&lt;br /&gt;  INTO TABLE t_data&lt;br /&gt;  FROM zrf_t0002&lt;br /&gt;  WHERE zrf_t0002~id_cliente IN id_cli.&lt;br /&gt;&lt;br /&gt;ENDFORM.                                                    " get_data&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  build_alv&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*       Builds and display the ALV Grid.&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;FORM build_alv USING t_data TYPE tp_tbl_data&lt;br /&gt;                     t_heading  TYPE slis_t_listheader.&lt;br /&gt;&lt;br /&gt;* ALV required data objects.&lt;br /&gt;  DATA: w_title   TYPE lvc_title,&lt;br /&gt;        w_repid   TYPE syrepid,&lt;br /&gt;        w_comm    TYPE slis_formname,&lt;br /&gt;        w_status  TYPE slis_formname,&lt;br /&gt;        x_layout  TYPE slis_layout_alv,&lt;br /&gt;        t_event    TYPE slis_t_event,&lt;br /&gt;        t_fieldcat TYPE slis_t_fieldcat_alv,&lt;br /&gt;        t_sort     TYPE slis_t_sortinfo_alv.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  REFRESH t_fieldcat.&lt;br /&gt;  REFRESH t_event.&lt;br /&gt;  REFRESH t_sort.&lt;br /&gt;  CLEAR x_layout.&lt;br /&gt;  CLEAR w_title.&lt;br /&gt;&lt;br /&gt;* Field Catalog&lt;br /&gt;  PERFORM set_fieldcat2 USING:&lt;br /&gt;1 'CLIENTE' 'CLIENTE' 'ZRF_T0002' 7 space  'CLIENTE'&lt;br /&gt;'CLIENTE'  'CLIENTE'  'CLIENTE' space space space space space&lt;br /&gt;space t_fieldcat ,&lt;br /&gt;3 'NOMBRE' 'NOMBRE' 'ZRF_T0002' 15 space  'NOMBRE'  'NOMBRE'&lt;br /&gt;'NOMBRE'  'NOMBRE' space space space space space space t_fieldcat ,&lt;br /&gt;4 'APELLIDO1' 'APELLIDO1' 'ZPM_T0004' 25 space  'APELLIDO1'&lt;br /&gt;'APELLIDO1'  'APELLIDO1'  'APELLIDO1' space&lt;br /&gt;space space space space space t_fieldcat ,&lt;br /&gt;5 'APELLIDO2' 'APELLIDO2' 'ZPM_T0004' 25 space  'APELLIDO2'&lt;br /&gt;'APELLIDO2'  'APELLIDO2'  'APELLIDO2' space&lt;br /&gt;space space space space space t_fieldcat .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Layout&lt;br /&gt;  x_layout-zebra = 'X'.&lt;br /&gt;&lt;br /&gt;* Top of page heading&lt;br /&gt;  PERFORM set_top_page_heading USING t_heading t_event.&lt;br /&gt;&lt;br /&gt;* Events&lt;br /&gt;  PERFORM set_events USING t_event.&lt;br /&gt;&lt;br /&gt;* GUI Status&lt;br /&gt;  w_status = ''.&lt;br /&gt;  w_repid = sy-repid.&lt;br /&gt;&lt;br /&gt;* Title&lt;br /&gt;&lt;br /&gt;* User commands&lt;br /&gt;  w_comm   = 'USER_COMMAND'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Displays the ALV grid&lt;br /&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;       EXPORTING&lt;br /&gt;            i_callback_program       = w_repid&lt;br /&gt;            it_fieldcat              = t_fieldcat&lt;br /&gt;            is_layout                = x_layout&lt;br /&gt;            it_sort                  = t_sort&lt;br /&gt;            i_callback_pf_status_set = w_status&lt;br /&gt;            i_callback_user_command  = w_comm&lt;br /&gt;            i_save                   = 'X'&lt;br /&gt;            it_events                = t_event&lt;br /&gt;            i_grid_title             = w_title&lt;br /&gt;       TABLES&lt;br /&gt;            t_outtab                 = t_data&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 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;ENDFORM.                    " build_alv.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  set_top_page_heading&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*       Creates the report headings.&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;FORM set_top_page_heading USING t_heading TYPE slis_t_listheader&lt;br /&gt;                                t_events  TYPE slis_t_event.&lt;br /&gt;&lt;br /&gt;  DATA: x_heading TYPE slis_listheader,&lt;br /&gt;        x_event   TYPE LINE OF slis_t_event.&lt;br /&gt;&lt;br /&gt;* Report title&lt;br /&gt;  CLEAR t_heading[].&lt;br /&gt;  CLEAR x_heading.&lt;br /&gt;  x_heading-typ = 'H'.&lt;br /&gt;  x_heading-info = ''(001).&lt;br /&gt;  APPEND x_heading TO t_heading.&lt;br /&gt;&lt;br /&gt;* Date of execution&lt;br /&gt;  CLEAR x_heading.&lt;br /&gt;  x_heading-typ = 'S'.&lt;br /&gt;  x_heading-key = 'Date: '.&lt;br /&gt;  WRITE sy-datum TO x_heading-info.&lt;br /&gt;  APPEND x_heading TO t_heading.&lt;br /&gt;&lt;br /&gt;* Time of execution&lt;br /&gt;  CLEAR x_heading.&lt;br /&gt;  x_heading-typ = 'S'.&lt;br /&gt;  x_heading-key = 'Time: '.&lt;br /&gt;  WRITE sy-uzeit TO x_heading-info.&lt;br /&gt;  APPEND x_heading TO t_heading.&lt;br /&gt;&lt;br /&gt;* Top of page event&lt;br /&gt;  x_event-name = slis_ev_top_of_page.&lt;br /&gt;  x_event-form = 'TOP_OF_PAGE'.&lt;br /&gt;  APPEND x_event TO t_events.&lt;br /&gt;&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  set_events&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*       Sets the events for ALV.&lt;br /&gt;*       The TOP_OF_PAGE event is alredy being registered in&lt;br /&gt;*       the set_top_page_heading subroutine.&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;FORM set_events USING t_events TYPE slis_t_event.&lt;br /&gt;&lt;br /&gt;  DATA: x_event   TYPE LINE OF slis_t_event.&lt;br /&gt;&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  set_order&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*       Adds an entry to the order table.&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot&lt;br /&gt;                     t_sort TYPE slis_t_sortinfo_alv.&lt;br /&gt;&lt;br /&gt;  DATA: x_sort TYPE slis_sortinfo_alv.&lt;br /&gt;&lt;br /&gt;  CLEAR x_sort.&lt;br /&gt;  x_sort-fieldname = p_fieldname.&lt;br /&gt;  x_sort-tabname   = p_tabname.&lt;br /&gt;  x_sort-up = p_up.&lt;br /&gt;  x_sort-down = p_down.&lt;br /&gt;  x_sort-subtot = p_subtot.&lt;br /&gt;  APPEND x_sort TO t_sort.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "set_order&lt;br /&gt;&lt;br /&gt;*-------------------------------------*&lt;br /&gt;FORM set_fieldcat2 USING&lt;br /&gt;      p_colpos p_fieldname p_ref_fieldname p_ref_tabname&lt;br /&gt;      p_outputlen p_noout&lt;br /&gt;      p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt&lt;br /&gt;      p_hotspot p_showasicon p_checkbox p_edit&lt;br /&gt;      p_dosum&lt;br /&gt;      t_fieldcat TYPE slis_t_fieldcat_alv.&lt;br /&gt;&lt;br /&gt;  DATA: wa_fieldcat TYPE slis_fieldcat_alv.&lt;br /&gt;&lt;br /&gt;  CLEAR wa_fieldcat.&lt;br /&gt;&lt;br /&gt;* General settings&lt;br /&gt;  wa_fieldcat-fieldname = p_fieldname.&lt;br /&gt;  wa_fieldcat-col_pos = p_colpos.&lt;br /&gt;  wa_fieldcat-no_out = p_noout.&lt;br /&gt;  wa_fieldcat-hotspot = p_hotspot.&lt;br /&gt;  wa_fieldcat-checkbox = p_checkbox.&lt;br /&gt;  wa_fieldcat-icon = p_showasicon.&lt;br /&gt;  wa_fieldcat-do_sum = p_dosum.&lt;br /&gt;&lt;br /&gt;  IF p_ref_tabname IS INITIAL.&lt;br /&gt;    wa_fieldcat-rollname =   p_ref_fieldname.&lt;br /&gt;  ELSE.&lt;br /&gt;    wa_fieldcat-ref_tabname = p_ref_tabname.&lt;br /&gt;    IF p_ref_fieldname EQ space.&lt;br /&gt;      wa_fieldcat-ref_fieldname =   wa_fieldcat-fieldname.&lt;br /&gt;    ELSE.&lt;br /&gt;      wa_fieldcat-ref_fieldname =   p_ref_fieldname.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Set output length.&lt;br /&gt;  IF NOT p_outputlen IS INITIAL.&lt;br /&gt;    wa_fieldcat-outputlen = p_outputlen.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Set text headers.&lt;br /&gt;  IF NOT p_seltext_m IS INITIAL.&lt;br /&gt;    wa_fieldcat-seltext_m = p_seltext_m.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF NOT p_seltext_l IS INITIAL.&lt;br /&gt;    wa_fieldcat-seltext_l = p_seltext_l.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF NOT p_seltext_s IS INITIAL.&lt;br /&gt;    wa_fieldcat-seltext_s = p_seltext_s.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF NOT p_reptext_ddic IS INITIAL.&lt;br /&gt;    wa_fieldcat-reptext_ddic = p_reptext_ddic.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  IF NOT p_ddictxt IS INITIAL.&lt;br /&gt;    wa_fieldcat-ddictxt = p_ddictxt.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* Set as editable or not.&lt;br /&gt;  IF NOT p_edit IS INITIAL.&lt;br /&gt;    wa_fieldcat-input     = 'X'.&lt;br /&gt;    wa_fieldcat-edit     = 'X'.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  APPEND wa_fieldcat TO t_fieldcat.&lt;br /&gt;&lt;br /&gt;ENDFORM.                   "set_fieldcat2&lt;br /&gt;&lt;br /&gt;*======================== Subroutines called by ALV ================*&lt;br /&gt;&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  top_of_page&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*       Called on top_of_page ALV event.&lt;br /&gt;*       Prints the heading.&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;FORM top_of_page.&lt;br /&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;       EXPORTING&lt;br /&gt;            it_list_commentary = t_heading.&lt;br /&gt;ENDFORM.                    " alv_top_of_page&lt;br /&gt;&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  user_command&lt;br /&gt;*&amp;------------------------------------------------------------------*&lt;br /&gt;*       Called on user_command ALV event.&lt;br /&gt;*       Executes custom commands.&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;FORM user_command USING r_ucomm     LIKE sy-ucomm&lt;br /&gt;                        rs_selfield TYPE slis_selfield.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "user_command&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-1061321837273789128?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/1061321837273789128/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=1061321837273789128' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/1061321837273789128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/1061321837273789128'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/03/alv-robot.html' title='ALV ROBOT.'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EVGW4AH1p2o/R9F8JzfxdHI/AAAAAAAAACU/KGmzEUone0M/s72-c/alvrobot.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-6141071467779754858</id><published>2008-02-29T13:01:00.003-06:00</published><updated>2008-03-07T11:48:49.644-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULE POOL - EJEMPLO'/><title type='text'>Creacion de un TextBox en Dynpro</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9F_8TfxdJI/AAAAAAAAACk/7COs1TXvjgs/s1600-h/textbox.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9F_8TfxdJI/AAAAAAAAACk/7COs1TXvjgs/s320/textbox.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5175058120827827346" /&gt;&lt;/a&gt;&lt;br /&gt;Codigo para insertar un ComboBox en un Dynpro parecido a los de Visual Basic, Debemos tener un input/output field en la pantalla, llamado "mes", etse field debe tener la propiedad "DropDown" en "ListBox".&lt;br /&gt;&lt;br /&gt;********************&lt;br /&gt;FLOW LOGIC DYNPROO&lt;br /&gt;-----------------------&lt;br /&gt;PROCESS BEFORE OUTPUT.&lt;br /&gt;MODULE PBO. "STATUS_0100.&lt;br /&gt;&lt;br /&gt;PROCESS AFTER INPUT.&lt;br /&gt;MODULE PAI. "USER_COMMAND_0100.&lt;br /&gt;&lt;br /&gt;PROCESS ON VALUE-REQUEST.&lt;br /&gt;FIELD MES MODULE SET_DATA_MES.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Codigo:&lt;br /&gt;***********************&lt;br /&gt;*INCLUDE TOP&lt;br /&gt;***********************&lt;br /&gt;DATA:&lt;br /&gt;    itabitems like listitem occurs 0 with header line,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*****************&lt;br /&gt;*INCLUDE OUTPUT&lt;br /&gt;*****************&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*   INCLUDE ZRF_0009O01                                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Module  PBO  OUTPUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE pbo OUTPUT.&lt;br /&gt;  SET PF-STATUS '009'.&lt;br /&gt;  SET TITLEBAR 'MAINTITLE '.&lt;br /&gt;&lt;br /&gt;ENDMODULE.                 " PBO  OUTPUT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;************************&lt;br /&gt;*INCLUDE INPUT&lt;br /&gt;************************&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*   INCLUDE ZRF_0009I01                                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Module  PAI  INPUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE pai INPUT.&lt;br /&gt;  CASE sy-ucomm.&lt;br /&gt;    WHEN 'BACK' OR 'EXIT' OR 'CANC'.&lt;br /&gt;      PERFORM leave_program.&lt;br /&gt;    ENDCASE.&lt;br /&gt;&lt;br /&gt;ENDMODULE.                 " PAI  INPUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Module  SET_DATA_MES  INPUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE set_data_mes INPUT.&lt;br /&gt;  IF CONT = 0.&lt;br /&gt;  CONT = 1.&lt;br /&gt;  itabitems-item = 'ENERO'.       APPEND itabitems.&lt;br /&gt;  itabitems-item = 'FEBRERO'.     APPEND itabitems.&lt;br /&gt;  itabitems-item = 'MARZO'.       APPEND itabitems.&lt;br /&gt;  itabitems-item = 'ABRIL'.       APPEND itabitems.&lt;br /&gt;  itabitems-item = 'MAYO'.        APPEND itabitems.&lt;br /&gt;  itabitems-item = 'JUNIO'.       APPEND itabitems.&lt;br /&gt;  itabitems-item = 'JULIO'.       APPEND itabitems.&lt;br /&gt;  itabitems-item = 'AGOSTO'.      APPEND itabitems.&lt;br /&gt;  itabitems-item = 'SEPTIEMBRE'.  APPEND itabitems.&lt;br /&gt;  itabitems-item = 'OCTUBRE'.     APPEND itabitems.&lt;br /&gt;  itabitems-item = 'NOVIEMBRE'.   APPEND itabitems.&lt;br /&gt;  itabitems-item = 'DICIEMBRE'.   APPEND itabitems.&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'&lt;br /&gt;       EXPORTING&lt;br /&gt;            retfield        = 'CARRID'&lt;br /&gt;            value_org       = 'S'&lt;br /&gt;       TABLES&lt;br /&gt;            value_tab       = itabitems&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 &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;ENDIF.&lt;br /&gt;ENDMODULE.                 " SET_DATA_MES  INPUT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;******************************&lt;br /&gt;*INCLUDE FORMS&lt;br /&gt;******************************&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*   INCLUDE ZRF_0009F01                                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  LEAVE_PROGRAM&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;FORM leave_program.&lt;br /&gt;  LEAVE PROGRAM.&lt;br /&gt;ENDFORM.                    " LEAVE_PROGRAM&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-6141071467779754858?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/6141071467779754858/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=6141071467779754858' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6141071467779754858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6141071467779754858'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/creacion-de-un-textbox-en-dynpro.html' title='Creacion de un TextBox en Dynpro'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EVGW4AH1p2o/R9F_8TfxdJI/AAAAAAAAACk/7COs1TXvjgs/s72-c/textbox.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-2067078608209279579</id><published>2008-02-29T11:36:00.004-06:00</published><updated>2008-03-07T11:55:53.992-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES - ALV'/><title type='text'>ALV TREE</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9GBmTfxdKI/AAAAAAAAACs/7jvDngZjd0E/s1600-h/alv+tree.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9GBmTfxdKI/AAAAAAAAACs/7jvDngZjd0E/s320/alv+tree.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5175059941893960866" /&gt;&lt;/a&gt;&lt;br /&gt;Este Programa permite crear un ALV TREE en un customcontrol, debemos tener customcontrol en nuestra dynproo llamado "CCONTAINER". &lt;br /&gt;&lt;br /&gt;En este ejemplo utilizo una tabla llamada zrf_t0000, cuya estructura es la siguiente.&lt;br /&gt;MANDT-----------MANDT&lt;br /&gt;ID--------------NUMC&lt;br /&gt;DEPARTAMENTOS---CHAR&lt;br /&gt;PANTALLAS-------CHAR&lt;br /&gt;TRANSACCIONES---CHAR&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CODIGO:&lt;br /&gt;********************************&lt;br /&gt;Screen Flow Logic:&lt;br /&gt;********************************&lt;br /&gt;PROCESS BEFORE OUTPUT.&lt;br /&gt;MODULE STATUS_0100.&lt;br /&gt; &lt;br /&gt;PROCESS AFTER INPUT.&lt;br /&gt;MODULE USER_COMMAND_0100.&lt;br /&gt;--------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;**********************&lt;br /&gt;*INCLUDE TOP&lt;br /&gt;**********************&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp; Include ZALVTREETOP                                                 *&lt;br /&gt;*&amp;                                                                     *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;PROGRAM  ZALVTREE.&lt;br /&gt;&lt;br /&gt;tables:&lt;br /&gt;    ZRF_T0000.&lt;br /&gt;&lt;br /&gt;include &lt;icon&gt;.&lt;br /&gt;&lt;br /&gt;DATA: g_alv_tree         TYPE REF TO cl_gui_alv_tree,&lt;br /&gt;      g_custom_container TYPE REF TO cl_gui_custom_container.&lt;br /&gt;&lt;br /&gt;DATA: gt_TONO      TYPE ZRF_T0000 OCCURS 0,      "Output-Table&lt;br /&gt;      ok_code LIKE sy-ucomm,&lt;br /&gt;      save_ok LIKE sy-ucomm,           "OK-Code&lt;br /&gt;      g_max type i value 255,&lt;br /&gt;      lztono like line of GT_tono.&lt;br /&gt;&lt;br /&gt;DATA:&lt;br /&gt;      CAT_CAMPOS TYPE LVC_T_FCAT,&lt;br /&gt;      LCAT_CAMPOS LIKE LINE OF CAT_CAMPOS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------&lt;br /&gt;* LOCAL CLASSES&lt;br /&gt;*---------------------------------------------------------------&lt;br /&gt;*§1. Define a (local) class for event handling&lt;br /&gt;&lt;br /&gt;CLASS lcl_tree_event_receiver DEFINITION.&lt;br /&gt;&lt;br /&gt;  PUBLIC SECTION.&lt;br /&gt;*§2. Define an event handler method for each event you want to react to.&lt;br /&gt;    METHODS handle_node_double_click&lt;br /&gt;      FOR EVENT node_double_click OF cl_gui_alv_tree&lt;br /&gt;      IMPORTING node_key sender.&lt;br /&gt;* 'sender' is an implicit event parameter that is provided by&lt;br /&gt;* ABAP Objects runtime system. It contains a reference to the&lt;br /&gt;* object that fired the event. You may directly use it to&lt;br /&gt;* call methods of this instance.&lt;br /&gt;&lt;br /&gt;ENDCLASS.&lt;br /&gt;******************************************************************&lt;br /&gt;CLASS lcl_tree_event_receiver IMPLEMENTATION.&lt;br /&gt;*§3. Implement your event handler methods.&lt;br /&gt;&lt;br /&gt;  METHOD handle_node_double_click.&lt;br /&gt;    data: lt_children type lvc_t_nkey.&lt;br /&gt;    data temp type p.&lt;br /&gt;    DATA: e_node_text type LVC_VALUE.&lt;br /&gt;    DATA: TRANSACCION(10) TYPE C.&lt;br /&gt;*first check if the node is a leaf, i.e. can not be expanded&lt;br /&gt;&lt;br /&gt;    call method sender-&gt;get_children&lt;br /&gt;              exporting i_node_key = node_key&lt;br /&gt;              importing et_children = lt_children.&lt;br /&gt;&lt;br /&gt;    if lt_children is initial.&lt;br /&gt;****************************************************************&lt;br /&gt;CALL METHOD sender-&gt;get_outtab_line&lt;br /&gt;    EXPORTING i_node_key = node_key&lt;br /&gt;    IMPORTING e_node_text = e_node_text.&lt;br /&gt;&lt;br /&gt;    SELECT TRANSACCIONES INTO TRANSACCION&lt;br /&gt;    FROM ZRF_T0000&lt;br /&gt;    WHERE PANTALLAS = e_node_text.&lt;br /&gt;    ENDSELECT.&lt;br /&gt;    CALL TRANSACTION TRANSACCION.&lt;br /&gt;****************************************************************&lt;br /&gt;    endif.&lt;br /&gt;  ENDMETHOD.&lt;br /&gt;ENDCLASS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;**********************&lt;br /&gt;* INCLUDE OUTPUT&lt;br /&gt;**********************&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*   INCLUDE ZALVTREEO01                                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Module  STATUS_0100  OUTPUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE status_0100 OUTPUT.&lt;br /&gt;  SET PF-STATUS 'GUI'.&lt;br /&gt;  SET TITLEBAR 'MAINTITLE'.&lt;br /&gt;&lt;br /&gt;  IF g_alv_tree IS INITIAL.&lt;br /&gt;    PERFORM init_tree.&lt;br /&gt;&lt;br /&gt;    CALL METHOD cl_gui_cfw=&gt;flush&lt;br /&gt;            EXCEPTIONS cntl_system_error = 1&lt;br /&gt;                       cntl_error        = 2.&lt;br /&gt;    IF sy-subrc NE 0.&lt;br /&gt;      CALL FUNCTION 'POPUP_TO_INFORM'&lt;br /&gt;           EXPORTING&lt;br /&gt;                titel = 'Automation Queue failure'(801)&lt;br /&gt;                txt1  = 'Internal error:'(802)&lt;br /&gt;                txt2  = 'A method in the automation queue'(803)&lt;br /&gt;                txt3  = 'caused a failure.'(804).&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;******************&lt;br /&gt;*INCLUDE IN&lt;br /&gt;******************&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*   INCLUDE ZALVTREEI01                                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Module  USER_COMMAND_0100  INPUT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;module USER_COMMAND_0100 input.&lt;br /&gt;  CASE SY-UCOMM.&lt;br /&gt;    WHEN 'CANC' OR 'EXIT' OR 'BACK'.&lt;br /&gt;      LEAVE PROGRAM.&lt;br /&gt;    WHEN OTHERS.&lt;br /&gt;* §6. Call dispatch to process toolbar functions&lt;br /&gt;      CALL METHOD cl_gui_cfw=&gt;dispatch.&lt;br /&gt;    ENDCASE.&lt;br /&gt;    CALL METHOD cl_gui_cfw=&gt;flush.&lt;br /&gt;endmodule.                 " USER_COMMAND_0100  INPUT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;***********************&lt;br /&gt;*INCLUDE FORMS&lt;br /&gt;***********************&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*   INCLUDE ZALVTREEF01                                                *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  init_tree&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*      INICIALIZACION DEL TREE&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form init_tree.&lt;br /&gt;* create container for alv-tree&lt;br /&gt;*  DATA: l_tree_container_name(30) TYPE c.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  CREATE OBJECT g_custom_container&lt;br /&gt;      EXPORTING&lt;br /&gt;            container_name = 'CCONTAINER'&lt;br /&gt;      EXCEPTIONS&lt;br /&gt;            cntl_error                  = 1&lt;br /&gt;            cntl_system_error           = 2&lt;br /&gt;            create_error                = 3&lt;br /&gt;            lifetime_error              = 4&lt;br /&gt;            lifetime_dynpro_dynpro_link = 5.&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;    MESSAGE x208(00) WITH 'ERROR'(100).&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* create tree control&lt;br /&gt;  CREATE OBJECT g_alv_tree&lt;br /&gt;    EXPORTING&lt;br /&gt;        parent              = g_custom_container&lt;br /&gt;        node_selection_mode = cl_gui_column_tree=&gt;node_sel_mode_single&lt;br /&gt;        item_selection      = 'X'&lt;br /&gt;        no_html_header      = 'X'&lt;br /&gt;        no_toolbar          = ''&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;        cntl_error                   = 1&lt;br /&gt;        cntl_system_error            = 2&lt;br /&gt;        create_error                 = 3&lt;br /&gt;        lifetime_error               = 4&lt;br /&gt;        illegal_node_selection_mode  = 5&lt;br /&gt;        failed                       = 6&lt;br /&gt;        illegal_column_name          = 7.&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;    MESSAGE x208(00) WITH 'ERROR'.     "#EC NOTEXT&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;* §2. Create Hierarchy-header&lt;br /&gt;* The simple ALV Tree uses the text of the fields which were used&lt;br /&gt;* for sorting to define this header. When you use&lt;br /&gt;* the 'normal' ALV Tree the hierarchy is build up freely&lt;br /&gt;* by the programmer this is not possible, so he has to define it&lt;br /&gt;* himself.&lt;br /&gt;  DATA l_hierarchy_header TYPE treev_hhdr.&lt;br /&gt;  PERFORM build_hierarchy_header CHANGING l_hierarchy_header.&lt;br /&gt;&lt;br /&gt;* §3. Create empty Tree Control&lt;br /&gt;* IMPORTANT: Table 'gt_sflight' must be empty. Do not change this table&lt;br /&gt;* (even after this method call). You can change data of your table&lt;br /&gt;* by calling methods of CL_GUI_ALV_TREE.&lt;br /&gt;* Furthermore, the output table 'gt_outtab' must be global and can&lt;br /&gt;* only be used for one ALV Tree Control.&lt;br /&gt;&lt;br /&gt;PERFORM CATCAMPOS.&lt;br /&gt;&lt;br /&gt;* create info-table for html-header&lt;br /&gt;  data: lt_list_commentary type slis_t_listheader,&lt;br /&gt;        l_logo             type sdydo_value.&lt;br /&gt;  perform build_comment using&lt;br /&gt;                 lt_list_commentary&lt;br /&gt;                 l_logo.&lt;br /&gt;&lt;br /&gt;  data: ls_variant type disvariant.&lt;br /&gt;  ls_variant-report = sy-repid.&lt;br /&gt;&lt;br /&gt;  CALL METHOD g_alv_tree-&gt;set_table_for_first_display&lt;br /&gt;     EXPORTING&lt;br /&gt;                i_structure_name     = 'ZRF_T0000'&lt;br /&gt;                is_hierarchy_header  = l_hierarchy_header&lt;br /&gt;                it_list_commentary   = lt_list_commentary&lt;br /&gt;                i_logo               = l_logo&lt;br /&gt;                i_background_id      = 'ALV_BACKGROUND'&lt;br /&gt;                is_variant            = ls_variant&lt;br /&gt;                i_save               = 'A'&lt;br /&gt;     CHANGING&lt;br /&gt;               it_outtab            = gt_TONO "table must be empty !&lt;br /&gt;               it_fieldcatalog     =  CAT_CAMPOS.&lt;br /&gt;&lt;br /&gt;* §4. Create hierarchy (nodes and leaves)&lt;br /&gt;  PERFORM create_hierarchy.&lt;br /&gt;  PERFORM register_events.&lt;br /&gt;* §5. Send data to frontend.&lt;br /&gt;  CALL METHOD g_alv_tree-&gt;frontend_update.&lt;br /&gt;* wait for automatic flush at end of pbo&lt;br /&gt;ENDFORM.                               " init_tree&lt;br /&gt;&lt;br /&gt;FORM CATCAMPOS.&lt;br /&gt;REFRESH CAT_CAMPOS.&lt;br /&gt;CLEAR LCAT_CAMPOS.&lt;br /&gt;LCAT_CAMPOS-FIELDNAME = 'DEPARTAMENTOS'.&lt;br /&gt;LCAT_CAMPOS-REF_TABLE = 'ZRF_T0000'.&lt;br /&gt;LCAT_CAMPOS-COLTEXT = 'DEPARTAMENTO'.&lt;br /&gt;LCAT_CAMPOS-OUTPUTLEN = 10.&lt;br /&gt;LCAT_CAMPOS-EMPHASIZE = 'C200'.&lt;br /&gt;*LCAT_CAMPOS-NO_OUT = 'X'.&lt;br /&gt;APPEND LCAT_CAMPOS TO CAT_CAMPOS.&lt;br /&gt;&lt;br /&gt;CLEAR LCAT_CAMPOS.&lt;br /&gt;LCAT_CAMPOS-FIELDNAME = 'PANTALLAS'.&lt;br /&gt;LCAT_CAMPOS-REF_TABLE = 'ZRF_T0000'.&lt;br /&gt;LCAT_CAMPOS-COLTEXT = 'PROCESO'.&lt;br /&gt;LCAT_CAMPOS-OUTPUTLEN = 10.&lt;br /&gt;LCAT_CAMPOS-EMPHASIZE = 'C200'.&lt;br /&gt;*LCAT_CAMPOS-NO_OUT = 'X'.&lt;br /&gt;APPEND LCAT_CAMPOS TO CAT_CAMPOS.&lt;br /&gt;&lt;br /&gt;CLEAR LCAT_CAMPOS.&lt;br /&gt;LCAT_CAMPOS-FIELDNAME = 'ID'.&lt;br /&gt;LCAT_CAMPOS-REF_TABLE = 'ZRF_T0000'.&lt;br /&gt;LCAT_CAMPOS-COLTEXT = 'ID'.&lt;br /&gt;LCAT_CAMPOS-OUTPUTLEN = 10.&lt;br /&gt;LCAT_CAMPOS-EMPHASIZE = 'C200'.&lt;br /&gt;*LCAT_CAMPOS-NO_OUT = 'X'.&lt;br /&gt;APPEND LCAT_CAMPOS TO CAT_CAMPOS.&lt;br /&gt;&lt;br /&gt;CLEAR LCAT_CAMPOS.&lt;br /&gt;LCAT_CAMPOS-FIELDNAME = 'TRANSACCIONES'.&lt;br /&gt;LCAT_CAMPOS-REF_TABLE = 'ZRF_T0000'.&lt;br /&gt;LCAT_CAMPOS-COLTEXT = 'TRANSACCION'.&lt;br /&gt;LCAT_CAMPOS-OUTPUTLEN = 10.&lt;br /&gt;LCAT_CAMPOS-EMPHASIZE = 'C200'.&lt;br /&gt;*LCAT_CAMPOS-NO_OUT = 'X'.&lt;br /&gt;APPEND LCAT_CAMPOS TO CAT_CAMPOS.&lt;br /&gt;&lt;br /&gt;endform.                    " init_tree&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;**&amp;---------------------------------------------------------------------&lt;br /&gt;**&lt;br /&gt;**&amp;      Form  build_hierarchy_header&lt;br /&gt;**&amp;---------------------------------------------------------------------&lt;br /&gt;**&lt;br /&gt;**       build hierarchy-header-information&lt;br /&gt;**----------------------------------------------------------------------&lt;br /&gt;**&lt;br /&gt;**      --&gt;P_L_HIERARCHY_HEADER  strucxture for hierarchy-header&lt;br /&gt;**----------------------------------------------------------------------&lt;br /&gt;**&lt;br /&gt;FORM build_hierarchy_header CHANGING&lt;br /&gt;      p_hierarchy_header TYPE treev_hhdr.&lt;br /&gt;&lt;br /&gt;  p_hierarchy_header-heading = 'DEPARTAMENTOS'(300).&lt;br /&gt;  p_hierarchy_header-tooltip = 'Escoga un departamento...'(400).&lt;br /&gt;  p_hierarchy_header-width = 10.&lt;br /&gt;  p_hierarchy_header-width_pix = ' '.&lt;br /&gt;&lt;br /&gt;ENDFORM.                               " build_hierarchy_header&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  build_comment&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_LT_LIST_COMMENTARY  text&lt;br /&gt;*      --&gt;P_L_LOGO  text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form build_comment using&lt;br /&gt;      pt_list_commentary type slis_t_listheader&lt;br /&gt;      p_logo             type sdydo_value.&lt;br /&gt;&lt;br /&gt;  data: ls_line type slis_listheader.&lt;br /&gt;  GET TIME.&lt;br /&gt;* LIST HEADING LINE: TYPE H&lt;br /&gt;  clear ls_line.&lt;br /&gt;  ls_line-typ  = 'H'.&lt;br /&gt;* LS_LINE-KEY:  NOT USED FOR THIS TYPE&lt;br /&gt;  ls_line-info = 'Rodocletas Feliz S.A. de C.V.'.       "#EC NOTEXT&lt;br /&gt;  append ls_line to pt_list_commentary.&lt;br /&gt;* STATUS LINE: TYPE S&lt;br /&gt;  clear ls_line.&lt;br /&gt;  ls_line-typ  = 'S'.&lt;br /&gt;  ls_line-key  = 'valid until'.                          "#EC NOTEXT&lt;br /&gt;  ls_line-info = SY-DATUM.                      "#EC NOTEXT&lt;br /&gt;  append ls_line to pt_list_commentary.&lt;br /&gt;  ls_line-key  = 'time'.&lt;br /&gt;  ls_line-info = SY-UZEIT.                              "#EC NOTEXT&lt;br /&gt;  append ls_line to pt_list_commentary.&lt;br /&gt;* ACTION LINE: TYPE A&lt;br /&gt;  clear ls_line.&lt;br /&gt;  ls_line-typ  = 'A'.&lt;br /&gt;* LS_LINE-KEY:  NOT USED FOR THIS TYPE&lt;br /&gt;  ls_line-info = 'Seleccione un departamento y su transaccion'."NOTEXT&lt;br /&gt;  append ls_line to pt_list_commentary.&lt;br /&gt;&lt;br /&gt;  p_logo = 'ENJOYSAP_LOGO'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;endform.                    " build_comment&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  create_hierarchy&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       CREACION DE JERARQUIA&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form create_hierarchy.&lt;br /&gt;  DATA: ls_TONO TYPE ZRF_T0000,&lt;br /&gt;        lt_TONO TYPE ZRF_T0000 OCCURS 0,&lt;br /&gt;        ldepartamento type ZRF_T0000-departamentos,&lt;br /&gt;        ldepartamento_anterior type ZRF_T0000-departamentos,&lt;br /&gt;        lpantalla type ZRF_T0000-pantallas,&lt;br /&gt;        lpantalla_anterior type ZRF_T0000-pantallas.&lt;br /&gt;&lt;br /&gt;  DATA: l_VISTA TYPE lvc_nkey,&lt;br /&gt;        l_DEPARTAMENTO_key TYPE lvc_nkey,&lt;br /&gt;        l_PANTALLA_key TYPE lvc_nkey,&lt;br /&gt;        l_last_key TYPE lvc_nkey.&lt;br /&gt;&lt;br /&gt;* §4a. Select data&lt;br /&gt;  SELECT * FROM ZRF_T0000 INTO TABLE lt_TONO up to g_max rows.&lt;br /&gt;&lt;br /&gt;* §4b. Sort output table according to your conceived hierarchy&lt;br /&gt;* We sort in this order:&lt;br /&gt;*    departamento and pantalla (top level nodes)&lt;br /&gt;*      carrier id (next level)&lt;br /&gt;&lt;br /&gt;  SORT lt_TONO BY DEPARTAMENTOS pantallas.&lt;br /&gt;&lt;br /&gt;* Note: The top level nodes do not correspond to a field of the&lt;br /&gt;* output table. Instead we use data of the table to invent another&lt;br /&gt;* hierarchy level above the levels that can be build by sorting.&lt;br /&gt;&lt;br /&gt;* §4c. Add data to tree&lt;br /&gt;&lt;br /&gt;  LOOP AT lt_TONO INTO ls_TONO.&lt;br /&gt;* Prerequesite: The table is sorted.&lt;br /&gt;* You add a node everytime the values of a sorted field changes.&lt;br /&gt;* Finally, the complete line is added as a leaf below the last&lt;br /&gt;* node.&lt;br /&gt;&lt;br /&gt;    ldepartamento = ls_TONO-departamentos.&lt;br /&gt;    lpantalla = ls_tono-pantallas.&lt;br /&gt;&lt;br /&gt;* Top level nodes:&lt;br /&gt;    IF ldepartamento &lt;&gt; ldepartamento_anterior.&lt;br /&gt;        ldepartamento_anterior = ldepartamento.&lt;br /&gt;&lt;br /&gt;*Providing no key means that the node is added on top level:&lt;br /&gt;      PERFORM add_depto USING    ldepartamento&lt;br /&gt;                                      ''&lt;br /&gt;                             CHANGING l_departamento_key.&lt;br /&gt;* The departament changed, thus, there is no predecessor carrier&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;* pantalla nodes:&lt;br /&gt;* (always inserted as child of the last depto&lt;br /&gt;*  which is identified by 'l_departamento_key')&lt;br /&gt;    IF lpantalla &lt;&gt; lpantalla_anterior.   "on change of l_carrid&lt;br /&gt;      lpantalla_anterior = lpantalla.&lt;br /&gt;      PERFORM add_pantalla_line USING  ls_tono&lt;br /&gt;                                       l_departamento_key&lt;br /&gt;                              CHANGING l_pantalla_key.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;*add the related information of each row into each nodo.&lt;br /&gt;    PERFORM add_complete_line USING  ls_tono&lt;br /&gt;                                     l_pantalla_key&lt;br /&gt;                            CHANGING l_last_key.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;ENDFORM.                               " create_hierarchy&lt;br /&gt;&lt;br /&gt;**&amp;---------------------------------------------------------------------&lt;br /&gt;**&amp;      Form  add_depto&lt;br /&gt;**&amp;---------------------------------------------------------------------&lt;br /&gt;FORM add_depto  USING     depto TYPE c&lt;br /&gt;                          p_relat_key TYPE lvc_nkey&lt;br /&gt;                CHANGING  p_node_key TYPE lvc_nkey.&lt;br /&gt;&lt;br /&gt;  DATA: l_node_text TYPE lvc_value,&lt;br /&gt;        ls_tono TYPE ZRF_T0000,&lt;br /&gt;        l_month(15) TYPE c.            "output string for depto&lt;br /&gt;&lt;br /&gt;* get depto name for node text&lt;br /&gt;     l_node_text = depto.&lt;br /&gt;&lt;br /&gt;* add node:&lt;br /&gt;* ALV Tree firstly inserts this node as a leaf if you do not provide&lt;br /&gt;* IS_NODE_LAYOUT with field ISFOLDER set. In form 'add_carrid_line'&lt;br /&gt;* the leaf gets a child and thus ALV converts it to a folder&lt;br /&gt;* automatically.&lt;br /&gt;*&lt;br /&gt;  CALL METHOD g_alv_tree-&gt;add_node&lt;br /&gt;    EXPORTING&lt;br /&gt;          i_relat_node_key = p_relat_key&lt;br /&gt;          i_relationship   = cl_gui_column_tree=&gt;relat_last_child&lt;br /&gt;          i_node_text      = l_node_text&lt;br /&gt;          is_outtab_line   = ls_tono&lt;br /&gt;       IMPORTING&lt;br /&gt;          e_new_node_key = p_node_key.&lt;br /&gt;&lt;br /&gt;ENDFORM.                               " add_month&lt;br /&gt;**--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;FORM add_pantalla_line USING   ps_TONO TYPE ZRF_T0000&lt;br /&gt;                               p_relat_key TYPE lvc_nkey&lt;br /&gt;                     CHANGING  p_node_key TYPE lvc_nkey.&lt;br /&gt;&lt;br /&gt;  DATA: l_node_text TYPE lvc_value,&lt;br /&gt;        ls_TONO TYPE ZRF_T0000.&lt;br /&gt;&lt;br /&gt;* add node&lt;br /&gt;* ALV Tree firstly inserts this node as a leaf if you do not provide&lt;br /&gt;* IS_NODE_LAYOUT with field ISFOLDER set. In form 'add_carrid_line'&lt;br /&gt;* the leaf gets a child and thus ALV converts it to a folder&lt;br /&gt;* automatically.&lt;br /&gt;*&lt;br /&gt;  l_node_text =  ps_TONO-pantallas.&lt;br /&gt;  CALL METHOD g_alv_tree-&gt;add_node&lt;br /&gt;    EXPORTING&lt;br /&gt;          i_relat_node_key = p_relat_key&lt;br /&gt;          i_relationship   = cl_gui_column_tree=&gt;relat_last_child&lt;br /&gt;          i_node_text      = l_node_text&lt;br /&gt;          is_outtab_line   = ls_TONO&lt;br /&gt;       IMPORTING&lt;br /&gt;          e_new_node_key = p_node_key.&lt;br /&gt;&lt;br /&gt;ENDFORM.                               " add_carrid_line&lt;br /&gt;*&amp;---------------------------------------------------------------------&lt;br /&gt;*&lt;br /&gt;*&amp;      Form  add_complete_line&lt;br /&gt;*&amp;---------------------------------------------------------------------&lt;br /&gt;*&lt;br /&gt;FORM add_complete_line USING   ps_tono TYPE ZRF_T0000&lt;br /&gt;                               p_relat_key TYPE lvc_nkey&lt;br /&gt;                     CHANGING  p_node_key TYPE lvc_nkey.&lt;br /&gt;&lt;br /&gt;  DATA: l_node_text TYPE lvc_value.&lt;br /&gt;&lt;br /&gt;  write PS_TONO-pantallas to l_node_text.&lt;br /&gt;&lt;br /&gt;* add leaf:&lt;br /&gt;* ALV Tree firstly inserts this node as a leaf if you do not provide&lt;br /&gt;* IS_NODE_LAYOUT with field ISFOLDER set.&lt;br /&gt;* Since these nodes will never get children they stay leaves&lt;br /&gt;* (as intended).&lt;br /&gt;*&lt;br /&gt;  CALL METHOD g_alv_tree-&gt;add_node&lt;br /&gt;    EXPORTING&lt;br /&gt;          i_relat_node_key = p_relat_key&lt;br /&gt;          i_relationship   = cl_gui_column_tree=&gt;relat_last_child&lt;br /&gt;          is_outtab_line   = ps_tono&lt;br /&gt;          i_node_text      = l_node_text&lt;br /&gt;       IMPORTING&lt;br /&gt;          e_new_node_key = p_node_key.&lt;br /&gt;&lt;br /&gt;ENDFORM.                               " add_complete_line&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  register_events&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;&lt;br /&gt;form register_events.&lt;br /&gt;  DATA: lt_events TYPE cntl_simple_events,&lt;br /&gt;        l_event TYPE cntl_simple_event,&lt;br /&gt;        l_event_receiver TYPE REF TO lcl_tree_event_receiver.&lt;br /&gt;&lt;br /&gt;call method g_alv_tree-&gt;get_registered_events&lt;br /&gt;      importing events = lt_events.&lt;br /&gt;&lt;br /&gt;  l_event-eventid = cl_gui_column_tree=&gt;eventid_node_double_click.&lt;br /&gt;  APPEND l_event TO lt_events.&lt;br /&gt;&lt;br /&gt;  CALL METHOD g_alv_tree-&gt;set_registered_events&lt;br /&gt;    EXPORTING&lt;br /&gt;      events = lt_events&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      cntl_error                = 1&lt;br /&gt;      cntl_system_error         = 2&lt;br /&gt;      illegal_event_combination = 3.&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;    MESSAGE x208(00) WITH 'ERROR'.     "#EC NOTEXT&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  CREATE OBJECT l_event_receiver.&lt;br /&gt;  SET HANDLER l_event_receiver-&gt;handle_node_double_click FOR g_alv_tree.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;endform.                    " register_events&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-2067078608209279579?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/2067078608209279579/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=2067078608209279579' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2067078608209279579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2067078608209279579'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/alv-tree.html' title='ALV TREE'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EVGW4AH1p2o/R9GBmTfxdKI/AAAAAAAAACs/7jvDngZjd0E/s72-c/alv+tree.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-5171250013216124243</id><published>2008-02-29T11:28:00.004-06:00</published><updated>2008-02-29T11:36:24.308-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES'/><title type='text'>Reporte Generador de Datos para BC_TRAVEL</title><content type='html'>Para Generar los datos del modelo BC_TRAVEL es necesario llenar las tablas SPFLI, SLIGHT, SBOOK, esto lo podemos hacer mediante el programa/reporte S_FLIGHT_MODEL_DATA_GENERATOR.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cuando lo ejecutemos nos pedira seleccionar una opcion de 5 disponibles:&lt;br /&gt;* Borrar datos de las tablas&lt;br /&gt;* Establecer datos minimos         &lt;br /&gt;* Establecer datos estandar &lt;br /&gt;* Establecer datos maximos&lt;br /&gt;* Establecer datos gigantes/monstruosos&lt;br /&gt;&lt;br /&gt;Seleccionamos la opcion que queremos hacer y listo... tenemos llena nuestra base de datos para los ejemplos tanto de la clase de desarrollo SLIS como de la transaccion DWDM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-5171250013216124243?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/5171250013216124243/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=5171250013216124243' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/5171250013216124243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/5171250013216124243'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/reporte-generador-de-datos-para.html' title='Reporte Generador de Datos para BC_TRAVEL'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-122512142944460424</id><published>2008-02-22T09:18:00.001-06:00</published><updated>2008-02-22T09:22:59.403-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ABAP - SINTAXIS'/><title type='text'>AUTHORITY CHECK</title><content type='html'>Definición&lt;br /&gt;Esta sentencia nos permite comprobar las autorizaciones de un usuario. Recordemos que dichas autorizaciones forman parte del perfil de usuario y el sistema las guarda en el maestro de usuarios.&lt;br /&gt;&lt;br /&gt;Sintaxis:&lt;br /&gt;AUTHORITY-CHECK OBJECT '&lt;objeto&gt;'&lt;br /&gt;   ID 'campo1&gt; { FIELD &lt;valor1&gt; | DUMMY }&lt;br /&gt;   ID 'campo2&gt; { FIELD &lt;valor2&gt; | DUMMY }&lt;br /&gt;   ...&lt;br /&gt;   ID 'campon&gt; { FIELD &lt;valorn&gt; | DUMMY }&lt;br /&gt;&lt;br /&gt;&lt;objeto&gt; es el nombre del objeto de autorización que hay que comprobar.&lt;br /&gt;Un objeto de autorización esta compuesto de campos de autorización, todos ellos deben estar especificados a continuación de las cláusulas ID (&lt;campo1&gt;, &lt;campo2&gt; ..., &lt;campon&gt;).&lt;br /&gt;   &lt;br /&gt;&lt;valor1, &lt;valor2&gt;, ..., &lt;valorn&gt; son los valores de autorización que hay que comprobar. &lt;valorx&gt; puede ser un literal o una variable. El sistema busca en el perfil del usuario el objeto especificado en la sentencia, y comprueba si el usuario tiene autorización para todos los campos del objeto.&lt;br /&gt;   &lt;br /&gt;Se puede saltar la comprobación de un campo sustituyendo la cláusula FIELD por DUMMY. Si SY-SUBRC vale 0, el usuario esta autorizado, en caso contrario, SY-SUBRC toma un valor distinto de 0.&lt;br /&gt;   &lt;br /&gt;Ejemplo 1:&lt;br /&gt;AUTHORITY-CHECK OBJECT 'M_EINF_WRK'&lt;br /&gt;   ID 'WERKS' FIELD '0002'&lt;br /&gt;   ID 'ACTVT' FIELD '02'.&lt;br /&gt;AUTHORITY-CHECK OBJECT 'M_EINF_WRK'&lt;br /&gt;   ID 'WERKS' DUMMY&lt;br /&gt;   ID 'ACTVT' FIELD '01'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-122512142944460424?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/122512142944460424/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=122512142944460424' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/122512142944460424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/122512142944460424'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/authority-check.html' title='AUTHORITY CHECK'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-4262584379550306869</id><published>2008-02-22T09:15:00.002-06:00</published><updated>2008-02-22T09:17:21.468-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ABAP - SINTAXIS'/><title type='text'>AT USER-COMMAND</title><content type='html'>Definición&lt;br /&gt;Para permitir que el programa reaccione a las funciones que el usuario active se utiliza el evento AT USER-COMMAND.&lt;br /&gt;&lt;br /&gt;Sintaxis:&lt;br /&gt;AT USER-COMMAND.&lt;br /&gt;   &lt;bloque-de-proceso&gt;&lt;br /&gt;&lt;br /&gt;Este evento define un bloque de proceso que se activa cuando seleccionamos un comando. Los comandos se pueden seleccionar a través de los botones proporcionados en el programa, o a través del campo OK-CODE. Este evento se utiliza en los informes interactivos cuando generan salidas secundarias.&lt;br /&gt;&lt;br /&gt;El bloque de proceso del evento AT USER-COMMAND se ejecuta cuando el usuario activa un código de función presente en el status activo en ese momento. Este evento no se activa por los códigos de función predefinido del sistema o por el código de función PICK que, como ya hemos visto, activa el evento AT LINE-SELECTION. El campo del sistema SY-UCOMM nos permite saber qué código de función ha activado el usuario.&lt;br /&gt;&lt;br /&gt;Ejemplo 1:&lt;br /&gt;DATA: NUMBER1 TYPE I VALUE 20,&lt;br /&gt;      NUMBER2 TYPE I VALUE 5,&lt;br /&gt;      RESULT TYPE I.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt; WRITE: / NUMBER1, '?', NUMBER2.&lt;br /&gt; AT USER-COMMAND.&lt;br /&gt; CASE SY-UCOMM.&lt;br /&gt;   WHEN 'ADD'.&lt;br /&gt;      RESULT = NUMBER1 + NUMBER2.&lt;br /&gt;   WHEN 'SUBT'.&lt;br /&gt;      RESULT = NUMBER1 - NUMBER2.&lt;br /&gt;   WHEN 'MULT'.&lt;br /&gt;      RESULT = NUMBER1 * NUMBER2.&lt;br /&gt;   WHEN 'DIVI'.&lt;br /&gt;      RESULT = NUMBER1 / NUMBER2.&lt;br /&gt;   WHEN OTHERS.&lt;br /&gt;      WRITE 'Unknown function code'.&lt;br /&gt;      EXIT.&lt;br /&gt; ENDCASE.&lt;br /&gt; WRITE: / 'Result:', RESULT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-4262584379550306869?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/4262584379550306869/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=4262584379550306869' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/4262584379550306869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/4262584379550306869'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/at-user-command.html' title='AT USER-COMMAND'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-3936450752932068215</id><published>2008-02-22T09:01:00.002-06:00</published><updated>2008-02-22T09:05:34.950-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ABAP - SINTAXIS'/><title type='text'>AT  .. ENDAT</title><content type='html'>Definición&lt;br /&gt;La sentencia AT &lt;fg&gt; .. ENDAT sólo puede ser utilizada dentro de un bucle LOOP .. ENDLOOP para extractos, e identifica un bloque de proceso. La sentencia se ejecuta cuando se detecta que cambia algún valor en el field-group.&lt;br /&gt;&lt;br /&gt;Sintaxis:&lt;br /&gt;AT &lt;zfg&gt; { WITH &lt;fg1&gt; }.&lt;br /&gt;  &lt;bloque-sentencias&gt;&lt;br /&gt;ENDAT.&lt;br /&gt;&lt;br /&gt;La setencia AT &lt;fg&gt; se cierra con ENDAT, identificando de esta forma un bloque de proceso.&lt;br /&gt;&lt;br /&gt;La cláusula WITH se utiliza para indicar que la sentencia AT se debe ejecutar si para el field-group &lt;fg&gt; le&lt;br /&gt;sigue el field-group &lt;fg1&gt;.&lt;br /&gt;&lt;br /&gt;Ejemplo 1:&lt;br /&gt;DATA: NAME(30),&lt;br /&gt;      SALES TYPE I.&lt;br /&gt;FIELD-GROUPS: HEADER, INFOS.&lt;br /&gt;INSERT: NAME INTO HEADER,&lt;br /&gt;        SALES INTO INFOS.&lt;br /&gt;...&lt;br /&gt;LOOP.&lt;br /&gt; AT NEW NAME.&lt;br /&gt;   NEW-PAGE.&lt;br /&gt; ENDAT.&lt;br /&gt;...&lt;br /&gt; AT END OF NAME.&lt;br /&gt;   WRITE: / NAME, SUM(SALES).&lt;br /&gt; ENDAT.&lt;br /&gt;ENDLOOP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-3936450752932068215?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/3936450752932068215/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=3936450752932068215' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/3936450752932068215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/3936450752932068215'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/at-endat.html' title='AT &lt;fg&gt; .. ENDAT'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-3872406956222154237</id><published>2008-02-19T15:48:00.000-06:00</published><updated>2008-02-19T16:22:00.573-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULOS SAP - TRANSACCIONES'/><title type='text'>SD</title><content type='html'>Este es resumen de las transacciones del módulo de ventas y distribución (SD)&lt;br /&gt;de la versión 3.x del sistema SAP R/3:&lt;br /&gt;Cód Descripción&lt;br /&gt;OLSD Configuración de SD&lt;br /&gt;VB21 Volumen de ventas y compras&lt;br /&gt;VK15 Múltiples condiciones de ventas.&lt;br /&gt;VA01 Sol. Material Almacén. Crear&lt;br /&gt;VA02 Sol. Material Almacén. Modificar&lt;br /&gt;VA03 Sol. Material Almacén. Visualizar&lt;br /&gt;VA05 Sol. Material Almacén. Lista&lt;br /&gt;VA11 Crear solicitud de venta&lt;br /&gt;VA12 Modificar solicitud de venta&lt;br /&gt;VA13 Visualizar solicitud de venta&lt;br /&gt;VA15 Lista solicitud de venta&lt;br /&gt;VL02 Entrega&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-3872406956222154237?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/3872406956222154237/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=3872406956222154237' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/3872406956222154237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/3872406956222154237'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/sd.html' title='SD'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-8706249744067926958</id><published>2008-02-19T15:47:00.002-06:00</published><updated>2008-02-19T16:22:08.102-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULOS SAP - TRANSACCIONES'/><title type='text'>RH</title><content type='html'>Este es resumen de las transacciones del módulo de recursos humanos (HR) de&lt;br /&gt;la versión 3.x del sistema SAP R/3:&lt;br /&gt;Cód Descripción&lt;br /&gt;PA03 Cambia el registro de control de nóminas&lt;br /&gt;PA20 Visualiza infotipo PA&lt;br /&gt;PA30 Crearo modifica infotipos PA.&lt;br /&gt;PP02 Entrada rápida para objetos de tipo PD&lt;br /&gt;PU00 Borra infotipo PA de un empleado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-8706249744067926958?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/8706249744067926958/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=8706249744067926958' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/8706249744067926958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/8706249744067926958'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/rh.html' title='RH'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-8994272653490201750</id><published>2008-02-19T15:47:00.001-06:00</published><updated>2008-02-19T16:22:13.937-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULOS SAP - TRANSACCIONES'/><title type='text'>LOGISTICA</title><content type='html'>Este es resumen amplio de las transacciones del módulo de logística (MM) de&lt;br /&gt;la versión 3.x del sistema SAP R/3:&lt;br /&gt;&lt;br /&gt;Cód Descripción&lt;br /&gt;ME00 Gestión Materiales. Compras&lt;br /&gt;MB00 Gestión Materiales. Gestión de Stocks&lt;br /&gt;MR00 Gestión Materiales. Verificar Facturas&lt;br /&gt;MRBE Gestión Materiales. Valoración&lt;br /&gt;LPRO Gestión Materiales. Pronostico de Material&lt;br /&gt;MD00 Gestión Materiales. Planificación Necesidades&lt;br /&gt;MI00 Gestión Materiales. Inventario&lt;br /&gt;MM00 Gestión Materiales. Maestro Materiales&lt;br /&gt;CL00 Gestión Materiales. Clasificación&lt;br /&gt;VA00 Gestión comercial. Ventas&lt;br /&gt;VL00 Gestión Materiales. Expedición&lt;br /&gt;MCE9 Sistema Info. Compras.&lt;br /&gt;MCC2 Sistema Info. Gestión Stocks&lt;br /&gt;MCT2 Sistema Info. Comercial&lt;br /&gt;MC01 Sistema Info. Buscar vía Set Info.&lt;br /&gt;MC02 Sistema Info. Buscar vía Texto&lt;br /&gt;MCB1 Sistema Info. Controlling Stocks&lt;br /&gt;ME90 Imprimir Orden de Entrega&lt;br /&gt;MBSF Conformidad. Liberar Recepción&lt;br /&gt;MK03 Entorno. Consulta de Proveedores&lt;br /&gt;ME3N Entorno. Consulta Contratos&lt;br /&gt;MM03 Entorno. Consulta de maestro de materiales&lt;br /&gt;MR03 Entorno. Consulta Facturas&lt;br /&gt;MMBE Entorno. Resumen de Stocks&lt;br /&gt;MB51 Entorno. Consulta Mov. Material&lt;br /&gt;MB01 Mvtos. Almacén. Entrada por pedido&lt;br /&gt;MB1A Mvtos. Almacén. Salida de material&lt;br /&gt;MBST Mvtos. Almacén. Anular documento&lt;br /&gt;MBRL Mvtos. Almacén. Devolución a Proveedor&lt;br /&gt;MB03 Mvtos. Almacén. Visualizar documento&lt;br /&gt;ME56 Solicitud de Pedido. Asignar contrato.&lt;br /&gt;ME5A Sol. Pedido. Listados. Generalidades&lt;br /&gt;ME5K Sol. Pedido. Listados. Por imputación&lt;br /&gt;ME5W Sol. Pedido. Listados. Nueva presentación&lt;br /&gt;ME56 Sol. Pedido. Funciones siguiente. Asignar&lt;br /&gt;ME57 Sol. Pedido. Funciones siguientes. Asignar y tratar&lt;br /&gt;ME52 Sol. Pedido. SolP generadas. MRP. Modificar&lt;br /&gt;ME53 Sol. Pedido. SolP generadas MRP. Visualizar&lt;br /&gt;ME4L Pet. Ofertas/Oferta. Listados. Por proveedor&lt;br /&gt;ME4M Pet. Ofertas/Oferta. Listados. Por material&lt;br /&gt;ME4S Pet. Ofertas/Oferta. Listados. Por licitación&lt;br /&gt;ME4C Pet. Ofertas/Oferta. Listados. Por grupo artículos&lt;br /&gt;ME4N Pet. Ofertas/Oferta. Listados. Por petición oferta&lt;br /&gt;ME2L Pet. Ofertas/Oferta. Listados. Por proveedor.&lt;br /&gt;ME41 Pet. Ofertas/Oferta. Crear&lt;br /&gt;ME42 Pet. Ofertas/Oferta. Modificar&lt;br /&gt;ME43 Pet. Ofertas/Oferta. Visualizar&lt;br /&gt;ME47 Pet. Ofertas/Oferta. Actualizar&lt;br /&gt;ME48 Pet. Ofertas/Oferta. Visualizar&lt;br /&gt;ME49 Pet. Ofertas/Oferta. Comparación precios&lt;br /&gt;ME21 Pedido/Contrato. Crear&lt;br /&gt;ME58 Pedido/Contrato. Mediante sol. pedido&lt;br /&gt;ME22 Pedido/Contrato. Modificar&lt;br /&gt;ME23 Pedido/Contrato. Visualizar&lt;br /&gt;ME28 Pedido/Contrato. Liberar&lt;br /&gt;ME2L Pedido/Contrato. Listados. Por proveedor&lt;br /&gt;ME2M Pedido/Contrato. Listados. Por material&lt;br /&gt;ME2K Pedido/Contrato. Listados. Por imputación&lt;br /&gt;ME2C Pedido/Contrato. Listados. Por grupo de artículos&lt;br /&gt;ME2N Pedido/Contrato. Listados. Por número de pedido&lt;br /&gt;ME31 Pedido/Contrato. Pedido Abierto. Crear&lt;br /&gt;ME32 Pedido/Contrato. Pedido Abierto. Modificar&lt;br /&gt;ME33 Pedido/Contrato. Pedido Abierto. Visualizar&lt;br /&gt;ME58 Pedido/Contrato. Pedido de Baremo. Mediante sol. Pedido&lt;br /&gt;MB01 Conformidad. Crear&lt;br /&gt;MB02 Conformidad. Modificar&lt;br /&gt;MB03 Conformidad. Visualizar&lt;br /&gt;ME11 Conformidad. Registro Info. Crear&lt;br /&gt;ME12 Conformidad. Registro Info. Modificar&lt;br /&gt;ME13 Conformidad. Registro Info. Visualizar&lt;br /&gt;ME14 Conformidad. Registro Info. Modificaciones&lt;br /&gt;ME15 Conformidad. Registro Info. Petición de borrado&lt;br /&gt;ME01 Conformidad. Libro de Pedidos. Actualizar&lt;br /&gt;ME03 Conformidad. Libro de Pedidos. Visualizar&lt;br /&gt;ME04 Conformidad. Libro de Pedidos. Modificaciones&lt;br /&gt;MEQ1 Conformidad. Regulación por cuota. Actualizar&lt;br /&gt;MEQ3 Conformidad. Regulación por cuota. Visualizar&lt;br /&gt;MEQ4 Conformidad. Regulación por cuota. Modificaciones&lt;br /&gt;MEQM Conformidad. Regulación por cuota. Listado por material&lt;br /&gt;ME61 Conformidad. Evaluación proveedor. Actualizar&lt;br /&gt;ME62 Conformidad. Evaluación proveedor. Visualizar&lt;br /&gt;ME63 Conformidad. Evaluación proveedor. Reevaluación autom.&lt;br /&gt;ME64 Conformidad. Evaluación proveedor. Comparación evaluac.&lt;br /&gt;ME6A Conformidad. Evaluación proveedor. Modificaciones&lt;br /&gt;ME6H Conformidad. Evaluación proveedor. Análisis estándar&lt;br /&gt;ME1l Conformidad. Listados. Por proveedor&lt;br /&gt;ME1M Conformidad. Listados. Por material&lt;br /&gt;ME1W Conformidad. Listados. Por grupo artículos&lt;br /&gt;ME1P Conformidad. Listados. Histor. precio-pedido&lt;br /&gt;ME1E Conformidad. Listados. Histor. precio-oferta.&lt;br /&gt;ME0M Conformidad. Visualizar listado. Por material.&lt;br /&gt;SU53 Visualiza los objetos de autorización de un usuario.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-8994272653490201750?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/8994272653490201750/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=8994272653490201750' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/8994272653490201750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/8994272653490201750'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/logistica.html' title='LOGISTICA'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-139226658578688024</id><published>2008-02-19T15:45:00.000-06:00</published><updated>2008-02-19T16:22:21.645-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULOS SAP - TRANSACCIONES'/><title type='text'>CONTROL DE ACCESOS</title><content type='html'>Este es resumen de las transacciones del módulo de control accesos (CA) de la&lt;br /&gt;versión 3.x del sistema SAP R/3:&lt;br /&gt;&lt;br /&gt;Cód Descripción&lt;br /&gt;SU01 Administración de usuarios&lt;br /&gt;SU02 Administración de perfiles&lt;br /&gt;SU03 Administración de autorizaciones&lt;br /&gt;PFCG Generador automático de perfiles&lt;br /&gt;SUIM Sistema de información&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-139226658578688024?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/139226658578688024/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=139226658578688024' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/139226658578688024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/139226658578688024'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/control-de-accesos.html' title='CONTROL DE ACCESOS'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-5521410301401975332</id><published>2008-02-19T15:36:00.002-06:00</published><updated>2008-07-03T15:31:34.886-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULOS SAP - TRANSACCIONES'/><title type='text'>ABAP</title><content type='html'>Este es resumen de las transacciones del entorno de programación y de administración del sistema más utilizadas de la versión 3.x del sistema SAP R/3:&lt;br /&gt;&lt;br /&gt;Cód Descripcion&lt;br /&gt;BMV0 Gestión de los log de direct input.&lt;br /&gt;OY19 Comparación del contenido de una tabla entre dos sistemas SAP R/3&lt;br /&gt;SCAM CATT Management&lt;br /&gt;SCAT Computer Aided Test Tool&lt;br /&gt;SE01 Sistema de gestión de transportes&lt;br /&gt;SE07 Estatus de las ordenes de transporte&lt;br /&gt;SE09 Órdenes de transporte Workbench&lt;br /&gt;SE10 Órdenes de transporte Customizong&lt;br /&gt;SE11 Mantenimiento del diccionario de datos&lt;br /&gt;SE12 Visualización del diccionario de datos&lt;br /&gt;SE13 Mantenimiento de tablas&lt;br /&gt;SE14 Diccionario de datos, utilidad para bases de datos&lt;br /&gt;SE15 Sistema del repositorio&lt;br /&gt;SE16 Visor de datos (Datos Browser)&lt;br /&gt;SE17 Visor de tablas&lt;br /&gt;SE30 Análisis de tiempos de ejecución&lt;br /&gt;SE32 Mantenimiento de elementos de texto.&lt;br /&gt;SE35 Mantenimiento de módulos de diálogo&lt;br /&gt;SE36 Mantenimiento de bases de datos lógicas&lt;br /&gt;SE37 Mantenimiento de módulos de función&lt;br /&gt;SE38 Mantenimiento de programas (editor ABAP/4)&lt;br /&gt;SE39 Editor split screen&lt;br /&gt;SE41 Manteniemiento de menús (menú Painter)&lt;br /&gt;SE43 Mantenimiento de menús de área.&lt;br /&gt;SE51 Mantenimiento de dynpros (screen painter)&lt;br /&gt;SE54 Mantenimiento de vistas&lt;br /&gt;SE61 Gestión de la documentación&lt;br /&gt;SE62 Utilidad ramo industrial&lt;br /&gt;SE63 Traductor&lt;br /&gt;SE65 Documentación estadística de textos breves&lt;br /&gt;SE66 Documentación estadística de textos explicativos&lt;br /&gt;SE68 Gestión del departamento de traducción&lt;br /&gt;SE71 SAPscript layout set&lt;br /&gt;SE72 SAPscript estilos&lt;br /&gt;SE73 SAPscript fonts&lt;br /&gt;SE74 SAPscript conversión de formato&lt;br /&gt;SE75 SAPscript settings&lt;br /&gt;SE76 SAPscript traductor Layout Sets&lt;br /&gt;SE77 SAPscript traductor estilos&lt;br /&gt;SE80 Visor de objetos (object browsers)&lt;br /&gt;SE81 Jerarquía de aplicación (SAP)&lt;br /&gt;SE82 Jerarquía de aplicación (cliente)&lt;br /&gt;SE84 Sistema de información del repositorio.&lt;br /&gt;SE85 Sistema de información del repositorio.&lt;br /&gt;SE86 Sistema de información del repositorio.&lt;br /&gt;SE87 Gestión del modelo de datos (data modeler)&lt;br /&gt;SE88 Sistema de información&lt;br /&gt;SE91 Gestión de mensajes&lt;br /&gt;SE92 Gestión de mensajes del log del sistema&lt;br /&gt;SE93 Gestión de códigos de transacción&lt;br /&gt;SEU Gestión de objetos (object browser)&lt;br /&gt;SO32 Gestión de usuarios SAPOffice&lt;br /&gt;SHDO Mantenimiento de variantes&lt;br /&gt;SQ00 ABAP/4 Query: queries&lt;br /&gt;SQ01 ABAP/4 Query: mantenimiento de queries&lt;br /&gt;SQ02 ABAP/4 Query: mantenimiento de areas funcionales&lt;br /&gt;SQ03 ABAP/4 Query: mantenimiento de grupos de usuarios&lt;br /&gt;SQ07 ABAP/4 Query: comparación del lenguaje&lt;br /&gt;SM35 Gestión de juegos de datos (Batch-Input)&lt;br /&gt;SM37 Mantenimiento de JOBS&lt;br /&gt;SM21 Ver el log del sistema. Se utiliza para ver más información cuando ocurre&lt;br /&gt;un DUMP.&lt;br /&gt;SHD0 Mantenimiento de transacciones de variante.&lt;br /&gt;SO00 Envia un mensaje a través de SAP. El destinatario puede ser de Internet,&lt;br /&gt;X400, etc..&lt;br /&gt;SMOD Gestión de User-exits.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-5521410301401975332?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/5521410301401975332/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=5521410301401975332' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/5521410301401975332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/5521410301401975332'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/abap.html' title='ABAP'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-6097201091491895740</id><published>2008-02-18T18:14:00.003-06:00</published><updated>2008-02-19T16:34:42.862-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES - ALV'/><title type='text'>REPORTES - ALV - TEXTEDIT (CUSTOM CONTROL)</title><content type='html'>PROGRAMA PARA HACER UN TEXTO EDITABLE EN UN CUSTOM CONTROL, IMPLEMENTANDO METODOS DE EVENTOS (F1 Y F4), EL LAYOUT DE LA PANTALLA DEBE SER UN CUSTOM CONTROL LLAMADO "textedit" Y UN CAMPO DE SALIDA LLAMADO "field", SU FLUJO LOGICO ES:&lt;br /&gt;&lt;br /&gt;PROCESS BEFORE OUTPUT.&lt;br /&gt;  MODULE status_0100.&lt;br /&gt;&lt;br /&gt;PROCESS AFTER INPUT.&lt;br /&gt;  MODULE cancel AT EXIT-COMMAND.&lt;br /&gt;  MODULE user_command_0100.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;REPORT demo_custom_control .&lt;br /&gt;&lt;br /&gt;* Declarations *****************************************************&lt;br /&gt;&lt;br /&gt;CLASS event_handler DEFINITION.&lt;br /&gt;  PUBLIC SECTION.&lt;br /&gt;    METHODS: handle_f1 FOR EVENT f1 OF cl_gui_textedit&lt;br /&gt;                       IMPORTING sender,&lt;br /&gt;             handle_f4 FOR EVENT f4 OF cl_gui_textedit&lt;br /&gt;                       IMPORTING sender.&lt;br /&gt;ENDCLASS.&lt;br /&gt;&lt;br /&gt;DATA: ok_code LIKE sy-ucomm,&lt;br /&gt;      save_ok LIKE sy-ucomm.&lt;br /&gt;&lt;br /&gt;DATA: init,&lt;br /&gt;      container TYPE REF TO cl_gui_custom_container,&lt;br /&gt;      editor    TYPE REF TO cl_gui_textedit.&lt;br /&gt;&lt;br /&gt;DATA: event_tab TYPE cntl_simple_events,&lt;br /&gt;      event     TYPE cntl_simple_event.&lt;br /&gt;&lt;br /&gt;DATA: line(256) TYPE c,&lt;br /&gt;      text_tab LIKE STANDARD TABLE OF line,&lt;br /&gt;      field LIKE line.&lt;br /&gt;&lt;br /&gt;DATA handle TYPE REF TO event_handler.&lt;br /&gt;&lt;br /&gt;* Reporting Events ***************************************************&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;  line = 'First line in TextEditControl'.&lt;br /&gt;  APPEND line TO text_tab.&lt;br /&gt;  line = '--------------------------------------------------'.&lt;br /&gt;  APPEND line TO text_tab.&lt;br /&gt;  line = '...'.&lt;br /&gt;  APPEND line TO text_tab.&lt;br /&gt;  CALL SCREEN 100.&lt;br /&gt;&lt;br /&gt;* Dialog Modules *****************************************************&lt;br /&gt;&lt;br /&gt;MODULE status_0100 OUTPUT.&lt;br /&gt;  SET PF-STATUS 'SCREEN_100'.&lt;br /&gt;  IF init is initial.&lt;br /&gt;    init = 'X'.&lt;br /&gt;    CREATE OBJECT: &lt;br /&gt;           container EXPORTING container_name = 'TEXTEDIT',&lt;br /&gt;           editor    EXPORTING parent = container,&lt;br /&gt;           handle.&lt;br /&gt;    event-eventid = cl_gui_textedit=&gt;event_f1.&lt;br /&gt;    event-appl_event = ' '.                     "system event&lt;br /&gt;    APPEND event TO event_tab.&lt;br /&gt;    event-eventid = cl_gui_textedit=&gt;event_f4.&lt;br /&gt;    event-appl_event = 'X'.                     "application event&lt;br /&gt;    APPEND event TO event_tab.&lt;br /&gt;    CALL METHOD: editor-&gt;set_registered_events&lt;br /&gt;                 EXPORTING events = event_tab.&lt;br /&gt;    SET HANDLER handle-&gt;handle_f1&lt;br /&gt;                handle-&gt;handle_f4 FOR editor.&lt;br /&gt;  ENDIF.&lt;br /&gt;  CALL METHOD editor-&gt;set_text_as_stream &lt;br /&gt;              EXPORTING text = text_tab.&lt;br /&gt;ENDMODULE.&lt;br /&gt;&lt;br /&gt;MODULE cancel INPUT.&lt;br /&gt;  LEAVE PROGRAM.&lt;br /&gt;ENDMODULE.&lt;br /&gt;&lt;br /&gt;MODULE user_command_0100 INPUT.&lt;br /&gt;  save_ok = ok_code.&lt;br /&gt;  CLEAR ok_code.&lt;br /&gt;  CASE save_ok.&lt;br /&gt;    WHEN 'INSERT'.&lt;br /&gt;      CALL METHOD editor-&gt;get_text_as_stream &lt;br /&gt;                  IMPORTING text = text_tab.&lt;br /&gt;    WHEN 'F1'.&lt;br /&gt;      MESSAGE i888(sabapdocu) WITH text-001.&lt;br /&gt;    WHEN OTHERS.&lt;br /&gt;      MESSAGE i888(sabapdocu) WITH text-002.&lt;br /&gt;      CALL METHOD cl_gui_cfw=&gt;dispatch.&lt;br /&gt;  ENDCASE.&lt;br /&gt;  SET SCREEN 100.&lt;br /&gt;ENDMODULE.&lt;br /&gt;&lt;br /&gt;* Class Implementations **********************************************&lt;br /&gt;&lt;br /&gt;CLASS event_handler IMPLEMENTATION.&lt;br /&gt;  METHOD handle_f1.&lt;br /&gt;    DATA row TYPE i.&lt;br /&gt;    MESSAGE i888(sabapdocu) WITH text-003.&lt;br /&gt;    CALL METHOD sender-&gt;get_selection_pos&lt;br /&gt;         IMPORTING from_line = row.&lt;br /&gt;    CALL METHOD sender-&gt;get_line_text&lt;br /&gt;         EXPORTING line_number = row&lt;br /&gt;         IMPORTING text = field.&lt;br /&gt;    CALL METHOD cl_gui_cfw=&gt;set_new_ok_code  &lt;br /&gt;         EXPORTING new_code = 'F1'.          &lt;br /&gt;    CALL METHOD cl_gui_cfw=&gt;flush.&lt;br /&gt;  ENDMETHOD.&lt;br /&gt;&lt;br /&gt;  METHOD handle_f4.&lt;br /&gt;    DATA row TYPE i.&lt;br /&gt;    MESSAGE i888(sabapdocu) WITH text-004.&lt;br /&gt;    CALL METHOD sender-&gt;get_selection_pos&lt;br /&gt;         IMPORTING from_line = row.&lt;br /&gt;    CALL METHOD sender-&gt;get_line_text&lt;br /&gt;         EXPORTING line_number = row&lt;br /&gt;         IMPORTING text = field.&lt;br /&gt;    CALL METHOD cl_gui_cfw=&gt;flush.&lt;br /&gt;  ENDMETHOD.&lt;br /&gt;ENDCLASS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-6097201091491895740?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/6097201091491895740/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=6097201091491895740' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6097201091491895740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6097201091491895740'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/reportes-alv-textedit-custom-control.html' title='REPORTES - ALV - TEXTEDIT (CUSTOM CONTROL)'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-1402464097626265819</id><published>2008-02-12T16:53:00.001-06:00</published><updated>2008-03-07T11:59:19.374-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULE POOL - FUNCIONES'/><title type='text'>Pop-up para recibir un dato del usuario</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EVGW4AH1p2o/R9GCZjfxdLI/AAAAAAAAAC0/c3QvqEH315Q/s1600-h/pop+up+pedir.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_EVGW4AH1p2o/R9GCZjfxdLI/AAAAAAAAAC0/c3QvqEH315Q/s320/pop+up+pedir.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5175060822362256562" /&gt;&lt;/a&gt;&lt;br /&gt;CALL FUNCTION 'POPUP_TO_GET_ONE_VALUE'&lt;br /&gt;  EXPORTING&lt;br /&gt;    textline1 = 'Introduce el nombre!!'&lt;br /&gt;    textline2 = 'Nombre del Transportista: '&lt;br /&gt;    titel = 'Alta de material en almacen'&lt;br /&gt;    valuelength = 80&lt;br /&gt;  IMPORTING&lt;br /&gt;    value1 = l_texto&lt;br /&gt;  EXCEPTIONS&lt;br /&gt;    titel_too_long = 1&lt;br /&gt;    OTHERS = 2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-1402464097626265819?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/1402464097626265819/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=1402464097626265819' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/1402464097626265819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/1402464097626265819'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/pop-up-para-recibir-un-dato-del-usuario.html' title='Pop-up para recibir un dato del usuario'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EVGW4AH1p2o/R9GCZjfxdLI/AAAAAAAAAC0/c3QvqEH315Q/s72-c/pop+up+pedir.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-3550748975189935058</id><published>2008-02-11T09:17:00.000-06:00</published><updated>2008-02-19T16:32:00.707-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULE POOL - EJEMPLO'/><title type='text'>Simple Module Pool</title><content type='html'>* Este module pool pretende introducirnos al mundo&lt;br /&gt;* de la programacion, no es nada elaborado pero &lt;br /&gt;* contiene las sentencias basicas SELECT, INSERT,&lt;br /&gt;* DELETE para una tabla de nombre ZRF_T0024, cuyos&lt;br /&gt;* campos son: ZRF_T0024-ID_CODIGO, &lt;br /&gt;* ZRF_T0024-DESCRIPCION ZRF_T0024-DIAS. Necesitaremos&lt;br /&gt;* crear una screen, con tres input/output fields de&lt;br /&gt;* nombre igual que la tabla:&lt;br /&gt;* ZRF_T0024-ID_CODIGO, ZRF_T0024-DESCRIPCION ZRF_T0024-DIAS.&lt;br /&gt;* Este es el codigo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;--------------------------------------*&lt;br /&gt;*&amp; Include ZRF_602TOP                   *&lt;br /&gt;*&amp;--------------------------------------*&lt;br /&gt;PROGRAM  ZRF_0602.&lt;br /&gt;TABLES:&lt;br /&gt;      ZRF_T0024.    "CODIGOS DE MTTO&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;--------------------------------------*&lt;br /&gt;*&amp; screen                               *&lt;br /&gt;*&amp;--------------------------------------*&lt;br /&gt;PROCESS BEFORE OUTPUT.&lt;br /&gt;MODULE PBO.&lt;br /&gt;*&lt;br /&gt;PROCESS AFTER INPUT.&lt;br /&gt;FIELD ZRF_T0024-ID_CODIGO MODULE DESPLIEGA_CODIGOS_MTTO.&lt;br /&gt;MODULE PAI.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;-------------------------------------*&lt;br /&gt;*&amp;      Module  PAI  INPUT             *&lt;br /&gt;*&amp;-------------------------------------*&lt;br /&gt;module PAI input.&lt;br /&gt;&lt;br /&gt;CASE SY-UCOMM.&lt;br /&gt;WHEN 'ADD'.&lt;br /&gt;  PERFORM NUEVO_602.&lt;br /&gt;WHEN 'DELT'.&lt;br /&gt;  PERFORM BORRAR_602.&lt;br /&gt;WHEN 'CLEAN'.&lt;br /&gt;  PERFORM LIMPIAR_602.&lt;br /&gt;WHEN 'SAVE'.&lt;br /&gt;  PERFORM GUARDAR_602.&lt;br /&gt;WHEN 'EXIT' OR 'BACK' OR 'CANC'.&lt;br /&gt;  PERFORM exit_program.&lt;br /&gt;ENDCASE.&lt;br /&gt;&lt;br /&gt;endmodule.                 " PAI  INPUT&lt;br /&gt;&lt;br /&gt;*&amp;-----------------------------------------*&lt;br /&gt;*&amp;      Module  PBO  OUTPUT                *&lt;br /&gt;*&amp;-----------------------------------------*&lt;br /&gt;module PBO output.&lt;br /&gt;   SET PF-STATUS 'ZRF_602GUI'.&lt;br /&gt;   SET TITLEBAR 'MAINTITLE'.&lt;br /&gt;endmodule.                 " PBO  OUTPUT&lt;br /&gt;&lt;br /&gt;*--------------------------------------*&lt;br /&gt;*   INCLUDE ZRF_602F01                 *&lt;br /&gt;*--------------------------------------*&lt;br /&gt;*&amp;----------------------*&lt;br /&gt;*&amp;      Form  NUEVO_602&lt;br /&gt;*&amp;----------------------*&lt;br /&gt;form NUEVO_602.&lt;br /&gt;  DATA: TEMPO LIKE ZRF_T0024-ID_CODIGO.&lt;br /&gt;  SELECT MAX( ID_CODIGO ) FROM ZRF_T0024 INTO TEMPO.&lt;br /&gt;  ZRF_T0024-ID_CODIGO = TEMPO + 1.&lt;br /&gt;endform.                    " NUEVO_602&lt;br /&gt;*&amp;------------------------*&lt;br /&gt;*&amp;      Form  BORRAR_602&lt;br /&gt;*&amp;------------------------*&lt;br /&gt;form BORRAR_602.&lt;br /&gt;DATA L_RESP.&lt;br /&gt;  CALL FUNCTION 'POPUP_TO_CONFIRM'&lt;br /&gt;    EXPORTING&lt;br /&gt;      TITLEBAR = 'Eliminacion de registros!!!'&lt;br /&gt;      DIAGNOSE_OBJECT = ' '&lt;br /&gt;      text_question = '¿Desea eliminar el registro actual?'&lt;br /&gt;TEXT_BUTTON_1 = 'si'(001)&lt;br /&gt;ICON_BUTTON_1 = ' '&lt;br /&gt;TEXT_BUTTON_2 = 'no'(002)&lt;br /&gt;ICON_BUTTON_2 = ' '&lt;br /&gt;IMPORTING&lt;br /&gt;ANSWER = L_RESP.&lt;br /&gt;IF L_RESP &lt;&gt; 'A'.&lt;br /&gt;  IF L_RESP = 1. "Sí&lt;br /&gt;    DELETE FROM ZRF_T0024 WHERE ID_CODIGO = ZRF_T0024-ID_CODIGO.&lt;br /&gt;    PERFORM LIMPIAR_602.&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDIF.&lt;br /&gt;endform.                    " BORRAR_602&lt;br /&gt;*&amp;-------------------------*&lt;br /&gt;*&amp;      Form  LIMPIAR_602&lt;br /&gt;*&amp;-------------------------*&lt;br /&gt;form LIMPIAR_602.&lt;br /&gt;  ZRF_T0024-ID_CODIGO = ''.&lt;br /&gt;  ZRF_T0024-DESCRIPCION = ''.&lt;br /&gt;  ZRF_T0024-DIAS = ''.&lt;br /&gt;endform.                    " LIMPIAR_602&lt;br /&gt;*&amp;---------------------------*&lt;br /&gt;*&amp;      Form  GUARDAR_602&lt;br /&gt;*&amp;---------------------------*&lt;br /&gt;form GUARDAR_602.&lt;br /&gt;  INSERT INTO ZRF_T0024 VALUES ZRF_T0024.&lt;br /&gt;  PERFORM LIMPIAR_602.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-3550748975189935058?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/3550748975189935058/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=3550748975189935058' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/3550748975189935058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/3550748975189935058'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/02/simple-module-pool.html' title='Simple Module Pool'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-6059970092386898386</id><published>2008-01-25T11:49:00.001-06:00</published><updated>2008-02-19T16:22:32.080-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULOS SAP - TRANSACCIONES'/><title type='text'>FINANZAS</title><content type='html'>Este es resumen de las transacciones administración financiera (FI) de la&lt;br /&gt;versión 3.x del sistema SAP R/3:&lt;br /&gt;Cód  Descripción&lt;br /&gt;FGRP Pantalla del report writer&lt;br /&gt;FM12 Visualiza documentos bloqueados por el usuario.&lt;br /&gt;FST2 Inserta un nombre específico para una cuenta de tipo G/L.&lt;br /&gt;FST3 Visualiza el nombre de una cuenta G/L.&lt;br /&gt;KEA0 Mantenimiento de operaciones de interés.&lt;br /&gt;KEKE Actividad CO-PA.&lt;br /&gt;KEKK Asignación de operaciones de interés.&lt;br /&gt;KL04 Borrar un tipo de actividad.&lt;br /&gt;KS04 Borra un centro de coste.&lt;br /&gt;KSH2 Cambia o borro un grupo de centro de coste.&lt;br /&gt;OBR2 Borra el programa de clientes, vendedores y cuentas G/L.&lt;br /&gt;OKC5 Borra un grupo de elementos/costes.&lt;br /&gt;OKE1 Borra datos de una transacción.&lt;br /&gt;OKE2 Borra un centro de beneficio.&lt;br /&gt;OKI1 Determina el numero de actividad de los tipos de actividad.&lt;br /&gt;OMZ1 Define el papel de los socios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-6059970092386898386?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/6059970092386898386/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=6059970092386898386' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6059970092386898386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6059970092386898386'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/01/transacciones-de-administracin.html' title='FINANZAS'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-2186805169033989150</id><published>2008-01-25T11:26:00.003-06:00</published><updated>2008-03-07T12:09:11.179-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULE POOL - FUNCIONES'/><title type='text'>Pop-up con botones personalizados</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EVGW4AH1p2o/R9GEjDfxdOI/AAAAAAAAADM/7kA4oYD6s5o/s1600-h/pop+up+seleccion.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_EVGW4AH1p2o/R9GEjDfxdOI/AAAAAAAAADM/7kA4oYD6s5o/s320/pop+up+seleccion.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5175063184594269410" /&gt;&lt;/a&gt;&lt;br /&gt;*******************************&lt;br /&gt;* pop-up para personalizacion de botones&lt;br /&gt;*******************************&lt;br /&gt; DATA L_RESP.&lt;br /&gt;    CALL FUNCTION 'POPUP_TO_CONFIRM'&lt;br /&gt;        EXPORTING&lt;br /&gt;          TITLEBAR = 'Confirmacion de botones'&lt;br /&gt;        DIAGNOSE_OBJECT = ' '&lt;br /&gt;          text_question = '¿Desea cambiar el registro seleccionado?'&lt;br /&gt;          TEXT_BUTTON_1 = 'SIMON'(001)&lt;br /&gt;          ICON_BUTTON_1 = ' '&lt;br /&gt;          TEXT_BUTTON_2 = 'NEL PASTEL'(002)&lt;br /&gt;          ICON_BUTTON_2 = ' '&lt;br /&gt;        IMPORTING&lt;br /&gt;          ANSWER = L_RESP.&lt;br /&gt; IF L_RESP &lt;&gt; 'A'. "verifica que no haya cancelado el usuario.&lt;br /&gt;   IF L_RESP = 1. "Símon&lt;br /&gt;*       usted selecciono que SIMON.&lt;br /&gt;   ELSE&lt;br /&gt;*       Usted selecciono que NEL.&lt;br /&gt;   ENDIF.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-2186805169033989150?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/2186805169033989150/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=2186805169033989150' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2186805169033989150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2186805169033989150'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/01/mensajes-con-botones-personalizados.html' title='Pop-up con botones personalizados'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EVGW4AH1p2o/R9GEjDfxdOI/AAAAAAAAADM/7kA4oYD6s5o/s72-c/pop+up+seleccion.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-4443637437816342906</id><published>2008-01-25T11:25:00.002-06:00</published><updated>2008-03-07T12:13:07.343-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULE POOL - FUNCIONES'/><title type='text'>Pop-up de Confirmacion</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EVGW4AH1p2o/R9GFpjfxdPI/AAAAAAAAADU/eeNrrDZ1uck/s1600-h/pop+up+CONF.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_EVGW4AH1p2o/R9GFpjfxdPI/AAAAAAAAADU/eeNrrDZ1uck/s320/pop+up+CONF.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5175064395775046898" /&gt;&lt;/a&gt;&lt;br /&gt;*******************************&lt;br /&gt;* pop-up para confirmacion de pasos&lt;br /&gt;*******************************&lt;br /&gt;&lt;br /&gt;DATA L_RESP.&lt;br /&gt;CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'&lt;br /&gt;        EXPORTING&lt;br /&gt;             TEXTLINE1    = 'pop-up para confirmacion de pasos'&lt;br /&gt;             TEXTLINE2    = 'desea usted escoger el boton 1?'&lt;br /&gt;             TITEL        = 'Confirmacion de pasos'&lt;br /&gt;       IMPORTING&lt;br /&gt;            ANSWER       = L_RESP&lt;br /&gt;        EXCEPTIONS&lt;br /&gt;             OTHERS       = 1.&lt;br /&gt;&lt;br /&gt;   IF L_RESP = 'J'. "Sí&lt;br /&gt;*     se selecciono el boton de SI/ACEPTO &lt;br /&gt;   ENDIF.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-4443637437816342906?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/4443637437816342906/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=4443637437816342906' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/4443637437816342906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/4443637437816342906'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/01/mensaje-de-confirmacion.html' title='Pop-up de Confirmacion'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EVGW4AH1p2o/R9GFpjfxdPI/AAAAAAAAADU/eeNrrDZ1uck/s72-c/pop+up+CONF.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-2720564865095046319</id><published>2008-01-25T10:59:00.000-06:00</published><updated>2008-01-25T11:23:44.859-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES'/><title type='text'>Colores</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_EVGW4AH1p2o/R5oa6VZH5sI/AAAAAAAAABE/IHAyP2q-hQM/s1600-h/colores.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_EVGW4AH1p2o/R5oa6VZH5sI/AAAAAAAAABE/IHAyP2q-hQM/s400/colores.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5159465912583579330" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-2720564865095046319?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/2720564865095046319/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=2720564865095046319' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2720564865095046319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2720564865095046319'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/01/colores.html' title='Colores'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EVGW4AH1p2o/R5oa6VZH5sI/AAAAAAAAABE/IHAyP2q-hQM/s72-c/colores.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-1884963894287849506</id><published>2008-01-25T10:25:00.001-06:00</published><updated>2008-04-11T11:51:17.722-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='INTERCONEXIONES DE LENGUAJES'/><title type='text'>Batch Input</title><content type='html'>Este reporte sube los datos contenidos en un archivo de texto plano, que a su vez ha sido guardado en formato txt y separados los valores por tabulador.&lt;br /&gt;&lt;br /&gt;REPORT ZCMABI_MM001_MON .&lt;br /&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;* Description : subir datos de un archivo plano separado por tabs&lt;br /&gt;* Inputs : archivo de texto&lt;br /&gt;* Outputs : log de errores y aciertos&lt;br /&gt;* Error/Return Codes : Ninguno&lt;br /&gt;* External References: WS_FILENAME_GET, WS_UPLOAD&lt;br /&gt;* transactions&lt;br /&gt;************************************************************************&lt;br /&gt;&lt;br /&gt;********* TABLES *******************************************************&lt;br /&gt;&lt;br /&gt;********* DATA: VARIABLES **********************************************&lt;br /&gt;DATA: w_msg(50)  TYPE c,            "Message string by Input File Proc.&lt;br /&gt;      w_n0       LIKE sy-tabix,     "Counter: records read&lt;br /&gt;      w_n1       LIKE sy-tabix,     "Counter: records selected&lt;br /&gt;      w_n2       LIKE sy-tabix.     "Counter: records processed&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;********* DATA: INTERNAL TABLES, RANGES ********************************&lt;br /&gt;*DATA: it_file TYPE zcmata_mm001_mxe OCCURS 0 WITH HEADER LINE.&lt;br /&gt;DATA: BEGIN OF it_file OCCURS 0,&lt;br /&gt;        MONEDA LIKE ZCMATA_MM001_MON-MONEDA,&lt;br /&gt;        NOMBRE_LARGO LIKE ZCMATA_MM001_MON-NOMBRE_LARGO,&lt;br /&gt;      END OF it_file.&lt;br /&gt;&lt;br /&gt;DATA:&lt;br /&gt;    bdc_tab LIKE STANDARD TABLE OF bdcdata WITH HEADER LINE,&lt;br /&gt;    err_bi LIKE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE.&lt;br /&gt;&lt;br /&gt;PARAMETERS: p_fname LIKE rlgrap-filename OBLIGATORY. "Filename Prefix&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*************************&lt;br /&gt;**** at selection-screen.&lt;br /&gt;*************************&lt;br /&gt;*--------- F4 for PC Input file ----------------------------------------&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.&lt;br /&gt;  PERFORM select_file.&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN ON p_fname.&lt;br /&gt;  PERFORM try_upload_file.&lt;br /&gt;&lt;br /&gt;********************&lt;br /&gt;* at selection-screen.&lt;br /&gt;********************&lt;br /&gt;*******************&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;*******************&lt;br /&gt;  PERFORM numerate_lines.&lt;br /&gt;  PERFORM validate_file.&lt;br /&gt;&lt;br /&gt;*****************&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;*****************&lt;br /&gt;&lt;br /&gt;*PERFORM PROCESS_FILE.&lt;br /&gt;  PERFORM print_statistic.&lt;br /&gt;  PERFORM print_footer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM SELECT_FILE                                              *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM select_file.&lt;br /&gt;  CALL FUNCTION 'WS_FILENAME_GET'&lt;br /&gt;     EXPORTING&lt;br /&gt;          def_path         = 'c:\'&lt;br /&gt;          mask          = ',Text Files,*.txt;*.doc,All Files,*.*.'(101)&lt;br /&gt;          title            = 'Select File'(100)&lt;br /&gt;     IMPORTING&lt;br /&gt;          filename         = p_fname&lt;br /&gt;     EXCEPTIONS&lt;br /&gt;          inv_winsys       = 1&lt;br /&gt;          no_batch         = 2&lt;br /&gt;          selection_cancel = 3&lt;br /&gt;          selection_error  = 4&lt;br /&gt;          OTHERS           = 5.&lt;br /&gt;  IF sy-subrc &lt;&gt; 0 AND sy-subrc &lt;&gt; 3.&lt;br /&gt;    MESSAGE e102(yb) WITH 'Error Selecting File'(007).&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM TRY_UPLOAD_FILE                                          *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM try_upload_file.&lt;br /&gt;  CALL FUNCTION 'WS_UPLOAD'&lt;br /&gt;       EXPORTING&lt;br /&gt;            filename            = p_fname&lt;br /&gt;            filetype            = 'DAT'&lt;br /&gt;       TABLES&lt;br /&gt;            data_tab            = it_file&lt;br /&gt;       EXCEPTIONS&lt;br /&gt;            conversion_error    = 1&lt;br /&gt;            file_open_error     = 2&lt;br /&gt;            file_read_error     = 3&lt;br /&gt;            invalid_table_width = 4&lt;br /&gt;            invalid_type        = 5&lt;br /&gt;            no_batch            = 6&lt;br /&gt;            unknown_error       = 7&lt;br /&gt;            OTHERS              = 8.&lt;br /&gt;  IF sy-subrc &lt;&gt; 0.&lt;br /&gt;    CASE sy-subrc.&lt;br /&gt;* =to be customized=: text-006 = 'Uploading Error:'&lt;br /&gt;* text-06n = Concrete Error Description&lt;br /&gt;    WHEN 1. CONCATENATE text-006 text-061 INTO w_msg SEPARATED BY space.&lt;br /&gt;    WHEN 2. CONCATENATE text-006 text-062 INTO w_msg SEPARATED BY space.&lt;br /&gt;    WHEN 3. CONCATENATE text-006 text-063 INTO w_msg SEPARATED BY space.&lt;br /&gt;    WHEN 4. CONCATENATE text-006 text-064 INTO w_msg SEPARATED BY space.&lt;br /&gt;    WHEN 5. CONCATENATE text-006 text-065 INTO w_msg SEPARATED BY space.&lt;br /&gt;    WHEN 6. CONCATENATE text-006 text-066 INTO w_msg SEPARATED BY space.&lt;br /&gt;    WHEN 7. CONCATENATE text-006 text-067 INTO w_msg SEPARATED BY space.&lt;br /&gt;    WHEN 8. CONCATENATE text-006 text-068 INTO w_msg SEPARATED BY space.&lt;br /&gt;    ENDCASE.&lt;br /&gt;    MESSAGE e102(yb) WITH w_msg.&lt;br /&gt;  ENDIF.&lt;br /&gt;  IF it_file IS INITIAL.&lt;br /&gt;    MESSAGE e102(yb) WITH 'Empty File!'(013).&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM NUMERATE_LINES                                           *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM numerate_lines.&lt;br /&gt;  DESCRIBE TABLE it_file LINES w_n0.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM VALIDATE_FILE                                            *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM validate_file.&lt;br /&gt;  DATA:&lt;br /&gt;    lit_file LIKE LINE OF it_file.&lt;br /&gt;&lt;br /&gt;  PERFORM bdc_open. "&lt; Apertura del juego de datos&lt;br /&gt;&lt;br /&gt;WRITE: /5 'NOMENCLATURA', 20 'NOMBRE LARGO'.&lt;br /&gt;  LOOP AT it_file.&lt;br /&gt;    MOVE it_file TO lit_file.&lt;br /&gt;&lt;br /&gt;    AT FIRST.&lt;br /&gt;    PERFORM dynpro USING:&lt;br /&gt;      'X' 'ZCMAMP_MM001_MON' '0100',&lt;br /&gt;      '' 'BDC_OKCODE' '=ADD',&lt;br /&gt;      '' 'BDC_CURSOR' 'ZCMATA_MM001_MON-MONEDA'.&lt;br /&gt;    ENDAT.&lt;br /&gt;&lt;br /&gt;    PERFORM dynpro USING:&lt;br /&gt;    'X' 'ZCMAMP_MM001_MON' '0100',&lt;br /&gt;    '' 'BDC_OKCODE' '=ADD',&lt;br /&gt;    '' 'BDC_CURSOR' 'ZCMATA_MM001_MON-NOMBRE_LARGO',&lt;br /&gt;    '' 'ZCMATA_MM001_MON-MONEDA' LIT_FILE-MONEDA,&lt;br /&gt;    '' 'ZCMATA_MM001_MON-NOMBRE_LARGO' LIT_FILE-NOMBRE_LARGO.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  WRITE: /5 lit_file-MONEDA, 20 lit_file-NOMBRE_LARGO.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;&lt;br /&gt;    PERFORM dynpro USING:&lt;br /&gt;    'X' 'ZCMAMP_MM001_MON' '0100',&lt;br /&gt;    '' 'BDC_OKCODE' '=SAVE',&lt;br /&gt;    '' 'BDC_CURSOR' 'ZCMATA_MM001_MON-NOMBRE_LARGO',&lt;br /&gt;    '' 'ZCMATA_MM001_MON-MONEDA' LIT_FILE-MONEDA,&lt;br /&gt;    '' 'ZCMATA_MM001_MON-NOMBRE_LARGO' LIT_FILE-NOMBRE_LARGO.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    CALL TRANSACTION 'ZCMA_MM001_TMON' USING bdc_tab&lt;br /&gt;    MODE 'N'&lt;br /&gt;    MESSAGES INTO err_bi.&lt;br /&gt;&lt;br /&gt;  SKIP 2.&lt;br /&gt;  WRITE: 'TABLA DE ERRORES' COLOR 7 ON.&lt;br /&gt;LOOP AT ERR_BI.&lt;br /&gt;  WRITE: / 'ERROR NUMERO:' COLOR 2 ON, SY-TABIX COLOR 2 ON.&lt;br /&gt;  WRITE: / 'ID MSG', ERR_BI-MSGID,&lt;br /&gt;         / 'NUMBER', ERR_BI-MSGNR,&lt;br /&gt;         / 'TIPO', ERR_BI-MSGTYP,&lt;br /&gt;         / 'VAR1', ERR_BI-MSGV1,&lt;br /&gt;         / 'VAR2', ERR_BI-MSGV2,&lt;br /&gt;         / 'VAR3', ERR_BI-MSGV3,&lt;br /&gt;         / 'VAR4', ERR_BI-MSGV4,&lt;br /&gt;         / 'FIELD', ERR_BI-FLDNAME.&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'WS_DOWNLOAD'&lt;br /&gt; EXPORTING&lt;br /&gt;*   BIN_FILESIZE                  = ' '&lt;br /&gt;*   CODEPAGE                      = ' '&lt;br /&gt;   FILENAME                      = 'C:\ERRORES_BIM.TXT'&lt;br /&gt;   FILETYPE                      = 'ASC'&lt;br /&gt;*   MODE                          = ' '&lt;br /&gt;*   WK1_N_FORMAT                  = ' '&lt;br /&gt;*   WK1_N_SIZE                    = ' '&lt;br /&gt;*   WK1_T_FORMAT                  = ' '&lt;br /&gt;*   WK1_T_SIZE                    = ' '&lt;br /&gt;*   COL_SELECT                    = ' '&lt;br /&gt;*   COL_SELECTMASK                = ' '&lt;br /&gt;*   NO_AUTH_CHECK                 = ' '&lt;br /&gt;* IMPORTING&lt;br /&gt;*   FILELENGTH                    =&lt;br /&gt;  TABLES&lt;br /&gt;    data_tab                      = err_bi&lt;br /&gt;*   FIELDNAMES                    =&lt;br /&gt; EXCEPTIONS&lt;br /&gt;   FILE_OPEN_ERROR               = 1&lt;br /&gt;   FILE_WRITE_ERROR              = 2&lt;br /&gt;   INVALID_FILESIZE              = 3&lt;br /&gt;   INVALID_TYPE                  = 4&lt;br /&gt;   NO_BATCH                      = 5&lt;br /&gt;   UNKNOWN_ERROR                 = 6&lt;br /&gt;   INVALID_TABLE_WIDTH           = 7&lt;br /&gt;   GUI_REFUSE_FILETRANSFER       = 8&lt;br /&gt;   CUSTOMER_ERROR                = 9&lt;br /&gt;   OTHERS                        = 10.&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;&lt;br /&gt;  DESCRIBE TABLE it_file LINES w_n1.&lt;br /&gt;&lt;br /&gt;  PERFORM bdc_closed. " Cierre del juego de datos&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM PRINT_STATISTIC                                          *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM print_statistic.&lt;br /&gt;  SKIP 1.&lt;br /&gt;  WRITE: / 'Read Lines'(014)   INTENSIFIED ON,&lt;br /&gt;           AT 40 w_n0 INTENSIFIED OFF.&lt;br /&gt;  WRITE: / 'Selected Lines'(015)   INTENSIFIED ON,&lt;br /&gt;           AT 40 w_n1 INTENSIFIED OFF.&lt;br /&gt;  WRITE: / 'Processed Lines'(016)   INTENSIFIED ON,&lt;br /&gt;           AT 40 w_n1 INTENSIFIED OFF.&lt;br /&gt;  WRITE: / 'ARCHIVO DE ERRORES GUARDADO:  (C:\ERRORES_BI.TXT)'.&lt;br /&gt;&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM PRINT_FOOTER                                             *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM print_footer.&lt;br /&gt;* =to be customized=&lt;br /&gt;  WRITE /'*** End Of Report ***'.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;*......................................................................*&lt;br /&gt;* DYNPRO&lt;br /&gt;*......................................................................*&lt;br /&gt;FORM dynpro USING value(dynbegin)&lt;br /&gt;value(name)&lt;br /&gt;value(value).&lt;br /&gt;&lt;br /&gt;  CLEAR bdc_tab.&lt;br /&gt;  IF dynbegin = 'X'.&lt;br /&gt;    bdc_tab-program = name.&lt;br /&gt;    bdc_tab-dynpro = value.&lt;br /&gt;    bdc_tab-dynbegin = 'X'.&lt;br /&gt;  ELSE.&lt;br /&gt;    bdc_tab-fnam = name.&lt;br /&gt;    bdc_tab-fval = value.&lt;br /&gt;  ENDIF.&lt;br /&gt;  APPEND bdc_tab.&lt;br /&gt;  CLEAR bdc_tab.&lt;br /&gt;&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;*......................................................................*&lt;br /&gt;* BCD OPEN&lt;br /&gt;*......................................................................*&lt;br /&gt;FORM bdc_open.&lt;br /&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;br /&gt;       EXPORTING&lt;br /&gt;            client = sy-mandt&lt;br /&gt;            group  = 'antonio'                              " SM35&lt;br /&gt;            keep   = 'X'&lt;br /&gt;            user   = sy-uname.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;*......................................................................*&lt;br /&gt;* BCD CLOSED&lt;br /&gt;*......................................................................*&lt;br /&gt;FORM bdc_closed.&lt;br /&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;br /&gt;       EXCEPTIONS&lt;br /&gt;            not_open    = 1&lt;br /&gt;            queue_error = 2&lt;br /&gt;            OTHERS      = 3.&lt;br /&gt;ENDFORM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-1884963894287849506?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/1884963894287849506/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=1884963894287849506' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/1884963894287849506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/1884963894287849506'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/01/batch-input.html' title='Batch Input'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-2075491208063718222</id><published>2008-01-25T10:07:00.000-06:00</published><updated>2008-01-25T10:21:38.452-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES'/><title type='text'>Reporte Basico</title><content type='html'>REPORT ZANTONIO2 NO STANDARD PAGE HEADING.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; *tablas de la base de datos a utilizar&lt;br /&gt; TABLES: ZPEDIDOS, ZPRODXPED, ZPRODUCTO, ZMTLXPROD.&lt;br /&gt;&lt;br /&gt; *VARIABLES Y TABLAS INTERNAS&lt;br /&gt; DATA: BEGIN OF T_MAT OCCURS 0,&lt;br /&gt; ID_PEDIDO LIKE ZPEDIDOS-ID_PEDIDO,&lt;br /&gt; ID_PRODUCTO LIKE ZPRODUCTO-ID_PRODUCTO,&lt;br /&gt; CANTIDAD LIKE ZPRODXPED-CANTIDAD,&lt;br /&gt; DESCRIPCION LIKE ZPRODUCTO-DESCRIPCION,&lt;br /&gt; FECHA LIKE ZPEDIDOS-FECHA,&lt;br /&gt; SUM_MATERIALES TYPE P,&lt;br /&gt; SUM_CANTIDAD TYPE P,&lt;br /&gt; END OF T_MAT.&lt;br /&gt; DATA: BEGIN OF T_AUX OCCURS 0,&lt;br /&gt; ID_PRODUCTO2 LIKE ZPRODUCTO-ID_PRODUCTO,&lt;br /&gt; DESCRIPCION2 LIKE ZPRODUCTO-DESCRIPCION,&lt;br /&gt; CANTIDAD2 LIKE ZPRODXPED-CANTIDAD,&lt;br /&gt; FECHA2 LIKE ZPEDIDOS-FECHA,&lt;br /&gt; END OF T_AUX.&lt;br /&gt; DATA: BEGIN OF T_AUX2 OCCURS 0,&lt;br /&gt; ID_MATERIAL LIKE ZMTLXPROD-ID_MATERIAL,&lt;br /&gt; CANTIDAD LIKE ZMTLXPROD-CANTIDAD,&lt;br /&gt; END OF T_AUX2.&lt;br /&gt; DATA: LMAT LIKE LINE OF T_MAT.&lt;br /&gt; DATA: LAUX LIKE LINE OF T_AUX.&lt;br /&gt; DATA: VAR TYPE P.&lt;br /&gt; DATA: TPEDIDOS LIKE ZPEDIDOS OCCURS 0 WITH HEADER LINE.&lt;br /&gt;&lt;br /&gt; *OPCIONES DE SELECCION (FECHA INICIAL Y FECHA FINAL)&lt;br /&gt; SELECT-OPTIONS: RANGO FOR T_MAT-FECHA.&lt;br /&gt;&lt;br /&gt; *CODIGO&lt;br /&gt; WRITE 10'PERIODO:'.&lt;br /&gt; WRITE: 60'REPORTE DE CONSUMO DE MATERIAL' COLOR 2 ON.&lt;br /&gt; WRITE: /'DE', RANGO-LOW, 'AL', RANGO-HIGH.&lt;br /&gt; WRITE: 63 'FECHA ACTUAL : ' INVERSE COLOR 6, SY-DATUM INVERSE COLOR 6,&lt;br /&gt; SY-ULINE.&lt;br /&gt; SKIP 2.&lt;br /&gt;&lt;br /&gt; *QUERY DE SELECCION Y COPIA A TABLA INTERNA.&lt;br /&gt; SELECT * INTO TABLE TPEDIDOS FROM ZPEDIDOS WHERE ZPEDIDOS~FECHA IN RANGO.&lt;br /&gt; SELECT ZPRODXPED~ID_PRODUCTO ZPRODUCTO~DESCRIPCION ZPRODXPED~CANTIDAD&lt;br /&gt; ZPEDIDOS~FECHA INTO TABLE T_AUX FROM ZPRODXPED&lt;br /&gt; JOIN ZPEDIDOS ON ZPRODXPED~ID_PEDIDO = ZPEDIDOS~ID_PEDIDO&lt;br /&gt; JOIN ZPRODUCTO ON ZPRODXPED~ID_PRODUCTO = ZPRODUCTO~ID_PRODUCTO&lt;br /&gt; WHERE ZPEDIDOS~FECHA IN RANGO.&lt;br /&gt;&lt;br /&gt; *IMPRESION DE LA TABLA DE PEDIDOS (TABLA 1)&lt;br /&gt; VAR = 5.&lt;br /&gt; WRITE 'PEDIDOS ACTUALES' COLOR 4 ON.&lt;br /&gt; WRITE / ' '.&lt;br /&gt; ULINE AT 6(100).&lt;br /&gt; WRITE / ' '.&lt;br /&gt; LOOP AT TPEDIDOS.&lt;br /&gt; AT END OF ID_PEDIDO.&lt;br /&gt; IF VAR &gt;= 100.&lt;br /&gt; VAR = 5.&lt;br /&gt; WRITE /' '.&lt;br /&gt; ENDIF.&lt;br /&gt; WRITE: AT VAR ' ', TPEDIDOS-ID_PEDIDO, ' '.&lt;br /&gt; VAR = VAR + 10.&lt;br /&gt; ENDAT.&lt;br /&gt; ENDLOOP.&lt;br /&gt; SKIP 2.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; *IMPRESION DE LA TABLA DE PRODUCTOS (TABLA 2)&lt;br /&gt; WRITE 'CANTIDAD DE PRODUCTO' COLOR 4 ON.&lt;br /&gt; WRITE /' '.&lt;br /&gt; ULINE AT 6(46).&lt;br /&gt; WRITE: /' '.&lt;br /&gt; WRITE: /5 ' ', 10 'Id' COLOR 2 ON, 15 'Descripcion' COLOR 2 ON, 40&lt;br /&gt; 'Cantidad' COLOR 2 ON, 50 ' '.&lt;br /&gt; WRITE: /' '.&lt;br /&gt; ULINE AT 6(46).&lt;br /&gt; WRITE /' '.&lt;br /&gt; SORT T_AUX BY ID_PRODUCTO2.&lt;br /&gt; LOOP AT T_AUX.&lt;br /&gt; MOVE T_AUX TO LAUX.&lt;br /&gt; AT END OF ID_PRODUCTO2.&lt;br /&gt; SUM.&lt;br /&gt; WRITE: /5 ' ', T_AUX-ID_PRODUCTO2, LAUX-DESCRIPCION2,&lt;br /&gt; T_AUX-CANTIDAD2, 50 ' '.&lt;br /&gt; ******************************************************************&lt;br /&gt; PERFORM RUTINA_MTLS USING T_AUX-ID_PRODUCTO2 T_AUX-CANTIDAD2.&lt;br /&gt; ******************************************************************&lt;br /&gt; ENDAT.&lt;br /&gt; ENDLOOP.&lt;br /&gt; SKIP 2.&lt;br /&gt;&lt;br /&gt; *IMPRESION DE LA TABLA DE MATERIALES (TABLA 3)&lt;br /&gt; VAR = 1.&lt;br /&gt; WRITE 'CANTIDAD DE MATERIALES Y COSTOS' COLOR 4 ON.&lt;br /&gt; WRITE /' '.&lt;br /&gt; ULINE AT 11(26).&lt;br /&gt; WRITE: /10' ', 13 'MATERIAL' COLOR 2 ON, 21 ' ', 25 'CANTIDAD' COLOR&lt;br /&gt; 2 ON, 35' '.&lt;br /&gt; write /' '.&lt;br /&gt; ULINE AT 11(26).&lt;br /&gt; WRITE /' '.&lt;br /&gt; SORT T_AUX2 BY ID_MATERIAL.&lt;br /&gt; LOOP AT T_AUX2.&lt;br /&gt; AT END OF ID_MATERIAL.&lt;br /&gt; SUM.&lt;br /&gt; WRITE: /10 ' ', T_AUX2-ID_MATERIAL, 20 ' ', T_AUX2-CANTIDAD, 35&lt;br /&gt; ' '.&lt;br /&gt; ENDAT.&lt;br /&gt; AT LAST.&lt;br /&gt; SUM.&lt;br /&gt; WRITE: 50 'TOTAL DE DINERO REQUERIDO = ' COLOR 6 ON, T_AUX2-CANTIDAD&lt;br /&gt; COLOR 6 ON.&lt;br /&gt; ENDAT.&lt;br /&gt; ENDLOOP.&lt;br /&gt; SKIP 5.&lt;br /&gt;&lt;br /&gt; ************************************************************************&lt;br /&gt; *RUTINA&lt;br /&gt; ************************************************************************&lt;br /&gt; FORM RUTINA_MTLS USING P_PROD P_CANT.&lt;br /&gt; SELECT * INTO ZMTLXPROD FROM ZMTLXPROD WHERE ID_PRODUCTO = P_PROD.&lt;br /&gt; T_AUX2-ID_MATERIAL = ZMTLXPROD-ID_MATERIAL.&lt;br /&gt; T_AUX2-CANTIDAD = P_CANT * ZMTLXPROD-CANTIDAD.&lt;br /&gt; APPEND T_AUX2.&lt;br /&gt; ENDSELECT.&lt;br /&gt; ENDFORM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-2075491208063718222?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/2075491208063718222/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=2075491208063718222' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2075491208063718222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/2075491208063718222'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/01/reporte-basico.html' title='Reporte Basico'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-4183669190216540872</id><published>2008-01-22T11:34:00.002-06:00</published><updated>2008-03-07T12:02:42.409-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MODULE POOL - FUNCIONES'/><title type='text'>Mensajes Pop-up</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9GDOTfxdMI/AAAAAAAAAC8/JIyQi1ZNwwk/s1600-h/pop+up+info.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_EVGW4AH1p2o/R9GDOTfxdMI/AAAAAAAAAC8/JIyQi1ZNwwk/s320/pop+up+info.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5175061728600356034" /&gt;&lt;/a&gt;&lt;br /&gt;Existen varias funciones para mensajes popup, les traigo el codigo para informacion y para confirmacion de pasos. son las que a mi mas me gusta puesto que son sencillas de implementar y ademas en la confirmacion de pasos, se pueden personalizar los botones para obtener una respuesta.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*******************************&lt;br /&gt;* pop-up informnativa&lt;br /&gt;*******************************&lt;br /&gt;&lt;br /&gt;      CALL FUNCTION 'POPUP_TO_INFORM'&lt;br /&gt;        EXPORTING&lt;br /&gt;             TXT1    = 'Este es el texto 1 a mostrar en la ventana'&lt;br /&gt;             TXT2    = 'Este es el texto 2 a mostrar en la ventana'&lt;br /&gt;             TITEL        = 'WARNING Ventana informativa!!!!'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-4183669190216540872?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/4183669190216540872/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=4183669190216540872' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/4183669190216540872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/4183669190216540872'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/01/mensajes-pop-up.html' title='Mensajes Pop-up'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EVGW4AH1p2o/R9GDOTfxdMI/AAAAAAAAAC8/JIyQi1ZNwwk/s72-c/pop+up+info.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-6029858401708334942</id><published>2008-01-22T11:05:00.000-06:00</published><updated>2008-02-19T16:24:45.739-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES - ALV'/><title type='text'>Imagenes en Custom Control (Dynpro)</title><content type='html'>para poder insertar una foto en nuestro programa, primero la tenemos que importar al workbench mediante la transaccion SE78, para este ejemplo la importaremos y le daremos el nombre de MTTO2 la imagen debe estar en formato bmp para que funcione correctamente, nuestro programa debe tener un Custom control de nombre "picture", previamente para que aparezca ahi la imagen que queremos cargar&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;******************************&lt;br /&gt;*TOP&lt;br /&gt;******************************&lt;br /&gt;TYPES:&lt;br /&gt;    PICT_LINE(256) TYPE C.&lt;br /&gt;&lt;br /&gt;DATA:&lt;br /&gt;    PICT_TAB TYPE TABLE OF PICT_LINE,&lt;br /&gt;    URL(255) TYPE C.&lt;br /&gt;DATA:&lt;br /&gt;    CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,&lt;br /&gt;    PICTURE TYPE REF TO CL_GUI_PICTURE.&lt;br /&gt;DATA:&lt;br /&gt;    L_BYTECOUNT TYPE I,&lt;br /&gt;    L_TDBTYPE LIKE STXBITMAPS-TDBTYPE,&lt;br /&gt;    L_CONTENT TYPE STANDARD TABLE OF BAPICONTEN&lt;br /&gt;    INITIAL SIZE 0.&lt;br /&gt;DATA:&lt;br /&gt;    GRAPHIC_SIZE TYPE I.&lt;br /&gt;DATA:&lt;br /&gt;    BEGIN OF GRAPHIC_TABLE OCCURS 0,&lt;br /&gt;      LINE(255) TYPE X,&lt;br /&gt;    END OF GRAPHIC_TABLE.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;******************************&lt;br /&gt;*out&lt;br /&gt;******************************&lt;br /&gt;module STATUS_0600 output.&lt;br /&gt;SET PF-STATUS 'xxxx'.&lt;br /&gt;SET TITLEBAR 'xxxx'.&lt;br /&gt;perform LOAD_IMAGE.&lt;br /&gt;endmodule.                 " STATUS_0600  OUTPUT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;******************************&lt;br /&gt;*FORM&lt;br /&gt;******************************&lt;br /&gt;form LOAD_IMAGE.&lt;br /&gt;CREATE OBJECT: CONTAINER1 EXPORTING CONTAINER_NAME = 'PICTURE',&lt;br /&gt;               PICTURE EXPORTING PARENT = CONTAINER1.&lt;br /&gt;CALL FUNCTION 'SAPSCRIPT_GET_GRAPHIC_BDS'&lt;br /&gt;  EXPORTING&lt;br /&gt;    I_OBJECT       = 'GRAPHICS'&lt;br /&gt;    I_NAME         = 'MTTO2'&lt;br /&gt;    I_ID           = 'BMAP'&lt;br /&gt;    I_BTYPE        = 'BCOL'&lt;br /&gt;*  IMPORTING&lt;br /&gt;*    E_BYTECOUNT    = L_BYTECOUNT&lt;br /&gt;  TABLES&lt;br /&gt;    CONTENT        = L_CONTENT&lt;br /&gt;  EXCEPTIONS&lt;br /&gt;    NOT_FOUND      = 1&lt;br /&gt;    BDS_GET_FAILED = 2&lt;br /&gt;    BDS_NO_CONTENT = 3&lt;br /&gt;    OTHERS         = 4.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'SAPSCRIPT_CONVERT_BITMAP'&lt;br /&gt;  EXPORTING&lt;br /&gt;    OLD_FORMAT               = 'BDS'&lt;br /&gt;    NEW_FORMAT               = 'BMP'&lt;br /&gt;    BITMAP_FILE_BYTECOUNT_IN = L_BYTECOUNT&lt;br /&gt;  IMPORTING&lt;br /&gt;    BITMAP_FILE_BYTECOUNT    = GRAPHIC_SIZE&lt;br /&gt;  TABLES&lt;br /&gt;    BDS_BITMAP_FILE          = L_CONTENT&lt;br /&gt;    BITMAP_FILE              = GRAPHIC_TABLE&lt;br /&gt;  EXCEPTIONS&lt;br /&gt;    OTHERS                   = 1.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'DP_CREATE_URL'&lt;br /&gt;  EXPORTING&lt;br /&gt;    TYPE    = 'IMAGE'&lt;br /&gt;    SUBTYPE = 'BMP'&lt;br /&gt;  TABLES&lt;br /&gt;    DATA    = GRAPHIC_TABLE&lt;br /&gt;  CHANGING&lt;br /&gt;    URL     = URL.&lt;br /&gt;&lt;br /&gt;CALL METHOD PICTURE-&gt;LOAD_PICTURE_FROM_URL&lt;br /&gt;  EXPORTING&lt;br /&gt;    URL = URL.&lt;br /&gt;&lt;br /&gt;CALL METHOD PICTURE-&gt;SET_DISPLAY_MODE&lt;br /&gt;  EXPORTING&lt;br /&gt;  display_mode = picture-&gt;display_mode_normal_center.&lt;br /&gt;&lt;br /&gt;endform.                    " LOAD_IMAGE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-6029858401708334942?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/6029858401708334942/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=6029858401708334942' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6029858401708334942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/6029858401708334942'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/01/imagenes-en-custom-control-dynpro.html' title='Imagenes en Custom Control (Dynpro)'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20322244708988911.post-3001449654334555935</id><published>2008-01-22T10:41:00.002-06:00</published><updated>2008-02-19T16:34:23.582-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='REPORTES - ALV'/><title type='text'>ALV Editable</title><content type='html'>Para poder editar un grid de ALV, directamente, este es el codigo a seguir:&lt;br /&gt;&lt;br /&gt;***************************************************&lt;br /&gt;*TOP&lt;br /&gt;***************************************************&lt;br /&gt;CLASS lcl_event_receiver  DEFINITION DEFERRED.&lt;br /&gt;&lt;br /&gt;DATA: T_INTERNA TYPE T_EXTERNA OCCURS 0 WITH HEADER LINE,&lt;br /&gt;      G_CUSTOM_CONTAINER  TYPE REF TO CL_GUI_CUSTOM_CONTAINER,&lt;br /&gt;      GRID      TYPE REF TO CL_GUI_ALV_GRID,&lt;br /&gt;      CAT_CAMPOS  TYPE LVC_T_FCAT,&lt;br /&gt;      LCAT_CAMPOS  LIKE LINE OF CAT_CAMPOS,&lt;br /&gt;      event_receiver TYPE REF TO lcl_event_receiver,&lt;br /&gt;      LAYOUT_GRID1 TYPE LVC_S_LAYO.&lt;br /&gt;&lt;br /&gt;DATA: lt_sel_rows TYPE lvc_t_row,&lt;br /&gt;      ls_sel_row TYPE lvc_s_row,&lt;br /&gt;      ls_selected_line like lvc_s_row,&lt;br /&gt;      INDEX_1 TYPE N,&lt;br /&gt;      er_data_changed TYPE REF TO cl_alv_changed_data_protocol.&lt;br /&gt;&lt;br /&gt;*************************************&lt;br /&gt;CLASS lcl_event_receiver DEFINITION.&lt;br /&gt;&lt;br /&gt;PUBLIC SECTION.&lt;br /&gt;METHODS:&lt;br /&gt;handle_double_click&lt;br /&gt;FOR EVENT double_click OF CL_GUI_ALV_GRID&lt;br /&gt;IMPORTING e_row e_column,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;handle_data_changed&lt;br /&gt;for event data_changed of cl_gui_alv_grid&lt;br /&gt;importing er_data_changed.&lt;br /&gt;&lt;br /&gt;ENDCLASS.&lt;br /&gt;******************************************&lt;br /&gt;&lt;br /&gt;******************************************&lt;br /&gt;CLASS lcl_event_receiver IMPLEMENTATION.&lt;br /&gt;METHOD handle_double_click.&lt;br /&gt;&lt;br /&gt;ENDMETHOD.                           "handle_double_click&lt;br /&gt;&lt;br /&gt;METHOD handle_data_changed.&lt;br /&gt;DATA: lt_data_changed TYPE lvc_t_modi,&lt;br /&gt;      LS_DATA_CHANGED LIKE LINE OF LT_DATA_CHANGED.&lt;br /&gt;&lt;br /&gt;APPEND LINES OF er_data_changed-&gt;mt_mod_cells TO&lt;br /&gt;LT_DATA_CHANGED.&lt;br /&gt;&lt;br /&gt;IF NOT LT_DATA_CHANGED IS INITIAL.&lt;br /&gt;INDEX_1 = 1.&lt;br /&gt;READ TABLE LT_DATA_CHANGED INDEX INDEX_1 INTO LS_DATA_CHANGED.&lt;br /&gt;&lt;br /&gt;SELECT * FROM T_EXTERNA INTO TABLE T_INTERNA.&lt;br /&gt;READ TABLE T_INTERNA INDEX LS_DATA_CHANGED-ROW_ID INTO T_EXTERNA.&lt;br /&gt;REFRESH T_INTERNA.&lt;br /&gt;&lt;br /&gt;CASE LS_DATA_CHANGED-FIELDNAME.  &lt;br /&gt;* AQUI SE COMPARA EN NOMBRE DE LOS CAMPOS DE LA TABLA, &lt;br /&gt;* SUPONGAMOS QUE EXISTE UN CAMPO QUE SE LLAMA NOMBRE_C &lt;br /&gt;WHEN 'NOMBRE_C'.&lt;br /&gt;ZAV_T0001-NOMBRE_C = LS_DATA_CHANGED-VALUE.&lt;br /&gt;&lt;br /&gt;ENDCASE.&lt;br /&gt;&lt;br /&gt;*AQUI ACTUALIZAMOS LA TABLA DE LA BD !!!!!!&lt;br /&gt;UPDATE T_EXTERNA FROM T_EXTERNA.&lt;br /&gt;&lt;br /&gt;CLEAR T_EXTERNA.&lt;br /&gt;REFRESH T_INTERNA.&lt;br /&gt;REFRESH lt_data_changed.&lt;br /&gt;CLEAR lt_data_changed.&lt;br /&gt;CLEAR LS_DATA_CHANGED.&lt;br /&gt;CLEAR er_data_changed.&lt;br /&gt;&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;CALL METHOD cl_gui_cfw=&gt;set_new_ok_code&lt;br /&gt;EXPORTING&lt;br /&gt;new_code = 'DC'.&lt;br /&gt;&lt;br /&gt;ENDMETHOD. "handle_data_changed&lt;br /&gt;&lt;br /&gt;ENDCLASS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;***************************************************&lt;br /&gt;* OUT&lt;br /&gt;***************************************************&lt;br /&gt;&lt;br /&gt;module STATUS_0001 output.&lt;br /&gt;SET PF-STATUS 'xxxx'.&lt;br /&gt;SET TITLEBAR 'xxxx'.&lt;br /&gt;PERFORM GRID_1.&lt;br /&gt;&lt;br /&gt;endmodule.    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;***************************************************&lt;br /&gt;* FORM&lt;br /&gt;***************************************************&lt;br /&gt;&lt;br /&gt;form GRID_1.&lt;br /&gt;&lt;br /&gt;IF NOT ( G_CUSTOM_CONTAINER IS INITIAL ).&lt;br /&gt;CALL METHOD G_CUSTOM_CONTAINER-&gt;free&lt;br /&gt;EXCEPTIONS cntl_error = 1&lt;br /&gt;cntl_system_error = 2.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CALL METHOD GRID-&gt;free&lt;br /&gt;EXCEPTIONS cntl_error = 1&lt;br /&gt;cntl_system_error = 2.&lt;br /&gt;&lt;br /&gt;CLEAR G_CUSTOM_CONTAINER.&lt;br /&gt;&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;IF G_CUSTOM_CONTAINER IS INITIAL.&lt;br /&gt; CREATE OBJECT G_CUSTOM_CONTAINER&lt;br /&gt; EXPORTING&lt;br /&gt;  CONTAINER_NAME = 'GRD_EDIT'.&lt;br /&gt; CREATE OBJECT GRID&lt;br /&gt; EXPORTING&lt;br /&gt;  I_PARENT = G_CUSTOM_CONTAINER.&lt;br /&gt;&lt;br /&gt;PERFORM PREPARA_GRID.&lt;br /&gt;&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;SELECT * FROM T_ERXSTERNA INTO TABLE T_INTERNA.&lt;br /&gt;LAYOUT_GRID1-cwidth_opt = 'X'. &lt;br /&gt;LAYOUT_GRID1-NO_TOOLBAR = 'X'. "nO MUESTRA LA BARRA DE HERR.&lt;br /&gt;&lt;br /&gt;PERFORM LLENACAT.&lt;br /&gt;&lt;br /&gt;CALL METHOD GRID-&gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;br /&gt;EXPORTING IS_LAYOUT = LAYOUT_GRID1&lt;br /&gt;CHANGING  IT_OUTTAB = T_INTERNA[]&lt;br /&gt;          IT_FIELDCATALOG = CAT_CAMPOS .&lt;br /&gt;&lt;br /&gt;REFRESH T_INTERNA.&lt;br /&gt;&lt;br /&gt;endform.                    " GRID_1&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  LLENACAT&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;form LLENACAT.&lt;br /&gt;&lt;br /&gt;CLEAR LCAT_CAMPOS.&lt;br /&gt;LCAT_CAMPOS-fieldname = 'NOMBRE_C'.&lt;br /&gt;LCAT_CAMPOS-ref_table = 'ZAV_T0001'.&lt;br /&gt;LCAT_CAMPOS-coltext = 'NOMBRE'.&lt;br /&gt;LCAT_CAMPOS-emphasize = 'C110'.&lt;br /&gt;LCAT_CAMPOS-EDIT = 'X'.&lt;br /&gt;APPEND LCAT_CAMPOS TO CAT_CAMPOS.&lt;br /&gt;&lt;br /&gt;endform.                    " LLENACAT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;      Form  PREPARA_GRID&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;Form PREPARA_GRID.&lt;br /&gt;&lt;br /&gt;CREATE OBJECT event_receiver.&lt;br /&gt;SET HANDLER event_receiver-&gt;handle_double_click FOR GRID.&lt;br /&gt;set handler event_receiver-&gt;handle_data_changed for GRID.&lt;br /&gt;CREATE OBJECT er_data_changed.&lt;br /&gt;&lt;br /&gt;CALL METHOD grid-&gt;set_ready_for_input&lt;br /&gt;exporting&lt;br /&gt;i_ready_for_input = 1.&lt;br /&gt;&lt;br /&gt;CALL METHOD 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;&lt;br /&gt;endform.                    " PREPARA_GRID&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20322244708988911-3001449654334555935?l=abaptman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abaptman.blogspot.com/feeds/3001449654334555935/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20322244708988911&amp;postID=3001449654334555935' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/3001449654334555935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20322244708988911/posts/default/3001449654334555935'/><link rel='alternate' type='text/html' href='http://abaptman.blogspot.com/2008/01/codigos.html' title='ALV Editable'/><author><name>Antonio Lopez</name><uri>http://www.blogger.com/profile/13416300895318457011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp3.blogger.com/_EVGW4AH1p2o/R6yjFlZH5uI/AAAAAAAAABQ/hlbBVknM1Eo/S220/alopez.JPG'/></author><thr:total>0</thr:total></entry></feed>
