SAPScript - controlled empty Line

Hello,
I have a Problem in a Sapscript: in den MAIN, between all items, we need to print an empty line to separate the items. The problem is, if at the end of the MAIN, after an item they is not enough space for this empty line, this line is printed automatically at the begining of the next new page. I want to avoid this empty line at the end of page. Is this possible?
I have make test with "Protect" and "Endprotect", it's works but in this case, the new page is trigged and the complete last item of the page is printed at the next page. This is not a good solution because we lost to much place at the end of the MAIN.
Is any other solution possible? It is possible to controll this empty line?
Thanks for answer.

Hi SaiRam,
I have already try this, i think it's the same solution as yours and it doesn't work:
(For the test, the empty line is replaced by variable, that's shows the page numers)
/: DEFINE &SAV_PAGE& := 1
/: IF &SAV_PAGE& NE &NEXTPAGE&
/: &SAV_PAGE& = &NEXTPAGE&
/: ENDIF.
/: IF &PAGE& EQ &SAV_PAGE&.
   page = &PAGE&, nextpage = &NEXTPAGE&, save = &SAV_PAGE&
/: ENDIF.
Here an example of the result:
Item 10
page = 1, nextpage = 2, save = 1
Item 20
page = 1, nextpage = 2, save = 1
Item 30
page = 1, nextpage = 2, save = 2
Item 70
End-Of-Page
New-Page
page = 2, nextpage = 3, save = 1
Item 80
Item 90
Item 100
We see that the system doesn't have enough place after "item 70" to print the Page-Line, so it trigged a new page. Normaly, he doesn't have to print the Page-Line at the bottom of the line, but it doesn't work. I don't know how avoid the print of this line at the bottom of a page. On a New-Page, i wan't start the Print with an item-line and not with a Page-Line.
Have I do something wrong?
Thanks for your answer.
Marc

Similar Messages

  • Empty line handling in sender fileadapter FCC

    Hi Al,
      How do we ignore empty lines in the fixed length file by using FCC?
    In my input file,i would be having emply lines at last and as per my curect FCC configurations,it is reading that emplty line also and due to this,message got failed in message mapping.How do we ignore this in sender file adapter?
    I do not want to change any mapping condition.

    Hi Rajesh,
    Just a short in the dark . There is a parameter by the name of NameA.keepIncompleteFields
    This parameter is only evaluated if you enter a value for NameA.fieldFixedLengths.
    ○       If you enter NO and the last field found in the structure is shorter than specified in NameA.fieldFixedLengths, processing is terminated with a corresponding error message.This is the default.
    ○       If you enter YES, the last field found in the inbound structure is transferred to the outbound structure, even if it is shorter than specified in NameA.fieldFixedLengths.
    Caution
    You use this parameter to control the behavior of the conversion routine for the last field in a structure.
    Use the NameA.missingLastFields parameter to define the behavior at runtime when the structure contains less fields or no fields (as in your case a blank line) in total that specified in NameA.fieldFixedLengths.
    Regards
    joel

  • Sapscript Control Commands

    Dear All,
                in Sapscript Control Command  there is one command
                INCLUDE .
                Pls explain it.

    Hi Kapoor,
    <b>INCLUDE: </b>To include the contents of another text into the current text, use the INCLUDE control command. SAPscript still treats the text to be included as a separate text. The text is copied over only at the point at which the output is formatted.
    Thus the use of the INCLUDE command always ensures that the most current version of a text is included into the output, since the text is not read and inserted until the output is formatted.
    <b>Syntax:
    /: INCLUDE name [OBJECT o] [ID i] [LANGUAGE l] [PARAGRAPH p]
    [NEW-PARAGRAPH np]
    </b>
    You must specify the name of the text to be inserted. It can be up to 70 characters long. If the name of the text contains spaces, then you must enclose it in quotes as a literal value. You can, alternatively, specify the name via a symbol. All remaining parameters in the INCLUDE command are optional. If an optional parameter is not specified, then SAPscript uses default values as applicable for the calling environment.
    /: INCLUDE MYTEXT
    The text MYTEXT is included in the language of the calling text.
    /: INCLUDE MYTEXT LANGUAGE 'E' PARAGRAPH 'A1'
    The text with the name MYTEXT and the language E is included, regardless of the language of the calling text. The paragraph format A1 will be used as the standard paragraph type for this call.
    Optional parameters:
    LANGUAGE
    If this parameter is not specified, then the language of the calling text or the form language are used for the text to be included. If the language is specified, then the text will be fetched in this language, regardless of the language of the calling text.
    PARAGRAPH
    The text to be included is formatted using the style allocated. The PARAGRAPH parameter can be used to redefine the standard paragraph for this style for the current call. All *-paragraphs in the included text will then be formatted using the paragraph specified here.
    NEW-PARAGRAPH
    The first line of the text to be included will be given this format indicator, as long as it is not a comment or command line. If the optional PARAGRAPH parameter (see above) is not specified, then all *-paragraphs of the included text will also be formatted using the paragraph specified in the NEW-PARAGRAPH command.
    OBJECT
    In order to completely specify a text, information about the text object is also required. There are a number of restrictions and other rules that depend on the object type of the calling text:
              o Any kind of text can be included in a form. If no object is specified, then TEXT will be used (standard texts).
              o In the case of a document text (DOKU object), you can include only document texts. This object type is also assumed if no object is specified in this environment.
              o Only hypertexts and document texts can be included in a hypertext (DSYS object). If the OBJECT parameter is missing, then DSYS is used as the default value.
              o In the other kinds of text you can include only standard texts (TEXT object), document texts or hypertexts. If there is no specification, then the default object is TEXT.
    ID
    The text ID is a part of the text key, which permits further text objects within a given object. If no ID is specified, then the default include ID is used from the TTXID table for the calling text. If there is no entry in this table, then the text ID of the calling text is used.
    The following consistency check is applied both to the ID and the object:
    All text IDs are allowed in a form.
    In document texts, only document texts may be included that have text IDs TX (general texts) or UO (authorization objects) and also other document texts with the same text ID as the calling document text.
    In DSYS texts, all DSYS texts can be included, whatever ID they have. Document texts to be included must have one of the IDs TX or UO.
    Into the other texts, standard texts with any allowable text ID, DSYS texts with all IDs, and document texts with the IDs TX and UO can be included.
    The INCLUDE command returns a status code in the SAPSCRIPT-SUBRC symbol:
    0: the text include was successful.
    1: the command could not be executed because it contained syntax errors.
    2: the rules governing the text to be included were not followed (see above).
    This value cannot occur if the command is used in a SAPscript form.
    4: the specified text could not be found.
    <b>Friendly Note:</b> You have many open threads and Plz close the threads if they are answered/solved and reward points to the people who are helping you by taking their  time.
    Thanks,
    Vinay

  • How to delete multiple empty lines in item assignment block in WebUI

    Hi Experts,
       When i am reading 'BTAdminI' context node data, I am getting empty lines along with data. I can able to delete only one empty lines when its executing second empty line its failing in loop. Can you suggest me how can i delete multiple empty lines. I am using below code.
    DATA: lr_entity1           TYPE REF TO cl_crm_bol_entity,
            lr_current          TYPE REF TO if_bol_bo_property_access,
            lr_iterator         TYPE REF TO if_bol_bo_col_iterator,
            lv_strukname        TYPE strukname,
            dref                TYPE REF TO data,
            lv_thtmlb_tableview TYPE REF TO cl_thtmlb_table_view,
            lr_cn               TYPE REF TO cl_bsp_wd_context_node_tv,
            cr_mixed_node_tv    TYPE REF TO cl_bsp_wd_mixed_node.
        FIELD-SYMBOLS: <fs_line_structure> TYPE data.
        lr_iterator = me->typed_context->btadmini->collection_wrapper->get_iterator( ).
        TRY.
            lr_current = lr_iterator->get_first( ).
          CATCH cx_root.
        ENDTRY.
        WHILE lr_current IS BOUND.
          lr_entity1 ?= lr_current.
          CHECK lr_entity1 IS BOUND.
          lr_entity1->get_attr_struct_name( RECEIVING rv_result = lv_strukname ).
          IF lv_strukname IS NOT INITIAL.
            CREATE DATA dref TYPE (lv_strukname).
            ASSIGN dref->* TO <fs_line_structure>.
            IF <fs_line_structure> IS ASSIGNED.
              lr_current->get_properties( IMPORTING es_attributes = <fs_line_structure> ).
              IF <fs_line_structure> IS INITIAL.
                me->typed_context->btadmini->collection_wrapper->remove( lr_current ).
                EXIT.
              ENDIF.
            ENDIF.
          ENDIF.
          TRY.
              lr_current = lr_iterator->get_next( ).
            CATCH cx_root.
          ENDTRY.
        ENDWHILE.

    Hi Nitish,
    Try below code instead of your code,
    Data:
    lt_empty_lines  TYPE TABLE OF REF TO cl_crm_bol_entity,
    lr_entity TYPE REF TO cl_crm_bol_entity.
    After getting collection from BTadmini use the below code.
    lr_iterator ?= lr_coll->get_iterator( ).
        lr_entity ?= lr_iterator->get_first( ).
        WHILE lr_entity IS BOUND.
          IF lr_entity->is_send_active( ) EQ abap_false.
            APPEND lr_entity TO lt_empty_lines.
          ENDIF.
          lr_entity ?= lr_iterator->get_next( ).
        ENDWHILE.
        LOOP AT lt_empty_lines INTO lr_entity.
          typed_context->btadmini->collection_wrapper->remove( lr_entity ).
          lr_entity->delete( ).
        ENDLOOP.
    Best Regards,
    Dharmakasi.

  • How to get rid of empty lines in a file?

    How can read a file "text.txt", delete all the empty lines and restore it to same filename "text.txt" without using a temporary file?

    Ages ago I ruined an 8" floppy disk drive by doing something similar to
    this: let b1 b2 ... bn nl be a series of blanks followed by a newline
    character (nl) and let c1 ... cm be a sequence of other characters. Let
    the total relevant sequence be:
    b1 b2 ... bn nl c1 ... cm
    Reverse the entire sequence: cm ... c1 nl bn ... b2 b1 and then
    reverse the first m bytes: c1 cm nl bn ... b2 b1. Now repeat the entire
    thing for the sequence c1 ... cm by checking for more blank lines in it.
    After this has all finished, simply truncate the file.
    The advantage of this method was that I only needed to be able to swap
    two bytes in a file; the disadvantage was that the floppy disk drive
    couldn't handle it ;-)
    kind regards,
    Jos

  • Dynamic file name in receiver - empty line problem with content conversion

    Hi,
    I do a variable substitution from a filename node in my xml structure. Because I don't want to have the the filename in my flatfile i supress the output with the conversion parameters:
    filename.fixedLengthTooShortHandling = Cut
    filename.fieldFixedLengths = 0
    It's working but: the adapter is puting an empty line at the end of the file. If I even put the filename node at the top of the xml struture it generates the empty line at the top of the flatfile.
    Anyone has an idea? is there an other way to set the filename or how can I supress this empty line( I have to) ?
    Regrads
    J.

    Jorg,
    Actually speaking we cannot get rid of this with XI. You have to write a OS script to remove this.
    Else
    you add one more parameter as .endSeparator as backspace ie., 0x08. It will definitely remove the line but I think it is putting a square box at the end of previous line. Please check by giving this and let us know the updates.
    Regards,
    ---Satish

  • How can you avoid the empty line?

    hi all,
    i looked around quite a bit and didn't found an answer to this very common problem.
    i used this blog:
    Solution to the problem encountered using Variable Substitution with XI-SP12
    for using a dynamic filename.
    the problem i get is the file adapter create a empty line instead of the FILENODE which i need to be suppressed and not written to the file.
    is it possible?
    regards,
    roi grosfeld

    Hi,
    Well thats good question. you can't test it in test tab of mapping.
    It will give you exception like something below
    RuntimeException in Message-Mapping transformation: Runtime exception
    Here you can create the file name in Mapping either by using various APIs as well as Sender side filed values and can pass to the UDF that you will create for dynamic filename.
    File with same name will be created. This is specific to DynamicConfiguration class which deals with the values at runtime.
    Thanks
    Swarup

  • Empty line in long text in order

    Hi,
    I'm using BAPI_SALESORDER_CREATEFROMDAT2 to create orders. Long texts can be added to the BAPI with the parameter ORDER_TEXT.
    I know want to add different information. Therefore I need to insert an empty line between the different lines. How can I do that? If I add a line with just a space in the data element TD_LINE (text_line), it is not working. The BAPI might remove that while order creation.
    Any advices?
    Thank you

    hi,
    Do not append this to the internal table. Instead concatenate twice from where you want the blank link.
    Example
    The table contains the three lines as shown below
    This report is required as to submit to the Govt. Department as a Statutory Report.
    Manually preparing this form is very difficult. After this development user can get form with minimal efforts as well accuracy regarding data will be more.
    But we required to display/update as
    This report is required as to submit to the Govt. Department as a Statutory Report.
    Manually preparing this form is very difficult. After this development user can get form with minimal efforts as well accuracy regarding data will be more.
    Just you need to cancatenate the cr_lf twice at the end of 1st line
    This report is required as to submit to the Govt. Department as a Statutory Report.0D0A0D0A
    while displaying the long text in the Order it will show the effect.

  • I have an empty line on my toolbars that I'd like to get rid of. Right-clicking does not pull up any options, so how would I do this?

    I have a four-line toolbar. The fourth line is completely empty, so I'd like to remove it. I tried right-clicking to pull up a menu, but nothing appears. How can I remove this empty line? The empty line appeared just now after I disabled a Bing toolbar. I probably will eventually uninstall the Bing toolbar, but I hope the empty line is not there until I do that. Thanks much.

    Thanks for the quick response. I noticed that my Yahoo toolbar was not being displayed. It just so happens that at one point, I exited Firefox and then went back in later. When I went back in, the 'empty' line was populated by the Yahoo toolbar.

  • Error Handling in table control for line item.

    Hi,
    Please how to do error handling in table control for line item in bdc,i have used format_message for header but i don't no fill decamps internal tabled and  how to do background processing in call transaction.
    Thanks

    Background processing is not possible using call transaction method.
    You can create an executable program which can have CALL TRANSACTION BDC code. And this can be run in background.
    What do you exactly mean by Error handling for Items in table control. Can you give some more details.

  • How to remove empty lines from xml files after removing nodes from document

    <pre>
    Hi
    <b>i have xml document, which is shown below
    after removing some nodes from the document ,i am getting empty lines in place of removed nodes,how to resolve this and get the proper xml document without any errors</b>
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE Message SYSTEM "TRD01.dtd">
    <Message>
    <Header>
    <CounterPartyType>CLIENT</CounterPartyType>
    <CreationTime>20134455</CreationTime>
    <ErrorCode>363 </ErrorCode>
    <ErrorEnterPriseId>N</ErrorEnterPriseId>
    <ErrorStatus>1</ErrorStatus>
    <ErrorSystemId>STL</ErrorSystemId>
    <ErrorTimes>31</ErrorTimes>
    <MessageType>T</MessageType>
    <RecipientEnterpriseId>N</RecipientEnterpriseId>
    <RecipentSystemId>EXM</RecipentSystemId>
    <Remarks>REMARSK</Remarks>
    <SenderEnterpriseId>N</SenderEnterpriseId>
    <SenderSystemId>TR</SenderSystemId>
    </Header>
    </Message>
    <ErrorCode>363 </ErrorCode>
    <ErrorEnterPriseId>NIHK</ErrorEnterPriseId>
    <ErrorStatus>1</ErrorStatus>
    <ErrorSystemId>STL</ErrorSystemId>
    <ErrorTimes>31</ErrorTimes>
    XPathExpression expression5 = xpath.compile(xmlpath5);
    Object result5 = expression5.evaluate(doc, XPathConstants.NODE);
    Node node5 = (Node) result5;
    node5.getParentNode().removeChild(node5);
    XPathExpression expression6 = xpath.compile(xmlpath6);
    Object result6 = expression6.evaluate(doc, XPathConstants.NODE);
    Node node6=(Node) result6;
    node6.getParentNode().removeChild(node6);
    XPathExpression expression7 = xpath.compile(xmlpath7);
    Object result7 = expression7.evaluate(doc, XPathConstants.NODE);
    Node node7=(Node) result7;
    node7.getParentNode().removeChild(node7);
    doc.normalize();
    doc.normalizeDocument();
    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer t = tf.newTransformer();
    t.setOutputProperty(OutputKeys.INDENT, "yes");
    t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
    t.setOutputProperty(OutputKeys.METHOD,"xml");
    t.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    the xml output i am getting is
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <Message>
    <Header>
    <CounterPartyType>CLIENT</CounterPartyType>
    <CreationTime>20134455</CreationTime>
    <MessageType>TRD01</MessageType>
    <RecipientEnterpriseId>N</RecipientEnterpriseId>
    <RecipentSystemId>STL</RecipentSystemId>
    <Remarks>REMARSK</Remarks>
    <SenderEnterpriseId>N</SenderEnterpriseId>
    <SenderSystemId>T</SenderSystemId>
    </Header>
    </Message>
    <b>could you please let me know how to avoid empty lines in the xml doucment output</b>
    this is the method i am using to get the result
    public void ValidateRecord(String xml){
    try{
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = factory.newDocumentBuilder();
    //parse file into DOM
    /*DOMParser parser = new DOMParser();
    parser.setErrorStream(System.err);
    parser.setValidationMode(DTD_validation);
    parser.showWarnings(true);*/
    System.out.println ("HI THIS xml is validation "+xml);
    Resolver res = new Resolver();
    db.setEntityResolver(res);
    Document doc = db.parse(new InputSource(new StringReader(xml)));
    XPathFactory xpf = XPathFactory.newInstance();
    XPath xpath = xpf.newXPath();
    // XPathExpression expression = xpath.compile("//A/B[C/E/text()=13]");
    String xmlpath="/Message/Header/CounterPartyType/text()";
    String xmlpath1="/Message/Header/RecipentSystemId/text()";
    String xmlpath2="/Message/Header/ErrorSystemId/text()";
    XPathExpression expression = xpath.compile(xmlpath);
    XPathExpression expression1 = xpath.compile(xmlpath2);
    Object result = expression.evaluate(doc, XPathConstants.NODE);
    Object result1 = expression1.evaluate(doc, XPathConstants.NODE);
    Node node = (Node) result;
    Node node1 = (Node) result1;
    System.out.println("the values of the string is " +node.getNodeValue());
    System.out.println("the values of the string is " +node1.getNodeValue());
    // for (int i = 0; i < nodes.getLength(); i++) {
    //System.out.println(nodes.item(i).getNodeValue());
    // CAHNGING THE RECEIPENT NODE
    XPathExpression expression2 = xpath.compile(xmlpath1);
    Object result2 = expression2.evaluate(doc, XPathConstants.NODE);
    Node node2 = (Node) result2;
    System.out.println(node2);
    node2.setNodeValue(node1.getNodeValue());
    System.out.println(node2);
    //removing the nodes from document
    String xmlpath3="/Message/Header/ErrorCode";
    String xmlpath4="/Message/Header/ErrorEnterPriseId";
    String xmlpath5="/Message/Header/ErrorStatus";
    String xmlpath6="/Message/Header/ErrorSystemId";
    String xmlpath7="/Message/Header/ErrorTimes";
    XPathExpression expression3 = xpath.compile(xmlpath3);
    Object result3 = expression3.evaluate(doc, XPathConstants.NODE);
    Node node3 = (Node) result3;
    node3.getParentNode().removeChild(node3);
    XPathExpression expression4 = xpath.compile(xmlpath4);
    Object result4 = expression4.evaluate(doc, XPathConstants.NODE);
    Node node4 = (Node) result4;
    System.out.println("node value");
    System.out.println(node4.getParentNode().getNodeName());
    node4.getParentNode().removeChild(node4);
    XPathExpression expression5 = xpath.compile(xmlpath5);
    Object result5 = expression5.evaluate(doc, XPathConstants.NODE);
    Node node5 = (Node) result5;
    node5.getParentNode().removeChild(node5);
    XPathExpression expression6 = xpath.compile(xmlpath6);
    Object result6 = expression6.evaluate(doc, XPathConstants.NODE);
    Node node6=(Node) result6;
    node6.getParentNode().removeChild(node6);
    XPathExpression expression7 = xpath.compile(xmlpath7);
    Object result7 = expression7.evaluate(doc, XPathConstants.NODE);
    Node node7=(Node) result7;
    node7.getParentNode().removeChild(node7);
    // Node b13Node = (Node) expression.evaluate(doc, XPathConstants.NODE);
    //b13Node.getParentNode().removeChild(b13Node);
    doc.normalize();
    doc.normalizeDocument();
    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer t = tf.newTransformer();
    t.setOutputProperty(OutputKeys.INDENT, "yes");
    t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
    t.setOutputProperty(OutputKeys.METHOD,"xml");
    t.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    t.transform(new DOMSource(doc), new StreamResult(System.out));
    catch (Exception e) {
         e.printStackTrace();
    System.out.println(e.getMessage());
    </pre>
    Edited by: user12185243 on Apr 6, 2013 6:38 AM
    Edited by: user12185243 on Apr 6, 2013 6:41 AM
    Edited by: user12185243 on Apr 6, 2013 6:43 AM
    Edited by: user12185243 on Apr 6, 2013 6:45 AM
    Edited by: user12185243 on Apr 6, 2013 9:00 AM

    either this way we can do this
    1)
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    <b> factory.setIgnoringElementContentWhitespace(true); </b>
    DocumentBuilder db = factory.newDocumentBuilder();
    or
    2)
    java.io.StringWriter sw = new java.io.StringWriter();
    StreamResult sr = new StreamResult(sw);
    t.transform(new DOMSource(doc), sr);
    String xml1 = sw.toString().trim();
    <b> xml1=xml1.replaceAll("\\s",""); </b>
    System.out.println(xml1.trim());

  • How to eliminate empty lines in Flat file.

    Hi All,
    How to delete the empty lines in flat file,i am explaining below with data
    Here we have 3 fields with field lengths 30,10,34  i am checking the condition in message mapping if the middle field containing 9999999999 i am deleting the total record but in output file i am getting empty line how to eleminate empy lines in file please suggest me is it possible through Content Convertion.
    Thanks,
    Sudheer.
    0500189175247200000500003141700000142888073108000009640566210000
    0500189175247200000500012449050000142889072908000009623017230000
    0500189175247200000500000496210000142890073008000009631840760000
    0500189175247200000500000162130000142891072808000009613028730000
    0500189175247200000500001356750000142892072908000009621443430000
    0500189175247200000500012982910000142893072908000009622158440000
    0500189175247200000500001380990000142894073008000009631876720000
    0500189175247200000500000074560000142895072808000009613904430000
    0500189175247200000500003351650000142896072908000009623005030000
    0500189175247200000500000061170000142898072808000009613026140000
    0500189175247200000500000060590000142900073008000009630862400000
    0500189175247200000500000155320000142901072908000009623234640000
    0500189175247200000500043425220000142903072808000009612752160000
    0500189175247200000500000517450000142904073108000009640911680000
    0500189175247200000500006901140000142905073008000009630927540000
    0500189175247200000500001565590000142906073008000009630938540000
    0500189175247200000500000210440000142907073108000009640765850000
    0500189175247200000500000187500000142908072908000009622980650000
    0500189175247200000500000069240000142909072908000009622980660000

    Hi,
    I think we could handle this with may be usage of Advanced UDF in Graphical mapping only.
    Here as per the condition you are deleting the particular record but unknowingly blank value i.e. " " is getting passed so on target side blank node is created for this record.
    You need to just avoid this blank Node.
    If you can share the logic you have applied for Middle field as well the source and target structure I will be able to try the UDF code..based on it
    Thanks
    swarup

  • How to write empty line in text file

    hey
    i want to insert one empty line in text file.
    how to write this.
    i declared
    data: emptyrec(240) type c value space,
    and used
    TRANSFER emptyrec to e_file.
    but its not inserting empty line in the record.
    is there any special way have to do.
    ambichan.

    hai anand,
    I am posting the code snippet.
    i have commented that transfer line in '----
    ' like this
    pls refer below.
    ambichan
    DATA: PAGENO(4) TYPE N VALUE 1,
          DATAKBN(2) TYPE N VALUE 1,
          SUBNO(3) TYPE N VALUE 1,
          VPAGENO(4) TYPE C,
          VDATAKBN(2) TYPE C,
          VSUBNO(3) TYPE C,
          VREC(255) TYPE C,
          VRECORD(255) TYPE C,
          EMPTYREC(255) TYPE C VALUE SPACE,
          VCODE(10) TYPE C,
          VNAME2(35) TYPE C,
          VPAYDAT(10) TYPE C,
          VSGTXT(60) TYPE C VALUE SPACE,
          VSGTXT1(10) TYPE C,
          VKINGAKU(15) TYPE C VALUE SPACE,
          VBIKKO(30) TYPE C VALUE SPACE,
          VBELNR(10) TYPE C VALUE SPACE,
          VDMBTR(15) TYPE C,
          VGLT0-KSLVT(15) TYPE C,
          VGLT0-TSL01(15) TYPE C,
          VGLT0-TSL02(15) TYPE C,
          VGLT0-TSL03(15) TYPE C,
          VGLT0-TSL04(15) TYPE C,
          VGLT0-TSL05(15) TYPE C,
          VKIN(15) TYPE C,
          VTEGA(15) TYPE C.
    FORM FRM_OUTPUT_DATA.
      SORT ITAB_OUTPUT_SUMMARY BY LIFNR DTYPE.
      SORT ITAB_OUTPUT_ITEMS   BY LIFNR DTYPE BELNR.
    IF P_DISP = 'X'."check&#12508;&#12463;&#12473;&#12434;&#36984;&#12406;&#22580;&#21512;&#12289;&#12501;&#12449;&#12452;&#12523;&#20316;&#25104;&#20966;&#29702;&#12408;&#34892;&#12367;
    OPEN DATASET E_FILE FOR OUTPUT IN TEXT MODE.
      IF SY-SUBRC <> 0.
      WRITE: 'error',SY-SUBRC.
      EXIT.
      ENDIF.
    LOOP AT ITAB_LIFNR.
      PERFORM LISTDATA.
      PAGENO = PAGENO + 1.
      SUBNO = 1.
    ENDLOOP.
    CLOSE DATASET E_FILE."&#12501;&#12449;&#12452;&#12523;&#12463;&#12525;&#12540;&#12474;
    ENDFORM.                               " End of frm_output_data
    FORM LISTDATA.
      DATA:
        WK_PAY_AMOUNT  LIKE  BSEG-DMBTR,   " &#32020;&#25903;&#25173;&#38989;&#31639;&#20986;&#29992;
        VWK_PAY_AMOUNT(15) TYPE C,
        GLT0-TSL05_VAL LIKE GLT0-TSL05.
      READ TABLE ITAB_OUTPUT_SUMMARY
             WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 1.
    BSIK-DMBTR  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      GLT0-TSL01  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      READ TABLE ITAB_OUTPUT_SUMMARY
             WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 2. " &#21306;&#20998;&#65306;2
      GLT0-TSL02  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      READ TABLE ITAB_OUTPUT_SUMMARY
             WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 3. " &#21306;&#20998;&#65306;3
      GLT0-TSL03  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      READ TABLE ITAB_OUTPUT_SUMMARY
             WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 4. " &#21306;&#20998;&#65306;4
      GLT0-TSL04  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      READ TABLE ITAB_OUTPUT_SUMMARY
             WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 5. " &#21306;&#20998;&#65306;5
      GLT0-TSL05  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
    glt0-tsl05  =  glt0-tsl05  +  glt0-tsl04.
      WK_PAY_AMOUNT  =  GLT0-TSL05  +  GLT0-TSL04.
    CHECK WK_SUBRC = 0.                
      BSEG-KOART = ' '.                    &#24773;&#22577;&#19981;&#35201;
      CLEAR: BSEG-SGTXT, BSEG-DMBTR, TGSBT-GTEXT, BKPF-BELNR.
      BSEG-KOART = 'Y'.                    " &#12501;&#12521;&#12464;&#65306;&#12504;&#12483;&#12480;&#12395;&#30456;&#27578;&#38989;&#12434;&#20986;&#21147;
    CLEAR: BSAK-DMBTR.
      READ TABLE ITAB_OUTPUT_SUMMARY
           WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 6.  " &#21306;&#20998;&#65306;6
      BSAK-DMBTR  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      WK_PAY_AMOUNT  =  WK_PAY_AMOUNT  -  BSAK-DMBTR.
      WRITE : / PAGENO,
               SUBNO,
               DATAKBN,
               ITAB_LIFNR-LIFNR,
               ITAB_LIFNR-NAME2(25),
               P_PAY_T,
               GLT0-TSL01,
               GLT0-TSL02,
               GLT0-TSL03,
               GLT0-TSL04,
               GLT0-TSL05.
    VPAGENO = PAGENO.
    VSUBNO = SUBNO.
    DATAKBN = 1.
    VDATAKBN = DATAKBN.
    VCODE = ITAB_LIFNR-LIFNR.
    VNAME2 = ITAB_LIFNR-NAME2.
    VPAYDAT = P_PAY_T.
    VGLT0-TSL01 = GLT0-TSL01.
    VGLT0-TSL02 = GLT0-TSL02.
    VGLT0-TSL03 = GLT0-TSL03.
    VGLT0-TSL04 = GLT0-TSL04.
    VGLT0-TSL05 = GLT0-TSL05.
    CONCATENATE VPAGENO VSUBNO VDATAKBN VCODE VNAME2 VPAYDAT VSGTXT VKINGAKU
    VBIKKO VBELNR VGLT0-TSL01 VGLT0-TSL02 VGLT0-TSL03
    VGLT0-TSL04 VGLT0-TSL05 INTO VREC SEPARATED BY ','.
    CLEAR: BSAK-DMBTR, BSID-DMBTR, BSAD-DMBTR, BSEG-DMBTR, BSIK-DMBTR,
             WK_10 , WK_11 , GLT0-TSL05.
      READ TABLE ITAB_OUTPUT_SUMMARY
           WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 7.  " &#21306;&#20998;&#65306;7
      BSID-DMBTR  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      WK_PAY_AMOUNT  =  WK_PAY_AMOUNT  -  BSID-DMBTR.
    &#37109;&#36865;&#26009;&#12398;&#20986;&#21147;&#20966;&#29702;
      READ TABLE ITAB_OUTPUT_SUMMARY
           WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 8.  " &#21306;&#20998;&#65306;8
      BSAD-DMBTR  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      WK_PAY_AMOUNT  =  WK_PAY_AMOUNT  -  BSAD-DMBTR.
      READ TABLE ITAB_OUTPUT_SUMMARY
           WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 9.  " &#21306;&#20998;&#65306;9
      BSEG-DMBTR  =  ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      WK_PAY_AMOUNT  =  WK_PAY_AMOUNT  -  BSEG-DMBTR.
      READ TABLE ITAB_OUTPUT_SUMMARY
             WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 10.
      WK_10 =     ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      READ TABLE ITAB_OUTPUT_SUMMARY
             WITH KEY   LIFNR  =  ITAB_LIFNR-LIFNR  DTYPE = 11.
      WK_11 =     ITAB_OUTPUT_SUMMARY-DMBTR * WK_RATIO.
      GLT0-TSL05  =   WK_PAY_AMOUNT - WK_10 - WK_11.
      WK_PAY_AMOUNT  =  WK_PAY_AMOUNT  -  GLT0-TSL05.
       VWK_PAY_AMOUNT = WK_PAY_AMOUNT.
       VKIN = WK_10.
       VTEGA = WK_11.
       CONCATENATE VREC VWK_PAY_AMOUNT VKIN VTEGA INTO
             VRECORD SEPARATED BY ','.
       TRANSFER VRECORD TO E_FILE.
        WRITE :
                VWK_PAY_AMOUNT,
                WK_10,
                WK_11.
       WRITE:/.
      BSEG-KOART  = 'X'.                   " &#12501;&#12521;&#12464;&#65306;&#35531;&#27714;&#37329;&#38989;&#12434;&#20986;&#21147;
      LOOP AT ITAB_OUTPUT_ITEMS WHERE LIFNR = ITAB_LIFNR-LIFNR
                                AND   DTYPE = 5.          " &#21306;&#20998;&#65306;5
        BSEG-SGTXT   =  ITAB_OUTPUT_ITEMS-SGTXT.          " &#26126;&#32048;&#12486;&#12461;&#12473;&#12488;
        GLT0-KSLVT   =  ITAB_OUTPUT_ITEMS-DMBTR * WK_RATIO.     " &#37329;&#38989;
        TGSBT-GTEXT  =  ITAB_OUTPUT_ITEMS-GTEXT.              BKPF-BELNR   =  ITAB_OUTPUT_ITEMS-BELNR.         
       SUBNO = SUBNO + 1.
       VSUBNO = SUBNO.
       DATAKBN = 2.
       VDATAKBN = DATAKBN.
       VGLT0-KSLVT = GLT0-KSLVT.
       VBIKKO = TGSBT-GTEXT.
       VBELNR = BKPF-BELNR.
       VSGTXT1 ='&#35531;&#27714;&#37329;&#38989;:'.
       CLEAR VRECORD.
      CONCATENATE  VSGTXT1 BSEG-SGTXT INTO VSGTXT.
      CONCATENATE VPAGENO VSUBNO VDATAKBN VCODE VNAME2 VPAYDAT VSGTXT
    VGLT0-KSLVT VBIKKO VBELNR INTO VRECORD SEPARATED BY ','.
      TRANSFER VRECORD TO E_FILE.
       WRITE :/ VPAGENO,VSUBNO,VDATAKBN,'&#35531;&#27714;&#37329;&#38989;:', VSGTXT, VGLT0-KSLVT,
                VBIKKO,VBELNR.
      ENDLOOP.
      CLEAR: BSEG-SGTXT,GLT0-KSLVT,BKPF-BELNR.
    LOOP AT ITAB_OUTPUT_ITEMS WHERE LIFNR = ITAB_LIFNR-LIFNR
                                AND   DTYPE = 6.          " &#21306;&#20998;&#65306;6
        BSEG-SGTXT   =  ITAB_OUTPUT_ITEMS-SGTXT.          " &#26126;&#32048;&#12486;&#12461;&#12473;&#12488;
        IF  ITAB_OUTPUT_ITEMS-SHKZG  =  CNS_CREDIT.       " &#37329;&#38989;
          GLT0-KSLVT  =  ITAB_OUTPUT_ITEMS-DMBTR * WK_RATIO.
        ELSEIF  ITAB_OUTPUT_ITEMS-SHKZG  =  CNS_DEBIT.
          GLT0-KSLVT  =  ITAB_OUTPUT_ITEMS-DMBTR * WK_RATIO * -1.
        ENDIF.
      TGSBT-GTEXT  =  ITAB_OUTPUT_ITEMS-GTEXT.          " &#20107;&#26989;&#38936;&#22495;&#12486;&#12461;&#12473;&#12488;
      BKPF-BELNR   =  ITAB_OUTPUT_ITEMS-BELNR.          " &#20253;&#31080;&#30058;&#21495;
      SUBNO = SUBNO + 1.
      VSUBNO = SUBNO.
      DATAKBN = 3.
      VDATAKBN = DATAKBN.
      VGLT0-KSLVT = GLT0-KSLVT.
      VBIKKO = TGSBT-GTEXT.
      VBELNR = BKPF-BELNR.
      VSGTXT1 ='&#30456;&#27578;&#37329;&#38989;:'.
      CLEAR VRECORD.
      CONCATENATE  VSGTXT1 BSEG-SGTXT INTO VSGTXT.
      CONCATENATE VPAGENO VSUBNO VDATAKBN VCODE VNAME2 VPAYDAT VSGTXT
      VGLT0-KSLVT VBIKKO VBELNR INTO VRECORD SEPARATED BY ','.
      TRANSFER VRECORD TO E_FILE.
    concatenate vpageno vsubno vdatakbn
      WRITE :/ PAGENO,SUBNO,DATAKBN,'&#30456;&#27578;&#37329;&#38989;',BSEG-SGTXT, GLT0-KSLVT,
             TGSBT-GTEXT, BKPF-BELNR.
      ENDLOOP.
       CLEAR VRECORD.
    *Insert empty line.
      TRANSFER EMPTYREC TO E_FILE.
      DATAKBN = 3.
      VDATAKBN = DATAKBN.
      SUBNO = SUBNO + 1.
      VSUBNO = SUBNO.
      VSGTXT ='&#28304;&#27849;&#37329;&#38989;'.
      VDMBTR = BSID-DMBTR.
      CONCATENATE VPAGENO VSUBNO VDATAKBN VCODE VNAME2 VPAYDAT VSGTXT
      VDMBTR INTO VRECORD SEPARATED BY ','.
      TRANSFER VRECORD TO E_FILE.
      WRITE :/ PAGENO, SUBNO,DATAKBN, ITAB_LIFNR-LIFNR,ITAB_LIFNR-NAME2,
             P_PAY_T,'&#28304;&#27849;&#37329;&#38989;', BSID-DMBTR.
      CLEAR: VDMBTR, VSGTXT, VRECORD.
      SUBNO = SUBNO + 1.
      VSUBNO = SUBNO.
      VSGTXT = '&#37109;&#36865;&#26009;'.
      VDMBTR = BSAD-DMBTR.
      CONCATENATE VPAGENO VSUBNO VDATAKBN VCODE VNAME2 VPAYDAT VSGTXT
      VDMBTR INTO VRECORD SEPARATED BY ','.
      TRANSFER VRECORD TO E_FILE.
      WRITE :/ PAGENO, SUBNO,DATAKBN,ITAB_LIFNR-LIFNR,ITAB_LIFNR-NAME2,
             P_PAY_T,'&#37109;&#36865;&#26009;', BSAD-DMBTR.
      CLEAR: VDMBTR, VSGTXT, VRECORD.
      SUBNO = SUBNO + 1.
      VSUBNO = SUBNO.
      VSGTXT = '&#25391;&#36796;&#12415;&#25163;&#25968;&#26009;'.
      VDMBTR = BSEG-DMBTR.
      CONCATENATE VPAGENO VSUBNO VDATAKBN VCODE VNAME2 VPAYDAT VSGTXT
      VDMBTR INTO VRECORD SEPARATED BY ','.
      TRANSFER VRECORD TO E_FILE.
      CLEAR: VDMBTR, VSGTXT, VRECORD.
      WRITE :/ PAGENO,SUBNO,DATAKBN,ITAB_LIFNR-LIFNR,ITAB_LIFNR-NAME2,
            P_PAY_T,'&#25391;&#36796;&#12415;&#25163;&#25968;&#26009;',BSEG-DMBTR.
    *&#12381;&#12398;&#20182;&#12398;&#25903;&#25173;&#12356;&#12398;&#20966;&#29702;
      SUBNO = SUBNO + 1.
      VSUBNO = SUBNO.
      VSGTXT = '&#12381;&#12398;&#20182;&#12398;&#25903;&#25173;&#12356;'.
      VDMBTR = GLT0-TSL05.
      CONCATENATE VPAGENO VSUBNO VDATAKBN VCODE VNAME2 VPAYDAT VSGTXT
      VDMBTR INTO VRECORD SEPARATED BY ','.
      TRANSFER VRECORD TO E_FILE.
      WRITE :/ PAGENO,SUBNO,DATAKBN,ITAB_LIFNR-LIFNR,ITAB_LIFNR-NAME2,
            P_PAY_T, '&#12381;&#12398;&#20182;&#12398;&#25903;&#25173;&#12356;',GLT0-TSL05.
                                     glt0-tsl05.
    ULINE.
    CLEAR: VREC, VRECORD,VCODE,VNAME2,VPAYDAT,VSGTXT,VSGTXT1,VKINGAKU.
    CLEAR: VBIKKO,VBELNR,VDMBTR,VGLT0-KSLVT,VGLT0-TSL01,VGLT0-TSL02.
    CLEAR: VGLT0-TSL03,VGLT0-TSL04,VGLT0-TSL05,VKIN,VTEGA,VWK_PAY_AMOUNT.
    ENDFORM.

  • How to remove the empty lines in the generated XML?

    Hi, XML/JDOM experts,
    I used JDOM to generate an XML file in my exercise of comparing two xml files.
    I used a lot of times addContent()...
    The resuting xml is fine for its contents.
    But I don't like so many empty lines (or carriage return).
    Would you help to refine the result?
    Best regards,
    AG
    Sample results:
    <li delta:property="Modified">
    <code delta:property="Modified">
    <delta:NewValue>foreignObject</delta:NewValue>
    <delta:OldValue>text</delta:OldValue>
    </code>
    <svg xmlns="http://www.w3.org/2000/svg" width="6cm" height="45px" delta:property="Removed">
    <rect y="0" x="27px" width="110px" height="45px" style="fill: #C1FFFF" />
    <foreignObject width="120px" y="0" x="20px">
    <div xmlns="http://www.w3.org/1999/xhtml">
    <ul>
    <li>First item</li>
    <li>Second item</li>
    </ul>
    </div>
    </foreignObject>
    </svg>
    <svg xmlns="http://www.w3.org/2000/svg" width="9.5cm" height="1.2cm" delta:property="Added">
    <text y="33px" x="13px" style="font-family: helvetica; font-size: 14pt; fill: #FFAA00">A simple
    text in SVG
    </text>
    </svg>
    </li>

    The solution is to add
    outputter.setTrimAllWhite(true);
    Below is the sample code.
         FileOutputStream out = new FileOutputStream("delta.xml");
         XMLOutputter outputter = new XMLOutputter(" ", true, "UTF-8");
         outputter.setTrimAllWhite(true);
         outputter.output(doc1, out);
         out.close();

  • How can I control the line spacing in TLF

    Hello,
    Is it possible to control the line spacing in TLF?
    For example I might have text lines with font size of 12 (i.e. constant text height) but I would like to be able to change the space between the lines programatically.
    Playing with the lineHeight property is not the best approach because in case there are images embedded in the text once lineHeight is set then the image is cut if it is higher than the line height. I really need to control the space between lines but not the lines' height.
    Thanks

    I would like to achieve the following behavior: the gap between all text lines to be always X pixels.
    My understanding how TLF handles this (please correct me if I am wrong) is that there is no gap between TextLines but one could achieve similar behavior by playing with lineHeigh. You could set it to a percentage and then this would introduce visual gap between text lines however in cases when a text line contains elements with different height (like the case with images or spans with different fontSize) then the gap will differ because it is calculated as a percentage of the overall fontSize. I don't want to have different gaps in these cases. I would like to have always (let's say) 10 pixels between each text line.
    What I need is very similar to the "verticalGap" style available in the VBox container. I would like to specify the exact gap between each text line in exactly the same way.
    Using "lineHeight" is not good because it depends on the height of the text/images and this leads to different gaps when I have mixture of elements with different heights. The way I set the gap should not be dependent on the height of the elements.

Maybe you are looking for

  • Mute Switch after upgrading to iOS 4.3.3

    Anyone encountered problem with the Mute switch on Apple iPad after updating to OS 4.3.3?  Set lock rotation, functioned as advertised. Set mute still got sound even switched on. A few of my colleagues also got this issue. BTW, mine is iPad 1.

  • Unable to switch from Windows Update to Microsoft Update

    On a new Windows 7 64 bit computer I am unable to access Microsoft updates. Windows update works fine, but when I click the link to get updates for other Microsoft Products it will only take me to the screen that tells me to use the start menu to che

  • What event will be triggered by check button on ALV?

    Hi, What event will be triggered by the standard check button on ALV? ON_DATA_CHECK is only triggered by a change in an editable field on ALV, so if no change were made, ON_DATA_CHECK wouldn't be triggered. I also tried events for before and after st

  • Brconnect error BR0301E SQL error -1017

    Hi All, I am having errors issuing the brconnect commands. For example, brconnect  -f check is returning the error: *BR0301E SQL error -1017 at location db_connect-2, SQL statement:'CONNECT system/*******  .* I appreciate the fact that this may be a

  • Displaying all rows if value is blank

    Hi all trying I am trying to display all the rows from a database if the default value is blank I have tried to put a * or ? in the php code What could be wrong here? What do I need to put for the variable section for the correct syntax As it its Nam