Data retrive

Hi
everybody
a Query
Type below mentioned Statements in SQLPLUS
CREATE TABLE AA( NAME VARCHAR2(30));
INSERT INTO AA VALUES('1');
INSERT INTO AA VALUES('10');
INSERT INTO AA VALUES('2');
INSERT INTO AA VALUES('3');
INSERT INTO AA VALUES('20');
INSERT INTO AA VALUES('21');
INSERT INTO AA VALUES('A');
INSERT INTO AA VALUES('B');
INSERT INTO AA VALUES('A1');
COMMIT;
SELECT * FROM AA;
=============
Outcome of Data
=============
1
10
2
3
20
21
A
B
A1
i neet data in this sequence
1
2
3
10
20
21
A
A1
B
it is possible
plz help

How about something like this
SQL> SELECT *
  2  FROM aa
  3  ORDER BY (case when substr(name, 1, 1)>='A' then rpad(name, 30,' ') else lpad(name, 30,' ') end)
  4  ;
NAME
1
2
3
10
20
21
A
A1
B
9 rows selected.
SQL>

Similar Messages

  • How to use a query in matrix data retrive

    hai  everybody
    how to use a query in matrix data retrive...
    pls ..

    If u have created a UDT to store the data then U can retrive the data through recordset.
    oRecordset.doquery("SQL Statement")
    If u have taken the DB Data source to Manipulate then
    then type
    oMatrix.flushtoDataSource
    then
    U can retrive the data through DB Data source.
    -Manmath

  • Function Module for data retrival for work order clearence (WCA)

    Hi All ,
      Function Module for data retrival for work order clearence (WCA) for a particular Planning plant and (WCD's).
    Thanks.

    Hi Anne,
    BAPI_PRODORD_GET_DETAIL
    BAPI_PRODORD_GET_LIST
    You can find further FM in Function Group COPRINT and CODR or take F4 on CO* in Function Group
    These will serve your purpose.
    Cheerz.
    Ram

  • Data retrival error while retrival

    Dynamic calc cannot allocate more than [48] blocks from the heap.Please increase the  CalclockBlock settings and then retry.
    This is the error i am getting when i am retrive the data in excel.i have increased CALCLOCKBLOCKHIGH: increased
    CALCLOCKBLOCKDEFAULT: increased still it gives the erroe please any body help me out its urgent.
    Regards
    User 2271

    Check if the below thread helps you:
    Re: Increase CalcLockBlock setting

  • Sql data retrive

    hello gentleman,
    As per some terms we dont have the data for some coloums and are not present in BMM layer so
    ist there any possibilites where we can pull the data direclty from SQL and genrate report
    isit possible.

    Hi,
    Follow the below steps:
    Create a datasource in Physical Layer then in answers Go to Create Direct Request that link comes below the Subject area then give the connection pool name(name which you have used in physical layer datasource->connection pool name)after that make a sql statement in the builder write a sql query there In that way you can retrive the data whtever you want from the database.

  • C project - data retrival for report

    Hi
    can any one help me in the c project
    we  have created project thro c-project and we are not able to retrive the data where it is getting stored  , it is not avlb in DPR_proj
    we need to develop a report to display all the project details
    thanks in regards
    kumar

    Hi
    you can use std Function modules in your custom program.
    Use
    DPR_GET_GUID_BY_ID_FROM_DB  pass Id and obj type DPO  retrieve GUID
    BAPI_BUS2172_GET_DETAIL   pass guid retrieved in Step 1 and get Details
    Use BAPI_CPROJECTS_COMMIT_WORK as Commit in program
    Niranjan

  • Data retrival from XML nodes

    Hello all
    I have a xml file somthing like this
    - <lbs-server>
    - <location-results>
    - <error>
    <number>12</number>
    <information>Invalid credentials</information>
    <system method="NULL" />
    </error>
    </location-results>
    - <server-time>
    <date>13</date>
    <month>6</month>
    <year>2006</year>
    <hour>15</hour>
    <minute>10</minute>
    <second>4</second>
    </server-time>
    <server-interface>1.0.5 uguduwa</server-interface>
    </lbs-server>
    Can i use somthing like getNodeValue(lbs-server/location-results/error/number) to retrive the error number from the above structure. if this is possible or alternative please explain with a sample code cause i am bit new to this techonlogy.
    Thanks in advance
    Prash

    To retrive the error number from the XML file, you can use JDOM API, and say:
    Document doc = builder.build(XML_File_Name);
    Element root = doc.getRootElement();
    Element lr_elt = root.getChild("location-results");
    Element error_elt = lr_elt.getChild("error");
    Element number_elt = error_elt.getChild("number");
    String your_value = number_elt.getText();
    JDom has features of both SAX & DOM Parsers. You can find more info on Jdom at :
    http://www.javaworld.com/javaworld/jw-05-2000/jw-0518-jdom.html
    http://www.oreilly.com/catalog/jenut2/chapter/ch19.html#AUTOID-14859

  • Hierarchical data retrival without Connect by

    I am using Oracle 8i and writing a cursor as follows:
    CURSOR c_linked_events (c_task_event_id EVENTS.event_id%TYPE) IS
    SELECT link_from_event_id prior_event_id
    FROM event_links
    START WITH link_to_event_id = c_task_event_id
    CONNECT BY PRIOR link_from_event_id = link_to_event_id
    but it is giving error ORA-1436 Connect By loop in user data
    due to cycles in the data (and hence i can not use nocycles in this)
    Now is there any other alternative by which I can write the same cursor without using START WITH and CONNECT BY
    Or, what other sql statment I can write to retrive the data in hierarchical way without using CONNECT BY
    Pls, let me know if any one knows atleast about algorithm to be used.
    thanks,
    aks
    Message was edited by:
    aksbagga

    the link is very good but unfortunately it does not have the information which i was looking for.
    Although i found alternative solution.It works from the specified root and does not create errors while child is parent of its own like cycling the loop.
    table: test1
    START_COL     END_COL
    1     2
    1     3
    1     4
    2     5
    2     6
    1     7
    5     10
    100     1
    1     1
    100     20
    100     2
    200     100
    code:
    declare
    type all_rows is table of varchar2(10) index by binary_integer;
    v_all_rows all_rows;
    v_all_rows1 all_rows;
    v_val all_rows;
    calc_val all_rows;
    function get_rows(c_val integer) return all_rows
    is
    cursor all_vals
    is
    select end_col from test1
    where start_col = c_val;
    begin
                   if v_val.exists(c_val) then
                   for c_val in v_val.first..v_val.last loop
                             -- dbms_output.put_line('Already Present');
                             goto last_return;
                   end loop;
                   end if;
                   v_val(c_val):=c_val;
    <<j_loop>>
    for r_vals in all_vals loop
    dbms_output.put_line(calc_val(1)||'VALUE: '|| r_vals.end_col);
    v_all_rows:= get_rows(r_vals.end_col);
    end loop;
    <<last_return>>     
         return v_all_rows;
    end;
    begin
    calc_val(1):=0;
    v_all_rows1 := get_rows(200);
    end;

  • Data retrival step-by-step

    how can i retrive step-by-step data from a table containing say 100 records. My intension is to retrive data between 60th and 75th records from the table. Any one kindly help me at the earliest .

    http://asktom.oracle.com/pls/ask/f?p=4950:8:375475904943203825::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:127412348064,

  • Health app specific date data retrival is it possible

    On health app why cant i retrive data for a specific day, it only shows the graph. Only other way around this is to count all the data entrys for flights of stairs climbed that would take ages as i climbed a mountain. Is there a way of doing this.

    Hi Rachel,
    Once you open the Syndicator you can create only those fields which you want to be exported in the  "Destination Items" tab.
    Just right click and start creating . After creating the fields switch back to the Item mapping tab and you will find all the fields created in the "Destination Items".
    Now select the table from which you want the data to be exported from the Left hand side top of the screen . Your "Source Items" will automatically change to all the fields from the selected table .
    Now start mapping the Source and Destination . Once you are done goto File and Save the map ( This will make sure you can reuse the next time you log in) .
    The Free form search is always available to filter out your data . Once all your Filters are placed save the map and hit the execute button.
    The data should come in a csv format which can be opened in the form of an Excel.
    Regards,
    Vag Vignesh Shenoy

  • Data retrival error in Logical Database

    Hello Gurus,
    I am working on a Report on ASSET ACTIVITY BY DATE RANGE .
    The program is copied from std. program S_ALR_87011990.
    The above std. program displays for the whole financial year. This is modified for a particalar period range in the new leveraged program.
    My question is in the below code.
    We are fetching data using LDB ADA. The statement "GET anlcv" works fine here, I mean Sy-subrc is 0 and anlcv structure has some data in it.
    When it comes to statement "GET anepv" in the below code, we are not getting any data into that structure and sy-subrc NE 0. Then it is skipping all the get statements and directly going to statement " PERFORM abga_simulieren.".
    My logic lies in between this Get statement and the perform statement. When i see it in debugging mode my statement is not executed at all.
    What needs to be done. Please anyone help me.
    GET anlcv.
    CHECK select-options.
    MOVE anlcv TO sav_anlcv.
    GET anepv.
    CHECK select-options.
    Nur Bewegungen des Jahres des Berichtsdatums durchlassen.
    CHECK anepv-bzdat GE sav_gjbeg.
    CHECK anepv-bzdat IN so_bzdat. "Added for SIR-3132
    Bewegungen in SAV_ANEPV sammeln.
    MOVE anepv TO sav_anepv.
    APPEND sav_anepv.
    GET anlb LATE.
    Check auf Bestandskonto bei Gruppensummen erst hier, wegen
    fehlender Abgänge/Umbuchungen
    IF NOT summb IS INITIAL.
    IF NOT anlav-ktansw IN so_ktanw.
    REJECT 'ANLAV'.
    ENDIF.
    ENDIF.
    ANLCV aus Save-Area zurueckholen.
    CHECK NOT sav_anlcv-anln1 IS INITIAL.
    MOVE sav_anlcv TO anlcv.
    Abg-Simu: Abgang simulieren.
    PERFORM abga_simulieren.
    Promise to reward points
    Regards
    Mac

    Hi
    look at the following stuff related to LDB and do accordingly
    A logical database is a special ABAP/4 program which combines the contents of certain database tables. You can link a logical database to an ABAP/4 report program as an attribute. The logical database then supplies the report program with a set of hierarchically structured table lines which can be taken from different database tables.
    LDB offers an easy-to-use selection screens. You can modify the pre-generated selection screen to your needs. It offers check functions to check whether user input is complete, correct, and plausible. It offers reasonable data selections. It contains central authorization checks for data base accesses. Enhancements such as improved performance immediately apply to all report programs that use the logical database.
    Less coding s required to retrieve data compared to normal internel tables.
    Tables used LDB are in hierarchial structure.
    Mainly we used LDBs in HR Abap Programming.
    Where all tables are highly inter related so LDBs can optimize the performance there.
    Check this Document. All abt LDB's
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.highlightedcontent?documenturi=%2flibrary%2fabap%2fabap-code-samples%2fldb+browser.doc
    GO THROUGH LINKS -
    http://www.sap-basis-abap.com/saptab.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/db9bfa35c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/db9b5e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c6/8a15381b80436ce10000009b38f8cf/frameset.htm
    /people/srivijaya.gutala/blog/2007/03/05/why-not-logical-databases
    Re: **LDB**
    www.sapbrain.com/FAQs/TECHNICAL/SAP_ABAP_Logical_Database_FAQ.html
    www.sap-img.com/abap/abap-interview-question.htm
    www.sap-img.com/abap/quick-note-on-design-of-secondary-database-indexes-and-logical-databases.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/9f/db9b5e35c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/db9bb935c111d1829f0000e829fbfe/content.htm
    Gothru the blog which provides info on LDB's:
    /people/srivijaya.gutala/blog/2007/03/05/why-not-logical-databases
    Sample code
    TABLES: SPFLI,
    SFLIGHT,
    SBOOK,
    SCARR.
    START-OF-SELECTION.
    GET SPFLI.
    WRITE:/ ’SPFLI: ’, SPFLI-CARRID, SPFLI-CONNID,
    SPFLI-AIRPFROM, SPFLI-AIRPTO.
    GET SFLIGHT.
    WRITE:/ ’ SFLIGHT: ’, SFLIGHT-CARRID, SFLIGHT-CONNID, SFLIGHT-FLDATE.
    GET SBOOK.
    WRITE:/ ’ SBOOK: ’, SBOOK-CARRID, SBOOK-CONNID,
    SBOOK-FLDATE, SBOOK-BOOKID.
    GET SFLIGHT LATE.
    WRITE:/ ’ GET SFLIGHT LATE: ’, SFLIGHT-FLDATE.
    Regards
    Anji

  • SAP HR data retriveal into LDAP using ABAP Report

    Hi ,
    Does anyone have an idea for extracting SAP HR Employee data into LDAP (Directory based service)by using any abap report and function module
    Rohit

    I'm also interested...
    @Rohit Kumar Shukla
    Did you already receive an answer?
    Kind regards,
    Mario Möllenbeck

  • Problem in data retriving

    hi guru,
    by the help of itcsy structure ,i fetched data from data base.
    REGUH-RWBTR.
    IN DATA BASE THE RWBTR VALUES ARE 1,000.00-  IN RUPPES.
    BUT WHEN I AM FETCHING IT SHOWS IN DEBUGGING MODE 1.000,00  RUPPES.MEANS HERE COMMA & FULL STOP CHANGING THERE PLACE...THIS IS MY PROBLEM
    HOW TO ACHIEVE THIS.
    PLEASE SOMEBODY GIVE ME SOLUTION....
    THANKS
    SUBHASIS

    please check your user setting.
    in menubar got
    system    -
    > user profile -
    > owndata-->default (tab)decimal notification
    From menubar go to system then from their user profile then owndata and from their use the default tab , in the default tab u find the decimal notation change the decimal notification.
    Pl reward if helpful

  • Data retrival frm 2 different Clients

    Hi! Friends
    I'm having two different clients and i need fetch data from one client and store it in another client and proceed further.
    Is there any option to retrieve data?
    whether RFC helps to perform this action if so kindly guide me with the steps to create and call such an RFC.
    Proto:
    Server1:              Event                                                             Server2
    Record1           Fetch Record1 update to server2              as of now no such records
    Record2           Fetch Record2 update to server2
    Record3           Fetch Record3 update to server2
    Thanks and Regards,
    Kv

    Hello KV,
    Did you do an F1 on CLIENT-SPECIFIED ?
    @Thomas: I donot get the pun, "friday effect" you know
    Cheers,
    Suhas

  • Data retrival from standard transaction with in a report

    hi all,
    i have a requirement like i need to pass the selection screen selections  to a standard transaction ca80 and need to get the material list from there to my report for furthur processing. is it possible with bdc or a bapi for this.
    can anyone please help urgent its eating my brain. points awarded for solution
    thanks in advance
    anupama

    hi deep kammula,
    this is a sample code for your query just check. it may help you.
    all the best.
    reward me points if usefull.
    Sample HR Reports - Allocate Petrol Allowance
    Two ABAP HR Programs, which are interconnected, the first takes employee numbers which should not be given Petrol allowance and the other program gives the petrol allowance to employees.
    FIRST PRG
    REPORT  ZPETROL_EXCLUDE                         .
    TABLES SSCRFIELDS.
    SELECTION-SCREEN BEGIN OF SCREEN 100.
    SELECTION-SCREEN SKIP 9.
    PARAMETERS NUMBER(200) TYPE C.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN:
    BEGIN OF LINE,
      PUSHBUTTON 2(10) TEXT-001 USER-COMMAND PROC,
    END OF LINE.
    SELECTION-SCREEN END OF SCREEN 100.
    CALL SCREEN 100.
    AT SELECTION-SCREEN.
    CASE SSCRFIELDS.
    WHEN 'PROC'.
    SET PARAMETER ID: 'NUM' FIELD NUMBER.
    CALL TRANSACTION 'ZP_PALLOWANCE'.
    LEAVE TO SCREEN 0.
    ENDCASE.
    SECOND PRG
    REPORT  ZPR_PETROL_ALLOWANCE NO STANDARD PAGE
    HEADING                   .
    *-- Infotypes
    INFOTYPES : 0000, "Actions
                0002, "Personal Data
                0008. "Basic pay details
    *-- Tables
    TABLES : PERNR,   "Standard Selections for HR Master Data Reporting
             PC207,   "Payroll Results: Results Table
             PCL1,    "HR Cluster 1
             PCL2,    "HR Cluster 2
             T510,    "Pay scales
             T549A,   "Payroll areas
             T549Q,   "Payroll Periods
             PA0002.  "Personal details
    *-- Internal Tables
    *-- Internal Table Declaration For Holding The Data
    DATA: BEGIN OF INT_PETROL OCCURS 0,
            PERNR LIKE PA0008-PERNR,      "Personnel Number
            TRFST LIKE PA0008-TRFST,      "Pay Scale Level
            NAME(40),                     "Name of Employee
            PALLOWANCE TYPE P DECIMALS 2, "Petrol Allowance Amount
          END OF INT_PETROL.
    DATA: BEGIN OF PA0015_DATA OCCURS 0,
            PERNR LIKE PA0015-PERNR,
            BETRG LIKE PA0015-BETRG,
          END OF PA0015_DATA.
    DATA:BEGIN OF INT_PETROL2 OCCURS 0,
          PERNR LIKE PA0008-PERNR,      "Personnel Number
          VORNA LIKE PA0002-VORNA,      "First Name
          NACHN LIKE PA0002-NACHN,      "Last Name
          TRFST LIKE PA0008-TRFST,      "Pay Scale Level
          NAME(40),                     "Name of Employee
          PALLOWANCE TYPE P DECIMALS 2, "Petrol Allowance Amount
         END OF INT_PETROL2.
    DATA : TITLE TYPE LVC_TITLE.
    DATA:  BEGIN OF PER_NO OCCURS 0,
            PERNR LIKE PA0008-PERNR,
            TRFST LIKE PA0008-TRFST,
           END OF PER_NO.
    DATA: BEGIN OF MSG OCCURS 0,
          MSG1(100) TYPE C,
          END OF MSG.
    DATA: FLAG TYPE I VALUE '0',
          DIS_FLAG TYPE I VALUE '0'.
    DATA: INT_PETROL3 LIKE STANDARD TABLE OF INT_PETROL2 INITIAL SIZE 0
    WITH HEADER LINE.
    DATA: INT_PETROL1 LIKE STANDARD TABLE OF INT_PETROL INITIAL SIZE 0 WITH
    HEADER LINE.
    DATA: WA_PET_ALLOWANCE TYPE ZBPETROL_ALL.    "WORKAREA FOR INSERTING
    VALUES.
    *DATA: P_LGART1 LIKE T512T-LGART VALUE '0010'.  "CHANGE WAGE TYPE HERE
    DATA: P_LGART1 LIKE T512T-LGART VALUE '0077'.  "CHANGE WAGE TYPE HERE
    DATA: BEGIN OF INT_0015 OCCURS 0,
            PERNR(038),
            BEGDA(010),
            BETRG(018),
          END OF INT_0015.
    *--  Internal Table To Store Error Records.
    DATA: E_INT_0015 LIKE INT_0015 OCCURS 0 WITH HEADER LINE.
    *-- Batch Input Data of Single Transaction
    DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    *-- Internal Table For Export and Import Payroll Results
    DATA: INT_RGDIR LIKE PC261 OCCURS 0 WITH HEADER LINE,
          LGTXT LIKE T512T-LGTXT.
    DATA: BEGIN OF EMP_NO OCCURS 0,
            PERNR(4) TYPE C,
          END OF EMP_NO.
    DATA: BEGIN OF EMP_NO1 OCCURS 0,
            PERNR TYPE I,
          END OF EMP_NO1.
    DATA EMPNO LIKE STANDARD TABLE OF EMP_NO INITIAL SIZE 0.
    DATA EMPNO1 LIKE STANDARD TABLE OF EMP_NO1 INITIAL SIZE 0 WITH HEADER
    LINE.
    DATA LEN1 TYPE I.
    DATA: ERR  LIKE MESSAGE.
    DATA TEMP_NUM(200) TYPE C.
    *-- Includes
    *-- International Include
    INCLUDE RPC2CD09.  "Cluster CD data definition
    INCLUDE RPC2CA00.  "Cluster CA Data-Definition
    INCLUDE RPPPXD00.  "Data Definition buffer PCL1/PCL2 Buffer INCLUDE RPPPXD10.
    "Common part buffer PCL1/PCL2 INCLUDE RPPPXM00.  "Buffer Handling routine
    *-- Country Specific Include
    INCLUDE PC2RXIN0.  "Cluster IN data definition
    INCLUDE RPC2RX09.
    *-- ALV Declaration
    TYPE-POOLS : SLIS.
    DATA: INT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          INT_EVENTS TYPE SLIS_T_EVENT,
          INT_LAYOUT TYPE SLIS_LAYOUT_ALV,
          WS_EVENTS TYPE SLIS_ALV_EVENT,
          WS_REPID LIKE SY-REPID.
    *-- Initialization
    INITIALIZATION.
      WS_REPID = SY-REPID.
    *-- At Selection-Screen
    START-OF-SELECTION.
      SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
      SELECTION-SCREEN BEGIN OF LINE.
      SELECTION-SCREEN COMMENT 1(30) TEXT-002.
      SELECTION-SCREEN POSITION 33.
      PARAMETERS: P_RATE TYPE P DECIMALS 2.
      SELECTION-SCREEN END OF LINE.
      SELECTION-SCREEN END OF BLOCK B1.
      SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-003.
      SELECTION-SCREEN BEGIN OF BLOCK B3.
      PARAMETERS: P_UPLOAD AS CHECKBOX,
                  P_FG RADIOBUTTON GROUP G1,
                  P_BG RADIOBUTTON GROUP G1.
      SELECTION-SCREEN END OF BLOCK B3.
      SELECTION-SCREEN BEGIN OF BLOCK B4.
      PARAMETERS: P_DI AS CHECKBOX.
      SELECTION-SCREEN END OF BLOCK B4.
      SELECTION-SCREEN END OF BLOCK B2.
    AT SELECTION-SCREEN.
    *-- Wate Type Text
      SELECT SINGLE LGTXT INTO LGTXT FROM T512T WHERE SPRSL = 'E' AND
                                      MOLGA = '40' AND LGART = P_LGART1 .
    *-- Data Retrieval From Logical Database PNP
    GET PERNR.
      PROVIDE PERNR FROM P0000 VORNA NACHN FROM P0002 BETWEEN PN-BEGDA AND
    PN-ENDDA.
        INT_PETROL1-PERNR = P0000-PERNR.
        CONCATENATE P0002-VORNA P0002-NACHN INTO INT_PETROL1-NAME SEPARATED
    BY SPACE.
      ENDPROVIDE.
    *-- Clear Data
      CLEAR: RGDIR, INT_RGDIR.
      REFRESH: RGDIR, INT_RGDIR.
    *-- Read All The Payroll Runs For An Employee
      CD-KEY-PERNR = PERNR-PERNR.
      RP-IMP-C2-CU.
      CHECK RP-IMP-CD-SUBRC EQ 0.
    *-- Clear Data
      REFRESH: RT.
    Read IN Cluster.
      LOOP AT RGDIR WHERE FPBEG >= PN-BEGDA AND FPEND <= PN-ENDDA.
        MOVE-CORRESPONDING RGDIR TO INT_RGDIR.
        APPEND INT_RGDIR.
        CLEAR INT_RGDIR.
      ENDLOOP.
    Read the last record.
      SORT INT_RGDIR BY SEQNR DESCENDING.
      READ TABLE INT_RGDIR INDEX 1.
      RX-KEY-SEQNO = INT_RGDIR-SEQNR.
      RX-KEY-PERNR = PERNR-PERNR.
      RP-IMP-C2-IN.
      CHECK RP-IMP-IN-SUBRC EQ 0.
      READ TABLE RT WITH KEY LGART = P_LGART1.
      IF SY-SUBRC = 0.
        INT_PETROL1-PALLOWANCE = RT-BETRG.
      ENDIF.
      APPEND INT_PETROL1.
      CLEAR INT_PETROL1.
      SELECT TRFST PERNR
      INTO CORRESPONDING FIELDS OF TABLE PER_NO
      FROM PA0008
      WHERE TRFST LIKE 'L%'
      AND BET01 > 0.
      SORT PER_NO.
      DELETE ADJACENT DUPLICATES FROM PER_NO.
    *-- END-OF-SELECTION.
    END-OF-SELECTION.
      LOOP AT INT_PETROL1.
        READ TABLE PER_NO WITH KEY PERNR = INT_PETROL1-PERNR.
        IF SY-SUBRC = 0.
          INT_PETROL-TRFST = PER_NO-TRFST.
          MODIFY INT_PETROL1 FROM INT_PETROL TRANSPORTING TRFST.
        ENDIF.
      ENDLOOP.
      SORT INT_PETROL1.
      DELETE ADJACENT DUPLICATES FROM INT_PETROL1.
      CONCATENATE 'From'  '  :  ' PN-BEGDA6(2) '.' PN-BEGDA4(2) '.' PN-
    BEGDA+0(4)
      '   To' ' :  '  PN-ENDDA6(2) '.' PN-ENDDA4(2) '.' PN-ENDDA+0(4)
    INTO TITLE.
      IF P_DI = 'X'.    "TO DISPLAY PETROL ALLOWANCE ONLY
        IF PNPTIMRA = 'X'.      "CHECK OTHER PERIOD CHECKED
          DIS_FLAG = 1.
        ENDIF.
        IF PNPTIMR9 = 'X'.    "CHECK TO SEE CURRENT PERIOD SELECTED
    CASES - NO RATE GIVEN, RATE GIVEN
    CURRENT PERIOD UPLOADED BUT PAYROLL NOT WRITTEN SO NO RESULT FROM LDB
            SELECT RATE INTO P_RATE FROM ZBPETROL_ALL WHERE BEGDA = PN- BEGDA AND ENDDA = PN-ENDDA.
            ENDSELECT.
            IF SY-DBCNT = 0.
              MESSAGE I455(0) WITH 'NO PETROL RATE EXSISTS'.
            ELSE.
              FLAG = 1.
            ENDIF.  "OF SY-DBCNT
          IF P_RATE > 0 AND FLAG = 1. " PETROL RATE EXSISTS.
            SELECT PERNR SUM( BETRG ) INTO TABLE PA0015_DATA
            FROM PA0015
            WHERE BEGDA BETWEEN PN-BEGDA AND PN-ENDDA
            GROUP BY PERNR.
            SELECT APERNR ATRFST BVORNA BNACHN
            INTO CORRESPONDING FIELDS OF TABLE INT_PETROL3
            FROM PA0008 AS A
            INNER JOIN PA0002 AS B ON BPERNR = APERNR
            WHERE A~TRFST LIKE 'L%'
            AND A~BET01 > 0.
            SORT INT_PETROL3.
            DELETE ADJACENT DUPLICATES FROM INT_PETROL3.
            REFRESH INT_PETROL1.
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    employee name
              CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTO
    INT_PETROL2-NAME SEPARATED BY SPACE.
              MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.
            ENDLOOP.
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    one
    table to another table
              READ TABLE PA0015_DATA WITH KEY PERNR = INT_PETROL2-PERNR.
              IF SY-SUBRC = 0.
                INT_PETROL-PERNR = INT_PETROL2-PERNR.
                INT_PETROL-TRFST = INT_PETROL2-TRFST.
                INT_PETROL-NAME = INT_PETROL2-NAME.
                INT_PETROL-PALLOWANCE = PA0015_DATA-BETRG.
                APPEND INT_PETROL TO INT_PETROL1.
              ENDIF.
            ENDLOOP.
            DIS_FLAG = 1.
          ENDIF.  "P_RATE > 0 AND FLAG = 1.
          IF P_RATE > 0 AND FLAG = 0.  "CURRENT PERIOD AND DATA NOT UPLOADED
            SELECT APERNR ATRFST BVORNA BNACHN
            INTO CORRESPONDING FIELDS OF TABLE INT_PETROL3
            FROM PA0008 AS A
            INNER JOIN PA0002 AS B ON BPERNR = APERNR
            WHERE A~TRFST LIKE 'L%'
            AND A~BET01 > 0.
            SORT INT_PETROL3.
            DELETE ADJACENT DUPLICATES FROM INT_PETROL3.
            REFRESH INT_PETROL1.
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    employee name
              CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTO
    INT_PETROL2-NAME SEPARATED BY SPACE.
              MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.
            ENDLOOP.
            PERFORM GET_VALUE.  "TO CONVERT THE FIRST SCREEN PERNR INTO
    NUMBER FORMATE
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    one
    table to another table
              READ TABLE EMPNO1 WITH KEY PERNR = INT_PETROL2-PERNR.
              IF SY-SUBRC <> 0.
                INT_PETROL-PERNR = INT_PETROL2-PERNR.
                INT_PETROL-TRFST = INT_PETROL2-TRFST.
                INT_PETROL-NAME = INT_PETROL2-NAME.
                APPEND INT_PETROL TO INT_PETROL1.
              ENDIF.
            ENDLOOP.
            PERFORM CAL_ALLOWANCE.
          ENDIF.  " OF P_RATE > 0
          DIS_FLAG = 1.
        ENDIF.  " OF CURRENT PERIOD CHECK.
      ENDIF.  " OF CHECK DISPLAY.
    *----BDC
      IF P_UPLOAD = 'X'.
        IF PNPTIMRA = 'X'.      "CHECK OTHER PERIOD CHECKED
          MESSAGE I455(0) WITH 'Petrol Allowance cannot be uploaded'.
          LEAVE SCREEN.
        ENDIF.
        IF P_RATE > 0.
         IF P_RATE > 0 OR P_RATE = 0.
          IF PNPTIMR9 = 'X'.    "CHECK TO SEE CURRENT PERIOD SELECTED
            WA_PET_ALLOWANCE-BEGDA = PN-BEGDA.
            WA_PET_ALLOWANCE-ENDDA = PN-ENDDA.
            WA_PET_ALLOWANCE-RATE = P_RATE.
            WA_PET_ALLOWANCE-CURR = 'INR'.
            INSERT INTO ZBPETROL_ALL VALUES WA_PET_ALLOWANCE.
            SELECT A~PERNR A~TRFST B~VORNA B~NACHN
            INTO CORRESPONDING FIELDS OF TABLE INT_PETROL3
            FROM PA0008 AS A
            INNER JOIN PA0002 AS B ON B~PERNR = A~PERNR
            WHERE A~TRFST IN ('L1' , 'L2' , 'L3')
            AND A~BET01 > 0.
            SORT INT_PETROL3.
            DELETE ADJACENT DUPLICATES FROM INT_PETROL3.
            REFRESH INT_PETROL1.
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    employee name
              CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTO
    INT_PETROL2-NAME SEPARATED BY SPACE.
              MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.
            ENDLOOP.
            PERFORM GET_VALUE.  "TO CONVERT THE FIRST SCREEN PERNR INTO
    NUMBER FORMATE
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    one
    table to another table
              READ TABLE EMPNO1 WITH KEY PERNR = INT_PETROL2-PERNR.
              IF SY-SUBRC <> 0.
                INT_PETROL-PERNR = INT_PETROL2-PERNR.
                INT_PETROL-TRFST = INT_PETROL2-TRFST.
                INT_PETROL-NAME = INT_PETROL2-NAME.
                APPEND INT_PETROL TO INT_PETROL1.
              ENDIF.
            ENDLOOP.
            PERFORM CAL_ALLOWANCE.
            DIS_FLAG = 1.
            SORT INT_PETROL1.
            LOOP AT INT_PETROL1.
              MOVE: INT_PETROL1-PERNR TO INT_0015-PERNR,
              INT_PETROL1-PALLOWANCE TO INT_0015-BETRG.
              CONCATENATE PN-ENDDA6(2) PN-ENDDA4(2) PN-ENDDA+0(4) INTO
    INT_0015-BEGDA SEPARATED BY '.'.
              APPEND INT_0015.
              CLEAR INT_0015.
            ENDLOOP.
            LOOP AT INT_0015.
              PERFORM F_BDCDATA.
              IF P_FG = 'X'.
                CALL TRANSACTION 'PA30' USING BDCDATA MODE 'A' UPDATE 'S'.
              ELSE.
                CALL TRANSACTION 'PA30' USING BDCDATA MODE 'N' UPDATE 'S'.
              ENDIF.
    *-- Handling Error records.
              IF SY-SUBRC <> 0.
    *-- Handling Error Messages
                PERFORM ERROR_MSG.
                MOVE-CORRESPONDING INT_0015 TO E_INT_0015.
                APPEND E_INT_0015.
                CLEAR E_INT_0015.
              ENDIF.
              REFRESH BDCDATA.
            ENDLOOP.
    *-- Downloading Error Records.
            CALL FUNCTION 'GUI_DOWNLOAD'
              EXPORTING
                FILENAME = 'C:\Errors.Txt'
                FILETYPE = 'ASC'
              TABLES
                DATA_TAB = E_INT_0015.
    *-- Downloading Error Messages.
            CALL FUNCTION 'GUI_DOWNLOAD'
              EXPORTING
                FILENAME = 'C:\Err_Msg.Txt'
                FILETYPE = 'ASC'
              TABLES
                DATA_TAB = MSG.
          ENDIF.  " FOR CURRENT PERIOD
      ENDIF.
        ELSE.
          MESSAGE I455(0) WITH 'Enter Petrol Rate'.
          LEAVE TO SCREEN 0.
        ENDIF.    " FOR PETROL RATE
      ENDIF.    " FOR UPLOAD
      IF DIS_FLAG = 1.
        INT_LAYOUT-SUBTOTALS_TEXT = TEXT-004.
        INT_LAYOUT-TOTALS_TEXT = TEXT-004.
        INT_LAYOUT-ZEBRA = 'X'.
        PERFORM FILL_FIELDCAT.
        PERFORM GET_EVENTS_ALV.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            I_CALLBACK_PROGRAM = WS_REPID
            IS_LAYOUT          = INT_LAYOUT
            IT_FIELDCAT        = INT_FIELDCAT[]
            I_DEFAULT          = 'X'
            I_SAVE             = 'X'
            IT_EVENTS          = INT_EVENTS
          TABLES
            T_OUTTAB           = INT_PETROL1
          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.
      ENDIF.
    *&      Form  GET_VALUE
          text
    FORM GET_VALUE.
      GET PARAMETER ID: 'NUM' FIELD TEMP_NUM.
      IF TEMP_NUM <> ''.
        LEN1 = STRLEN( TEMP_NUM ).
        PERFORM GET_PERNR.
        APPEND TEMP_NUM TO EMPNO.
        LOOP AT EMPNO INTO EMP_NO.
          CALL FUNCTION 'CHECK_AND_CONVERT_NUMERICS'
          EXPORTING
        DFELD              = ' '
            DMZEI              = ','
            DTYPE              = 'STRING'
        DYPNO              = ' '
            EFELD              = EMP_NO-PERNR
        FNAME              = ' '
        PROGR              = ' '
        IMP_DECIMALS       = '0'
          IMPORTING
        ERROR              =
           IFELD              = EMP_NO1-PERNR
           MESSG              = ERR
        MSGLN              =
          IF ( ERR-MSGID = '' ).
            APPEND EMP_NO1 TO EMPNO1.
            CLEAR EMP_NO1-PERNR.
          ELSE.
            MESSAGE I455(0) WITH 'Could not convert employee number'.
            LEAVE TO SCREEN 0.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    "GET_VALUE
    *&      Form  GET_PERNR
          text
    FORM GET_PERNR.
      SPLIT TEMP_NUM AT ',' INTO EMP_NO TEMP_NUM.
      APPEND EMP_NO TO EMPNO.
      CLEAR EMP_NO.
      SEARCH TEMP_NUM FOR ','.
      IF SY-SUBRC = 0.
        PERFORM GET_PERNR.
      ENDIF.
    ENDFORM.                    "GET_PERNR
    *&      Form  ERROR_MSG
          text
    -->  p1        text
    <--  p2        text
    FORM ERROR_MSG.
      IF SY-SUBRC <> 0.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            LANG = SY-LANGU
          IMPORTING
            MSG  = MSG-MSG1.
        APPEND MSG.
        CLEAR MSG.
      ENDIF.
    ENDFORM.                    "ERROR_MSG
    *&      Form  F_BDCDATA
          text
    FORM F_BDCDATA.
      PERFORM BDC_DYNPRO      USING 'SAPMP50A' '1000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=INS'.
      PERFORM BDC_FIELD       USING 'RP50G-PERNR'
                                    INT_0015-PERNR.
      PERFORM BDC_FIELD       USING 'RP50G-TIMR6'
                                    'X'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'RP50G-CHOIC'.
      PERFORM BDC_FIELD       USING 'RP50G-CHOIC'
                                    '0015'.
      PERFORM BDC_DYNPRO      USING 'MP001500' '2000'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'Q0015-BETRG'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'P0015-LGART'
                                    '0077'.        "CHANGE WAGE TYPE HERE
    ALSO
      PERFORM BDC_FIELD       USING 'Q0015-BETRG'
                                    INT_0015-BETRG.
      PERFORM BDC_FIELD       USING 'P0015-WAERS'
                                    'INR'.
      PERFORM BDC_FIELD       USING 'P0015-BEGDA'
                                     INT_0015-BEGDA.
      PERFORM BDC_DYNPRO      USING 'MP001500' '2000'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'P0015-LGART'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=UPD'.
      PERFORM BDC_FIELD       USING 'P0015-LGART'
                                    '0077'.       "CHANGE WAGE TYPE HERE
    ALSO
      PERFORM BDC_FIELD       USING 'Q0015-BETRG'
                                    INT_0015-BETRG.
      PERFORM BDC_FIELD       USING 'P0015-WAERS'
                                    'INR'.
      PERFORM BDC_FIELD       USING 'P0015-BEGDA'
                                    INT_0015-BEGDA.
    ENDFORM.                    "F_BDCDATA
    *&      Form  BDC_DYNPRO
          text
         -->P_0732   text
         -->P_0733   text
    FORM BDC_DYNPRO  USING    VALUE(P_0732) TYPE C
                              VALUE(P_0733) TYPE C.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = P_0732.
      BDCDATA-DYNPRO   = P_0733.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.                    " BDC_DYNPRO
    *&      Form  BDC_FIELD
          text
         -->P_0755   text
         -->P_0756   text
    FORM BDC_FIELD  USING    VALUE(P_0755) TYPE C
                             VALUE(P_0756) TYPE C.
      CLEAR BDCDATA.
      BDCDATA-FNAM = P_0755.
      BDCDATA-FVAL = P_0756.
      APPEND BDCDATA.
    ENDFORM.                    " BDC_FIELD
    *&      Form  CAL_ALLOWANCE
          text
    FORM CAL_ALLOWANCE.
      LOOP AT INT_PETROL1 INTO INT_PETROL.
        IF INT_PETROL-TRFST = 'L1'.
          INT_PETROL-PALLOWANCE = P_RATE * 100.   "CHANGE TO SELECT WHEN
    DISPLAY
        ELSEIF INT_PETROL-TRFST = 'L2'.
          INT_PETROL-PALLOWANCE = P_RATE * 150.
        ELSEIF INT_PETROL-TRFST = 'L3'.
          INT_PETROL-PALLOWANCE = P_RATE * 150.
        ELSEIF INT_PETROL-TRFST = 'L4'.
    INT_PETROL-PALLOWANCE = P_RATE * 200.
        ELSEIF INT_PETROL-TRFST = 'L5'.
    INT_PETROL-PALLOWANCE = P_RATE * 250.
        ENDIF.
        MODIFY INT_PETROL1 FROM INT_PETROL TRANSPORTING PALLOWANCE.
      ENDLOOP.
    ENDFORM.                    "CAL_ALLOWANCE
    *&      Form  FILL_FIELDCAT
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_FIELDCAT.
      INT_FIELDCAT-COL_POS = 1.
      INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
      INT_FIELDCAT-FIELDNAME = 'PERNR'.
      INT_FIELDCAT-SELTEXT_L = TEXT-005.
      INT_FIELDCAT-OUTPUTLEN = 10.
      INT_FIELDCAT-KEY = 'X'.
      APPEND INT_FIELDCAT.
      CLEAR INT_FIELDCAT.
      INT_FIELDCAT-COL_POS = 2.
      INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
      INT_FIELDCAT-FIELDNAME = 'NAME'.
      INT_FIELDCAT-SELTEXT_L = TEXT-006.
      INT_FIELDCAT-OUTPUTLEN = 25.
      INT_FIELDCAT-KEY = 'X'.
      APPEND INT_FIELDCAT.
      CLEAR INT_FIELDCAT.
      INT_FIELDCAT-COL_POS = 3.
      INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
      INT_FIELDCAT-FIELDNAME = 'TRFST'.
      INT_FIELDCAT-SELTEXT_L = TEXT-007.
      INT_FIELDCAT-OUTPUTLEN = 5.
      INT_FIELDCAT-KEY = 'X'.
      APPEND INT_FIELDCAT.
      CLEAR INT_FIELDCAT.
      INT_FIELDCAT-COL_POS = 4.
      INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
      INT_FIELDCAT-FIELDNAME = 'PALLOWANCE'.
      INT_FIELDCAT-SELTEXT_L = TEXT-008.
      INT_FIELDCAT-OUTPUTLEN = 16.
      INT_FIELDCAT-KEY = 'X'.
      APPEND INT_FIELDCAT.
      CLEAR INT_FIELDCAT.
    ENDFORM.                    " FILL_FIELDCAT
    *&      Form  GET_EVENTS_ALV
          text
    -->  p1        text
    <--  p2        text
    FORM GET_EVENTS_ALV.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE     = 1
        IMPORTING
          ET_EVENTS       = INT_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.
      READ TABLE INT_EVENTS INTO WS_EVENTS WITH KEY NAME =
    SLIS_EV_TOP_OF_PAGE.
      IF SY-SUBRC = 0.
        WS_EVENTS-FORM = 'TOP'.
        MODIFY INT_EVENTS FROM WS_EVENTS INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                    " GET_EVENTS_ALV
    *&      Form  TOP-OF-PAGE
          text
    FORM TOP.
    *-- ALV Declarations
      DATA: WS_HEADER TYPE SLIS_T_LISTHEADER,
            WA_HEADER TYPE SLIS_LISTHEADER.
    *-- Title
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = TEXT-009.
      APPEND WA_HEADER TO WS_HEADER.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = TITLE.
      APPEND WA_HEADER TO WS_HEADER.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = ' '.
      APPEND WA_HEADER TO WS_HEADER.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = ' '.
      APPEND WA_HEADER TO WS_HEADER.
      CLEAR WA_HEADER.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY = WS_HEADER
          I_LOGO             = 'LOGO'.
    ENDFORM.                    "TOP-OF-PAGE
    regards
    karthik
    Edited by: KARTIKEYA (EDS-VZG) on May 5, 2008 1:41 PM

Maybe you are looking for