Control Breaks AT END OF...., AT NEW... etc in BSP using HTMLBs ?

Hi SAP Pros,
Recently while working on a BSP Application which had simple HTML coding/styling in the Layout part, we faced a problem in displaying data of more than 3000 records. For those reasons we shifted to TableViews. But some BSP pages have Control Breaks in the LOOP....ENDLOOP (in the Layout part) of the Internal table being displayed. Now since with TableViews we cannot incorporate Control Breaks, I am stuck with the issue of how to manage mass records, while at the same time maintain the use of TableViews because of its ability to display mass data.
Please advise me on this. A Solution is much awaited. We have, as usual, real time crunch.
Thanks in advance to all.
Awaiting helpful replies,
Vivek Singh.

Hi Craig,
Thanx for that "Rules of Engagement" Link. It was good!
I just pushed in a Question here instead of OSS, as I didn't have the login ID and password (at that moment) to my Company's OSS. Never wished to signal SDN is "Support Desk". As members, we all understand that! I too am a contributor, but whenever (3 or 4 times) I have answered a Post, some error occurred. The next page got hanged. Blame it to slow Internet Speed or heavy traffic on SDN.
Will surely learn to be more proactive and assertive like you people.
On to my question's Sense Making part, Sir, I just wished to know if at all I can use the Control Breaks like AT NEW..., AT END OF...., etc. with TableViews, since I need to display mass records at the same time use the Control Breaks (AT END OF...., AT LAST..., etc.)in them. If you relate my lines now to what I had asked earlier, you'll find both ask the same (as is evident in my Topic's heading).
Sorry for expressing my question in a way not recommended. But a solution can always be provided generously.
I hope my question emerges clearer to you. Waiting for a positive reply from you. Please reply at your own convenience.
Vivek.

Similar Messages

  • ANY SY-INDEX REFLECT CHANGES WHEN CONTROL BREAK STATEMENT PROCESS

    Dear Guru's,
                     I have a requirement where i have to move the values to variable when control break (AT END OF) process. So i want to move the values according to the end of Vendor so for that  i want to know is there any sy-index available which reflects changes when Control break (AT end of) process.
    LIKE Sy-subrc = 0 when select statement fetches record or sy-tabix is like counter for loop.
    Hope to get reply soon.
    Regards,
    Himanshu Rangappa

    Hi,
    There is no system Fields for it.
    But your requirement can be done with 'AT NEW' and 'AT END' statement.
    Refer this sample example,
    loop at otab.
        at new module.
          move otab-module to otab2-module.
        ENDAT.
          at END OF effort.
          sum.               "Do your calculations here
          move otab-count to otab2-count.
          append otab2.
        endat.
      endloop.

  • Control break behavior

    Hi,
    Can anyone tell if there's a way to override the default behavior of Control Break?
    In my report (a schedule), I have a column that holds the values for days (monday, tuesday, etc.).
    I want to control break on that column but keep the resulting grups ordered in a natural order (monday first, tuesday second and so on).
    I can write the sql that generates my report that way by using decode, but once I Control Break apex is applying a new order by clause on my report, destroying my order.
    Any ideas on how to tell apex how to order for control break using decode, or how to disable ordering entirely when I use Control Break on a specific column?
    Thank you!
    Edited by: user2130586 on May 17, 2012 6:40 AM
    Edited by: user2130586 on May 17, 2012 6:41 AM

    Welcome to the forum: please read the FAQ and forum sticky threads (if you haven't done so already).
    When you have a problem you'll get a faster, more effective response by including as much relevant information as possible upfront. This should include:
    <li>Full APEX version
    <li>Full DB/version/edition/host OS
    <li>Web server architecture (EPG, OHS or APEX listener/host OS)
    <li>Browser(s) and version(s) used
    <li>Theme
    <li>Template(s)
    <li>Region/item type(s)
    With APEX we're also fortunate to have a great resource in apex.oracle.com where we can reproduce and share problems. Reproducing things there is the best way to troubleshoot most issues, especially those relating to layout and visual formatting. If you expect a detailed answer then it's appropriate for you to take on a significant part of the effort by getting as far as possible with an example of the problem on apex.oracle.com before asking for assistance with specific issues, which we can then see at first hand.
    When asking a question about "reports" it's firstly essential to differentiate between standard and interactive reports. Which is it?
    I suggest you take advantage of the opportunities provided by apex.oracle.com and reproduce the problem there...

  • Doubt in control break statement

    Hi All,
    Is there any way to trigger control break statements at new & at end of for non primary key fields.
    i want to trigger both control break statements for my requirement , not at change of, because i want to trigger at end of also. Please let me know if any possibility. Thanks
    regards
    vishal

    hi vishal,
    Variants:
    1. AT NEW f.
    2. AT END OF f.
    3. AT FIRST.
    4. AT LAST.
    Effect
    In a LOOP which processes an internal table, you can use special control structures for control break processing. All these structures begin with AT and end with ENDAT. The sequence of statements which lies between them is then executed if a control break occurs.
    You can use these key words for control break processing with internal tables only if a loop is actively processing an internal table and reference is to the innermost currently active loop.
    The control level structure with internal tables is static. It corresponds exactly to the sequence of columns in the internal table (from left to right). In this context, the criteria according to which you sort the internal table are unimportant.
    At the start of a new control level (i.e. immediately after AT), the following occurs in the output area of the current LOOP statement:
    All character type fields (on the right) are filled with "*" after the current control level key.
    All other fields (on the right) are set to their initial values after the current control level key.
    Between AT and ENDAT, you can use SUM to insert the appropriate control totals in the numeric fields (see also ABAP Number Types) of the LOOP output area (on the right) after the current control level key. Summing is supported both at the beginning of a control level (AT FIRST, AT NEW f) and also the end of a control level (AT END OF f, AT LAST).
    At the end of the control level processing (i.e. after ENDAT), the old contents of the LOOP output area are restored.
    Notes
    When calculating totals, you must ensure that the totals are inserted into the same sub-fields of the LOOP output area as those where the single values otherwise occur. If there is an overflow, processing terminates with a runtime error.
    If an internal table is processed only in a restricted form (using the additions FROM, TO and/or WHERE with the LOOP statement), you should not use the control structures for control level processing because the interaction of a restricted LOOP with the AT statement is currenly not properly defined.
    With LOOPs on extracts, there are also special control break control structures you can use.
    Note
    Non-Catchable Exceptions:
    SUM_OVERFLOW: Overflow when calculating totals with SUM.
    Variant 1
    AT NEW f.
    Variant 2
    AT END OF f.
    The syntax check performed in an ABAP Objects context is stricter than in other ABAP areas.See Compatible Work Area with Control Level Processing and Field Symbols Not Allowed as Control Level Criterion.
    Effect
    f is a sub-field of an internal table processed with LOOP. The sequence of statements which follow it is executed if the sub-field f or a sub-field in the current LOOP line defined (on the left) before fhas a different value than in the preceding (AT NEW) or subsequent (AT END OF) table line.
    Example
    TYPES: BEGIN OF COMPANIES_TYPE,
            NAME(30),
            PRODUCT(20),
            SALES TYPE I,
          END   OF COMPANIES_TYPE.
    DATA: COMPANIES TYPE STANDARD TABLE OF COMPANIES_TYPE WITH
                         NON-UNIQUE DEFAULT KEY INITIAL SIZE 20,
          WA_COMPANIES TYPE COMPANIES_TYPE.
    LOOP AT COMPANIES INTO WA_COMPANIES.
      AT NEW NAME.
        NEW-PAGE.
        WRITE / WA_COMPANIES-NAME.
      ENDAT.
      WRITE: / WA_COMPANIES-PRODUCT, WA_COMPANIES-SALES.
      AT END OF NAME.
        SUM.
        WRITE: / WA_COMPANIES-NAME, WA_COMPANIES-SALES.
      ENDAT.
    ENDLOOP.
    The AT statements refer to the field COMPANIES-NAME.
    Notes
    If a control break criterion is not known until runtime, you can use AT NEW (name) or AT END OF (name) to specify it dynamically as the contents of the field name. If name is blank at runtime, the control break criterion is ignored and the sequence of statements is not executed. If name contains an invalid component name, a runtime error occurs.
    By defining an offset and/or length, you can further restrict control break criteria - regardless of whether they are specified statically or dynamically.
    A field symbol pointing to the LOOP output area can also be used as a dynamic control break criterion. If the field symbol does not point to the LOOP output area, a runtime error occurs.
    If you use AT within a LOOP with an explicitly-specified output area, the area must be compatible with the line type of the internal table so that it can be initialized properly (as described above) at the start of a new control level.
    You can restrict control break criteria further, regardless of whether they were defined statically or dynamically, by specifying offset and/or length.
    Variant 3
    AT FIRST.
    Variant 4
    AT LAST.
    Effect
    Executes the appropriate sequence of statements once during the first (AT FIRST) or last (AT LAST) loop pass.
    Example
    TYPES: BEGIN OF COMPANIES_TYPE,
            NAME(30),
            PRODUCT(20),
            SALES TYPE I,
          END   OF COMPANIES_TYPE.
    DATA: COMPANIES TYPE STANDARD TABLE OF COMPANIES_TYPE WITH
                         NON-UNIQUE DEFAULT KEY INITIAL SIZE 20,
          WA_COMPANIES TYPE COMPANIES_TYPE.
    LOOP AT COMPANIES INTO WA_COMPANIES.
    AT FIRST.
    SUM.
    WRITE: 'Sum of all SALES:',
    55 WA_COMPANIES-SALES.
    ENDAT.
    WRITE: / WA_COMPANIES-NAME, WA_COMPANIES-PRODUCT,
    55 WA_COMPANIES-SALES.
    ENDLOOP.

  • What is the use of control breaks in reoprts?  and how can we use them?

    hello all
    what is the use of control breaks in reoprts? and how can we use them in reports?

    use F1 on AT in a program.
    You get this
    Control break with extracts
    - AT NEW f.
    - AT END OF f.
    - AT FIRST.
    - AT LAST.
    - AT fg.
    Control break with internal tables
    - AT NEW f.
    - AT END OF f.
    - AT FIRST.
    - AT LAST.
    Each of these have a link to explain in detail what you are asking.

  • Control break stmts

    Can anyone explain the concepts of Control break statements
    Give me a small simple sample program..

    Hi ,
    Check in 21 days of ABAP book or in abap docu.
    Control break statements are used to stop the control at a particular point.
    1. AT NEW f.
    2. AT END OF f.
    3. AT FIRST.
    4. AT LAST.
    Effect
    In a LOOP which processes a dataset created with EXTRACT , you can use special control structures for control break processing. All these structures begin with AT and end with ENDAT . The sequence of statements which lies between them is then executed if a control break occurs.
    You can use these key words for control break processing with extract datasets only if the active LOOP statement is proceesing an extract dataset.
    The control level structure with extract datasets is dynamic. It corresponds exactly to the sort key of the extract dataset, i.e. to the order of fields in the field group HEADER by which the extract dataset was sorted .
    At the start of a new control level (i.e. immediately after AT ), the following occurs in the output area of the current LOOP statement:
    All default key fields (on the right) are filled with "*" after the current control level key.
    All other fields (on the right) are set to their initial values after the current control level key.
    Between AT and ENDAT , you can use SUM to insert the appropriate control totals in the number fields (see also ABAP/4 number types ) of the LOOP output area (on the right) after the current control level key. Summing is supported both at the beginning of a control level ( AT FIRST , AT NEW f ) and also the end of a control level ( AT END OF f , AT LAST ).
    At the end of the control level processing (i.e. after ENDAT ), the old contents of the LOOP output area are restored.
    Notes
    When calculating totals, you must ensure that the totals are inserted into the same sub-fields of the LOOP output area as those where the single values otherwise occur. If there is an overflow, processing terminates with a runtime error.
    If an internal table is processed only in a restricted form (using the additions FROM , TO and/or WHERE with the LOOP statement), you should not use the control structures for control level processing because the interaction of a restricted LOOP with the AT statement is currenly not properly defined.
    With LOOP s on extracts, there are also special control break control structures you can use.
    Note
    Runtime errors
    SUM_OVERFLOW : Overflow when calculating totals with SUM .
    Variant 1
    AT NEW f.
    Variant 2
    AT END OF f.
    Effect
    f is a sub-field of an internal table processed with LOOP . The sequence of statements which follow it is executed if the sub-field f or a sub-field in the current LOOP line defined (on the left) before f has a differnt value than in the preceding ( AT NEW ) or subsequent ( AT END OF ) table line.
    Example
    DATA: BEGIN OF COMPANIES OCCURS 20,
    NAME(30),
    PRODUCT(20),
    SALES TYPE I,
    END OF COMPANIES.
    LOOP AT COMPANIES.
    AT NEW NAME.
    NEW-PAGE.
    WRITE / COMPANIES-NAME.
    ENDAT.
    WRITE: / COMPANIES-PRODUCT, COMPANIES-SALES.
    AT END OF NAME.
    SUM.
    WRITE: / COMPANIES-NAME, COMPANIES-SALES.
    ENDAT.
    ENDLOOP.
    The AT statements refer to the field COMPANIES-NAME .
    Notes
    If a control break criterion is not known until runtime, you can use AT NEW (name) or AT END OF (name) to specify it dynamically as the contents of the field name . If name is blank at runtime, the control break criterion is ignored and the sequence of statements is not executed. If name contains an invalid component name, a runtime error occurs.
    By defining an offset and/or length, you can further restrict control break criteria - regardless of whether they are specified statically or dynamically.
    A field symbol pointing to the LOOP output area can also be used as a dynamic control break criterion. If the field symbol does not point to the LOOP output area, a runtime error occurs.
    Note
    Runtime errors
    AT_BAD_PARTIAL_FIELD_ACCESS : Invalid sub-field access when dynamically specifying the control break criterion.
    AT_ITAB_FIELD_INVALID : When dynamically specifying the control break criterion via a field symbol, the field symbol does not point to the LOOP output area.
    ITAB_ILLEGAL_COMPONENT : When dynamically specifying the control break criterion via (name) the field name does not contain a valid sub-field name.
    Variant 3
    AT FIRST.
    Variant 4
    AT LAST.
    Effect
    Executes the appropriate sequence of statements once during the first ( AT FIRST ) or last ( AT LAST ) loop pass.
    Example
    DATA: BEGIN OF COMPANIES OCCURS 20,
    NAME(30),
    PRODUCT(20),
    SALES TYPE I,
    END OF COMPANIES.
    LOOP AT COMPANIES.
    AT FIRST.
    SUM.
    WRITE: 'Sum of all SALES:',
    55 COMPANIES-SALES.
    ENDAT.
    WRITE: / COMPANIES-NAME, COMPANIES-PRODUCT,
    55 COMPANIES-SALES.
    ENDLOOP.
    ON CHANGE OF and AT NEW are same and we don't use On change of now.
    All this AT NEW, AT FIRST, AT END OF and AT LAST are called control break statements of Internal tables and are used to calculate the TOTALS based on sertain key fields in that internal table
    FIrst to use these statements the ITAB has to be sorted by the key fields on whcih you need the SUM of the fields.
    Some time you will get * when mopving data from this int table to other table using these commands
    so you have to use
    READ TABLE ITAB INDEX SY-TABIX in AT..ENDAT..if you are using other fields between them
    DATA: sflight_tab TYPE SORTED TABLE OF sflight
    WITH UNIQUE KEY carrid connid fldate,
    sflight_wa LIKE LINE OF sflight_tab.
    SELECT *
    FROM sflight
    INTO TABLE sflight_tab.
    LOOP AT sflight_tab INTO sflight_wa.
    AT NEW connid.
    WRITE: / sflight_wa-carrid,
    sflight_wa-connid.
    ULINE.
    ENDAT.
    WRITE: / sflight_wa-fldate,
    sflight_wa-seatsocc.
    AT END OF connid.
    SUM.
    ULINE.
    WRITE: / 'Sum',
    sflight_wa-seatsocc UNDER sflight_wa-seatsocc.
    SKIP.
    ENDAT.
    AT END OF carrid.
    SUM.
    ULINE.
    WRITE: / 'Carrier Sum',
    sflight_wa-seatsocc UNDER sflight_wa-seatsocc.
    NEW-PAGE.
    ENDAT.
    AT LAST.
    SUM.
    WRITE: / 'Overall Sum',
    sflight_wa-seatsocc UNDER sflight_wa-seatsocc.
    ENDAT.
    ENDLOOP.
    regards,
    Prabhu
    Reward if it is helpful

  • Control breaks and field concatenation

    can we concatenate fields  when using control break statements
    for eg :
    AT NEW waers.
            SUM.
            CONCATENATE
                       tbl_final_temp-text
                       tbl_final_temp-waers
                       v_tbl_final-wrbtr
                       v_tbl_final-wrbtr
                       INTO tbl_download-data
                       SEPARATED BY c_comma.
            APPEND tbl_download.
            CLEAR tbl_download.
            CLEAR v_tbl_final-wrbtr.
          ENDAT.

    check this
    REPORT zforum12 .
    data : begin of itab occurs 0,
           f1(10) type c,
           f2(20) type c,
           end of itab.
    DATA : VAL(50) TYPE C,
           V_F1(10) TYPE C,
           V_F2(10) TYPE C.
    DATA: C TYPE I.
           itab-f1 = '12345'.
           itab-f2 = 'CM'.
           APPEND ITAB.
           itab-f1 = '12345'.
           itab-f2 = '23-73276453'.
           APPEND ITAB.
           itab-f1 = '12345'.
           itab-f2 = '00000160867'.
           APPEND ITAB.
           itab-f1 = '12345'.
           itab-f2 = 'CMT'.
           APPEND ITAB.
           C = 10.
           SORT ITAB BY F1 .
           LOOP AT ITAB.
           V_F1 = ITAB-F1.
           V_F2 = ITAB-F2.
           AT NEW F1.
           CONCATENATE V_F1 SPACE INTO  VAL+0(10).
           ENDAT.
           CONCATENATE V_F2 SPACE INTO VAL+C(10).
           C = C + 10.
           AT END OF F1.
           CONDENSE VAL.
           WRITE:/ VAL NO-GAP.
           CLEAR C.
           ENDAT.
           ENDLOOP.
    regards,
    vijay.

  • Problem with the control break statement  - AT END OF

    data : IT_DATA   TYPE STANDARD TABLE OF /BIC/OH0SPA_OHD WITH  KEY /B28/S_D1DVOX5 ,
    FIELD-SYMBOLS :   <ls_data> TYPE any,
    SELECT * FROM (c_open_hub) INTO TABLE IT_DATA .
    *IF sy-subrc = 0.
    *ENDIF.
    Create the GUID for header
    CALL FUNCTION 'GUID_CREATE'
      IMPORTING
        EV_GUID_32 = LV_GUID.
    TRY.
        CALL METHOD CL_GDT_CONVERSION=>GUID_OUTBOUND
          EXPORTING
            IM_GUID_C = LV_GUID
          IMPORTING
            EX_VALUE  = LV_UUID.
      CATCH CX_GDT_CONVERSION  INTO go_exc .
        gv_text = go_exc->get_text( ).
    Application log for errors
        IF gv_text IS NOT INITIAL.
          PERFORM add_msg_to_log CHANGING lt_return.
          CALL FUNCTION '/SPA/APPL_LOG'
            EXPORTING
              LV_OBJECT    = '/SPA/APPL'
              LV_SUBOBJECT = '/SPA/ESOA'
              IT_RETURN    = lt_return.
        ENDIF.
    ENDTRY.
    OUTPUT-TRADE_PROMOTION_CRMBULK_CREATE-MESSAGE_HEADER-ID-CONTENT = LV_GUID.
    OUTPUT-TRADE_PROMOTION_CRMBULK_CREATE-MESSAGE_HEADER-UUID-CONTENT = LV_UUID.
    SELECT * FROM DD03T INTO TABLE lt_dd03t WHERE TABNAME = c_open_hub AND DDLANGUAGE = 'E' AND AS4LOCAL = 'A'.
    *IF sy-subrc = 0.
    *ENDIF.
    Sort the delta table
    SORT it_data.
    populate the output structure
    LOOP AT IT_DATA ASSIGNING <ls_data>.
    READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_keyfigures.
    ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_keyfigures>.
    READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_signdata.
    ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_signdata>.
    READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_bbtype.
    ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_bbtype>.
    READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_customer.
    ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_customer>.
    READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_product.
    ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_product>.
    READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_territory.
    ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_territory>.
    READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_time.
    ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_time>.
      CASE <l_keyfigures>.
        WHEN c_sd.
          PERFORM DATE_CALC USING <l_signdata> CHANGING  LV_DATE.
          ls_period_term-start_date = lv_date.
        WHEN c_ed.
          PERFORM DATE_CALC USING <l_signdata> CHANGING  LV_DATE.
          ls_period_term-end_date = lv_date.
        WHEN c_uplift.
          LS_PRODUCT_KF-ID-CONTENT = c_uplift_qyts.
          LS_PRODUCT_KF-VALUE = <l_signdata>.
         LS_PRODUCT_KF-YEAR = lv_week(4).
         LS_PRODUCT_KF-CALENDAR_PERIOD_ORDINAL_NUMBER = lv_week+4.
          APPEND LS_PRODUCT_KF TO LT_PRODUCT_KF.
        WHEN OTHERS.
        PERFORM DATE_CALC USING <l_signdata> CHANGING  LV_DATE.
         ls_period_term-start_date = lv_date.
    Get week
         CALL FUNCTION 'DATE_GET_WEEK'
           EXPORTING
             DATE = LS_PERIOD_TERM-START_DATE
           IMPORTING
             WEEK = LV_WEEK.
    append Keyfigure
          LS_PRODUCT_KF-ID-CONTENT = <l_keyfigures> .
          LS_PRODUCT_KF-VALUE = <l_signdata>.
         LS_PRODUCT_KF-YEAR = lv_week(4).
         LS_PRODUCT_KF-CALENDAR_PERIOD_ORDINAL_NUMBER = lv_week+4.
          APPEND LS_PRODUCT_KF TO LT_PRODUCT_KF.
    append tradespend
          SELECT SINGLE * FROM /SPA/SPEND_MAP INTO CORRESPONDING FIELDS OF LV_/SPA/SPEND_MAP
                 WHERE KEY_FIGURE = <l_keyfigures>.
          IF sy-subrc = 0.
            LS_TRADE_SPEND-TYPE_CODE-CONTENT = LV_/SPA/SPEND_MAP-SPEND_TYPE.
            LS_TRADE_SPEND-CATEGORY_CODE-CONTENT = LV_/SPA/SPEND_MAP-SPEND_CATEGORY.
            LS_TRADE_SPEND-METHOD_CODE-CONTENT = LV_/SPA/SPEND_MAP-SPEND_METHOD.
            APPEND LS_TRADE_SPEND TO LT_TRADE_SPEND.
          else.
            lv_flg = 'X'.
          ENDIF.
      ENDCASE.
    AT END OF /B28/S_D1DVOX5.   "
        SELECT SINGLE * FROM  /SPA/SO_TER_MAP INTO LS_/SPA/SO_TER_MAP WHERE TERRITORY = <l_territory>.
        IF sy-subrc = 0 AND lv_flg IS INITIAL.
    Create the GUID for TP's
          CALL FUNCTION 'GUID_CREATE'
            IMPORTING
              EV_GUID_32 = LV_GUID_MESSAGE.
          TRY.
              CALL METHOD CL_GDT_CONVERSION=>GUID_OUTBOUND
                EXPORTING
                  IM_GUID_C = LV_GUID_MESSAGE
                IMPORTING
                  EX_VALUE  = LV_UUID_MESSAGE.
            CATCH CX_GDT_CONVERSION .
          ENDTRY.
    populate the product
          LS_PRODUCT-ID-CONTENT = <l_product>.
          LS_CUSTOMER-ID-CONTENT = '300022'.
          LS_CUSTOMER-ROLE_CODE = '00000105'.
          LS_PRODUCT-KEY_FIGURE = LT_PRODUCT_KF.
          APPEND LS_PRODUCT TO LT_PRODUCT.
          APPEND LS_CUSTOMER TO LT_CUSTOMER.
          APPEND LS_DESCRIPTION TO LT_DESCRIPTION.
          APPEND LS_PERIOD_TERM TO LT_PERIOD_TERM.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-SALES_AREA-ORGANISATIONAL_CENTRE_ID = LS_/SPA/SO_TER_MAP-SALES__ORG.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-SALES_AREA-DISTRIBUTION_CHANNEL_CODE-CONTENT = LS_/SPA/SO_TER_MAP-DIST_CHANNEL.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_ACCOUNT-CUSTOMER_INTERNAL_ID = <l_customer>.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_PROFILE_GROUP_CODE-CONTENT = '4TPM'.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-TYPE_CODE-CONTENT = 'Z002'.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-UPLIFT_ACTIVE_INDICATOR = 'X'.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_INFORMATION-MARKETING_PROJECT_PLANNING_PRO = '5'.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_INFORMATION-CALENDAR_UNIT_CODE = 'WEE'.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-TRADE_SPEND = LT_TRADE_SPEND.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-PARTY = LT_CUSTOMER.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-DESCRIPTION = LT_DESCRIPTION.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_INFORMATION-PRODUCT = LT_PRODUCT.
          LS_TRADE_PROMOTION-TRADE_PROMOTION-PERIOD_TERM = LT_PERIOD_TERM.
          LS_TRADE_PROMOTION-MESSAGE_HEADER-ID-CONTENT = LV_GUID_MESSAGE.
          LS_TRADE_PROMOTION-MESSAGE_HEADER-UUID-CONTENT = LV_UUID_MESSAGE.
          LS_/SPA/REPORT_TAB-SPA_TP_ID = <l_bbtype>.
          LS_/SPA/REPORT_TAB-MESSAGE_ID = LV_GUID_MESSAGE.
          LS_/SPA/REPORT_TAB-CREATE_DATE = SY-DATUM.
          INSERT /SPA/REPORT_TAB FROM LS_/SPA/REPORT_TAB.
          APPEND LS_TRADE_PROMOTION TO LT_TRADE_PROMOTION.
          OUTPUT-TRADE_PROMOTION_CRMBULK_CREATE-TRADE_PROMOTION_CRMCREATE_REQU = LT_TRADE_PROMOTION.
          CLEAR : LT_DESCRIPTION, LT_PERIOD_TERM,LT_CUSTOMER, LT_PRODUCT, LT_PRODUCT_KF, LT_TRADE_SPEND,LS_/SPA/HEADER_TAB.
        ENDIF.
        CLEAR lv_flg .
      ENDAT.
    ENDLOOP.
    My problem is AT-END OF STATEMENT IS executing for each and every record of same /B28/S_D1DVOX5.
    Please help me from this problem

    Hello,
    First of all to know clearly about AT END.
    Let's say In IT_DATA fields are F1 F2 F3 /B28/S_D1DVOX5 F5.
    then AT END of /B28/S_D1DVOX5 means for each new value of this field at the end it will trigger.
    Please ensure thet IT_DATA is sorted by this field and then used Control break.
    Thanks,
    Pramod

  • At new control break statement

    hi all,
    I have a requirement where I have to display records for non duplicate matnr.
    I have used this control break statement and got
    stars for all other fields except matn in the outputr.
    code:    at new matnr.
                              write: /10 sy-vline , wa_mara-matnr COLOR 5,
                                      30 sy-vline , wa_mara-ersda COLOR 5 ,
                                      50 sy-vline , wa_mara-ernam COLOR 5 ,
                                      70 sy-vline , wa_mara-laeda COLOR 5 ,
                                      90 sy-vline , wa_mara-mtart COLOR 5 ,
                                      110 sy-vline , wa_mara-matkl COLOR 5 ,
                                      130 sy-vline , wa_mara-meins COLOR 5 ,
                                      150 sy-vline.
                            ENDAT.
    plese do send me solution for this.
    with regards,
    ASHA.

    FAQ. This has been discussed many times in the forum. Please search.

  • Control Break in a new page

    I just add a control break in the interactive report and I'd like to show each rows for each control break in a new page,
    or just add some new lines for each control break.
    Is there a way to do this?
    Thanks.

    Looks like a javascript problem. Go to a javascript forum and ask.

  • Control Break in Smartform

    Dear all,
       How to write control break statement in smart form while printing multiple line items in loop.
    like at new at last etc.....
    For eg; multiple lines having same material  with different batch, how to total all batches for the same material  and print it for single material.
    Thanks in advance.
    <MOVED BY MODERATOR TO THE CORRECT FORUM>
    Edited by: Alvaro Tejada Galindo on Nov 5, 2008 11:15 AM

    Hi
    Make use of the Calculations tab
    select accordingly the operation required ( TOTAL)
    Give the field name which you want to total
    Give the Target field name where you want the total to be and use this field to display the Total
    Give the time for total also
    i.e After Loop etc.
    if you want SUBTOTALS
    then print this value in the Event which you created as I mentioned in the previous Post
    If GrandTotal
    Then in the Footer area of the table print this value.
    in the conditions tab remove the check box AT PAGE BREAK if you want only at end of all the  data
    http://help.sap.com/saphelp_nw70/helpdata/EN/a5/de6838abce021ae10000009b38f842/frameset.htm
    regards
    Prasanth

  • Smartforms, how to use control break events

    Please help with this requirement.
    Purchase Docu No.111
    Pur Item No       Mat no       Quantity 
    1                        2356      2000
    2                     1256      2000
    3                     8556      2000
    Purchase Docu No.112
    Pur Item No    Mat no    Quantity 
    1                      9656      2000
    2                      7356      2000
    3                      1356      2000
    Purchase Docu No.113
    Pur Item No    Mat no    Quantity 
    1                      5356      2000
    2                      8356      2000
    This i have to design for the smartform.
    1 header data then its item data.
    like is Script i can call the WIndow elements using control break events in the driver prog but how to get this kind of output in Smartforms.???????
    Thanks

    I dont want trigger new page.
    In the same page i want like this
    I have purchase docu data in only 1 internal table.
    So, for every new VBELN, under this i want its corresponding item details.
    I have created the command node for the main window with 2 rows, in the 1st row i am giving VBELN and in the 2nd row i am giving in item details like item no, matnr etc etc and in the condition its askng Field name and Comparison Value.
    How shold i give condition.??????
    Thanks
    Edited by: Jalaaluddin Syed on May 1, 2008 5:03 PM

  • How to set a default start and/or end date for New Events based on trigger date.

    I'm using the CalendarActivityListener to get current row when clicking on an existing event. As per previous posts this listener gives you access to event detail including Start Date, End Date, etc.
    However, what I want to do is to default the start (and end) dates for New Events based on the trigger date.
    I've tried the CalendarListener and can grab the Trigger Date from it - however, I can't see a way to pass this directly to the popup/dialog I'm using to create the new event.
    At present I'm putting the TriggerDate into the ADFContext session scope e.g. ADFContext.getCurrent().getSessionScope().put("TriggerDate",calendarEvent.getTriggerDate());
    Then, I've tried multiple approaches to try and "get" the TriggerDate from session scope to drop it into my new Calendar Event basically, I'm trying to default the InputField(s) associated with the Start Date using the value from the session - I've tried
    1. setting the default value for the InputField in the jspx using a binding expression i.e. value="#{sessionScope.TriggerDate}" - this actually sets the value appropriately when the jspx is rendered but, when I go to create I get a NPE and I can't debug. I assumed that it might be a Date type issue - it would appear that CalendarListener provides a date of type java.util.Date and that the StartDate attribute of my VO/EO/table is a DATE and therefore requires oracle.jbo.domain.Date so I tried casting it - to no effect
    2. Using a Groovy expression *(StartDate==null?adf.context.sessionScope.TriggerDate:StartDate)* in my calendar's EventVO to default the Start Date to the same result
    Any thoughts or ideas?

    John,
    Thanks for that suggestion - could not get it to work. However, I did manage a different approach. I finally determined the sequence of events in terms of how the various events and listeners fire (I think).
    Basically, the CalendarActivityListener fires, followed by the listener associated with the Calendar object's Create facet, followed finally by the CalendarEventListener - the final is where the TriggerEvent is available and then finally, control is passed to the popup/dialog in the Create facet. So, my approach of trying to set/get the TriggerDate in the user's HTTP session was doomed to failure because it was being get before it had been set :(
    Anyway, I ended up adding a bit of code to the CalendarEvent listener - it grabs the current BindingContext, navigates through the DCBindingContainer to derive an Iterator for the ViewObject which drives the calendar and then grabs the currently active row. I then do a few tests to make sure we're working with a "new" row because I don't want to alter start & end dates associated with an existing calendar entry and then I define the Start and End dates to be the Trigger Date.
    Works just fine. Snippet from the listener follows
    BindingContext bindingContext = BindingContext.getCurrent();+
    *if ( bindingContext != null )    {*+
    DCBindingContainer dcBindings = (DCBindingContainer) bindingContext.getCurrentBindingsEntry();+
    DCIteratorBinding iterator = dcBindings.findIteratorBinding("EventsView1Iterator");+
    Row currentRow = iterator.getCurrentRow();+
    if ( currentRow.getAttribute("StartDate") == null)+
    currentRow.setAttribute("StartDate", calendarEvent.getTriggerDate());+
    if (currentRow.getAttribute("EndDate")==null)+
    currentRow.setAttribute("EndDate", calendarEvent.getTriggerDate());+
    *}*

  • Control break on column displayed as link in Interactive Report

    Hi,
    If someone can help me, i'd greatly appreciate it!
    I created an interactive report - one of the columns has a link attached to url specified in the Report Attributes/ link section.
    When I use the control break feature in the gear icon, the report seems to be grouped by the url/link and not by the actual column value.
    When I remove the link from the column - all is fine and the break does work.
    This column must get displayed as a link. Is there any workaround for this problem?
    Thanks,
    Hindy
    Edited by: hindyp on Dec 2, 2009 7:33 AM

    Hi,
    I don't know the details of the procedure, but you would have something like:
    CREATE OR REPLACE PROCEDURE "print_model_change"
      v_acctnum NUMBER,
      v_model VARCHAR2,
      v_rrcode NUMBER
    AS
    BEGIN
      .. DO SOMETHING WITH v_acctnum, v_model, v_rrcode
    END;This needs to be updated to something like:
    CREATE OR REPLACE PROCEDURE "print_model_change"
      v_manager_model NUMBER
    AS
    BEGIN
      DECLARE
        v_acctnum NUMBER;
        v_model VARCHAR2;
        v_rrcode NUMBER;
      BEGIN
        SELECT ACCTNUM, MODEL, RRCODE
        INTO v_acctnum, v_model, v_rrcode
        FROM .. your report's FROM statement plus ..
        WHERE MANAGER_MODEL = v_manager_model;
        .. DO SOMETHING WITH v_acctnum, v_model, v_rrcode
      END;
    END;and followed by:
    GRANT EXECUTE ON "print_model_change" TO PUBLICto make it available
    The existing code receives all the data it would need (presumably). The updated code receives the manager_model value and, using the same FROM clause that you have for your report PLUS a WHERE clause (or, if you are using a WHERE clause in your report, change this to AND), finds the data that it needs for v_acctnum etc. After it has that data, the rest of the existing code can be used unchanged.
    Andy

  • What is the use of control breaks in reoprts?how can we use them in report?

    hello all
    what is the use of control breaks in reoprts? and how can we use them in reports?

    hi,
    check this sample program using control break statements.
    *& Report  Y777_CBSTABLE
    REPORT  Y777_CBSTABLE1.
    TYPES:
    BEGIN OF S_MARKS,
         ROLLNO    TYPE I,
         SCODE(3)  TYPE C,
        ROLLNO    TYPE I,
         SNAME(10) TYPE C,
         MARKS     TYPE I,
    END OF S_MARKS.
    DATA : C TYPE I,
           D(3) TYPE C,
           TOT TYPE I,
           STU TYPE I,
           MARKS TYPE STANDARD TABLE OF S_MARKS,
           WA_MARKS TYPE S_MARKS.
    WA_MARKS-ROLLNO = 1.
    WA_MARKS-SCODE  = 'MAT'.
    WA_MARKS-SNAME  = 'MATHS'.
    WA_MARKS-MARKS  = 65.
    APPEND WA_MARKS TO MARKS.
    CLEAR WA_MARKS.
    WA_MARKS-ROLLNO = 1.
    WA_MARKS-SCODE  = 'SCI'.
    WA_MARKS-SNAME  = 'SCIENCE'.
    WA_MARKS-MARKS  = 85.
    APPEND WA_MARKS TO MARKS.
    CLEAR WA_MARKS.
    WA_MARKS-ROLLNO = 1.
    WA_MARKS-SCODE  = 'COM'.
    WA_MARKS-SNAME  = 'COMPUTER'.
    WA_MARKS-MARKS  = 90.
    APPEND WA_MARKS TO MARKS.
    CLEAR WA_MARKS.
    WA_MARKS-ROLLNO = 2.
    WA_MARKS-SCODE  = 'MAT'.
    WA_MARKS-SNAME  = 'MATHS'.
    WA_MARKS-MARKS  = 55.
    APPEND WA_MARKS TO MARKS.
    CLEAR WA_MARKS.
    WA_MARKS-ROLLNO = 2.
    WA_MARKS-SCODE  = 'SCI'.
    WA_MARKS-SNAME  = 'SCIENCE'.
    WA_MARKS-MARKS  = 75.
    APPEND WA_MARKS TO MARKS.
    CLEAR WA_MARKS.
    WA_MARKS-ROLLNO = 2.
    WA_MARKS-SCODE  = 'COM'.
    WA_MARKS-SNAME  = 'COMPUTER'.
    WA_MARKS-MARKS  = 80.
    APPEND WA_MARKS TO MARKS.
    CLEAR WA_MARKS.
    RETRIVAL ************************************
    SORT MARKS BY SCODE .
    LOOP AT MARKS INTO WA_MARKS.
        AT FIRST .
           ULINE.
           FORMAT COLOR 6 ON.
           WRITE:/ 'SUBJECT CODE', 65 ' ' .
           FORMAT RESET.
           FORMAT COLOR 6 ON INTENSIFIED OFF.
           WRITE:/20 'ROLL NO',
                  40 'SUBJECT NAME',
                  55 'MARKS',
                  65 ' '.
           FORMAT RESET.
           ULINE.
        ENDAT.
        ON CHANGE OF WA_MARKS-SCODE.
           IF SY-TABIX NE 1.
               NEW-LINE.
               ULINE 40(25).
               FORMAT COLOR 5 ON INVERSE ON INTENSIFIED ON.
               TOT = TOT / STU.
               WRITE:/40 'AVERAGE MARKS =', TOT.
               FORMAT RESET.
               CLEAR TOT.
               CLEAR STU.
           ENDIF.
          FORMAT COLOR 6 ON INTENSIFIED ON.
          WRITE:/ WA_MARKS-SCODE.
          FORMAT RESET.
        ENDON.
        FORMAT COLOR 6 ON INTENSIFIED OFF.
        WRITE:/20 WA_MARKS-ROLLNO,
               40 WA_MARKS-SNAME,
               55 WA_MARKS-MARKS,
               65 ' '.
        FORMAT RESET.
        STU = STU + 1.
        TOT = TOT + WA_MARKS-MARKS.
        C = STU.
        AT LAST.
               NEW-LINE.
               ULINE 40(25).
               FORMAT COLOR 5 ON INVERSE ON INTENSIFIED ON.
               TOT = TOT / STU.
               WRITE:/40 'AVERAGE MARKS =', TOT.
               FORMAT RESET.
               CLEAR TOT.
               CLEAR STU.
             ULINE.
             FORMAT COLOR 6 ON INVERSE ON INTENSIFIED ON.
             WRITE:/ ' TOTAL STUDENTS : ', C.
             FORMAT RESET.
        ENDAT.
    ENDLOOP.
    reward points if hlpful.

Maybe you are looking for

  • Excise tab not appearing in MIGO

    Dear All, We have some issue in MIGO. We have imported a material against a PO and the MIRO is done for customs duty. But at the time of doing MIGO customs duty is not capturing.  The PO is issue to cost center PO and there is no item no for the PO i

  • Programme error in PhotoShop7

    Over the last few days I've been trying to work on images I've scanned, the images belong to me, and I often get a 'programme error cannot save' then file name. All the files are below 50Mb, coming from an Epson V500 scanner. I'm trying to save as jp

  • Best practices for disabling an employees account, but leaving mailbox available for others while not accepting messages

    I'm sure that other organizations have some policy for this. In our case, we want to keep the mailbox available for others to still access, but disable the user account and remove it from OWA. In this case, I've disabled the AD object, disabled OWA f

  • Forms 5 - system.last_query truncated to 255 char

    I'm trying to display the contents of :system.last_query. But the variable is only holding 255 characters. It should hold more. Ideas? Here is my code: (the output of message() should be a long where clause. what I get is just a few characters. add t

  • PM order settelment info

    Hi, How i come to know that all PM orders are settled and pending to settle. Any t code . Thannks Vishal