<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: abap -spool file in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-spool-file/m-p/2186211#M465542</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you run a report in the background that has more than 255 characters in the output, the spool cuts the output to 255 characters. An OSS Note has been applied to the system which created a new output format that allows for up to 380 characters of output in the spool. When you rerun the report, the TOP-OF-PAGE contents all get outputted in complete, but the data for the report (all WRITE statements after TOP-OF-PAGE) gets cut off at 255 characters. It works fine for an ALV report but it doesn't work for a regular WRITE statement report.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check the following ex:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have executed the report using the 380 format and you know the spool number, you can used this program which accepts the spool number and give the output of your required width. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the code:  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display spool list &amp;gt; 255 columns  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is a SAP utility report to allow display of  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;spool request lists with more than 255 columns in  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;releases 4.6B and 4.6C (4.6D kernel must be used)  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;REPORT ZRSPOSHOWLIST LINE-SIZE 80.  &lt;/P&gt;&lt;P&gt;PARAMETERS: RQIDENT LIKE TSP01-RQIDENT,  &lt;/P&gt;&lt;P&gt;FIRSTL TYPE I DEFAULT 0,  &lt;/P&gt;&lt;P&gt;LASTL TYPE I DEFAULT 0.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;global data from LSPOXTOP  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: RC(10) TYPE C,  &lt;/P&gt;&lt;P&gt;ERRMSG(100) TYPE C,  &lt;/P&gt;&lt;P&gt;STATUS LIKE SY-SUBRC,  &lt;/P&gt;&lt;P&gt;DSN_TYPE(8) TYPE C.  &lt;/P&gt;&lt;P&gt;DATA: BEGIN OF DATA_SET_LINE,  &lt;/P&gt;&lt;P&gt;DATA_LENGTH(5),  &lt;/P&gt;&lt;P&gt;PRECOL(1),  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA_LINE(1000),  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA_LINE(5000), "MODAB  &lt;/P&gt;&lt;P&gt;END OF DATA_SET_LINE,  &lt;/P&gt;&lt;P&gt;DATA_SET_LENGTH(5) TYPE C.  &lt;/P&gt;&lt;P&gt;TABLES: TSP01, TST05, TSPOPTIONS.  &lt;/P&gt;&lt;P&gt;DATA: TEMSE_NAME LIKE TST01-DNAME,  &lt;/P&gt;&lt;P&gt;TEMSE_CLIENT LIKE TST01-DCLIENT,  &lt;/P&gt;&lt;P&gt;TEMSE_HANDLE LIKE RSTSTYPE-HANDLE,  &lt;/P&gt;&lt;P&gt;TEMSE_PART LIKE TST01-DPART,  &lt;/P&gt;&lt;P&gt;TEMSE_OBJTYP LIKE TST01-DTYPE,  &lt;/P&gt;&lt;P&gt;TEMSE_RECTYP LIKE RSTSTYPE-RECTYP,  &lt;/P&gt;&lt;P&gt;TEMSE_CHARCO LIKE TST01-DCHARCOD.  &lt;/P&gt;&lt;P&gt;DATA: IS_OTF.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;global data from LSPOCTOP  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF SPOC  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;, escape  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;, prtctrl  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;, FIRST_BYTES(4) " collection of the first bytes of the  &lt;/P&gt;&lt;P&gt;" escape sequences, which I am searching for.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;, PRTCTRL_START_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;, PRTCTRL_TOTAL_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;, PRTCTRL_START(10)  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;, SYMBOL_LOW_START(10)  &lt;/P&gt;&lt;P&gt;, SYMBOL_HGH_START(10)  &lt;/P&gt;&lt;P&gt;, SYMBOL_START_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;, ICON_START(10)  &lt;/P&gt;&lt;P&gt;, ICON_START_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;, ICON_SEL TYPE I VALUE 1  &lt;/P&gt;&lt;P&gt;, FRAME_START(10)  &lt;/P&gt;&lt;P&gt;, FRAME_START_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;, END OF SPOC.  &lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS:  TYPE C  &lt;/P&gt;&lt;P&gt;.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;copied from RSPO_DISPLAY_ABAP_SPOOLJOB  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BUFFER LIKE DATA_SET_LINE OCCURS 1000.  &lt;/P&gt;&lt;P&gt;TABLES: TSP02L.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TSP01 WHERE RQIDENT = RQIDENT.  &lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.  &lt;/P&gt;&lt;P&gt;WRITE: / 'Spool request does not exist:'(001), RQIDENT.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RSPO_CHECK_JOB_PERMISSION'  &lt;/P&gt;&lt;P&gt;EXPORTING  &lt;/P&gt;&lt;P&gt;ACCESS = 'DISP'  &lt;/P&gt;&lt;P&gt;SPOOLREQ = TSP01  &lt;/P&gt;&lt;P&gt;EXCEPTIONS  &lt;/P&gt;&lt;P&gt;NO_PERMISSION = 1  &lt;/P&gt;&lt;P&gt;OTHERS = 2.  &lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.  &lt;/P&gt;&lt;P&gt;WRITE: / 'No authorization to display'(002).  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM READ_DATA TABLES BUFFER  &lt;/P&gt;&lt;P&gt;USING TSP01 FIRSTL LASTL.  &lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.  &lt;/P&gt;&lt;P&gt;WRITE: / 'Error reading spoolo request'(003).  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF IS_OTF = 'X'.  &lt;/P&gt;&lt;P&gt;WRITE: / 'This spool request is not an ABAP list'(004).  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;PERFORM DISPLAY_DATA TABLES BUFFER USING TSP01-RQPAPER TSP01-RQIDENT.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="42" type="ul"&gt;&lt;P&gt; &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;FORM GET_SPOOL_LINE.  &lt;/P&gt;&lt;P&gt;DO.  &lt;/P&gt;&lt;P&gt;IF TEMSE_RECTYP+1(1) = 'Y'.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_READ'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'BUFF' FIELD DATA_SET_LINE  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ID 'BUFFLG' FIELD 1006  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ID 'BUFFLG' FIELD 5006 "MODAB  &lt;/P&gt;&lt;P&gt;ID 'ALLINE' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'BINARY' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'SHOWLG' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_READ'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'BUFF' FIELD DATA_SET_LINE+1  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ID 'BUFFLG' FIELD 1005  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ID 'BUFFLG' FIELD 5005 "MODAB  &lt;/P&gt;&lt;P&gt;ID 'ALLINE' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'BINARY' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'SHOWLG' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;DATA_SET_LINE(5) = DATA_SET_LINE+1(5).  &lt;/P&gt;&lt;P&gt;DATA_SET_LINE-PRECOL = ' '.  &lt;/P&gt;&lt;P&gt;ADD 1 TO DATA_SET_LINE-DATA_LENGTH.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 6. " EOF, error condition, or got data  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of this part, try to open next part  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ADD 1 TO TEMSE_PART.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_CLOSE'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;IF STATUS = 0.  &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RSTS_GET_ATTRIBUTES'  &lt;/P&gt;&lt;P&gt;EXPORTING  &lt;/P&gt;&lt;P&gt;AUTHORITY = 'SP01'  &lt;/P&gt;&lt;P&gt;CLIENT = TEMSE_CLIENT "hjl  &lt;/P&gt;&lt;P&gt;NAME = TEMSE_NAME  &lt;/P&gt;&lt;P&gt;PART = TEMSE_PART  &lt;/P&gt;&lt;P&gt;IMPORTING  &lt;/P&gt;&lt;P&gt;CHARCO = TEMSE_CHARCO  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CREATER =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CREDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DELDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAX_CREDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAX_DELDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NON_UNIQ =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NOOF_PARTS =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;RECTYP = TEMSE_RECTYP  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SIZE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STOTYP =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;OBJTYPE = TEMSE_OBJTYP  &lt;/P&gt;&lt;P&gt;EXCEPTIONS  &lt;/P&gt;&lt;P&gt;FB_ERROR = 1  &lt;/P&gt;&lt;P&gt;FB_RSTS_OTHER = 2  &lt;/P&gt;&lt;P&gt;NO_OBJECT = 3  &lt;/P&gt;&lt;P&gt;NO_PERMISSION = 4  &lt;/P&gt;&lt;P&gt;OTHERS = 5.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF STATUS = 0.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_OPEN_READ'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'CLIENT' FIELD TEMSE_CLIENT "hjl  &lt;/P&gt;&lt;P&gt;ID 'NAME' FIELD TEMSE_NAME  &lt;/P&gt;&lt;P&gt;ID 'PART' FIELD TEMSE_PART  &lt;/P&gt;&lt;P&gt;ID 'TYPE' FIELD TEMSE_OBJTYP  &lt;/P&gt;&lt;P&gt;ID 'CONV' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'ALLINE' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'BINARY' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'RECTYP' FIELD TEMSE_RECTYP  &lt;/P&gt;&lt;P&gt;ID 'CHARCO' FIELD TEMSE_CHARCO  &lt;/P&gt;&lt;P&gt;ID 'PROM' FIELD 'I'  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDDO.  &lt;/P&gt;&lt;P&gt;IF STATUS = 4.  &lt;/P&gt;&lt;P&gt;STATUS = 12. "EOF  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF STATUS = 8.  &lt;/P&gt;&lt;P&gt;STATUS = 40. "Line too long  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;DATA_SET_LENGTH = DATA_SET_LINE-DATA_LENGTH.  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM READ_DATA TABLES BUFFER  &lt;/P&gt;&lt;P&gt;USING TSP01 LIKE TSP01 VALUE(FIRST) TYPE I  &lt;/P&gt;&lt;P&gt;VALUE(LAST) TYPE I.  &lt;/P&gt;&lt;P&gt;DATA: LINES TYPE I.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH BUFFER.  &lt;/P&gt;&lt;P&gt;CLEAR IS_OTF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TEMSE_CLIENT = TSP01-RQCLIENT.  &lt;/P&gt;&lt;P&gt;TEMSE_NAME = TSP01-RQO1NAME.  &lt;/P&gt;&lt;P&gt;TEMSE_PART = 1.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RSTS_GET_ATTRIBUTES'  &lt;/P&gt;&lt;P&gt;EXPORTING  &lt;/P&gt;&lt;P&gt;AUTHORITY = 'SP01'  &lt;/P&gt;&lt;P&gt;CLIENT = TEMSE_CLIENT  &lt;/P&gt;&lt;P&gt;NAME = TEMSE_NAME  &lt;/P&gt;&lt;P&gt;PART = TEMSE_PART  &lt;/P&gt;&lt;P&gt;IMPORTING  &lt;/P&gt;&lt;P&gt;CHARCO = TEMSE_CHARCO  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CREATER =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CREDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DELDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAX_CREDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAX_DELDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NON_UNIQ =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NOOF_PARTS =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;RECTYP = TEMSE_RECTYP  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SIZE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STOTYP =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;OBJTYPE = TEMSE_OBJTYP  &lt;/P&gt;&lt;P&gt;EXCEPTIONS  &lt;/P&gt;&lt;P&gt;FB_ERROR = 1  &lt;/P&gt;&lt;P&gt;FB_RSTS_OTHER = 2  &lt;/P&gt;&lt;P&gt;NO_OBJECT = 3  &lt;/P&gt;&lt;P&gt;NO_PERMISSION = 4  &lt;/P&gt;&lt;P&gt;OTHERS = 5.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.  &lt;/P&gt;&lt;P&gt;IF TEMSE_OBJTYP(3) = 'OTF'.  &lt;/P&gt;&lt;P&gt;IS_OTF = 'X'.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR TEMSE_HANDLE.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_OPEN_READ'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'CLIENT' FIELD TEMSE_CLIENT "hjl  &lt;/P&gt;&lt;P&gt;ID 'NAME' FIELD TEMSE_NAME  &lt;/P&gt;&lt;P&gt;ID 'PART' FIELD TEMSE_PART  &lt;/P&gt;&lt;P&gt;ID 'TYPE' FIELD TEMSE_OBJTYP  &lt;/P&gt;&lt;P&gt;ID 'CONV' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'ALLINE' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'BINARY' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'RECTYP' FIELD TEMSE_RECTYP  &lt;/P&gt;&lt;P&gt;ID 'CHARCO' FIELD TEMSE_CHARCO  &lt;/P&gt;&lt;P&gt;ID 'PROM' FIELD 'I'  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF STATUS = 0.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO.  &lt;/P&gt;&lt;P&gt;PERFORM GET_SPOOL_LINE.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 0 AND STATUS &amp;lt;&amp;gt; 40 AND STATUS &amp;lt;&amp;gt; 12.  &lt;/P&gt;&lt;P&gt;PERFORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 12. " 12 = End  &lt;/P&gt;&lt;P&gt;IF NOT ( DATA_SET_LENGTH IS INITIAL ).  &lt;/P&gt;&lt;P&gt;DATA_SET_LINE-DATA_LENGTH = DATA_SET_LENGTH - 1.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ADD 1 TO LINES.  &lt;/P&gt;&lt;P&gt;IF LINES &amp;gt;= FIRST.  &lt;/P&gt;&lt;P&gt;APPEND DATA_SET_LINE TO BUFFER.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF ( NOT LAST IS INITIAL ) AND ( LINES &amp;gt;= LAST ).  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;IF LINES = 0.  &lt;/P&gt;&lt;P&gt;PERFORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF LINES &amp;lt; FIRST .  &lt;/P&gt;&lt;P&gt;PERFORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDDO.  &lt;/P&gt;&lt;P&gt;PERFORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM CLOSE_JOB *  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;........ *  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 0 AND STATUS &amp;lt;&amp;gt; 12.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_CLOSE'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;MESSAGE E112(PO) WITH STATUS RC ERRMSG RAISING READ_ERROR.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_CLOSE'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 0.  &lt;/P&gt;&lt;P&gt;MESSAGE E112(PO) WITH STATUS RC ERRMSG RAISING READ_ERROR.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DISPLAY_DATA TABLES BUFFER USING RQPAPER LIKE TSP01-RQPAPER &lt;/P&gt;&lt;P&gt;RQID LIKE TSP01-RQIDENT.  &lt;/P&gt;&lt;P&gt;DATA: LINE_LENGTH TYPE I, GCOL TYPE I, GLINES TYPE I,  &lt;/P&gt;&lt;P&gt;LINE_LENGTH2 LIKE RSTSTYPE-LINELENGTH,  &lt;/P&gt;&lt;P&gt;V, V2.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'RSPO_SPOOLDATA_WRITE_INIT'.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM SPOOLDATA_WRITE_INIT. "MODAB  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;select single * from tspoptions where spoption = 'REALWIDTH'.  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if sy-subrc = 0.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;V = 'X'.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;endif.  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;select single * from tspoptions where spoption = 'REALHEIGHT'.  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if sy-subrc = 0.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;V2 = 'X'.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;endif.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF NOT V IS INITIAL OR NOT V2 IS INITIAL.  &lt;/P&gt;&lt;P&gt;GCOL = 0.  &lt;/P&gt;&lt;P&gt;GLINES = 0.  &lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TSP02L WHERE PJIDENT = RQID  &lt;/P&gt;&lt;P&gt;AND PJNUMMER = 0.  &lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.  &lt;/P&gt;&lt;P&gt;GCOL = TSP02L-COLUMNS.  &lt;/P&gt;&lt;P&gt;GLINES = TSP02L-LINES.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RSPO_GET_SIZE_OF_LAYOUT'  &lt;/P&gt;&lt;P&gt;EXPORTING  &lt;/P&gt;&lt;P&gt;LAYOUT = RQPAPER  &lt;/P&gt;&lt;P&gt;IMPORTING  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ANSWER =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;COLUMNS = GCOL  &lt;/P&gt;&lt;P&gt;LINES = GLINES  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PFORMAT =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF GCOL &amp;lt; 80 OR V IS INITIAL.  &lt;/P&gt;&lt;P&gt;GCOL = 255.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF GLINES &amp;lt; 5 OR V2 IS INITIAL.  &lt;/P&gt;&lt;P&gt;GLINES = 0.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF GCOL &amp;gt;= 1024. "MODAB  &lt;/P&gt;&lt;P&gt;GCOL = 1023.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;NEW-PAGE NO-HEADING NO-TITLE LINE-SIZE GCOL  &lt;/P&gt;&lt;P&gt;LINE-COUNT GLINES. " make a wide list  &lt;/P&gt;&lt;P&gt;SET BLANK LINES ON.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT BUFFER.  &lt;/P&gt;&lt;P&gt;DATA_SET_LINE = BUFFER.  &lt;/P&gt;&lt;P&gt;IF DATA_SET_LINE-PRECOL = 'P'.  &lt;/P&gt;&lt;P&gt;IF DATA_SET_LINE(1) = ' '. " Echter Vorschub ?"  &lt;/P&gt;&lt;P&gt;NEW-PAGE.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;CONTINUE.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Zeilenlänge berechnen, falls unbekannt.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF DATA_SET_LINE-DATA_LENGTH IS INITIAL.  &lt;/P&gt;&lt;P&gt;LINE_LENGTH = STRLEN( DATA_SET_LINE-DATA_LINE ).  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;LINE_LENGTH = DATA_SET_LINE-DATA_LENGTH.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF LINE_LENGTH &amp;gt; 0.  &lt;/P&gt;&lt;P&gt;LINE_LENGTH2 = LINE_LENGTH.  &lt;/P&gt;&lt;P&gt;PERFORM SPOOLDATA_WRITE USING DATA_SET_LINE-DATA_LINE "MODAB  &lt;/P&gt;&lt;P&gt;LINE_LENGTH2  &lt;/P&gt;&lt;P&gt;1.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;" Leerzeile  &lt;/P&gt;&lt;P&gt;SKIP.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDLOOP.  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;copied from RSPO_SPOOLDATA_WRITE  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM SPOOLDATA_WRITE USING VALUE(SPOOL_DATA)  &lt;/P&gt;&lt;P&gt;VALUE(DATA_LENGTH) LIKE RSTSTYPE-LINELENGTH  &lt;/P&gt;&lt;P&gt;VALUE(START_POS) LIKE SY-COLNO.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;function globals  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: LPOS LIKE SY-COLNO  &lt;/P&gt;&lt;P&gt;, REST_LEN TYPE I  &lt;/P&gt;&lt;P&gt;, AREA_LEN TYPE I  &lt;/P&gt;&lt;P&gt;, NEXT_HOT TYPE I " offset of next special character  &lt;/P&gt;&lt;P&gt;, COLS TYPE I " columns used by special character  &lt;/P&gt;&lt;P&gt;, BYTES TYPE I " bytes used by special character  &lt;/P&gt;&lt;P&gt;, HOT2  &lt;/P&gt;&lt;P&gt;, HOT3  &lt;/P&gt;&lt;P&gt;, HOT4  &lt;/P&gt;&lt;P&gt;, HOT5  &lt;/P&gt;&lt;P&gt;, HOT6  &lt;/P&gt;&lt;P&gt;, HOT7  &lt;/P&gt;&lt;P&gt;, BEGIN OF ESCAPE_TRICK  &lt;/P&gt;&lt;P&gt;, X1(1) TYPE X  &lt;/P&gt;&lt;P&gt;, END OF ESCAPE_TRICK  &lt;/P&gt;&lt;P&gt;, THE_PRTCTRL(5) TYPE C  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Because of a problem within the ABAP listprocessing, I shall  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;never output the same icon side by side with the same color  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and without a gap.  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;As I don't know the data, I will use two different variables  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;alternatively.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;, ICON_ID1 LIKE ICONS-L4  &lt;/P&gt;&lt;P&gt;, ICON_ID2 LIKE ICONS-L4.  &lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS:   &lt;/P&gt;&lt;P&gt;.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF START_POS &amp;lt; 2.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at / ' ' no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;NEW-LINE.  &lt;/P&gt;&lt;P&gt;LPOS = 1.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;LPOS = START_POS.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REST_LEN = STRLEN( SPOOL_DATA ).  &lt;/P&gt;&lt;P&gt;DESCRIBE FIELD SPOOL_DATA LENGTH AREA_LEN.  &lt;/P&gt;&lt;P&gt;IF DATA_LENGTH = 0.  &lt;/P&gt;&lt;P&gt;" fine.  &lt;/P&gt;&lt;P&gt;ELSEIF DATA_LENGTH .  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MODAB &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM WRITE_BIGFIELD USING   &lt;/P&gt;&lt;P&gt;NEXT_HOT  &lt;/P&gt;&lt;P&gt;LPOS.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE AT LPOS &amp;lt;PLAIN_TEXT&amp;gt; NO-GAP.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ADD NEXT_HOT TO LPOS.  &lt;/P&gt;&lt;P&gt;SUBTRACT NEXT_HOT FROM REST_LEN.  &lt;/P&gt;&lt;P&gt;ASSIGN +6(1).  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;HOT7 = '?'.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;HOT6 = '?'.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;HOT5 = '?'.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF HOT5 = SPACE.  &lt;/P&gt;&lt;P&gt;IF HOT6 = SPACE.  &lt;/P&gt;&lt;P&gt;IF HOT7 = SPACE.  &lt;/P&gt;&lt;P&gt;IF SPOC-ICON_SEL = 1.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(4) ICON_ID1 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id1 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(4) ICON_ID2 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id2 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;COLS = 4.  &lt;/P&gt;&lt;P&gt;BYTES = 7.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;IF SPOC-ICON_SEL = 1.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(3) ICON_ID1 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id1 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(3) ICON_ID2 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id2 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;COLS = 3.  &lt;/P&gt;&lt;P&gt;BYTES = 6.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;IF SPOC-ICON_SEL = 1.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(2) ICON_ID1 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id1 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(2) ICON_ID2 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id2 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;COLS = 2.  &lt;/P&gt;&lt;P&gt;BYTES = 5.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;"rite at lpos(1) icon_id as icon.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(1) '#' NO-GAP. " Not enough space for any icon.  &lt;/P&gt;&lt;P&gt;COLS = 1.  &lt;/P&gt;&lt;P&gt;BYTES = 4.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF .  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDWHILE.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MODAB  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF REST_LEN &amp;gt; 0.  &lt;/P&gt;&lt;P&gt;ASSIGN .  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SPOC-FIRST_BYTES+0(1) = SPOC-PRTCTRL_START(1).  &lt;/P&gt;&lt;P&gt;SPOC-FIRST_BYTES+1(1) = SPOC-FRAME_START(1).  &lt;/P&gt;&lt;P&gt;SPOC-FIRST_BYTES+2(1) = SPOC-ICON_START(1).  &lt;/P&gt;&lt;P&gt;SPOC-FIRST_BYTES+3(1) = SPOC-SYMBOL_LOW_START(1).  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="94" type="ul"&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bhaskar&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 07 May 2007 16:57:48 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-05-07T16:57:48Z</dc:date>
    <item>
      <title>abap -spool file</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-spool-file/m-p/2186209#M465540</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;can you please tell me what is spool file and what is meant by mass printing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 May 2007 16:18:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-spool-file/m-p/2186209#M465540</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-07T16:18:01Z</dc:date>
    </item>
    <item>
      <title>Re: abap -spool file</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-spool-file/m-p/2186210#M465541</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.sdn.sap.com///click.jspa?searchID=2464662&amp;amp;messageID=2414452" target="test_blank"&gt;https://forums.sdn.sap.com///click.jspa?searchID=2464662&amp;amp;messageID=2414452&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Gabriel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 May 2007 16:31:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-spool-file/m-p/2186210#M465541</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-07T16:31:28Z</dc:date>
    </item>
    <item>
      <title>Re: abap -spool file</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-spool-file/m-p/2186211#M465542</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you run a report in the background that has more than 255 characters in the output, the spool cuts the output to 255 characters. An OSS Note has been applied to the system which created a new output format that allows for up to 380 characters of output in the spool. When you rerun the report, the TOP-OF-PAGE contents all get outputted in complete, but the data for the report (all WRITE statements after TOP-OF-PAGE) gets cut off at 255 characters. It works fine for an ALV report but it doesn't work for a regular WRITE statement report.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check the following ex:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have executed the report using the 380 format and you know the spool number, you can used this program which accepts the spool number and give the output of your required width. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the code:  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display spool list &amp;gt; 255 columns  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is a SAP utility report to allow display of  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;spool request lists with more than 255 columns in  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;releases 4.6B and 4.6C (4.6D kernel must be used)  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;REPORT ZRSPOSHOWLIST LINE-SIZE 80.  &lt;/P&gt;&lt;P&gt;PARAMETERS: RQIDENT LIKE TSP01-RQIDENT,  &lt;/P&gt;&lt;P&gt;FIRSTL TYPE I DEFAULT 0,  &lt;/P&gt;&lt;P&gt;LASTL TYPE I DEFAULT 0.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;global data from LSPOXTOP  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: RC(10) TYPE C,  &lt;/P&gt;&lt;P&gt;ERRMSG(100) TYPE C,  &lt;/P&gt;&lt;P&gt;STATUS LIKE SY-SUBRC,  &lt;/P&gt;&lt;P&gt;DSN_TYPE(8) TYPE C.  &lt;/P&gt;&lt;P&gt;DATA: BEGIN OF DATA_SET_LINE,  &lt;/P&gt;&lt;P&gt;DATA_LENGTH(5),  &lt;/P&gt;&lt;P&gt;PRECOL(1),  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA_LINE(1000),  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA_LINE(5000), "MODAB  &lt;/P&gt;&lt;P&gt;END OF DATA_SET_LINE,  &lt;/P&gt;&lt;P&gt;DATA_SET_LENGTH(5) TYPE C.  &lt;/P&gt;&lt;P&gt;TABLES: TSP01, TST05, TSPOPTIONS.  &lt;/P&gt;&lt;P&gt;DATA: TEMSE_NAME LIKE TST01-DNAME,  &lt;/P&gt;&lt;P&gt;TEMSE_CLIENT LIKE TST01-DCLIENT,  &lt;/P&gt;&lt;P&gt;TEMSE_HANDLE LIKE RSTSTYPE-HANDLE,  &lt;/P&gt;&lt;P&gt;TEMSE_PART LIKE TST01-DPART,  &lt;/P&gt;&lt;P&gt;TEMSE_OBJTYP LIKE TST01-DTYPE,  &lt;/P&gt;&lt;P&gt;TEMSE_RECTYP LIKE RSTSTYPE-RECTYP,  &lt;/P&gt;&lt;P&gt;TEMSE_CHARCO LIKE TST01-DCHARCOD.  &lt;/P&gt;&lt;P&gt;DATA: IS_OTF.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;global data from LSPOCTOP  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF SPOC  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;, escape  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;, prtctrl  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;, FIRST_BYTES(4) " collection of the first bytes of the  &lt;/P&gt;&lt;P&gt;" escape sequences, which I am searching for.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;, PRTCTRL_START_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;, PRTCTRL_TOTAL_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;, PRTCTRL_START(10)  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;, SYMBOL_LOW_START(10)  &lt;/P&gt;&lt;P&gt;, SYMBOL_HGH_START(10)  &lt;/P&gt;&lt;P&gt;, SYMBOL_START_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;, ICON_START(10)  &lt;/P&gt;&lt;P&gt;, ICON_START_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;, ICON_SEL TYPE I VALUE 1  &lt;/P&gt;&lt;P&gt;, FRAME_START(10)  &lt;/P&gt;&lt;P&gt;, FRAME_START_LENGTH TYPE I  &lt;/P&gt;&lt;P&gt;, END OF SPOC.  &lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS:  TYPE C  &lt;/P&gt;&lt;P&gt;.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;copied from RSPO_DISPLAY_ABAP_SPOOLJOB  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BUFFER LIKE DATA_SET_LINE OCCURS 1000.  &lt;/P&gt;&lt;P&gt;TABLES: TSP02L.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TSP01 WHERE RQIDENT = RQIDENT.  &lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.  &lt;/P&gt;&lt;P&gt;WRITE: / 'Spool request does not exist:'(001), RQIDENT.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RSPO_CHECK_JOB_PERMISSION'  &lt;/P&gt;&lt;P&gt;EXPORTING  &lt;/P&gt;&lt;P&gt;ACCESS = 'DISP'  &lt;/P&gt;&lt;P&gt;SPOOLREQ = TSP01  &lt;/P&gt;&lt;P&gt;EXCEPTIONS  &lt;/P&gt;&lt;P&gt;NO_PERMISSION = 1  &lt;/P&gt;&lt;P&gt;OTHERS = 2.  &lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.  &lt;/P&gt;&lt;P&gt;WRITE: / 'No authorization to display'(002).  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM READ_DATA TABLES BUFFER  &lt;/P&gt;&lt;P&gt;USING TSP01 FIRSTL LASTL.  &lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.  &lt;/P&gt;&lt;P&gt;WRITE: / 'Error reading spoolo request'(003).  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF IS_OTF = 'X'.  &lt;/P&gt;&lt;P&gt;WRITE: / 'This spool request is not an ABAP list'(004).  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;PERFORM DISPLAY_DATA TABLES BUFFER USING TSP01-RQPAPER TSP01-RQIDENT.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="42" type="ul"&gt;&lt;P&gt; &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;FORM GET_SPOOL_LINE.  &lt;/P&gt;&lt;P&gt;DO.  &lt;/P&gt;&lt;P&gt;IF TEMSE_RECTYP+1(1) = 'Y'.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_READ'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'BUFF' FIELD DATA_SET_LINE  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ID 'BUFFLG' FIELD 1006  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ID 'BUFFLG' FIELD 5006 "MODAB  &lt;/P&gt;&lt;P&gt;ID 'ALLINE' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'BINARY' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'SHOWLG' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_READ'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'BUFF' FIELD DATA_SET_LINE+1  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ID 'BUFFLG' FIELD 1005  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ID 'BUFFLG' FIELD 5005 "MODAB  &lt;/P&gt;&lt;P&gt;ID 'ALLINE' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'BINARY' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'SHOWLG' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;DATA_SET_LINE(5) = DATA_SET_LINE+1(5).  &lt;/P&gt;&lt;P&gt;DATA_SET_LINE-PRECOL = ' '.  &lt;/P&gt;&lt;P&gt;ADD 1 TO DATA_SET_LINE-DATA_LENGTH.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 6. " EOF, error condition, or got data  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of this part, try to open next part  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ADD 1 TO TEMSE_PART.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_CLOSE'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;IF STATUS = 0.  &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RSTS_GET_ATTRIBUTES'  &lt;/P&gt;&lt;P&gt;EXPORTING  &lt;/P&gt;&lt;P&gt;AUTHORITY = 'SP01'  &lt;/P&gt;&lt;P&gt;CLIENT = TEMSE_CLIENT "hjl  &lt;/P&gt;&lt;P&gt;NAME = TEMSE_NAME  &lt;/P&gt;&lt;P&gt;PART = TEMSE_PART  &lt;/P&gt;&lt;P&gt;IMPORTING  &lt;/P&gt;&lt;P&gt;CHARCO = TEMSE_CHARCO  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CREATER =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CREDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DELDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAX_CREDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAX_DELDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NON_UNIQ =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NOOF_PARTS =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;RECTYP = TEMSE_RECTYP  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SIZE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STOTYP =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;OBJTYPE = TEMSE_OBJTYP  &lt;/P&gt;&lt;P&gt;EXCEPTIONS  &lt;/P&gt;&lt;P&gt;FB_ERROR = 1  &lt;/P&gt;&lt;P&gt;FB_RSTS_OTHER = 2  &lt;/P&gt;&lt;P&gt;NO_OBJECT = 3  &lt;/P&gt;&lt;P&gt;NO_PERMISSION = 4  &lt;/P&gt;&lt;P&gt;OTHERS = 5.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF STATUS = 0.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_OPEN_READ'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'CLIENT' FIELD TEMSE_CLIENT "hjl  &lt;/P&gt;&lt;P&gt;ID 'NAME' FIELD TEMSE_NAME  &lt;/P&gt;&lt;P&gt;ID 'PART' FIELD TEMSE_PART  &lt;/P&gt;&lt;P&gt;ID 'TYPE' FIELD TEMSE_OBJTYP  &lt;/P&gt;&lt;P&gt;ID 'CONV' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'ALLINE' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'BINARY' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'RECTYP' FIELD TEMSE_RECTYP  &lt;/P&gt;&lt;P&gt;ID 'CHARCO' FIELD TEMSE_CHARCO  &lt;/P&gt;&lt;P&gt;ID 'PROM' FIELD 'I'  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDDO.  &lt;/P&gt;&lt;P&gt;IF STATUS = 4.  &lt;/P&gt;&lt;P&gt;STATUS = 12. "EOF  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF STATUS = 8.  &lt;/P&gt;&lt;P&gt;STATUS = 40. "Line too long  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;DATA_SET_LENGTH = DATA_SET_LINE-DATA_LENGTH.  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM READ_DATA TABLES BUFFER  &lt;/P&gt;&lt;P&gt;USING TSP01 LIKE TSP01 VALUE(FIRST) TYPE I  &lt;/P&gt;&lt;P&gt;VALUE(LAST) TYPE I.  &lt;/P&gt;&lt;P&gt;DATA: LINES TYPE I.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH BUFFER.  &lt;/P&gt;&lt;P&gt;CLEAR IS_OTF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TEMSE_CLIENT = TSP01-RQCLIENT.  &lt;/P&gt;&lt;P&gt;TEMSE_NAME = TSP01-RQO1NAME.  &lt;/P&gt;&lt;P&gt;TEMSE_PART = 1.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RSTS_GET_ATTRIBUTES'  &lt;/P&gt;&lt;P&gt;EXPORTING  &lt;/P&gt;&lt;P&gt;AUTHORITY = 'SP01'  &lt;/P&gt;&lt;P&gt;CLIENT = TEMSE_CLIENT  &lt;/P&gt;&lt;P&gt;NAME = TEMSE_NAME  &lt;/P&gt;&lt;P&gt;PART = TEMSE_PART  &lt;/P&gt;&lt;P&gt;IMPORTING  &lt;/P&gt;&lt;P&gt;CHARCO = TEMSE_CHARCO  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CREATER =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CREDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DELDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAX_CREDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAX_DELDATE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NON_UNIQ =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NOOF_PARTS =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;RECTYP = TEMSE_RECTYP  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SIZE =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STOTYP =  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;OBJTYPE = TEMSE_OBJTYP  &lt;/P&gt;&lt;P&gt;EXCEPTIONS  &lt;/P&gt;&lt;P&gt;FB_ERROR = 1  &lt;/P&gt;&lt;P&gt;FB_RSTS_OTHER = 2  &lt;/P&gt;&lt;P&gt;NO_OBJECT = 3  &lt;/P&gt;&lt;P&gt;NO_PERMISSION = 4  &lt;/P&gt;&lt;P&gt;OTHERS = 5.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.  &lt;/P&gt;&lt;P&gt;IF TEMSE_OBJTYP(3) = 'OTF'.  &lt;/P&gt;&lt;P&gt;IS_OTF = 'X'.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR TEMSE_HANDLE.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_OPEN_READ'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'CLIENT' FIELD TEMSE_CLIENT "hjl  &lt;/P&gt;&lt;P&gt;ID 'NAME' FIELD TEMSE_NAME  &lt;/P&gt;&lt;P&gt;ID 'PART' FIELD TEMSE_PART  &lt;/P&gt;&lt;P&gt;ID 'TYPE' FIELD TEMSE_OBJTYP  &lt;/P&gt;&lt;P&gt;ID 'CONV' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'ALLINE' FIELD 'X'  &lt;/P&gt;&lt;P&gt;ID 'BINARY' FIELD ' '  &lt;/P&gt;&lt;P&gt;ID 'RECTYP' FIELD TEMSE_RECTYP  &lt;/P&gt;&lt;P&gt;ID 'CHARCO' FIELD TEMSE_CHARCO  &lt;/P&gt;&lt;P&gt;ID 'PROM' FIELD 'I'  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF STATUS = 0.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO.  &lt;/P&gt;&lt;P&gt;PERFORM GET_SPOOL_LINE.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 0 AND STATUS &amp;lt;&amp;gt; 40 AND STATUS &amp;lt;&amp;gt; 12.  &lt;/P&gt;&lt;P&gt;PERFORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 12. " 12 = End  &lt;/P&gt;&lt;P&gt;IF NOT ( DATA_SET_LENGTH IS INITIAL ).  &lt;/P&gt;&lt;P&gt;DATA_SET_LINE-DATA_LENGTH = DATA_SET_LENGTH - 1.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ADD 1 TO LINES.  &lt;/P&gt;&lt;P&gt;IF LINES &amp;gt;= FIRST.  &lt;/P&gt;&lt;P&gt;APPEND DATA_SET_LINE TO BUFFER.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF ( NOT LAST IS INITIAL ) AND ( LINES &amp;gt;= LAST ).  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;IF LINES = 0.  &lt;/P&gt;&lt;P&gt;PERFORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF LINES &amp;lt; FIRST .  &lt;/P&gt;&lt;P&gt;PERFORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDDO.  &lt;/P&gt;&lt;P&gt;PERFORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM CLOSE_JOB *  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;........ *  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM CLOSE_JOB.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 0 AND STATUS &amp;lt;&amp;gt; 12.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_CLOSE'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;MESSAGE E112(PO) WITH STATUS RC ERRMSG RAISING READ_ERROR.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;CALL 'C_RSTS_CLOSE'  &lt;/P&gt;&lt;P&gt;ID 'HANDLE' FIELD TEMSE_HANDLE  &lt;/P&gt;&lt;P&gt;ID 'RC' FIELD RC  &lt;/P&gt;&lt;P&gt;ID 'ERRMSG' FIELD ERRMSG.  &lt;/P&gt;&lt;P&gt;STATUS = SY-SUBRC.  &lt;/P&gt;&lt;P&gt;IF STATUS &amp;lt;&amp;gt; 0.  &lt;/P&gt;&lt;P&gt;MESSAGE E112(PO) WITH STATUS RC ERRMSG RAISING READ_ERROR.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DISPLAY_DATA TABLES BUFFER USING RQPAPER LIKE TSP01-RQPAPER &lt;/P&gt;&lt;P&gt;RQID LIKE TSP01-RQIDENT.  &lt;/P&gt;&lt;P&gt;DATA: LINE_LENGTH TYPE I, GCOL TYPE I, GLINES TYPE I,  &lt;/P&gt;&lt;P&gt;LINE_LENGTH2 LIKE RSTSTYPE-LINELENGTH,  &lt;/P&gt;&lt;P&gt;V, V2.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'RSPO_SPOOLDATA_WRITE_INIT'.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM SPOOLDATA_WRITE_INIT. "MODAB  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;select single * from tspoptions where spoption = 'REALWIDTH'.  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if sy-subrc = 0.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;V = 'X'.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;endif.  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;select single * from tspoptions where spoption = 'REALHEIGHT'.  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if sy-subrc = 0.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;V2 = 'X'.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;endif.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF NOT V IS INITIAL OR NOT V2 IS INITIAL.  &lt;/P&gt;&lt;P&gt;GCOL = 0.  &lt;/P&gt;&lt;P&gt;GLINES = 0.  &lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TSP02L WHERE PJIDENT = RQID  &lt;/P&gt;&lt;P&gt;AND PJNUMMER = 0.  &lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.  &lt;/P&gt;&lt;P&gt;GCOL = TSP02L-COLUMNS.  &lt;/P&gt;&lt;P&gt;GLINES = TSP02L-LINES.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RSPO_GET_SIZE_OF_LAYOUT'  &lt;/P&gt;&lt;P&gt;EXPORTING  &lt;/P&gt;&lt;P&gt;LAYOUT = RQPAPER  &lt;/P&gt;&lt;P&gt;IMPORTING  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ANSWER =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;COLUMNS = GCOL  &lt;/P&gt;&lt;P&gt;LINES = GLINES  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PFORMAT =  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF GCOL &amp;lt; 80 OR V IS INITIAL.  &lt;/P&gt;&lt;P&gt;GCOL = 255.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF GLINES &amp;lt; 5 OR V2 IS INITIAL.  &lt;/P&gt;&lt;P&gt;GLINES = 0.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF GCOL &amp;gt;= 1024. "MODAB  &lt;/P&gt;&lt;P&gt;GCOL = 1023.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;NEW-PAGE NO-HEADING NO-TITLE LINE-SIZE GCOL  &lt;/P&gt;&lt;P&gt;LINE-COUNT GLINES. " make a wide list  &lt;/P&gt;&lt;P&gt;SET BLANK LINES ON.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT BUFFER.  &lt;/P&gt;&lt;P&gt;DATA_SET_LINE = BUFFER.  &lt;/P&gt;&lt;P&gt;IF DATA_SET_LINE-PRECOL = 'P'.  &lt;/P&gt;&lt;P&gt;IF DATA_SET_LINE(1) = ' '. " Echter Vorschub ?"  &lt;/P&gt;&lt;P&gt;NEW-PAGE.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;CONTINUE.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Zeilenlänge berechnen, falls unbekannt.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF DATA_SET_LINE-DATA_LENGTH IS INITIAL.  &lt;/P&gt;&lt;P&gt;LINE_LENGTH = STRLEN( DATA_SET_LINE-DATA_LINE ).  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;LINE_LENGTH = DATA_SET_LINE-DATA_LENGTH.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF LINE_LENGTH &amp;gt; 0.  &lt;/P&gt;&lt;P&gt;LINE_LENGTH2 = LINE_LENGTH.  &lt;/P&gt;&lt;P&gt;PERFORM SPOOLDATA_WRITE USING DATA_SET_LINE-DATA_LINE "MODAB  &lt;/P&gt;&lt;P&gt;LINE_LENGTH2  &lt;/P&gt;&lt;P&gt;1.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;" Leerzeile  &lt;/P&gt;&lt;P&gt;SKIP.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDLOOP.  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;copied from RSPO_SPOOLDATA_WRITE  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM SPOOLDATA_WRITE USING VALUE(SPOOL_DATA)  &lt;/P&gt;&lt;P&gt;VALUE(DATA_LENGTH) LIKE RSTSTYPE-LINELENGTH  &lt;/P&gt;&lt;P&gt;VALUE(START_POS) LIKE SY-COLNO.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;function globals  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: LPOS LIKE SY-COLNO  &lt;/P&gt;&lt;P&gt;, REST_LEN TYPE I  &lt;/P&gt;&lt;P&gt;, AREA_LEN TYPE I  &lt;/P&gt;&lt;P&gt;, NEXT_HOT TYPE I " offset of next special character  &lt;/P&gt;&lt;P&gt;, COLS TYPE I " columns used by special character  &lt;/P&gt;&lt;P&gt;, BYTES TYPE I " bytes used by special character  &lt;/P&gt;&lt;P&gt;, HOT2  &lt;/P&gt;&lt;P&gt;, HOT3  &lt;/P&gt;&lt;P&gt;, HOT4  &lt;/P&gt;&lt;P&gt;, HOT5  &lt;/P&gt;&lt;P&gt;, HOT6  &lt;/P&gt;&lt;P&gt;, HOT7  &lt;/P&gt;&lt;P&gt;, BEGIN OF ESCAPE_TRICK  &lt;/P&gt;&lt;P&gt;, X1(1) TYPE X  &lt;/P&gt;&lt;P&gt;, END OF ESCAPE_TRICK  &lt;/P&gt;&lt;P&gt;, THE_PRTCTRL(5) TYPE C  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Because of a problem within the ABAP listprocessing, I shall  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;never output the same icon side by side with the same color  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and without a gap.  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;As I don't know the data, I will use two different variables  &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;alternatively.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;, ICON_ID1 LIKE ICONS-L4  &lt;/P&gt;&lt;P&gt;, ICON_ID2 LIKE ICONS-L4.  &lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS:   &lt;/P&gt;&lt;P&gt;.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF START_POS &amp;lt; 2.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at / ' ' no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;NEW-LINE.  &lt;/P&gt;&lt;P&gt;LPOS = 1.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;LPOS = START_POS.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REST_LEN = STRLEN( SPOOL_DATA ).  &lt;/P&gt;&lt;P&gt;DESCRIBE FIELD SPOOL_DATA LENGTH AREA_LEN.  &lt;/P&gt;&lt;P&gt;IF DATA_LENGTH = 0.  &lt;/P&gt;&lt;P&gt;" fine.  &lt;/P&gt;&lt;P&gt;ELSEIF DATA_LENGTH .  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MODAB &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM WRITE_BIGFIELD USING   &lt;/P&gt;&lt;P&gt;NEXT_HOT  &lt;/P&gt;&lt;P&gt;LPOS.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE AT LPOS &amp;lt;PLAIN_TEXT&amp;gt; NO-GAP.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ADD NEXT_HOT TO LPOS.  &lt;/P&gt;&lt;P&gt;SUBTRACT NEXT_HOT FROM REST_LEN.  &lt;/P&gt;&lt;P&gt;ASSIGN +6(1).  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;HOT7 = '?'.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;HOT6 = '?'.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;HOT5 = '?'.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;IF HOT5 = SPACE.  &lt;/P&gt;&lt;P&gt;IF HOT6 = SPACE.  &lt;/P&gt;&lt;P&gt;IF HOT7 = SPACE.  &lt;/P&gt;&lt;P&gt;IF SPOC-ICON_SEL = 1.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(4) ICON_ID1 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id1 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(4) ICON_ID2 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id2 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;COLS = 4.  &lt;/P&gt;&lt;P&gt;BYTES = 7.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;IF SPOC-ICON_SEL = 1.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(3) ICON_ID1 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id1 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(3) ICON_ID2 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id2 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;COLS = 3.  &lt;/P&gt;&lt;P&gt;BYTES = 6.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;IF SPOC-ICON_SEL = 1.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(2) ICON_ID1 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id1 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(2) ICON_ID2 AS ICON.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;write at lpos icon_id2 as icon no-gap.  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;COLS = 2.  &lt;/P&gt;&lt;P&gt;BYTES = 5.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;"rite at lpos(1) icon_id as icon.  &lt;/P&gt;&lt;P&gt;WRITE AT LPOS(1) '#' NO-GAP. " Not enough space for any icon.  &lt;/P&gt;&lt;P&gt;COLS = 1.  &lt;/P&gt;&lt;P&gt;BYTES = 4.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF .  &lt;/P&gt;&lt;P&gt;ELSE.  &lt;/P&gt;&lt;P&gt;EXIT.  &lt;/P&gt;&lt;P&gt;ENDIF.  &lt;/P&gt;&lt;P&gt;ENDWHILE.  &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MODAB  &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF REST_LEN &amp;gt; 0.  &lt;/P&gt;&lt;P&gt;ASSIGN .  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SPOC-FIRST_BYTES+0(1) = SPOC-PRTCTRL_START(1).  &lt;/P&gt;&lt;P&gt;SPOC-FIRST_BYTES+1(1) = SPOC-FRAME_START(1).  &lt;/P&gt;&lt;P&gt;SPOC-FIRST_BYTES+2(1) = SPOC-ICON_START(1).  &lt;/P&gt;&lt;P&gt;SPOC-FIRST_BYTES+3(1) = SPOC-SYMBOL_LOW_START(1).  &lt;/P&gt;&lt;P&gt;ENDFORM.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="94" type="ul"&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bhaskar&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 May 2007 16:57:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-spool-file/m-p/2186211#M465542</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-07T16:57:48Z</dc:date>
    </item>
  </channel>
</rss>

