Space at end of each line in the RDF report.

Hi All,
I am developing one HRMS report for sending salaries to bank. Bank has given one format, there should be 24 spaces at the end of each line in the report. But I am not getting any spaces in the report at the end of line. I have tried soo many ways to get that, but I unable to get spaces. If I put any character it is coming, but if I put space that is not coming.
Anyone please tell me how to get spaces at end of each line in RDF report. Its urgent guys...... Anyone please help me out.
Thank you,
Phani

Hi,
I am developing one HRMS report for sending salaries to bank. Bank has given one format, there should be 24 spaces at the end of each line in the report. But I am not getting any spaces in the report at the end of line. I have tried soo many ways to get that, but I unable to get spaces. If I put any character it is coming, but if I put space that is not coming. For the line that is set the height of the Repeating Frame long enough to have the blank space. Vertical Elasticity should be expand.
Also you can try by setting the property *"Vert. Space between frames"* for the Repeating frame.
Hope this helps.
Best Regards
Arif Khadas

Similar Messages

  • PI 7.1 Receiver file adapter - Spaces are truncated at end of each line

    In Receiver file adapter, I specified file content conversion parameters. My file structure is as below:
    Header
      Field1  10
      Field2  20
      Field3  8
      Filler   20
    Detail
      Field1  10
      Field2  8
      Filler    8
    In both Header and Details structures I have to fill 20 and 8 spaces at end of each line. In XML (Payload) I can view the spaces. But when the text file is created all the spaces are truncated.
    Could you please solve this issue.
    Regards

    Recordset Structure: ns1:MT_SAP,REC,Header,Detail
    ns1:MT_SAP.fieldSeparator          '0'
    ns1:MT_SAP_PNC_PPAY.fieldContentFormatting     nothing
    REC.fieldContentFormatting          nothing
    REC.fieldSeparator               '0'
    REC.processConfiguration               FromConfiguration
    Header.fieldFixedLengths               10,20,8,20
    Header.endSeparator               'nl'
    Header.fixedLengthTooShortHandling          Ignore
    Header.fieldNames               Field1,Field2,Field3,Filler
    Header.fieldContentFormatting          nothing
    Detail.fieldFixedLengths               10,8,8
    Detail.endSeparator               'nl'
    Detail.fieldNames               Field1,Field2,Filler
    Detail.fieldContentFormatting          nothing
    Detail.fixedLengthTooShortHandling          Ignore

  • Text in the textfield  has "=" symbols at end of each line. how to remove ?

    For certain cases, if one does cut & paste (multiple lines of text ) into the text area from email, the symbol ("=") appears at end of each line. I was told to handle such cases and remove the "=" at end of each line from the text area. If I replace "=" with space, It would replace every single appearance of "=" with space instead of just only at the end. Any help will be greatly appreciated.
    -thanks

    Hi
    Try to find out new line character.And if position of thses "=" is specific to new line char. you search it out from there and then can replace with any char or space.
    Hope this will work .

  • Reg. Special Character at end of each line

    Hello Experts,
    I have an internal table of type string which has to be uploaded into the directories
    Each line has to be ended with a comma and for which I concatenated the work area and ',' before appending to the internal table.  This is fine till this point.
    After downloading the file from the directory, when opened with a notepad, i could see a special character (LINE FEED rectangular box) at the end of each line. 
    I couldn't understand why this character got appended at the end of each record.  Pl suggest me on how i can overcome this special character.
    Thanks
    RK

    Hi,
    I am developing one HRMS report for sending salaries to bank. Bank has given one format, there should be 24 spaces at the end of each line in the report. But I am not getting any spaces in the report at the end of line. I have tried soo many ways to get that, but I unable to get spaces. If I put any character it is coming, but if I put space that is not coming. For the line that is set the height of the Repeating Frame long enough to have the blank space. Vertical Elasticity should be expand.
    Also you can try by setting the property *"Vert. Space between frames"* for the Repeating frame.
    Hope this helps.
    Best Regards
    Arif Khadas

  • How to delete a character at the end of each line in a file

    Hi
    How to remove a character or symbol at the end of each line in a file?
    I am having a file with every end of line conatins special chars @.
    I need to remove or delete that sysmbol from file.
    Regards

    JoeBorland wrote:
    File is large about above 20,000 lines.
    I need to find the optimum solution.
    Like reading a file and find the end of character and writing into a file.
    The above way is correct or any other way?Try it and see. Such a program will only be a dozen lines long.

  • How to remove # from the end of each lines of .csv file.

    Hi ,
    I have uploaded .csv file from my local m/c (windows) to application server (unix) thru. FM 'ARCHIVFILE_CLIENT_TO_SERVER'
    Issue is when I open the file in AL11 it is showing # at end of each line. Click below link to see the output file.
    [https://docs0.google.com/document/edit?id=1PzjhljdCC2Wgj9L1dZ51G4pHJ0G_7jJwQAMqcJHdggc&hl=en#]
    Pls. help me how to remove all the # from the file.
    Thanks in advance.
    Devinder

    Hi ,
    use this
    Declare this 
    that # value is actually use of   Tab in file 
    so in order to remove that  use below code 
    DATA :C_TAB(1) TYPE c VALUE   cl_abap_char_utilities=>HORIZONTAL_TAB .
    loop at it_data .
    refno = it_data-line .
    REPLACE ALL OCCURRENCES OF c_tab IN refno WITH ''.
    modify it_data .
    endloop.
    Regards
    Deepak.

  • Adding a pipe character '|' at the end of each line

    How can I add a '|' at the end of each line in a text file?
    Please provide an example.
    TIA

    Using Readers and Writers are often a better choice for text: they are designed for character-based I/O, handling different character set encodings and thus more easily localizable.
    BufferedReader and PrintWriter are buffered which in many cases will increase performance.
    These classes also provide line-oriented methods, readLine() and println(), which will handle end-of-line delimiters in a platform-independant way.
    BufferedReader in = null ;
    PrintWriter out = null ;
    try {
        in = new BufferedReader(new FileReader("infile.txt")) ;
        out = new PrintWriter(new FileWriter("outfile.txt")) ;
        String line ;
        while ((line = in.readLine()) != null) {
            out.print(line) ;
            out.println('|') ;
        out.flush() ;
    } catch (FileNotFoundException e) {
        System.err.println("problem opening file for read: "+e) ;
    } catch (IOException e) {
        System.err.println("problem reading file: "+e) ;
    } finally {
        try {
            if (out != null) out.close() ;
            if (in  != null) in.close() ;
        } catch (IOException e) {
            System.err.println("problem closing files: "+e) ;
    }

  • Remove the extra space at the end of each page in the report

    Hi,
    When the RDF report output is seen in notepad, it shows empty lines at the end of each page. Is it possble to avoid these empty lines and display the output without any empty lines.
    Thanks in advance.
    Divya

    In the headers and footers of table/loop nodes, use event "at page break" on condition tab. Read some documentation like [Printing Data in a Table|http://help.sap.com/saphelp_NW70EHP1core/helpdata/en/0b/e06b192d8411d5b693006094192fe3/frameset.htm]
    Regards,
    Raymond

  • Square at end of each line in entourage mail

    Help please! I have searched the internet, unsuccessfully, to find out how to remove a square box that shows itself at the end of each line of text in my entourage mail... whether incoming or composed mail....
    Does anyone have an answer?
    Thanks so much,
    Wildlife....

    Help please! I have searched the internet, unsuccessfully, to find out how to remove a square box that shows itself at the end of each line of text in my entourage mail... whether incoming or composed mail....
    The best place to ask would be in the forums which MS runs to help people with its products:
    http://groups.google.com/group/microsoft.public.mac.office.entourage/topics

  • Question marks at end of each line in messages sent with 10.4.6 mail

    Some Outlook users are finding ?s at the end of each line in my emails sent from 10.4.6. I did not have this problem in 10.3.9. The problem appears to be resolved when I choose UTF-8 message encoding. There appears to be no way to make Mail automatically choose UTF-8, and I am reluctant to enter Terminal to direct Mail to do so as suggested in one discussion. So 3 questions: 1. how do I get Mail to choose UTF-8 automatically? 2. why hasn't Apple fixed this? 3. how friendly is UTF-8 to non-Outlook users? I don't want to make a change in Terminal so that all email goes UTF-8 and then find out that this messes something else up. Help?

    So 3 questions: 1. how do I get Mail to choose UTF-8
    automatically?
    See this note. Perhaps you would be more comfortable with the "dingbat" fix.
    http://homepage.mac.com/thgewecke/woutlook.html
    2. why hasn't Apple fixed this?
    I don't know. Perhaps they are tired of adjusting their stuff to conform to bugs in MS products.
    3. how
    friendly is UTF-8 to non-Outlook users?
    All modern mail clients can read it fine, but webmail is unpredictable. Best thing is perhaps to try it and see if you get any complaints.

  • What is the color number in HTML of the result line in the web reports

    Hi guys,
    what is the color number in HTML of the result line in the web reports, its like a yellow, but i m looking for the exactly number color to make some modifications, please

    the same should correspond to a CSS class definition. You execute the report - view source and ideally you should be able to find the class associated with the result cells. You can also go an check out the CSS directly.

  • How can I eliminate automatic "quotation marks" that are appearing at the end of each line?

    I keep getting "quotation marks" at the end of every line when I type. How can I eliminate these marks as they are even showing up when I print and I will not have on my wedding programs! Please help (from a desperate bride-to-be)!

    It sounds like you are using an East Asian font and unless you are issuing invitations in Chinese, Japanese, or Korean that doesn't sound like a good idea.
    Peter

  • Is there a way to restrict the cursor at the end of a line in the source code editor??

    In the source code editor, the cursor will always follow where I click. But I wanna restrict it at the end of a line, just like other text editors do. Is there a option or sth? I can't put up with it any longer.
    Solved!
    Go to Solution.

    Hello morphe!
    The source editor in the LabWindows/CVI environment is constructed under the concept of virtual space.
    At the moment, in the current version of LabWindows/CVI, this is the default behavior, which cannot be changed from the editor preferences dialogs.
    Best regards,
    - Johannes

  • How to move the ends of skewed lines to the bleed bounds

    Hi all,
    I am developing a script that trims page items to the bleed. To achieve this I collect all page items (except text frames) located partially on the pasteboard, create a temporary mask and 'crop' them with Pathfinder's Subtract feature. However this approach doesn't work with graphic lines so I am attempting to move ends of lines to the bounds of bleed box. (I'm assuming that these are simple straight lines consisting of two end points.)
    I've figured out how to deal with orthogonal lines -- it's quite easy:
    if (theItem.constructor.name == "GraphicLine" && theItem.paths.length === 1) {
         path = theItem.paths[0];
         if (path.pathPoints.length === 2) {
              ep = path.entirePath;
              w = ep[1][0]-ep[0][0];
              h = ep[1][1]-ep[0 ][1];
              if (w > h) {
                   newEp = [ [ spreadWithBleedBounds[1], ep[0][1] ], [ spreadWithBleedBounds[3], ep[1][1] ] ];
                   path.entirePath = newEp;
              else if (h > w) {
                   newEp = [ [ ep[0][0], spreadWithBleedBounds[0] ], [ ep[1][0], spreadWithBleedBounds[2] ] ];
                   path.entirePath = newEp;
    This moves A1 to A2, B1 to B2, C1 to C2, D1 to D2.
    But how to deal with skewed lines? How to calculate coordinates for points E2 and F2? Is there some magic formula? Or can anybody point me to the right direction: e.g. some book to read?
    I guess this has something to do with geometry/trigonometry, but I haven't studied this stuff at school. (I graduated an art school -- studied to draw nude models instead.)
    If someone is going to answer to my question, please do it on elementary level since I am a total noob in this.
    Below is the whole script:
    if (Number(String(app.version).split(".")[0]) == 7) ErrorExit("This script can't work with InDesign CS5 so far.", true);
    var doc = app.activeDocument;
    var spreadBounds, spreadWithBleedBounds, gPartiallyOutOfSpreadItems;
    var ungroupErrors = 0;
    var originalHorUnits =  doc.viewPreferences.horizontalMeasurementUnits;
    var originalVerUnits =  doc.viewPreferences.verticalMeasurementUnits;
    doc.viewPreferences.horizontalMeasurementUnits = doc.viewPreferences.verticalMeasurementUnits = MeasurementUnits.INCHES;
    doc.viewPreferences.rulerOrigin = RulerOrigin.spreadOrigin;
    doc.zeroPoint = [0, 0];
    if (doc.layers.itemByName("Temporary Layer") == null ) {
         var tempLayer = doc.layers.add({name:"Temporary Layer"});
    else {
         var tempLayer = doc.layers.itemByName("Temporary Layer");
    UngroupAllGroups(doc.groups);
    DeleteObjectsOnPasteboard();
    ProcessSpreads(doc.spreads);
    ProcessSpreads(doc.masterSpreads);
    tempLayer.remove();
    doc.viewPreferences.horizontalMeasurementUnits = originalHorUnits;
    doc.viewPreferences.verticalMeasurementUnits = originalVerUnits;
    var msg = (ungroupErrors > 0) ? " Failed to ungroup " + ungroupErrors + " groups since they are too large." : "";
    alert("Done." + msg, "Trim Pages Script");
    //================================== FUNCTONS ===========================================
    function ProcessSpreads(spreads) {
         var spread, path, ep, w, h;
         for (var s = 0; s < spreads.length; s++) {
              spread = spreads[s];
              spreadBounds = GetSpreadBound(spread, false);
              spreadWithBleedBounds = GetSpreadBound(spread, true);
              gPartiallyOutOfSpreadItems = GetPartiallyOutOfSpreadItems(spread);
              var theItem, theMask, newItem;
              for (var i = gPartiallyOutOfSpreadItems.length-1; i >= 0; i--) {
                   theItem = gPartiallyOutOfSpreadItems[i];
                   if (theItem.constructor.name == "GraphicLine" && theItem.paths.length === 1) {
                        path = theItem.paths[0];
                        if (path.pathPoints.length === 2) {
                             ep = path.entirePath;
                             w = ep[1][0]-ep[0][0];
                             h = ep[1][1]-ep[0 ][1];
                             if (w > h) {
                                  newEp = [ [ spreadWithBleedBounds[1], ep[0][1] ], [ spreadWithBleedBounds[3], ep[1][1] ] ];
                                  path.entirePath = newEp;
                             else if (h > w) {
                                  newEp = [ [ ep[0][0], spreadWithBleedBounds[0] ], [ ep[1][0], spreadWithBleedBounds[2] ] ];
                                  path.entirePath = newEp;
                   else {
                        theMask = CreateMask(spread);
                        try {
                             newItem = theMask.subtractPath(theItem);
                        catch (err) {
                             $.writeln("2 - " + err);
                             theMask.remove();
    function IsPartiallyOutOfSpread(pageItem) {
         var result = false;
         if (pageItem.constructor.name == "TextFrame" ||
              pageItem.constructor.name == "Group" ||
              pageItem.parent.constructor.name == "Group")
              return result;
         var visBounds = pageItem.visibleBounds;
         if (visBounds[0] < spreadBounds[0] && visBounds[2] > spreadBounds[0] ||
              visBounds[1] < spreadBounds[1] && visBounds[3] > spreadBounds[1] ||
              visBounds[2] > spreadBounds[2] && visBounds[0] < spreadBounds[2] ||
              visBounds[3] > spreadBounds[3] && visBounds[1] < spreadBounds[3]  ) {
              result = true;
         return result;
    function GetSpreadBound(spread, bleed) { // including bleed -boolean
         if (bleed == undefined) bleed = false;
         with (doc.documentPreferences) {
              var topBleed = documentBleedTopOffset
              var leftBleed = documentBleedInsideOrLeftOffset;
              var bottomBleed = documentBleedBottomOffset;
              var rightBleed = documentBleedOutsideOrRightOffset;
         var bFirst = spread.pages.item(0).bounds; // bounds of the first page
         var bLast = spread.pages.item(-1).bounds; // bounds of the last page
         return [     ((bleed) ? bFirst[0]-topBleed : bFirst[0]),
                        ((bleed) ? bFirst[1]-leftBleed : bFirst[1]),
                        ((bleed) ? bLast[2]+bottomBleed : bFirst[2]),
                        ((bleed) ? bLast[3]+rightBleed : bLast[3])
    function CreateMask(spread) {
         var unitValue = new UnitValue (app.pasteboardPreferences.minimumSpaceAboveAndBelow, "mm");
         var unitValueAsInch = unitValue.as("in");
         var outerRectangleBounds = [spreadWithBleedBounds[0]-unitValueAsInch,
                                                                spreadWithBleedBounds[1]-8.07,
                                                                spreadWithBleedBounds[2]+unitValueAsInch,
                                                                spreadWithBleedBounds[3]+8.07
         var outerRectangle = spread.rectangles.add(tempLayer, undefined, undefined, {geometricBounds:outerRectangleBounds});
         var innerRectangle = spread.rectangles.add(tempLayer, undefined, undefined, {geometricBounds:spreadWithBleedBounds, fillColor:doc.swatches.item("Black"), fillTint:30});
         var mask = outerRectangle.excludeOverlapPath(innerRectangle);
         return mask;
    function GetPartiallyOutOfSpreadItems(spread) {
         var allPageItems = spread.allPageItems;
         var partiallyOutOfSpreadItems = [];
         var currentItem;
         for (var i = 0; i < allPageItems.length; i++) {
              currentItem = allPageItems[i];
              if (IsPartiallyOutOfSpread(currentItem)) partiallyOutOfSpreadItems.push(currentItem);
         return partiallyOutOfSpreadItems;
    function DeleteObjectsOnPasteboard() {
         var objs = app.documents[0].pageItems.everyItem().getElements();
         while (obj=objs.pop()) {
              try {
                   if(obj.parent instanceof Spread || obj.parent instanceof MasterSpread){ obj.remove() }
              catch(err) {
                   //$.writeln("2 - " + err);
    function ErrorExit(myMessage, myIcon) {
         alert(myMessage, "Trim Pages Script", myIcon);
         exit();
    function UngroupAllGroups(groups) {
         for (var i = groups.length-1; i >= 0; i--) {
              var gr = groups[i];
              if (gr.groups.length > 0) {
                   var subGroups = [];
                   for (var j = gr.groups.length-1; j >= 0; j--) {
                        subGroups.push(gr.groups[j].id);
                   try {
                        gr.ungroup();
                   catch(err) {
                        //$.writeln("1 - " + err);
                        ungroupErrors++;
                   for (var k = subGroups.length-1; k >= 0; k--) {
                        try {
                             doc.groups.itemByID(subGroups[k]).ungroup();
                        catch(err) {
                             //$.writeln("2 - " + err);
                             ungroupErrors++;
              else {
                   try {
                        gr.ungroup();
                   catch(err) {
                        //$.writeln("1 - " + err);
                        ungroupErrors++;
    Thanks in advance.
    Kasyan

    Hi Kasyan!
    I didn't try to integrate this into your script, so you might have to adjust it a little bit. The trick is to define a function that finds the intersection point of two lines --- and, obviously, you should only call it for the lines that are sure to cross the page border! (Otherwise, it would simply extend *any* line up and over the border.)
    I think it would be wise to allow for a tiny error for lines that appear to run "up to" the page edge -- I tested a line for "x <= 0" on a line that appeared to start on 0; the control panel told me so. However, I didn't type that 0 in; I dragged the line to the edge. Apparently, it was *NOT* at precisely "0mm", but something like "0.001mm", because the script simply didn't "see" the line.
    My function comes from this page: http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline2d/ and I didn't test what it does to orthogonal lines
    (but of course you could add this as an exception), and this is my line-extending script, with a little wrapper to set things up.
    The function tests *any* line against *any* other line, so if one crosses the page bounding box, I get the intersection with the bleed box on the side where it crosses the page bbox.
    line = app.selection[0];
    // pg size in "regular" [y1,x1, y2,x2] format
    pagebbox = [0,0, app.activeDocument.documentPreferences.pageHeight,app.activeDocument.documentPreferences.pageWidth ];
    bleedDist = 5; //
    bleedbbox = [ pagebbox[0] - bleedDist, pagebbox[1] - bleedDist, pagebbox[2] + bleedDist, pagebbox[3] + bleedDist ];
    pt1 = line.paths[0].pathPoints[0].anchor;
    pt2 = line.paths[0].pathPoints.lastItem().anchor;
    // Start point:
    if (pt1[0] <= pagebbox[1] || pt1[0] >= pagebbox[3] ||
    pt1[1] <= pagebbox[0] || pt1[1] >= pagebbox[2])
    if (pt1[0] <= pagebbox[1])
      intersectPt = IntersectionPt ( [pt1, pt2], [ [ bleedbbox[1], bleedbbox[0]], [bleedbbox[1], bleedbbox[2] ] ] );
    if (pt1[0] >= pagebbox[3])
      intersectPt = IntersectionPt ( [pt1, pt2], [ [ bleedbbox[3], bleedbbox[0]], [bleedbbox[3], bleedbbox[2] ] ] );
    if (pt1[1] <= pagebbox[0])
      intersectPt = IntersectionPt ( [pt1, pt2], [ [ bleedbbox[1], bleedbbox[0]], [bleedbbox[3], bleedbbox[0] ] ] );
    if (pt1[1] >= pagebbox[2])
      intersectPt = IntersectionPt ( [pt1, pt2], [ [ bleedbbox[1], bleedbbox[2]], [bleedbbox[3], bleedbbox[2] ] ] );
    line.paths[0].pathPoints[0].anchor = intersectPt;
    // End point:
    if (pt2[0] <= pagebbox[1] || pt2[0] >= pagebbox[3] ||
    pt2[1] <= pagebbox[0] || pt2[1] >= pagebbox[2])
    if (pt2[0] <= pagebbox[1])
      intersectPt = IntersectionPt ( [pt1, pt2], [ [ bleedbbox[1], bleedbbox[0]], [bleedbbox[1], bleedbbox[2] ] ] );
    if (pt2[0] >= pagebbox[3])
      intersectPt = IntersectionPt ( [pt1, pt2], [ [ bleedbbox[3], bleedbbox[0]], [bleedbbox[3], bleedbbox[2] ] ] );
    if (pt2[1] <= pagebbox[0])
      intersectPt = IntersectionPt ( [pt1, pt2], [ [ bleedbbox[1], bleedbbox[0]], [bleedbbox[3], bleedbbox[0] ] ] );
    if (pt2[1] >= pagebbox[2])
      intersectPt = IntersectionPt ( [pt1, pt2], [ [ bleedbbox[1], bleedbbox[2]], [bleedbbox[3], bleedbbox[2] ] ] );
    line.paths[0].pathPoints.lastItem().anchor = intersectPt;
    function IntersectionPt (ln1, ln2)
    var ua;
    var x1 = ln1[0][0], x2 = ln1[1][0], x3 = ln2[0][0], x4 = ln2[1][0];
    var y1 = ln1[0][1], y2 = ln1[1][1], y3 = ln2[0][1], y4 = ln2[1][1];
    ua = ((x4 - x3)*(y1 - y3) - (y4 - y3)*(x1 - x3))/((y4 - y3)*(x2 - x1) - (x4 - x3)*(y2 - y1));
    return [ x1 + ua*(x2-x1), y1 + ua*(y2-y1) ];

  • Method GUI_DOWNLOAD not creating CRLF at end-of-each-line of output

    Hello SDN Community,  has anyone experienced CL_GUI_FRONTEND_SERVICES=> GUI_DOWNLOAD not putting the CRLF at end of exported lines?  This can be seen when you view the output file in notepad (the file contents wrap) or an editor with hex view enabled  (0A0D).
    I have tried running an ABAP that runs this method and on some people's laptop's the file wraps and on others the file is formatted (as would be expected) as per the CRLF's. 
    My understanding is that the GUI_DOWNLOAD method should provide the CRLF's.   And on my laptop (running Vista and SAP ECC 6.0 back-end) it wraps the output because there are no CRLF's in the file.
    Your experiences would be appreciated.
    Thank you,
    Dean Atteberry.

    Thank you, Alejandro, for your comments.  I am using two systems - on one it works and on the other it does not.
    The one that works is an SAP ECC 6.0 where the CL_GUI_FRONTEND_SERVICES class has a Last Change date of 03.07.2006.
    The one do not work is SAP ECC 6.0 where the CL_GUI_FRONTEND_SERVICES class has a Last Change date of 07/08/2009.
    If I look at the code in GET_PLATFORM, it is verry different between the two systems.
    On the one that works, it executes following code and platformID has value of '5'.  This later used to assign the correct value for CRLF variable which is used to concatenate to end of records  (value is '0A0D').
    ELSE.
    *     SAP GUI for Windows
          IF ACTIVEX IS NOT INITIAL.
    * returns Windows Platform
    * VER_PLATFORM_WIN32s             0
    * VER_PLATFORM_WIN32_WINDOWS      1       (Win95/98)
    * VER_PLATFORM_WIN32_NT           2
            CALL METHOD HANDLE->CALL_METHOD
              EXPORTING
                METHOD     = 'GetWindowsPlatform'
                P_COUNT    = 0
                QUEUE_ONLY = ' '
              IMPORTING
                RESULT     = platformID
              EXCEPTIONS
                OTHERS     = 1.
            IF SY-SUBRC <> 0.
              RAISE CNTL_ERROR.
            ENDIF.
    On the one that does not work, it executes following code.  In the debugger, when control comes back from CL_GUI_CFW=>FLUSH call, I can see the PLATFORMID variable change to '15'.  This is moved to M_PLATFORM and ultimately is used later in a case statement to assign the appropriate value to CRLF variable. 
    HOWEVER, THERE IS NO "WHEN 15" statement in the CASE statement - IT ONLY GOES UP TO '14'.   Because of this, no value is assigned to the CRLF variable and when subsequently this variable is concatenated to the output line, there is no CRLF (0A0D) at the end of the line.  Because the CRLF variable is blank.  [see coding snippets at end-of-note]
    Is there an better place than General ABAP forum to discuss this?  Possibly this item might benefit from the attention of SAP developers?
    Following are code snippets illustrating findings from debugging...
    This shows the FLUSH statement that causes '15' to appear in the PLATFORMID variable.
    IF bPLATFORMEX = ABAP_TRUE.
            CALL METHOD HANDLE->CALL_METHOD
              EXPORTING
                METHOD     = 'GetPlatformEx'
                P_COUNT    = 0
                QUEUE_ONLY = ' '
              IMPORTING
                RESULT     = PLATFORMID
              EXCEPTIONS
                OTHERS     = 1.
            CALL METHOD CL_GUI_CFW=>FLUSH
              EXCEPTIONS
                CNTL_SYSTEM_ERROR = 1
                CNTL_ERROR        = 2
                others            = 3.
            IF SY-SUBRC <> 0.
              RAISE CNTL_ERROR.
            ENDIF.
            MOVE PLATFORMID TO M_PLATFORM.
    This shows the method GET_LF_FOR_DESTINATION_GUI, where you can see that values only go up to 14.  [look in attributes for CL_GUI_FRONTEND_SERVICES to see attribute values]
    CASE PLATFORM_ID.
          WHEN CL_GUI_FRONTEND_SERVICES=>PLATFORM_WINDOWSXP.   <---- this is '14'
            MOVE CL_ABAP_CHAR_UTILITIES=>CR_LF TO GUI_CRLF.
          WHEN CL_GUI_FRONTEND_SERVICES=>PLATFORM_NT50.
            MOVE CL_ABAP_CHAR_UTILITIES=>CR_LF TO GUI_CRLF.
         <...lines snipped...>
          WHEN CL_GUI_FRONTEND_SERVICES=>PLATFORM_TRU64.
            MOVE CL_ABAP_CHAR_UTILITIES=>NEWLINE TO GUI_CRLF.
          WHEN CL_GUI_FRONTEND_SERVICES=>PLATFORM_OS2.
            MOVE CL_ABAP_CHAR_UTILITIES=>NEWLINE TO GUI_CRLF.
          WHEN CL_GUI_FRONTEND_SERVICES=>PLATFORM_UNKNOWN.
            RAISE CNTL_ERROR.
        ENDCASE.
      ENDIF.
      MOVE GUI_CRLF TO LINEFEED.
    This shows the FORM put_char_linebuffer you can see CRLF being concatenated to output line...
    prc_column_idx = prc_column_idx + 1.
        ENDWHILE.
        CONCATENATE prc_encoded_string prc_encoded_crlf
          INTO prc_encoded_string IN BYTE MODE.
      ENDIF.
    * Add data lines
      LOOP AT par_data_tab ASSIGNING <f_data_tab>.
        PERFORM put_char_linebuffer USING <f_data_tab>
                                          par_write_field_separator
                                          par_trunc_trailing_blanks
                                          par_col_select
                                          par_col_select_mask
                                          par_write_lf
                                          strDecimal
                                          strDatFormat
                                          par_dat_mode
                                          par_trunc_trailing_blanks_eol
                                    CHANGING converter
                                             prc_encoded_string.
        IF par_write_lf IS NOT INITIAL.
    *     Add CR to line.
          CONCATENATE prc_encoded_string  prc_encoded_crlf
              INTO prc_encoded_string IN BYTE MODE.
        ENDIF.
      ENDLOOP.
    * Write BOM if requested and Unicode encoding
      CLEAR prc_bom_string.

Maybe you are looking for