Interactive Report NLS Language

Hi again,
Apex 3.2.0
Oracle XE
I was wondering if you could help.
I have a combo box on a form region that selects a language. The idea of this is to change the number and date formats when displaying data in reports and on forms.
On my reports and forms my format strings are set to a page item e.g. :P10_CURRENCY_FORMAT which contains the oracle currency format I need, e.g. FML999G999G999G999G990D00.
I can then set the NLS_CURRENCY value by either altering the session or via the apex.util:
ALTER SESSION SET NLS_CURRENCY='£';
or
APEX_UTIL.SET_SESSION_STATE('FSP_LANGUAGE_PREFERENCE','en-gb');
and the correct currency symbol appears in front of the number in the report.
This all works fine until I get to filtering interactive reports.
The problem is when I want to filter interactive reports all the currency settings are set back to the APEX defaults set in APPLICATION/GLOBALIZATION.
I then created a BEFORE HEADER process to alter the session, however when filtering interactive reports, the page isn't refreshed so this takes no effect.
So I have ended up with £ symbols in my report columns and when I filter it, they all change to $ symbols, the next page reverts back to £ until I filter again.
Am I going about it all the wrong way, or does anybody have any ideas?
Thanks,
Blackstone.

This approach won't work with interactive reports as the Before Header process is not executed by the AJAX call that refreshes the report.
This is a deficiency in IR operation that we can hope will be addressed by a future enhancement to provide the ability to run processes pre- and post-IR refresh.
In the meantime, IR refreshes do run the Virtual Private Database PL/SQL call defined in the application security attributes, so putting the NLS modification code there will work. Go to Application > Shared Components > Edit Security Attribute | Virtual Private Database (VPD), and make the call from there. Due to the specific requirements of the code that has to be called from here when used for security purposes, this is probably best done by setting this up to make 2 separate calls to packages defined outside APEX, one to handle security-related details and the other to orchestrate any other code that has to be run. (For example, in this case it may not be desired to alter the NLS environment on every page, so the program could take a parameter specifying the current page and apply the ALTER SESSION conditionally on this.)
[See this thread|http://forums.oracle.com/forums/thread.jspa?threadID=936753] for a similar issue.

Similar Messages

  • Interactive Report Russian Language Problem

    Hello,
    Entering Russian characters to search field of Interactive Report APEX transform it to another charset and I receive wrong result. For example entering КС I get РљРЎ, any ideas?
    Best Regards, Kostya Proskudin

    Answer for my question:
    Changing character set in DAD file. From CL8MSWIN1251 to AL32UTF8.
    But I still can't understand why it happen only in Interactive Report!!!

  • Interactive report - French language character problem

    Hi,
    I made an Interactive Report with this table :
    CREATE TABLE "DEPT"
    (     "DEPTNO" NUMBER(2,0),
         "DNAME" VARCHAR2(14),
         "LOC" VARCHAR2(13),
         CONSTRAINT "DEPT_PK" PRIMARY KEY ("DEPTNO") ENABLE
    I have two rows in my table
    insert into dept(dname,loc) values('IT','Québec');
    insert into dept(dname,loc) values('IT','Montreal');
    When I click on the Column Filter of the column LOC. I have an javascript error and the loading icon doesn't stop.
    Javascript error :
    missing } after property list
    http://penelope/ax31/javascript/apex_3_1.js
    Line 1
    The problem is the 'é' in Québec.
    Thanks.
    Sylvain Michaud

    Hello,
    Are you using AL32UTF8 as the character set in your DAD PlsqlNLSLanguage parameter?
    Regards,
    Arie.

  • Interactive report - how to change language in labels

    Hello All,
    I am writing an application, which uses an interactive report with all these great possibilities as: Sort, Filter, Control, Highlight, Aggregate etc.).
    The problem is that some users do not understand English language and they would like to see equivalents for above labels in their home language :) (let's say - in polish).
    Does anybody know how to do this?
    Thanks for the answer
    Best regards
    Jarek Zurek

    Jarek,
    This document should prove very helpful for all your work with IRs.
    http://tunahuntress.files.wordpress.com/2008/04/apexir_goodbadugly.pdf
    Be sure to check out the recommended reading list at the bottom.
    Finally, Paul McMillan helped me define custom labels for the display (but not the menu items) here:
    Re: Interactive Reports - Larger Actions Menu Image doesn't fit in IE?
    Note that this javascript source should go in the page template's footer (right after </BODY>).
    Good luck,
    Stew
    Edited by: StewStryker on Dec 21, 2009 11:29 AM

  • Link to interactive report

    i use the following link to point to a page (1) with a interactive report, but still all rows are shown and no filter is displayed:
    http://host:7000/pls/apex/f?p=104:1:3808170029937402::YES:1,RIR:IREQ_LOCATION:HSV
    whats wrong?
    here are the debug messages:
    0.00:
    0.00: S H O W: application="104" page="1" workspace="" request="" session="3808170029937402"
    0.00: Language derived from: FLOW_PRIMARY_LANGUAGE, current browser language: de
    0.00: alter session set nls_language="GERMAN"
    0.00: alter session set nls_territory="GERMANY"
    0.00: NLS: CSV charset=WE8MSWIN1252
    0.00: ...NLS: Set Decimal separator=","
    0.00: ...NLS: Set NLS Group separator="."
    0.00: ...NLS: Set date format="DD.MM.RR"
    0.00: ...Setting session time_zone to +02:00
    0.00: NLS: Language=de
    0.00: Application 104, Authentication: CUSTOM2, Page Template: 1358427100808202
    0.00: ...Session ID 3808170029937402 can be used
    0.00: ...Application session: 3808170029937402, user=UID01971
    0.00: ...Determine if user "UID01971" workspace "1341613165726624" can develop application "104" in workspace "1341613165726624"
    0.00: Session: Fetch session header information
    0.00: Saving g_arg_names=IREQ_LOCATION and g_arg_values=HSV
    0.00: ...Set Interactive Report Column filter for report column "LOCATION"
    0.00: using existing session report settings
    0.00: ...Metadata: Fetch page attributes for application 104, page 1
    0.00: Fetch session state from database
    0.01: Branch point: BEFORE_HEADER
    0.01: Fetch application meta data
    0.01: Clear cache: request=1
    0.01: ...Clearing Cache for Page 1
    0.01: Nulling cache for application "104" page: 1
    0.01: Clear cache: request=RIR
    0.01: ...Resetting Interactive Report
    0.01: using existing session report settings
    0.01: Saving g_arg_names=IREQ_LOCATION and g_arg_values=HSV
    0.01: ...Set Interactive Report Column filter for report column "LOCATION"
    0.01: creating session report settings as copy of default report settings
    0.01: Computation point: BEFORE_HEADER
    0.01: Processing point: BEFORE_HEADER
    0.02: Show page template header
    0.02: Computation point: AFTER_HEADER
    0.02: Processing point: AFTER_HEADER

    it was my mistake, i used the column name of the report instead the column name of the query, using:
    'f?p='|| :APP_ID ||':1:'|| :APP_SESSION ||'::NO:1,RIR:IREQ_SERVER_LOCATION:HSV'
    it works fine, but maybe someone can help me to have more than one "filter", how should the link look? i tryed:
    'f?p='|| :APP_ID ||':1:'|| :APP_SESSION ||'::NO:1,RIR:IREQ_SERVER_LOCATION:HSV:IREQ_SERVER_TYPE:ORA'
    but it doesnt accept the second filter
    thank you

  • Interactive Report - Chart axis value wrong data

    Hi,
    we created an interactive report based on demo_orders table.
    The interactive chart is displaying wrong data on the value axis (4,00000 instead of 4,000.00)!
    Values in the table are ok, even the value displayed when user clicks on specific data point is correct.
    Did somebody had similar problems?
    Application Express 3.2.0.00.27
    AnyChart #5.1.3
    Thanks.
    Regards,
    Kristjan

    Hi Kristjan,
    I'm able to reproduce the issue you report, using an Interactive Report in APEX 3.2.1 and 4.0, where the Application Language is a non-English option. So for example, if my chart label in English is *10,000.00* and when I switch the Application Primary Language to German, then the displayed values should be *10.000,00* however it is incorrectly appearing as *10,000*. When running in some non-English languages, the NLS decimal separator used is a comma ',', but this isn't been correctly applied to the Interactive Report chart. The problem is arising from the fact that the decimal separator setting in the chart XML is not being escaped correctly, and is therefore being ignored. I've logged bug 10154666 to track this issue, and a fix for this will be available in our next release. Thanks for bringing this to our attention. In the meantime, and to ensure the values on your chart are accurately displayed, it might be best to create a separate chart region on the page in question, rather than using the Interactive report chart.
    Regards,
    Hilary

  • Image column in an interactive report (APEX 4.0)

    Hi,
    I have added a new blob column containing images to an interactive report, but get the following error:-
    ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    If the "IMAGE" column is removed from the report using the "actions:select column" control, the report is ok.
    The column contains the following settings in the "BLOB Download Format Mask":-
    IMAGE:WINEDETAILS:IMAGE:WINE_ID::MIMETYPE:FILENAME:::inline:Download
    Have I missed something?
    Regards
    Tim

    Firstly, did you run: GRANT EXECUTE ON DISPLAY_IMAGE TO PUBLIC
    Yes..
    Secondly, is "OBJEKT" a reserved word in your language version of Oracle?
    No, objekt is not reserved word.
    Lastly, is your table defined in the same way as mine:
    CREATE TABLE "A_IMAGES"
    "IMAGE_ID" NUMBER(10,0) NOT NULL ENABLE,
    "FILE_NAME" VARCHAR2(4000) NOT NULL ENABLE,
    "BLOB_CONTENT" BLOB,
    "MIME_TYPE" VARCHAR2(4000),
    CONSTRAINT "A_IMAGES_PK" PRIMARY KEY ("IMAGE_ID") ENABLE
    Script of my table:
    CREATE TABLE PROD.TOB_DOKUMENTI
    ID NUMBER(10) NOT NULL,
    PARENT_ID NUMBER(3) NOT NULL,
    ID_VALUE NUMBER(10),
    NAZIV_DOKUMENTA VARCHAR2(500 BYTE),
    VELICINA NUMBER,
    OBJEKT BLOB,
    LINK VARCHAR2(1000 BYTE),
    DATUM_OD DATE NOT NULL,
    DATUM_DO DATE,
    STATUS VARCHAR2(1 BYTE) DEFAULT 'D' NOT NULL,
    ID_KUPCA NUMBER(10) NOT NULL,
    ID_VRSTE NUMBER(6) NOT NULL,
    ID_DOC_ORIGINAL NUMBER,
    FILE_NAME VARCHAR2(4000 BYTE),
    MIME_TYPE VARCHAR2(100 BYTE)
    I also think that everything is set up correctly, but it still not working..
    THNX for Your reply..
    Kreso..
    (apart from the table and field names)
    Andy

  • Special character in interactive report using filter

    Hi,
    I created an interactive report and in this report there is a filter to search any row from specific value linked to a specific column.
    As example this report displays a board with some columns like "SR number", "Status", "Description", ....
    If I use this filter with standard character all works fine :
    - in the filter's list of values I choose "Region" column
    - in the search field I put "SE"
    - click on go and the board is generated with all correct rows.
    If I use this filter with special character (french character in my case), this filter changes this special character and the request doesn't return any row.
    Example :
    - in the filter's list of values I choose "Statut" column
    - in the search field I put "Réception"
    - the filter's expression is modified from "Réception" to "Réception" so no row is returned (filter - Statut contains 'Réception' - no data found)
    I modified the character set used by the apex DAD changing the nls_lang parameter in the wdbsvr.app file from AMERICAN_AMERICA.WE8ISO8859P1 (database character set) to AMERICAN_AMERICA.AL32UTF8
    But when I check the apex DAD character set after the web server restart (about Application Express in my workspace) I get :
    NLS_CHARACTERSET: WE8ISO8859P1
    DAD CHARACTERSET: ISO-8859-1
    No change.
    I used the Application Express 3.2.0.00.27 with Oracle E-business Suite (11.5.10.2).
    Any help will be appreciated.
    Best regards,
    Olivier
    Edited by: oll on 1 mars 2010 20:57
    Edited by: oll on 15 mars 2010 21:17

    Hi,
    Thank you for your answer.
    But I already installed french language on apex.
    Unfortunately issue occurs yet.
    To install the french language I followed these steps :
    - I set the NLS_LANG to American_America.AL32UTF8
    - sqlplus sys/**** as sysdba
    - ALTER SESSION SET CURRENT_SCHEMA = APEX_030200;
    - and I executed the load_fr.sql script
    Thank you for your help.
    Best regards,
    Olivier

  • 'gReport' is null or not an object - Interactive Report

    I'm getting a "'gReport' is null or not an object" error when attempting to use the Search bar in an Interactive Report. Based on googling and searching this forum, it seems likely that the Javascript on the page is interferring w/ the Interactive report somehow. I don't know enough about APEX and Javascript (I snagged the code from another application, and made some changes) to debug it, so I was hoping you guys could help.
    Here's the Javascript on my page:
    Header Text:
    <script language="javascript">
        function OnPageLoad() {
            var cmdButton;
            cmdButton = document.getElementById('CMD_P10_BASEPRODUCT');
            cmdButton.onclick = null;
            cmdButton.attachEvent("onclick", cmdSelectBaseproduct_onClick);
            cmdButton = document.getElementById('CMD_P10_CUSTOMER');
            cmdButton.onclick = null;
            cmdButton.attachEvent("onclick", cmdSelectCustomer_onClick);
            cmdButton = document.getElementById('CMD_P10_PRODUCT');
            cmdButton.onclick = null;
            cmdButton.attachEvent("onclick", cmdSelectProducts_onClick);
            cmdButton = document.getElementById('CMD_P10_VERSION');
            cmdButton.onclick = null;
            cmdButton.attachEvent("onclick", cmdSelectVersion_onClick);
            cmdButton = document.getElementById('CMD_P10_RUNREPORT');
            DisableItems();
        function cmdSelectBaseproduct_onClick() {
            PopupCriteriaListButton1_onClick('H_P10_BASEPRODIDLIST', 'TXT_P10_BASEPRODUCT', 26, 350, 300);
            DisableItems();
            GetPageURL();
        function cmdSelectProducts_onClick() {
            PopupCriteriaListButton3_onClick('H_P10_PRODUCTIDLIST', 'TXT_P10_PRODUCT', 22, 1350, 575);
            DisableItems();
        function cmdSelectVersion_onClick() {
            PopupCriteriaListButton4_onClick('H_P10_VERSIONIDLIST', 'TXT_P10_VERSION', 21, 1550, 575);
            DisableItems();
        function cmdSelectCustomer_onClick() {
            PopupCriteriaListButton3_onClick('H_P10_CUSTOMERIDLIST', 'TXT_P10_CUSTOMER', 14, 1350, 575);
            DisableItems();
        function PopupCriteriaListButton1_onClick(hiddenInputControlName, strTextControlName, intPopupPageID,
    intWidth, intHeight) {
            var strIDList = document.getElementById(hiddenInputControlName).value.replace(new RegExp(/,/g),
    "_") + ',' + document.getElementById('CBO_P10_PRODUCTLINE').value;
            var itemVal = document.getElementById('CBO_P10_PRODUCTLINE').value;
            var returnValue = OpenDialog(intPopupPageID, true, intWidth, intHeight, 'H_P' + intPopupPageID +
    '_IDLIST,CBO_P10_PRODUCTLINE', strIDList);
            if (returnValue != undefined && returnValue != null && returnValue.length > 0) {
                document.getElementById(hiddenInputControlName).value = returnValue.split('|')[0];
                document.getElementById(strTextControlName).value = returnValue.split('|')[1];
        function PopupCriteriaListButton3_onClick(hiddenInputControlName, strTextControlName, intPopupPageID,
    intWidth, intHeight) {
            var strIDList = document.getElementById(hiddenInputControlName).value.replace(new RegExp(/,/g),
    "_") + ',' + document.getElementById('H_P10_BASEPRODIDLIST').value;
            var returnValue = OpenDialog(intPopupPageID, true, intWidth, intHeight, 'H_P' + intPopupPageID +
    '_IDLIST,H_P10_BASEPRODIDLIST', strIDList);
            if (returnValue != undefined && returnValue != null && returnValue.length > 0) {
                document.getElementById(hiddenInputControlName).value = returnValue.split('|')[0];
                document.getElementById(strTextControlName).value = returnValue.split('|')[1];
    function PopupCriteriaListButton4_onClick(hiddenInputControlName, strTextControlName, intPopupPageID,
    intWidth, intHeight) {
            var strIDList = document.getElementById(hiddenInputControlName).value.replace(new RegExp(/,/g),
    "_") + ',' + document.getElementById('H_P10_PRODUCTIDLIST').value;
            var returnValue = OpenDialog(intPopupPageID, true, intWidth, intHeight, 'H_P' + intPopupPageID +
    '_IDLIST,H_P10_PRODUCTIDLIST', strIDList);
            if (returnValue != undefined && returnValue != null && returnValue.length > 0) {
                document.getElementById(hiddenInputControlName).value = returnValue.split('|')[0];
                document.getElementById(strTextControlName).value = returnValue.split('|')[1];
    </script>
    Page HTML Body Attribute:
    onload="OnPageLoad();"

    Hi Jari,
    The below function used work perfectly in APEX 3.2 for
    Pulling Page2 IR Report into Page1 Region having
    but in APEX 4.0, I am getting "gReport is undefined" when I click on IR Toolbar/Control panel like Action or Go
    function periodRep(){
    $.ajax({
    type: "POST",
    url: "wwv_flow.show",
    data: {
    p_flow_id : $v('pFlowId'),
    p_instance : $v('pInstance'),
    p_flow_step_id : "2",
    p_request : ""
    dataType : "html",
    success : function(data){
    var startTag = '<apex2ajax>';
    var endTag = '</apex2ajax>';
    var start = data.indexOf(startTag);
    if (start > 0) {
    data = data.substring(start+startTag.length);
    var end = data.indexOf(endTag);
    data = data.substring(0,end);
    $("div#XXHOLDER").html(data);
    $x_Value('pFlowStepId', "2");
    if($('#apexir_CONTROL_PANEL_COMPLETE').length > 0){
    if(!($('#apexir_CONTROL_PANEL_COMPLETE').css('display') == 'none')){
    gReport = new apex.worksheet.ws('');
    gReport.toggle_controls($x('apexir_CONTROL_PANEL_CONTROL'));
    }); //ajax
    }//periodRep
    Please help
    Thanks
    -Senthil K

  • Interactive reporting in a single client

    Hello,
    I want to implement the interactive reporting in the same client in which the CRM is running (I know that it is recommended to use a different client).
    When I come to the point where I have to create the source system, I get an error:
    I go to transaction RSA1, on the left hand navigation I chose Modelling -> Source Systems
    There the source system for the BI has been added automatically. When I want to create this for the folder SAP, I right click on the folder and chose create. In the appearing window I chose the RFC connection created for the BI access (2 different RFC Connections pointing to the same client), enter the password for the ALEREMOTE.
    I then have to logon to the system and confirm the upcoming pop ups. In the end I get the error message: "Source System already exists" and no system has been assigned to the SAP folder.
    Do you have a solution how to add the source system?
    Thanks a lot in advance!
    Cheers
    Thorsten

    Hi!
    In the case that you want to have CRM and BI in the same client, you must use the Myself RFC connection that is already available in transaction RSA1. This is because of technical reasons -- the Myself connecition must be there for BI to work, and you cannot connect the same client (i.e. the same system) again, like you already noticed.
    This means that you must configure the Myself connection as described in note 538052, i.e. it should be basically an empty frame containing almost no entries (system, user name, password, client, language etc. are all empty). When you use this RFC connection to actually remotely logon, it will just connect you with your current user to the current client of the same system, which is exactly what you want if your source and target system are identical.
    Having said that, it is not necessary to connect the source system again with another RFC connection. Just run transaction /CRMBW/CONFIG_WIZARD in your combined CRM/BI client and follow the steps. The RFC connection from CRM to BI client as well as the other way round is the same as the Myself connection.
    Best regards,
    Sven Kriebel

  • Scale of the graphic in interactive report doesn't work in french

    Dear all,
    I created a calculation column in an interactive report an put the format 9999999D99. When I displayed the information everything is ok.
    After that I tried to create a graphic with this column.
    The graphic is the type line
    The value is this new column
    The function is SUM
    order by label ascending
    The graphic show the good information, when I click on the dot the right number is displayed (19459,10). But if I look on the scale on the left the numbers are not good, we see 25,00000 instead of 25000,00.
    The application use the navigator information the first language use is french. If I use english the numbers are ok.
    What I need to do to use french and have the right decimal ?
    Thanks for your help
    Eric

    Hi Pranay and Mohd,
    here is the screenshot:
    If I logon as Admin user (or I grant user Admin rights), it looks like this:
    So the prompt is visible but is empty. I changed privileges in CMC / Applications / Web Intelligence, so normal user has same right as Admin, but it still doesn't work. I also tried change user security in Connections and Universes, but none of them work.
    Please, do you have any idea what i miss?
    Thank you

  • Interactive Reports and menu list translations

    Can anyone tell me how to translate the menu items contained in the interactive reports menu list (ie Select Columns, Filter, Sort....) ? I have translated an application into french and when I switch to that language the menu items in the interactive reports are still displayed in english yet the rest of my application is french. The translation file does not contain these items to translate. Can I make these french somehow? Its a pretty powerful tool, but not not if you can't make it language specific. Our french users would not accept this in english.

    Hello,
    >> Can anyone tell me how to translate the menu items contained in the interactive reports menu list …
    The following section of the documentation explains exactly that - http://download.oracle.com/docs/cd/E14373_01/appdev.32/e11838/global.htm#BABHCAAH .
    For complete translation of the IR, you’ll need to translate all the string messages in table 16-4.
    Regards,
    Arie.
    Please remember to mark appropriate posts as correct/helpful. For the long run, it will benefit us all.

  • Hi gurur's how we  do the interactive report in ALV

    hi gurur's how we  do the interactive report in ALV.
    PLZ HELP ME

    Hi Srivasu,
                    I will send a sample code along with Comments check it once ok.copy the below code and execute it and debug it ok..
    *& Report  YPURCHASEORDER_ALV_LISTDISP                                 *
    *&  DEVELOPER  : KIRAN KUMAR.G                                         *
    &  PURPOSE    : CREATING A PURCHASE ORDER BASED ON PURCHASE DOC NUMBER
    *&  CREATION DT: 22/11/2007                                            *
    *&  REQUEST   : ERPK900035                                             *
    REPORT  YPURCHASEORDER_ALV_LISTDISP.
    Tables
    TABLES : ekko, "Purchasing Document Header
             ekpo. "Purchasing Document Item
    Type pools
    TYPE-POOLS: slis.
    Internal Tables
    DATA: BEGIN OF gt_headerdat OCCURS 0,
           ebeln LIKE ekko-ebeln,        " Purchasing Document Number
           bukrs LIKE ekko-bukrs,        " Company Code
           bstyp LIKE ekko-bstyp,        " Purchasing Document Category
           bsart LIKE ekko-bsart,        " Purchasing Document LIKE
           aedat LIKE ekko-aedat,        " Date on which the recordwascreate
           ernam LIKE ekko-ernam,        " Name of Person who Created Object
           lifnr LIKE ekko-lifnr,        " Vendor's account number
           spras LIKE ekko-spras,        " Language Key
           ekorg LIKE ekko-ekorg,        " Purchasing Organization
           ekgrp LIKE ekko-ekgrp,        " Purchasing group
          END OF gt_headerdat.
    DATA: BEGIN OF gt_item OCCURS 0,
           matnr LIKE ekpo-matnr,        "Material Number
           werks LIKE ekpo-werks,        "Plant
           lgort LIKE ekpo-lgort,        "Storage location
           matkl LIKE ekpo-matkl,        "Material group
           menge LIKE ekpo-menge,        "Purchase order quantity
           meins LIKE ekpo-meins,        "Order unit
           netpr LIKE ekpo-netpr,        "Net price in purchasing document
           kunnr LIKE ekpo-kunnr,        "Customer Number 1
          END OF gt_item.
    Global Structures
    DATA: gt_header    TYPE slis_t_listheader, "For Headings
          wa_header    TYPE slis_listheader,
          gt_fieldcat  TYPE slis_t_fieldcat_alv, "Structure Defintion
          wa_fieldcat  TYPE slis_fieldcat_alv,
          gt_fieldcat1 TYPE slis_t_fieldcat_alv,
          wa_fieldcat1 TYPE slis_fieldcat_alv,
          wa_layout    TYPE slis_layout_alv,     "Layout
          gt_events    TYPE slis_t_event,        "For Events
          wa_events    TYPE slis_alv_event.
    Selection Screen
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS  : s_ebeln FOR ekko-ebeln.
    SELECTION-SCREEN: END OF BLOCK b1.
    Initialization
    INITIALIZATION.
      PERFORM initial.
    Fetch Data
    START-OF-SELECTION.
      PERFORM fetch_data.
    END-OF-SELECTION.
    Bulid fieldcatalog
      PERFORM fieldcat.
    Change fieldcatalog
      PERFORM fieldcat_change.
    Events Triggering
      PERFORM place_events.
    Layout.
      PERFORM layout.
    Display Data
      SORT gt_headerdat BY ebeln.
      PERFORM display_list.
    *&      Form  initial
          text
    -->  p1        text
    <--  p2        text
    FORM initial .
      s_ebeln-sign    = 'I'.
      s_ebeln-option  = 'BT'.
      s_ebeln-low     = '3000000090'.
      s_ebeln-high    = '3000000166'.
      APPEND s_ebeln.
    ENDFORM.                    " initial
    *&      Form  fetch_data
          text
    -->  p1        text
    <--  p2        text
    FORM fetch_data .
      REFRESH gt_headerdat.  "Clear the Body of Internal Table
      CLEAR   gt_headerdat.  "Clear Header Line
      SELECT ebeln
             bukrs
             bstyp
             bsart
             aedat
             ernam
             lifnr
             spras
             ekorg
             ekgrp
        FROM ekko
        INTO TABLE gt_headerdat
       WHERE ebeln IN s_ebeln.
    ENDFORM.                    " fetch_data
    *&      Form  display_list
          text
    -->  p1        text
    <--  p2        text
    FORM display_list .
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
        i_callback_program             = sy-cprog
      I_CALLBACK_PF_STATUS_SET       = ' '
        i_callback_user_command        = 'USERCOMMAND'
      I_STRUCTURE_NAME               =
        is_layout                      = wa_layout
        it_fieldcat                    = gt_fieldcat
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
        it_events                      = gt_events
      IT_EVENT_EXIT                  =
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
        TABLES
        t_outtab                       = gt_headerdat
       EXCEPTIONS
        program_error                  = 1
        OTHERS                         = 2.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " display_list
    *&      Form  place_events
          text
    -->  p1        text
    <--  p2        text
    FORM place_events .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type     = 0
        IMPORTING
          et_events       = gt_events
        EXCEPTIONS
          list_type_wrong = 1
          OTHERS          = 2.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CLEAR wa_events.   "Clear Header Line
      READ TABLE gt_events INTO wa_events WITH KEY name = 'TOP_OF_PAGE'.
      IF sy-subrc = 0.
        wa_events-form = 'HEADING'.
        MODIFY gt_events FROM wa_events INDEX sy-tabix.
      ENDIF.
      CLEAR wa_events.   "Clear Header Line
      READ TABLE gt_events INTO wa_events WITH KEY name = 'END_OF_LIST'.
      IF sy-subrc = 0.
        wa_events-form = 'PAGEDOWN'.
        MODIFY gt_events FROM wa_events INDEX sy-tabix.
      ENDIF.
      CLEAR wa_events.    "Clear Header Line
      READ TABLE gt_events INTO wa_events WITH KEY name = 'USER_COMMAND'.
      IF sy-subrc = 0.
        wa_events-form = 'USERCOMMAND'.
        MODIFY gt_events FROM wa_events INDEX sy-tabix.
      ENDIF.
    ENDFORM.                    " place_events
    *&      Form  layout
          text
    -->  p1        text
    <--  p2        text
    FORM layout .
      CLEAR wa_layout.                   "Clear Header Line
      wa_layout-zebra = 'X'.             "Zebra Lines in the Output
      wa_layout-colwidth_optimize = 'X'. "Optimize the Column Width
    ENDFORM.                    " layout
    *&      Form  heading
          text
    FORM heading.
      WRITE:/6 'THIS REPORT DISPLAYS THE PURCHASE ORDER DETAILS'.
      WRITE:/6 'CLICK ON PURCHASE DOC NO FIELD(INTERACTIVE LIST)'.
    ENDFORM.                    "heading
    *&      Form  fieldcat
          text
    -->  p1        text
    <--  p2        text
    FORM fieldcat .
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
        i_program_name               = SY-CPROG
        i_internal_tabname           = 'GT_HEADERDAT'
      I_STRUCTURE_NAME             =
      I_CLIENT_NEVER_DISPLAY       = 'X'
        i_inclname                   = SY-CPROG
      I_BYPASSING_BUFFER           =
      I_BUFFER_ACTIVE              =
        CHANGING
        ct_fieldcat                  = gt_fieldcat
       EXCEPTIONS
        inconsistent_interface       = 1
        program_error                = 2
        OTHERS                       = 3.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " fieldcat
    *&      Form  fieldcat_change
          text
    -->  p1        text
    <--  p2        text
    FORM fieldcat_change .
      LOOP AT gt_fieldcat INTO wa_fieldcat.
        CASE wa_fieldcat-fieldname.
          WHEN 'EBELN'.
            wa_fieldcat-hotspot  = 'X'.
        ENDCASE.
        MODIFY gt_fieldcat FROM wa_fieldcat INDEX sy-tabix.
      ENDLOOP.
    ENDFORM.                    " fieldcat_change
    *&      Form  pagedown
          text
    FORM pagedown.
      WRITE:/35 'HAVE A NICE DAY...' COLOR 4.
    ENDFORM.                    "pagedown
    *&      Form  usercommand
          text
         -->UCOMM      text
         -->SELFIELD   text
    FORM usercommand USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield.
      READ TABLE gt_headerdat INDEX selfield-tabindex.
      CASE selfield-sel_tab_field.
        WHEN 'GT_HEADERDAT-EBELN'.
          REFRESH : gt_item.
          CLEAR   : gt_item.
          SELECT matnr
                 werks
                 lgort
                 matkl
                 menge
                 meins
                 netpr
                 kunnr
            FROM ekpo
            INTO TABLE gt_item
           WHERE ekpo~ebeln EQ gt_headerdat-ebeln.
    *Build a Field Catalog
          PERFORM fieldcat1.
    *For Heading in the Interactive List
          PERFORM heading1.
    *Display Interactive Data
          PERFORM display_data1.
      ENDCASE.
    ENDFORM.                    "usercommand
    *&      Form  fieldcat1
          text
    -->  p1        text
    <--  p2        text
    FORM fieldcat1 .
      REFRESH : gt_fieldcat1.
      CLEAR   : wa_fieldcat1.
      wa_fieldcat1-col_pos    = '1'.           "Column Postion
      wa_fieldcat1-fieldname  = 'MATNR'.       "Field Name
      wa_fieldcat1-tabname    = 'GT_ITEM'.   "Internal Table
      wa_fieldcat1-key        = 'X'.           "Blue Color
      wa_fieldcat1-seltext_l  = 'MATERIAL NO'. "Display Text Screen
      APPEND wa_fieldcat1 TO gt_fieldcat1.
      CLEAR wa_fieldcat1.
      wa_fieldcat1-col_pos    = '2'.           "Column Postion
      wa_fieldcat1-fieldname  = 'WERKS'.       "Field Name
      wa_fieldcat1-tabname    = 'GT_ITEM'.   "Internal Table
      wa_fieldcat1-seltext_l  = 'PLANT'.       "Display Text Screen
      APPEND wa_fieldcat1 TO gt_fieldcat1.
      CLEAR wa_fieldcat1.
      wa_fieldcat1-col_pos    = '3'.           "Column Postion
      wa_fieldcat1-fieldname  = 'LGORT'.       "Field Name
      wa_fieldcat1-tabname    = 'GT_ITEM'.   "Internal Table
      wa_fieldcat1-seltext_l  = 'STORAGE LOCATION'."Display Text Screen
      APPEND wa_fieldcat1 TO gt_fieldcat1.
      CLEAR wa_fieldcat1.
      wa_fieldcat1-col_pos    = '4'.            "Column Postion
      wa_fieldcat1-fieldname  = 'MATKL'.        "Field Name
      wa_fieldcat1-tabname    = 'GT_ITEM'.    "Internal Table
      wa_fieldcat1-seltext_l  = 'MATERIAL GRP'. "Display Text Screen
      APPEND wa_fieldcat1 TO gt_fieldcat1.
      CLEAR wa_fieldcat1.
      wa_fieldcat1-col_pos    = '5'.            "Column Postion
      wa_fieldcat1-fieldname  = 'MENGE'.        "Field Name
      wa_fieldcat1-tabname    = 'GT_ITEM'.    "Internal TAble
      wa_fieldcat1-seltext_l  = 'PO QUANTITY'.  "Display Text Screen
      APPEND wa_fieldcat1 TO gt_fieldcat1.
      CLEAR wa_fieldcat1.
      wa_fieldcat1-col_pos    = '6'.            "Column Pos tion
      wa_fieldcat1-fieldname  = 'MEINS'.        "Field Name
      wa_fieldcat1-tabname    = 'GT_ITEM'.    "Internal TAble
      wa_fieldcat1-seltext_l  = 'BASE UNIT MEASURE'."Display Text Screen
      APPEND wa_fieldcat1 TO gt_fieldcat1.
      CLEAR wa_fieldcat1.
      wa_fieldcat1-col_pos    = '7'.            "Column Postion
      wa_fieldcat1-fieldname  = 'NETPR'.        "Field Name
      wa_fieldcat1-tabname    = 'GT_ITEM'.    "Internal Table
      wa_fieldcat1-seltext_l  = 'NET PRICE'.    "Display Text Screen
      APPEND wa_fieldcat1 TO gt_fieldcat1.
      CLEAR wa_fieldcat1.
      wa_fieldcat1-col_pos    = '8'.            "Column Postion
      wa_fieldcat1-fieldname  = 'KUNNR'.        "Field Name
      wa_fieldcat1-tabname    = 'GT_ITEM'.    "Internal Table
      wa_fieldcat1-seltext_l  = 'CUSTOMER NO'.  "Display Text Screen
      APPEND wa_fieldcat1 TO gt_fieldcat1.
      CLEAR wa_fieldcat1.
    ENDFORM.                                                    " fieldcat1
    *&      Form  heading1
          text
    -->  p1        text
    <--  p2        text
    FORM heading1 .
      REFRESH : gt_header.
      CLEAR   : wa_header.
      wa_header-typ  = 'H'.
      wa_header-info = 'THIS IS AN INTERACTIVE LIST'.
      APPEND wa_header TO gt_header.
    ENDFORM.                                                    " heading1
    *&      Form  top
          text
    FORM top.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
        it_list_commentary       = gt_header
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
    ENDFORM.                    "top
    *&      Form  display_data1
          text
    -->  p1        text
    <--  p2        text
    FORM display_data1 .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
        i_callback_program                = SY-CPROG
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
        i_callback_top_of_page            = 'TOP'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
        it_fieldcat                       = gt_fieldcat1
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
        t_outtab                          = gt_item
       EXCEPTIONS
        program_error                     = 1
        OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " display_data1
    Reward points if helpful.
    Kiran Kumar.G.A
            Have a Nice Day..

  • ABAP Interactive report

    Hi,
    What is Interactive report?
    what are the specific statements you write when do u write interactive Report??
    Thanks in advance.

    Hi,
    t helps you to create easy-to-read lists. You can display an overview list first that contains general information and provide the user with the possibility of choosing detailed information that you display on further lists.
    What are the uses of interactive reporting?
    The user can actively control data retrieval and display during the session. Instead of an extensive and detailed list, you create a basic list with condensed information from which the user can switch to detailed displays by positioning the cursor and entering commands. The detailed information appears in secondary lists.
    What are the event key words in interactive reporting?
    Event Keyword Event
    AT LINE-SELECTION Moment at which the user selects a line by double clicking on it or by positioning the cursor on it and pressing F2.
    AT USER-COMMAND Moment at which the user presses a function key.
    TOP-OF-PAGE DURING Moment during list processing of a
    LINE-SELECTION secondary list at which a new page starts.
    What is secondary list?
    It allows you to enhance the information presented in the basic list. The user can, for example, select a line of the basic list for which he wants to see more detailed information. You display these details on a secondary list. Secondary lists may either overlay the basic list completely or you can display them in an extra window on the screen. The secondary lists can themselves be interactive again.
    How to select valid lines for secondary list?
    To prevent the user from selecting invalid lines, ABAP/4 offers several possibilities. At the end of the processing block END-OF-SELECTION, delete the contents of one or more fields you previously stored for valid lines using the HIDE statement. At the event AT LINE-SELECTION, check whether the work area is initial or whether the HIDE statement stored field contents there. After processing the secondary list, clear the work area again. This prevents the user from trying to create further secondary lists from the secondary list displayed.
    How to create user interfaces for lists?
    The R/3 system automatically, generates a graphical user interface (GUI) for your lists that offers the basic functions for list processing, such as saving or printing the list. If you want to include additional functionality, such as pushbuttons, you must define your own interface status. To create a new status, the Development Workbench offers the Menu Painter. With the Menu Painter, you can create menus and application toolbars. And you can assign Function Keys to certain functions. At the beginning of the statement block of AT END-OF-SELECTION, active the status of the basic list using the statement: SET PF-STATUS ‘STATUS’.
    What is interactive reporting?
    A classical non-interactive report consists of one program that creates a single list. Instead of one extensive and detailed list, with interactive reporting you create basic list from which the user can call detailed information by positioning the cursor and entering commands. Interactive reporting thus reduces information retrieval to the data actually required.
    Can we call reports and transactions from interactive reporting lists?
    Yes. It also allows you to call transactions or other reports from lists. These programs then use values displayed in the list as input values. The user can, for example, call a transaction from within a list of change the database table whose data is displayed in the list.
    What are system fields for secondary lists?
    SY-LSIND Index of the list created during the current event (basic list = 0)
    SY-LISTI Index of the list level from which the event was triggered.
    SY-LILLI Absolute number of the line from which the event was triggered.
    SY-LISEL Contents of the line from which the event was triggered.
    SY-CUROW Position of the line in the window from which the event was triggered (counting starts with 1)
    SY-CUCOL Position of the column in the window from which the event was triggered (counting starts with 2).
    SY-CPAGE Page number of the first displayed page of the list from which the event was triggered.
    SY-STARO Number of the first line of the first page displayed of the list from which the event was triggered (counting starts with 1). Possibly, a page header occupies this line.
    SY-STACO Number of the first column displayed in the list from which the event was triggered (counting starts with 1).
    SY-UCOMM Function code that triggered the event.
    SY-PFKEY Status of the displayed list.
    How to maintain lists?
    To return from a high list level to the next-lower level (SY-LSIND), the user chooses Back on a secondary list. The system then releases the currently displayed list and activates the list created one step earlier. The system deletes the contents of the released list. To explicitly specify the list level, into which you want to place output, set the SY-lsind field. The system accepts only index values, which correspond to existing list levels. It then deletes all existing list levels whose index is greater or equal to the index specify. For example, if you set SY-LSIND to 0, the system deletes all secondary lists and overwrites the basic list with the current secondary list.
    What are the page headers for secondary lists?
    On secondary lists, the system does not display a standard page header and it does not trigger the event. TOP-OF-PAGE. To create page headers for secondary list, you must enhance TOP-OF-PAGE: Syntax TOP-OF-PAGE DURING LINE-SELECTION. The system triggers this event for each secondary list. If you want to create different page headers for different list levels, you must program the processing block of this event accordingly, for example by using system fields such as SY-LSIND or SY-PFKEY in control statements (IF, CASE).
    How to use messages in lists?
    ABAP/4 allows you to react to incorrect or doubtful user input by displaying messages that influence the program flow depending on how serious the error was. Handling messages is mainly a topic of dialog programming. You store and maintain messages in Table T100. Messages are sorted by language, by a two-character ID, and by a three-digit number. You can assign different message types to each message you output. The influence of a message on the program flow depends on the message type. In our program, use the MESSAGE statement to output messages statically or dynamically and to determine the message type.
    Syntax:REPORT <rep> MESSAGE-ID <id>.
    What are the types of messages?
    A message can have five different types. These message types have the following effects during list processing:
    .A (=Abend):
    .E (=Error) or W (=Warning):
    .I (=Information):
    .S (=Success):
    What are the user interfaces of interactive lists?
    If you want the user to communicate with the system during list display, the list must be interactive. You can define specific interactive possibilities in the status of the list’s user interface (GUI). To define the statuses of interfaces in the R/3 system, use the Menu Painter tool. In the Menu Painter, assign function codes to certain interactive functions. After an user action occurs on the completed interface, the ABAP/4 processor checks the function code and, if valid, triggers the corresponding event.
    What are the drill-down features provided by ABAP/4 in interactive lists?
    ABAP/4 provides some interactive events on lists such as AT LINE-SELECTION (double click) or AT USER-COMMAND (pressing a button). You can use these events to move through layers of information about individual items in a list.
    What is meant by stacked list?
    A stacked list is nothing but secondary list and is displayed on a full-size screen unless you have specified its coordinates using the window command.
    Is the basic list deleted when the new list is created?
    No. It is not deleted and you can return back to it using one of the standard navigation functions like clicking on the back button or the cancel button.
    What is meant by hotspots?
    A Hotspot is a list area where the mouse pointer appears as an upright hand symbol. When a user points to that area (and the hand cursor is active), a single click does the same thing as a double-click. Hotspots are supported from R/3 release 3.0c.
    What is the length of function code at user-command?
    Each menu function, push button, or function key has an associated function code of length FOUR (for example, FREE), which is available in the system field SYUCOMM after the user action.
    Can we create a gui status in a program from the object browser?
    Yes. You can create a GUI STATUS in a program using SET PF-STATUS.
    In which system field does the name of current gui status is there?
    The name of the current GUI STATUS is available in the system field SY-PFKEY.
    Can we display a list in a pop-up screen other than full-size stacked list?
    Yes, we can display a list in a pop-up screen using the command WINDOW with the additions starting at X1 Y1 and ending at X2 Y2 to set the upper-left and the lower-right corners where x1 y1 and x2 y2 are the coordinates.
    What is meant by hide area?
    The hide command temporarily stores the contents of the field at the current line in a system-controlled memory called the HIDE AREA. At an interactive event, the contents of the field are restored from the HIDE AREA.
    When the get cursor command used in interactive lists?
    If the hidden information is not sufficient to uniquely identify the selected line, the command GET CURSOR is used. The GET CURSOR command returns the name of the field at the cursor position in a field specified after the addition field, and the value of the selected field in a field specified after value.
    How can you display frames (horizontal and vertical lines) in lists?
    You can display tabular lists with horizontal and vertical lines (FRAMES) using the ULINE command and the system field SY-VLINE. The corners arising at the intersection of horizontal and vertical lines are automatically drawn by the system.
    What are the events used for page headers and footers?
    The events TOP-OF-PAGE and END-OF-PAGE are used for pager headers and footers.
    How can you access the function code from menu painter?
    From within the program, you can use the SY-UCOMM system field to access the function code. You can define individual interfaces for your report and assign them in the report to any list level. If you do not specify self-defined interfaces in the report but use at least one of the three interactive event keywords. AT LINE-SELECTION, AT PF<nn>, OR AT USER-COMMAND in the program, the system automatically uses appropriate predefined standard interfaces. These standard interfaces provide the same functions as the standard list described under the standard list.
    How the at-user command serves mainly in lists?
    The AT USER-COMMAND event serves mainly to handle own function codes. In this case, you should create an individual interface with the Menu Painter and define such function codes.
    How to pass data from list to report?
    ABAP/4 provides three ways of passing data:
    ---Passing data automatically using system fields
    ---Using statements in the program to fetch data
    ---Passing list attributes
    How can you manipulate the presentation and attributes of interactive lists?
    ---Scrolling through Interactive Lists.
    ---Setting the Cursor from within the Program.
    ---Modifying List Lines.
    How to call other programs?
    Report Transaction
    Call and return SUBMIT AND RETURN CALL TRANSACTION
    Call without return SUBMIT LEAVE TO TRANSACTION
    You can use these statements in any ABAP/4 program.
    What will exactly the hide statement do?
    For displaying the details on secondary lists requires that you have previously stored the contents of the selected line from within the program. To do this, ABAP/4 provides the HIDE statement. This statement stores the current field contents for the current list line. When calling a secondary list from a list line for which the HIDE fields are stored, the system fills the stored values back into the variables in the program. In the program code, insert the HIDE statement directly after the WRITE statement for the current line. Interactive lists provide the user with the so-called ‘INTERACTIVE REPORTING’ facility. For background processing the only possible method of picking the relevant data is through ‘NON INTERACTIVE REPORT’ . After starting a background job, there is no way of influencing the program. But whereas for dialog sessions there are no such restrictions.
    How many lists can a program can produce?
    Each program can produce up to 21 lists: one basic list and 20 secondary lists. If the user creates a list on the next level (that is, SY-LSIND increases), the system stores the previous list and displays the new one. Only one list is active, and that is always the most recently created list.
    FALSE.
    *& Report ZLAXMI_REPORT6 *
    REPORT ZLAXMI_REPORT6 .
    tables: mara,
    makt,
    marc,
    mard.
    data: begin of it_mara occurs 0,
    matnr like mara-matnr,
    end of it_mara.
    data: begin of it_makt occurs 0,
    maktx like makt-maktx,
    matnr like makt-matnr,
    end of it_makt.
    data: begin of it_marc occurs 0,
    werks like marc-werks,
    matnr like marc-matnr,
    end of it_marc.
    data: begin of it_mard occurs 0,
    lgort like mard-lgort,
    labst like mard-labst,
    speme like mard-speme,
    matnr like mard-matnr,
    end of it_mard.
    data: begin of it_final occurs 0,
    matnr like mara-matnr,
    maktx like makt-maktx,
    werks like marc-werks,
    lgort like mard-lgort,
    labst like mard-labst,
    speme like mard-speme,
    end of it_final.
    selection-screen: begin of block b1 with frame title text-001.
    select-options: s_matnr for mara-matnr.
    selection-screen: end of block b1 .
    start-of-selection.
    perform get-data.
    perform write_data.
    end-of-selection.
    at line-selection.
    perform sec_list.
    *& Form get-data
    text
    --> p1 text
    <-- p2 text
    FORM get-data .
    select matnr
    from mara
    into table it_mara
    where matnr in s_matnr.
    if sy-subrc = 0.
    select maktx
    matnr from makt
    into table it_makt
    for all entries in it_mara
    where matnr = it_mara-matnr.
    endif.
    ENDFORM. " get-data
    *& Form write_data
    text
    --> p1 text
    <-- p2 text
    FORM write_data .
    loop at it_makt.
    write:/ it_makt-matnr, it_makt-maktx.
    endloop.
    ENDFORM. " write_data
    *& Form sec_list
    text
    --> p1 text
    <-- p2 text
    FORM sec_list .
    case sy-lsind.
    when '1'.
    perform basic_1.
    endcase.
    ENDFORM. " sec_list
    *& Form basic_1
    text
    --> p1 text
    <-- p2 text
    FORM basic_1 .
    select werks
    matnr
    from marc
    into table it_marc
    for all entries in it_makt
    where matnr = it_makt-matnr.
    if sy-subrc = 0.
    select lgort
    labst
    speme
    matnr
    from mard
    into table it_mard
    for all entries in it_makt
    where matnr = it_makt-matnr.
    endif.
    *clear it_makt.
    *clear it_mard.
    read table it_marc with key matnr = it_mara-matnr binary search.
    read table it_mard with key matnr = it_mara-matnr binary search.
    clear it_marc.
    clear it_mard.
    move:it_makt-matnr to it_final-matnr,
    it_makt-maktx to it_final-maktx.
    move: it_marc-werks to it_final-werks,
    it_mard-lgort to it_final-lgort,
    it_mard-labst to it_final-labst,
    it_mard-speme to it_final-speme.
    append it_final.
    *loop at it_final.
    write:/ it_final-matnr, it_final-maktx,
    it_final-werks,
    it_final-labst, it_final-speme.
    *endloop.
    ENDFORM. " basic_1
    regards,
    Omkar.

  • TITLE for the Interactive report

    Hi,
    I like to show a Title for the Interactive Report in several different languages.
    But it seems if I just pick Interactive report, there will be no Title shown.
    What is proper way of doing this ?
    So, what I did was, I created a HTNL region, just to show the Title, but it seems the translation and XLF file doesn't pick it up
    Please help
    --John                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    I have further to report.
    It looks like a bug.
    The REGION title text is missing in "TRANSLATE APPLICATION" in "SHARED COMPONENTS" under WINDOWS environment.
    The REGION title text is in SUN environment, but does not shown as translated in the browser.
    Thx
    --John                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for

  • How to reinstall backed up application / data to a new iPod Touch

    it was annoying. I just lost my itouch with lots of applications and data that stored in the old itouch. I believed the old itouch content was backuped up to my laptop. how do I reinstated the content from the backup files to the new itouch I just bo

  • Query Performance problem after upgrade from 8i to 10g

    Following query takes longer time in 10g. SELECT LIC_ID,FSCL_YR,KEY_NME,CRTE_TME_STMP,REMT_AMT,UNASGN_AMT,BAD_CK_IND,CSH_RCPT_PARTY_ID,csh_rcpt_id,REC_TYP,XENT_ID,CLNT_CDE,BTCH_CSH_STA,file_nbr, lic_nbr,TAX_NBR,ASGN_AMT FROM ( SELECT /*+ FIRST_ROWS*/

  • Downpayment should not be more than PO Value

    Dear All Down payment against purchase order Downpayment should not be more than PO Value here i want control material wise taht mean some of the material shouble be allow the exces payment and some of the material should not be allow the exces amoun

  • Messages appear to be deleted but do not appear in trash

    When I am reading messages or when answering messages the original just disappears from the inbox. It isn't in any of the other folders. I have used Thunderbird for a long while and I have not had this problem before.

  • Password Protect question...

    Hi, all. Can I password protect a Playlist, even when played on my very own computer?? I just want to make one specific playlist accessible only with a password, so that only I can listen to it. (No, I'm not talking about "Shared Music") Thanks, guys