Using loop statement in screen flow

Hi Friends,
                I have been working on the Module Pool for the last two weeks. But Iam unable to get the main difference between
the   " LOOP WITH CONTROL TABCON "  and   "  LOOP AT ITAB WITH CONTROL TABCON CURSOR TABCON-CURRENT_LINE ".
Please make me clear on this issue.
Thanking you in advance,
Regards,
Murali Krishna

This is copied from sap documentation
link:[Table Controls in the Flow Logic|http://help.sap.com/saphelp_nw70/helpdata/en/9f/dbac5135c111d1829f0000e829fbfe/frameset.htm]
LOOP WITH CONTROL ctrl.
ENDLOOP.
These statements create a loop pass through the step loop rows displayed on the screen.
For PAI, they transfer the data of each group into the identically-named fields of the ABAP program or, vice versa,
for PBO from the ABAP program into the step loop fields.
In the LOOP-ENDLOOP loop, you can call modules that process the transferred data and for
PBO read from an internal table, or for PAI import into an internal table.
LOOP AT itab [INTO wa] WITH CONTROL ctrl.
ENDLOOP.
This statement assigns an internal table itab of the ABAP program to the table control and
triggers a parallel loop run over the table control rows displayed on the screen and over the internal table itab.
The additions INTO and WITH CONTROL are possible at the time of PBO, but not at PAI.
The assignment of the loop to the table control takes place at PAI through the internal table.
Using the INTO addition, the fields of the internal table itab are written to the work area wa at the time
of PBO and the content of wa is transported, line by line, to the identically-named fields of the table control
on the screen. Without the INTO addition, you must use an internal table with a header line.
Then the content of the header line is transported line by line to the
identically-named fields of the table control on the screen at the time of PBO.
No module is required for filling the table control rows.
Conversely, at the time of PAI, the internal table rows are not automatically
filled with the contents of the table control rows. Instead, you must call a
dialog module within the loop that modifies the table.

Similar Messages

  • Can we use Loop Statement for Ranges

    Hi Friends,
    I have a range say R_Range. I need to loop at each line item and get the values in another range R_New_Range, i have to count the number of items in R_new_range. How is it possible.
    I know range is nothing but an internal table. So we can direcly use Move statements or so ...,
    But my question is .....
    My R_range has values as below
    'I' 'EQ' '001'
    'I' 'EQ' '002'
    'I' 'BT' '003' '007'
    'I' 'EQ' '008'
    I have to move all these values to R_New_range and my count of items should be '8'.
    How can i do that????????
    Expecting ur answers....
    Thanks in advance
    Cheers,
    R.Kripa.

    hey friends,
    Its nice to see the replies.... but i think i had confused u all with the question
    Now i'll explain u all in detail ....
    See i have 15000 projects ( eg., AAA111... ) and 100 GL accounts ( eg., 123443... ) .....
    I have to get the costs from COSS and COSP tables for all the projects - GL account combinations which leads to some 1500000 entries ..... So it is giving me a SQL Dump "DBIF_RSQL_INVALID_RSQL" .........
    Description of the Dump is
    Error in the module RSQL accessing the database interface
    An exception occurred. This exception is dealt with in more detail below
    . The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was
    neither                                                                
    caught nor passed along using a RAISING clause, in the procedure        
    "GET_COSP_COSS" "(FORM)"                                               
    Since the caller of the procedure could not have expected this exception
    to occur, the running program was terminated.                          
    The reason for the exception is:                                        
    The SQL statement generated from the SAP Open SQL Statement violates a  
    restriction imposed by the database system used in R/3.                                                                               
    Possible errors:                                                        
    o The maximum size of an SQL statement has been exceeded.              
    o The statement contains too many input variables.                     
    o The space needed for the input data exceeds the available memory.    
    o ...                                                                               
    You can usually find details in the system log (SM21) and in the        
    developer trace of the work process (ST11).                             
    If an error occurs the developer trace often informs you about the      
    current restrictions.                                                   
    So now i want to fine tune the program so that the execution works perfectly and get me the values for all the data 1500000 :-|
    Now :
    My Projects are stored in the form of a range R_Range
    I have to loop at this range and then process 100 records at a time and then again take other 100 records .... i'll count till 100 records by getting loopaing at the range and for each loop pass i'll increment the counter ....
    I am clear till this .....
    If record consist of 'EQ' option .... then ofcourse we can consider the total record to be 1 record and we can add 1 to counter ......
    But if the record consist of 'BT' option ...... then how can we loop that and get the number of -low numbers in that range and add to my counter ????
    Hope iam clear with my question
    If not do revert back ....
    Thanks in advance for the replies
    Cheers,
    R.Kripa.
    My Doubt is ....

  • Delete internal table rows without using loop statement

    i have an internal table which consists of 100 records.
    i need to keep only first 5 records.
    without using the loop statement i need to delete the rest of the records. how can we achieve this result.
    i.e.  delete itab1 where  "recordno"  > 5.
    regards.
    ZG

    Hi,
    Delete itab [FROM idx1] [TO idx2] {Where (log_exp)]
    To delete several lines at once, you have to specify at least one of the additions FROM, TO, or WHERE. You can only use the additions FROM and TO with standard tables and sorted tables.
    Delete itab [FROM idx1]
    If you specify FROM, all the table rows from the table index idx1 onwards are included.
    Delete itab [TO idx2]
    If you specify TO, all the table rows from the table index idx2 onwards are included.
    PARAMETERS: p_carrid TYPE sflight-carrid,
                p_connid TYPE sflight-connid.
    DATA: BEGIN OF seats,
            fldate    TYPE sflight-fldate,
            seatsocc  TYPE sflight-seatsocc,
            seatsmax  TYPE sflight-seatsmax,
            seatsfree TYPE sflight-seatsocc,
          END OF seats.
    DATA seats_tab LIKE STANDARD TABLE OF seats.
    SELECT fldate seatsocc seatsmax
           FROM sflight
           INTO TABLE seats_tab
           WHERE carrid = p_carrid AND
                 connid = p_connid.
    LOOP AT seats_tab INTO seats.
      seats-seatsfree = seats-seatsmax - seats-seatsocc.
      MODIFY seats_tab INDEX sy-tabix FROM seats.
    ENDLOOP.
    ENDLOOP.
    SORT seats_tab BY seatsfree DESCENDING.
    DELETE seats_tab FROM 5.
    Thanks & Regards,
    ShreeMohan
    Edited by: ShreeMohan Pugalia on Jul 21, 2009 4:28 PM

  • Using Looping statements to loop images

    Hi Guys i posted a similar question to this before but i couldn't get anywhere using the method that was described to me. Im currently creating a Puyo Puyo game and im nearly done ive been working on this for about 2 months im still new to java. Anyway my question is, is that after my first two puyo images reach the bottom how would i go about having my next images load and then drop and then have that loop. I understand how to create a loop statement but i just don't understand what parameters i would need to put into it and what kind of loop statement i would need i.e. for loop, do loop etc... I really could use some help ive tried and gotten this far but im pretty stuck. I appreciate any help you can provide. Here is my code so far
    public class Puyo {
        public int x, y, color;
        public Puyo(int c, int x2, int y2) {
            color = c;
            x = x2;
            y = y2;
    import javax.swing.*;
    import java.awt.*; 
    public class DemoTest extends JPanel {
        public static void main(String[] args) { {
        JFrame frame = new JFrame("Puyo Puyo");
        frame.setContentPane(new PuyoAnimation()); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setSize(200,453);
        frame.setResizable(false);
        frame.setVisible(true);
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*; 
    import javax.swing.event.*;
    import java.util.Random;
    public class PuyoLogic extends JPanel {
       public static final int puyoEmpty=0;
      final int board_height = 12;
      final int board_width = 6;
      final int image_height= 32;
      final int image_width = 32;
      final int MAX_X = board_width*image_width;
      final int MAX_Y = board_height*image_height;
      private static final int DELTA_Y = 2;
      private static final int TIMER_DELAY = 20;
      Image images[];
      Puyo puyolist[][];
      Puyo current[];
      Puyo droppingBalls[];
      Timer pptimer;
      Random myRand= new Random();
      boolean keyRight,keyLeft,keyUp;
         public PuyoLogic() {
         super();
            puyolist = new Puyo[board_width][board_height];
            current = new Puyo[2];
            current[0] = new Puyo(myRand.nextInt(4), (board_width * image_width /2), 0);
            current[1] = new Puyo(myRand.nextInt(4), (board_width * image_width /2)+image_width, 0);
        // current[2] = new Puyo(myRand.nextInt(4), (board_width * image_width /2), 0);
       //     current[3] = new Puyo(myRand.nextInt(4), (board_width * image_width /2)+image_width, 0);
         images = new Image[4];
         images[0] = Toolkit.getDefaultToolkit().getImage("puyo_yellow.png");
         images[1] = Toolkit.getDefaultToolkit().getImage("puyo_blue.png");
         images[2] = Toolkit.getDefaultToolkit().getImage("puyo_green.png");
         images[3] = Toolkit.getDefaultToolkit().getImage("puyo_red.png");
         setFocusable(true);
         PuyoMove puyo_move = new PuyoMove(); // Make a new video game KeyListener
         addKeyListener(puyo_move);
         setBackground(Color.BLACK);
          pptimer = new Timer(TIMER_DELAY, new TimerAction());
          pptimer.start();
         public void setAnimation(boolean OnandOff){
            if (OnandOff) {
                pptimer.start(); 
            } else {
                pptimer.stop(); 
        public void NewBlock() {
        int newblock;
        int i,j;
        for(i=0; i<4; i++)
            for(j=0; j<4; j++)
            //puyolist[i][j] = new Puyo[2];
        current[0].x=board_width/2-2;
        current[0].y=0;
        public void puyoBoundsRight(Puyo[] current){
        if ((current[0].x + image_width <= MAX_X - image_width) && (current[1].x + image_width <= MAX_X - image_width)){
        current[0].x += image_width;
        current[1].x += image_width;
        public void puyoBoundsLeft(Puyo[] current){
        if ((current[0].x - image_width >= 0) && (current[1].x - image_width >= 0)){
        current[0].x -= image_width;
        current[1].x -= image_width;
       private class PuyoMove implements KeyListener {
         public void keyTyped(KeyEvent k){}
         public void keyReleased(KeyEvent k){}
         public void keyPressed(KeyEvent k){
            switch (k.getKeyCode()){
             case KeyEvent.VK_LEFT:
                 keyLeft = true;
                 break;
             case KeyEvent.VK_RIGHT:
                 keyRight = true;
                 break;
            public void paintComponent(Graphics g){
            super.paintComponent(g); 
            g.drawImage(images[current[0].color],current[0].x,current[0].y,this);
            g.drawImage(images[current[1].color],current[1].x,current[1].y,this);
           // g.drawImage(images[current[2].color],current[2].x,current[2].y,this);
            //g.drawImage(images[current[3].color],current[3].x,current[3].y,this);
            class TimerAction implements ActionListener {
            public void actionPerformed(ActionEvent e) {
              if (keyLeft){
                puyoBoundsLeft(current);
                keyLeft = false;
              else if (keyRight) { 
                puyoBoundsRight(current);
                keyRight = false;
              if (current[0].y + image_height <= MAX_Y && current[1].y + image_height  <= MAX_Y)
                 current[0].y += DELTA_Y;
                 current[1].y += DELTA_Y;
            else {
                   setAnimation(false);
               repaint();   
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    class PuyoAnimation extends JPanel {
       PuyoLogic pl;   
      public PuyoAnimation() {
           pl = new PuyoLogic();       
           JButton startButton = new JButton("Start");       
           JButton stopButton  = new JButton("Stop");
           startButton.addActionListener(new Start());
           stopButton.addActionListener(new Stop());
           JPanel button = new JPanel();
           button.setLayout(new FlowLayout());
            button.add(startButton);
            button.add(stopButton);
           this.setLayout(new BorderLayout());
           this.add(button, BorderLayout.SOUTH);
            this.add(pl,BorderLayout.CENTER);
        class Start implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                pl.setAnimation(true);
        class Stop implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                pl.setAnimation(false);
    }//endclass Edited by: Riz01 on Oct 14, 2009 1:35 PM

    Don't use a loop to do graphics, it will make your game unresponsive and possibly draw enough resources from your machine to make the entire system unresponsive. You make a javax.swing.Timer object and using the timing there to drive your animations.

  • Loop statement in oracle

    SOurce Table
    ID ADDRESS1 ADDRESS2
    11 12 QA ST. 16 SELI ST.
    12 455 LANE 3222 ROGER LANE
    Target Table:
    ID TYPE ADDRESS1 ADDRESS2
    11 NORMAL XYZ st.
    11 HIGH ABC st.
    12 NORMAL TYU st.
    12 HIGH XCV st.
    Description of Problem:
    I have a source table in which ADDRESS1 pertains to Address1 column in target table where type= 'NORMAL' and ADDRESS2 pertains to Address 2 column in target table where type = 'HIGH'
    I want to update the target table using source table on ID so that Address column in target table is updated corresponding to the ADDRESS 1 AND ADDRESS 2 columns from source table.
    I am using the following code:
    MERGE
    INTO TARGET tgt
    USING SOURCE src
    ON (src.ID = tgt.ID)
    WHEN MATCHED
    THEN
    UPDATE
    SET tgt.address1 = src.address1
    where TGT.type = '=NORMAL'
    How can i update the address2 column in the target table where type = 'HIGH'
    in one shot.
    I dont want to write two seprate queries.
    I think i can use loop statement.
    Please Advice as how to use loop, else any other suggestion.
    Thanks

    user11018028 wrote:
    SOurce Table
    ID ADDRESS1 ADDRESS2
    11 12 QA ST. 16 SELI ST.
    12 455 LANE 3222 ROGER LANE
    Target Table:
    ID TYPE ADDRESS1 ADDRESS2
    11 NORMAL XYZ st.
    11 HIGH ABC st.
    12 NORMAL TYU st.
    12 HIGH XCV st.
    Description of Problem:
    I have a source table in which ADDRESS1 pertains to Address1 column in target table where type= 'NORMAL' and ADDRESS2 pertains to Address 2 column in target table where type = 'HIGH'
    I want to update the target table using source table on ID so that Address column in target table is updated corresponding to the ADDRESS 1 AND ADDRESS 2 columns from source table.
    I am using the following code:
    MERGE
    INTO TARGET tgt
    USING SOURCE src
    ON (src.ID = tgt.ID)
    WHEN MATCHED
    THEN
    UPDATE
    SET tgt.address1 = src.address1
    where TGT.type = '=NORMAL'
    How can i update the address2 column in the target table where type = 'HIGH'
    in one shot.
    I dont want to write two seprate queries.
    I think i can use loop statement.
    Please Advice as how to use loop, else any other suggestion.
    ThanksMaybe this? If you provide scripts for create tables and sample data this wouldn't be a guess :)
    MERGE
    INTO TARGET tgt
    USING SOURCE src
    ON (src.ID = tgt.ID)
    WHEN MATCHED
    THEN
    UPDATE
    SET tgt.address1 = case when TGT.type  = 'NORMAL' then src.address1 else tgt.address1 end
    ,   tgt.address2 = case when TGT.type != 'NORMAL' then src.address2 else tgt.address2 end

  • How do we use if statement in labview?moreover can i use if statement inside for loop?

    how do we use if statement in labview?moreover can i use if statement inside for loop?

    The if statement in LabVIEW is the Case structure. You can find that on the Structures palette right next to the For Loop. If you're still on the same subject about terminating a for loop early, then what you do is enclose your functions inside the loop with a case statment and make one of the case's empty except for one or more constants that you might have to wire. Hopefully, the attached picture will explain what I mean. Also, as I mentioned in one of your other posts, I think this technique is not as good as using a while loop. The array in the attached example is the same size no matter what and you may have to handle stripping extra or invalid elements.
    Attachments:
    For_Loop_with_Case.jpg ‏21 KB

  • Is it possible to skip the screen in BDC using IF statement.

    Hi Friends,
    I have written a report using BDC for tcode CO11 thru recording using CALL TRANSACTION.
    Case 1:
    If I go to transaction CO11 (screen number 100) and give the  order number which has more than 1 operations to be partially confirmed and press ENTER a pop-up screen (screen number 140) appears where in I need to select the operation number and after selecting the required operation number it automatically takes me to another screen (screen number 150).
    Case 2:
    If I go to transaction CO11 (screen number 100) and give the  order number which has only 1 operation to be partially confirmed and press ENTER it directly takes me to screen 150 skiping screen 140.
    When I enter the order number which has more than 1 operations to be partially confirmed on my selection screen, my code is working fine as needed.
    But, when I enter the order number which has 1 operation to be partially confirmed on my selection screen, it is giving me error in my BDCMSGCOLL saying that the screen 140 doesn't exist.
    Is there any way, Can I skip screen 140 using IF statement?
    My thoughts:
    1. calling screen 100.
          After calling screen 100, I have put the pop-up operation numbers in an ITAB.
          DESCRIBE table lines ITAB <variable>.
          At NEW <order-field>.
          IF <variable> = 1.
    2. calling screen 140. "I need some help here to skip the screen 140
                                        " Will this logic work?
          ENDIF.
          ENDAT.
    3. calling screen 150.
    Rest everything is working fine.
    Will my above logic works correctly? I would appreciate if someone could help me with this.
    Thanks in Advance.

    Hi,
    Try something like this:
    1. Call Screen 100.
    Check if screen 140 needs to be called depending on your custom logic. Lets say you populate a variable as 'X' if it needs to be called.
    Then write:
    if valiable = 'X'.
      Call screen 140.
      Enter Screen 140 details.
    endif.
    Call screen 150.
    Here the 'Call Screen' is nothing but the code you extracted after BDC recording.
    Thanks.
    Ravi'

  • Using a recordset in a loop statement

    Hello all,
    I am (still) trying to get an Excel spreadsheet for a dynamically created table. A crucial parameter of the problem is that I do not know the column names for my table at runtime, as it is created by a pivot query.
    I was very excited to find Tom Kyte's post on "Using a recordset in a loop statement:
    http://asktom.oracle.com/pls/ask/f?p=4950:8:4768329722850645393::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:464820324673,
    This is precisely the solution I need. Unfortunately for me, when I create my stored procedure, it doesn't compile. As suggested I systematically renamed EXEC_SQL to DBMS_SQL, then I made some minor tweaks to integrate with HTMLDB:
    create or replace procedure export_tsv as
    connection_id DBMS_SQL.CONNTYPE
    default DBMS_SQL.default_connection;
    cursorID DBMS_SQL.CURSTYPE;
    nIgn number;
    columnValue varchar2(4000);
    ncols number;
    sep varchar2(1);
    colName varchar2(40);
    colLen number;
    coltype number;
    BEGIN
    IF DBMS_SQL.is_connected = FALSE THEN
    Message('No primary connection. Please connect.');
    RETURN;
    END IF;
    -- set up for excel spreadsheet
    htp.init;
    owa_util.mime_header ('application/vnd.ms-excel',false);
    htmldb_application.g_page_text_generated := true;
    htp.p('Content-Disposition: attachment;
    filename=myexport.txt');
    owa_util.http_header_close;
    -- end excel spreadsheet setup
    cursorID := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(cursorID, 'select * from exp_data', DBMS_SQL.V7);
    nIgn := DBMS_SQL.EXECUTE(cursorID);
    for i in 1 .. 1000 loop
    begin
    DBMS_SQL.describe_column( connection_id, cursorId, i,
    colName, colLen, colType );
    DBMS_SQL.define_column(cursorID, i, columnValue,
    4000 );
    exception
    when DBMS_SQL.invalid_column_number then
    ncols := i-1;
    exit;
    end;
    end loop;
    while (DBMS_SQL.fetch_rows(cursorID) > 0)
    loop
    sep := '';
    for i in 1 .. ncols loop
    DBMS_SQL.COLUMN_VALUE(cursorID, i, columnValue);
    -- print the column value
    htp.p( sep || columnValue);
    sep := chr(9);
    end loop;
    -- print the end of line CRLF
    htp.p(chr(13)|| chr(10));
    END LOOP;
    DBMS_SQL.CLOSE_CURSOR(cursorID);
    DBMS_SQL.CLOSE_CONNECTION;
    END;
    When I try to run this in the HTMLDB SQL Command Processor, I see the following error:
    ERROR at line 2: PLS-00302: component 'CONNTYPE' must be declared
    Can someone provide me with the correct translation of Tom Kyte's approach into the HTMLDB idiom?
    Thanks in advance,
    susan

    Questions about opening multiple worksheets on the web:
    I have this link that submits the page and my process calls a PL/SQL procedure that prints out an excel spreadsheet. When I hit the link again, the spreadsheet does not update. I can make the spreadsheet update from ASP or a java servlet, but never from the PL/SQL procedure. Even if I use the procedure to print out XML in XMLSS format, so that I can change worksheet name, it still does not update on successive calls.
    My code:
    PROCEDURE SQL_TO_EXCEL(p_sql in varchar2)
    as
    l_cursor integer default dbms_sql.open_cursor;
    l_status PLS_INTEGER;
    l_desc dbms_sql.desc_tab;
    l_col_cnt number;
    l_columnValue varchar2(4000);
    l_row varchar2(4000);
    l_frow PLS_INTEGER;
    l_lrow PLS_INTEGER;
    l_cols varchar2(4000);
    l_date date;
    begin
    --set mime type to Excel
    htp.init;
    owa_util.mime_header('application/vnd.ms-excel',true);
    --htp.p('Pragma: no-cache');
    --htp.p('Cache-Control: no-cache');
    --owa_util.http_header_close;
    htmldb_application.g_page_text_generated := true;
    --htp.htmlOpen;
    --htp.headOpen;
    --htp.title('SQL to Excel Export');
    --htp.headCLose;
    --htp.bodyOpen;
    execute immediate 'alter session set nls_date_format=''dd-mon-yyyy'''; -- hh24:mi:ss''';
    DBMS_SQL Calls
    dbms_sql.parse(l_cursor,rtrim(p_sql,';'),dbms_sql.native);
    l_status := dbms_sql.execute(l_cursor);
    dbms_sql.describe_columns(l_cursor,l_col_cnt,l_desc);
    l_frow := l_desc.FIRST;
    l_lrow := l_desc.LAST;
    if l_col_cnt > 0 then
    FOR colind IN l_frow..l_lrow LOOP
    l_cols := l_cols||chr(9)||l_desc(colind).col_name;
    END LOOP;
    htp.p(ltrim(l_cols,chr(9)));
    end if;
    for i in 1 .. l_col_cnt loop
    if l_desc(i).col_type = 12 then
    dbms_sql.define_column(l_cursor,i,l_date);
    else
    dbms_sql.define_column(l_cursor,i,l_columnValue,4000);
    end if;
    end loop;
    --l_status := dbms_sql.execute(l_cursor);
    while (dbms_sql.fetch_rows(l_cursor) > 0) loop
    for i in 1 .. l_col_cnt loop
    if l_desc(i).col_type = 12 then
    dbms_sql.column_value(l_cursor,i,l_date);
    l_row := l_row||chr(9)||to_char(l_date,'DD-MON-YYYY HH24:MI:SS');
    else
    dbms_sql.column_value(l_cursor,i,l_columnValue);
    l_row := l_row||chr(9)||l_columnValue;
    end if;
    end loop;
    htp.p(ltrim(l_row,chr(9)));
    l_row := '';
    end loop;
    --htp.bodyclose;
    --htp.htmlclose;
    dbms_sql.close_cursor(l_cursor);
    exception
    when others then
    dbms_sql.close_cursor(l_cursor);
    htp.p(SQLERRM||chr(10)||p_sql);
    end SQL_TO_EXCEL;
    Any ideas on how I can get the spreadsheet to update from repeated calls to the PL/SQL?

  • Creating Statement of Cash Flows using FSGs and ADI

    Has anyone tried to create a SCF in FSG's using ADI for customizations and macros? I am realizing that I can automate a few things for the client like some of the variances needed from B/S accounts.For the most part, it seems thatI cannot create a report directly from FSG's. I have had to create supporting reports and with macros I have tried to automate as much as possible to create the SCF from the supporting reports. The accountants will still have a few manual things to do but it should be much faster than initially. Is this the only way with FSG's or has someone gotten much closer to the real McCoy?

    Gordon,
    Yes, ik did look at the Cash Flow report.
    What I need is similar to the Comparison Report, where you will take 2 Balance Sheets of 2 years and compare them. But I need to take this further, by then taking the Diufference between these 2 Balance Sheets and creating the 'Statement of Cash Flows'. This will not use all theBalance Sheet accounts, only certain ones.
    Thanks for your help.
    Marli

  • How to process screen flow using PAPI and WAPI

    Dear all,
    I need to process the screen flow from PAPI or WAPI.
    I want to know which API(PAPI or WAPI) i should use and how to achieve that.
    as far as i know, there is two part in WAPI. (external to work portal, throungh the html process API, and internal to the work Portal, through the URLForAction java class).
    where can i get documentation for (internal to the work Portal, through the URLForAction java class)?
    With Regards,
    Wai Phyo

    Hi Bhaskar,
    If you zip probably the size would come less which may increase his performance a little. But I feel SAP also dont recommend this much load with PI.
    If I am in his shoes then I will do a simple FTP without using PI itself. Else will look into other options. Thats my two cents.
    Hope this alexs blog will give an idea to Sai:
    /people/alessandro.guarneri/blog/2007/02/21/sap-xi-acting-as-a-huge-file-mover
    Regards,
    ---Satish
    Edited by: Satish Reddy on Jul 20, 2011 3:02 PM

  • Reg : Screen Flow and Progress States /Progress Bar

    Hi All,
    I've used 'Screen Flows' for the user to navigate to different screens based on the user input.
    By doing so, I'm not been able to use Progress Stages or Progress Bar features :(
    If i remove the screen flow, then Progress Stages/ Progress Bar shows up.
    But as per the screen order, it shows up all the screens, even if I don't want to display it to the user on certain conditions.
    I'm using OPA 10.4.
    How do i display the Progress Stages/ Progress Bar ,using the screen flow..
    Any help would be greatly appreciated
    Regards,
    Kumar

    Only screen orders support progress stages. Screen flows do not.
    The recommended approach is to organize the screens into folders. It is only the top-level (screens or folders) that are then shown as the stages.
    Davin.

  • About screen flow (using tag library)

    dear all, i have the following problem...
    according to the sample about using tag library to make the screen flow of jsp pages, i successfully construct the tag for showing pages as needing. it works ok but when the number of pages exceeds 29, an exception arrises:
    Exception:
    java.lang.VerifyError: jsp_eventmanager_html.template
    in which template is the jsp page for the tags... i do try to set the size of the buffer but it does no help.
    can anyone help me solve this problem? thanks in advance...
    yinman.
    null

    sure,
    in the message.jsp
        <p>
        <!-- use messages tag to display errors -->
        <logic:messagesPresent>
          <bean:message key="error.header"/>
            <ul>
              <html:messages id="error">
                <li><bean:write name="error"/></li>
              </html:messages>
            </ul>
         </logic:messagesPresent>
         <p>
        <!-- use messages tag to display messages -->
        <logic:messagesPresent message="true">
          <bean:message key="message.header"/>
            <ul>
              <html:messages message="true" id="msg">
                <li><bean:write name="msg"/></li>
              </html:messages>
            </ul>
        </logic:messagesPresent>in the tablibs.jsp
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

  • TS3274 When using my IPad, the screen will go dim and I need to tap it restore it  to its bright state. This same thing happens  many, many times while I am using it.

    When I am using my IPad, the screen will get dim and I need to tap the screen to get it to brighten up again.  This happens repeatedly while I am using it. Is there something I can do to stop that from happening?

    You don't necessarily need to set it to never...being set that way, you'll risk depleting the battery in case you forget to lock the screen.
    Instead, use a value greater than your previous 2 minute setting...see which time setting would work for you. The settings are:
    2 Minutes
    5 Minutes
    10 Minutes
    15 Minutes
    Never

  • How to use hide statement

    hi experts,
                  I am working with interactive report using hide statement.for thr first time it is working properly but the next time it is not working properly.Hope some clear statement has to be given ..
    Please give some simple progarm for interactiev report in list using hide statement.
    regards,
    mani

    HIDE dobj.
    Effect
    This statement stores the content of a variable dobj together with the current list line whose line number is contained in sy-linno in the hide area of the current list level. The data type of the variables dobj must be flat and no field symbols can be specified that point to rows of internal tables, and no class attributes can be specified. The stored values can be read as follows:
    For each user action in a displayed screen list that leads to a list result, all the row values stored using HIDE - that is, the row on which the screen cursor is positioned at the time of the event - are assigned to the respective variables.
    If a list row of an arbitrary list level is read or modified using the statements READ LINE or MODIFY LINE, all the values of this row stored using HIDE are assigned to the respective variables.
    Notes
    The HIDE statement works independently of whether the list cursor was set. In particular, variables for empty list rows can be stored - that is, rows in which the list cursor was positioned using statements like SKIP.
    The HIDE statement should be executed immediately at the statement that has set the list cursor in the row.
    Outside of classes, prior to release 7.0, for dobj constants and literals could still be specified. However, it was not possible to read them at list events and in the READ LINE statement.
    Example
    Storing square numbers and cubic numbers for a list of numbers. The example shows that arbitrary variables can be stored independently of row content. In the real situation, one would more likely store only the number and execute the calculation, when required, in the the event block for AT LINE-SELECTION.
    REPORT ...
    DATA: square TYPE i,
    cube TYPE i.
    START-OF-SELECTION.
    FORMAT HOTSPOT.
    DO 10 TIMES.
    square = sy-index ** 2.
    cube = sy-index ** 3.
    WRITE / sy-index.
    HIDE: square, cube.
    ENDDO.
    AT LINE-SELECTION.
    WRITE: square, cube.
    HIDE f.
    The contents of f related to the current output line are stored. If this line is selected, f is filled automatically with the stored value.
    The selection can be made using:
    AT LINE-SELECTION
    AT PFx
    AT USER-COMMAND
    READ LINE
    You do not have to output the field with WRITE in order to be able to store its value.
    The HIDE statement does not support structures that contain tables (deep structures).
    System fields that are particularly useful in interactive reporting are listed in the system fields for lists documentation.
    You cannot save lines or components of lines of an internal table that is addressed using a field symbol to the HIDE area. (Compare the ASSIGNING addition to the READ and LOOP statements). Assign the contents of the line or component to a global variable and save this instead.
    You can only write variables to the HIDEarea.
    In ABAP Objects, the following statements acause an error message:
    CONSTANTS f.
    HIDE: '...', f.
    Correct syntax:
    DATA: f1, f2.
    HIDE: f1, f2.
    Cause:
    Interactive list events cause the fields hidden by the HIDE command to be overwritten with values in the HIDE area, which means that they must be changeable.n.
    Reward points if useful.

  • How to use read statement on a select options

    Hi all,
    I am trying to read the all the values on user selection screen select options.
    I have an internal table loaded with data.
    So while looping this internal table, I need to check the table certain tank field (lgort) against the select options tank values entered by user.
    It is fine when user uses the multiple values on the select options since I use the "READ" statement on the select options and get the matching values.
    Example: when user uses the multiple value selection on a select-options to enter values A554 and A555
    The select-options table will be:
    sign   option    low         high
    I          EQ       A554
    I          EQ       A555
    LOOP AT gt_output_location INTO gw_output.
      READ TABLE s_lgort INTO gw_lgort WITH KEY low = gw_output-lgort.
        IF sy-subrc = 0.
        * append row to another table.
        ENDIF.
    ENDLOOP.
    Problem:
    Example: when user uses range on a select-options to enter values A554 and A555
    sign   option    low         high
    I          BT      A554       A555
    The read statement can only get matching value A554.  
    LOOP AT gt_output_location INTO gw_output.
      READ TABLE s_lgort INTO gw_lgort WITH KEY low = gw_output-lgort.
        IF sy-subrc = 0.
        * append row to another table.
        ENDIF.
    ENDLOOP.
    Anyone have any idea on this?? Thanks!!

    Hi all, I need to consider each and every lines of the gt_output_location as there are other fields need to consider also. Basically I am checking each and every lines of this table to see which lines I need to append to another table.
    That is why I did not use  "LOOP AT gt_output_location INTO gw_output WHERE lgort IN s_lgort"
    The full gt_output_location:
    LOOP AT gt_output_location INTO gw_output.
    *      IF p_lgort = space AND p_umlgo = space.
           IF gv_lines_lgort = 0 AND gv_lines_umlgo = 0.
    *       only append those from tank <> to tank
             IF gw_output-lgort <> gw_output-umlgo.
               APPEND gw_output to gt_output.
               CLEAR gw_output.
             ELSE. "from tank == to tank
    *         append those from plant <> to plant
               IF gw_output-werks <> gw_output-umwrk.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ENDIF.
             ENDIF.
    *      ELSEIF p_lgort = space AND p_umlgo <> space.
           ELSEIF gv_lines_lgort = 0 AND gv_lines_umlgo > 0.
    *        IF gw_output-umlgo = p_umlgo.
             READ TABLE s_umlgo INTO gw_umlgo WITH KEY low = gw_output-umlgo.
             IF sy-subrc = 0.
    *         only append those from tank <> to tank
               IF gw_output-lgort <> gw_output-umlgo.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ELSE. "from tank == to tank
    *           append those from plant <> to plant
                 IF gw_output-werks <> gw_output-umwrk.
                   APPEND gw_output to gt_output.
                   CLEAR gw_output.
                 ENDIF.
               ENDIF.
             ENDIF.
    *      ELSEIF p_umlgo = space AND p_lgort <> space.
           ELSEIF gv_lines_umlgo = 0 AND gv_lines_lgort > 0.
    *        IF gw_output-lgort = p_lgort.
             READ TABLE s_lgort INTO gw_lgort WITH KEY low = gw_output-lgort.
             IF sy-subrc = 0.
    *         only append those from tank <> to tank
               IF gw_output-lgort <> gw_output-umlgo.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ELSE. "from tank == to tank
    *           append those from plant <> to plant
                 IF gw_output-werks <> gw_output-umwrk.
                   APPEND gw_output to gt_output.
                   CLEAR gw_output.
                 ENDIF.
               ENDIF.
             ENDIF.
           ELSE.
    *        IF gw_output-lgort = p_lgort AND gw_output-umlgo = p_umlgo.
             READ TABLE s_lgort INTO gw_lgort WITH KEY low = gw_output-lgort.
             IF sy-subrc = 0.
    *         only append those from tank <> to tank
               IF gw_output-lgort <> gw_output-umlgo.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ELSE. "from tank == to tank
    *           append those from plant <> to plant
                 IF gw_output-werks <> gw_output-umwrk.
                   APPEND gw_output to gt_output.
                   CLEAR gw_output.
                 ENDIF.
               ENDIF.
             ENDIF.
             READ TABLE s_umlgo INTO gw_umlgo WITH KEY low = gw_output-umlgo.
             IF sy-subrc = 0.
    *         only append those from tank <> to tank
               IF gw_output-lgort <> gw_output-umlgo.
                 APPEND gw_output to gt_output.
                 CLEAR gw_output.
               ELSE. "from tank == to tank
    *           append those from plant <> to plant
                 IF gw_output-werks <> gw_output-umwrk.
                   APPEND gw_output to gt_output.
                   CLEAR gw_output.
                 ENDIF.
               ENDIF.
             ENDIF.
           ENDIF.
           CLEAR gw_lgort.
           CLEAR gw_umlgo.
         ENDLOOP.

Maybe you are looking for

  • How do you use the same wireless keyboard with multiple devices?

    My apologies in advance if this question has been answered previously.  There was nothing in the owner's manual (for the keyboard) that answered this.  I did do a rough search that did not yield an answer to this: I have one wireless keyboard I am us

  • How can I find out on the command line, when the last time machine backu succeeded?

    For verification of ~60 MacBooks, I'd like to write a script that posts status of the last backup via mail or HTTP call to our central server. How can I lookup this information?

  • Deletion of Line item in Po after GR occurs

    Hi SAP Expert, Can we make the system to block the users from perform deletion the line item in PO after GR has been made? There are case that the user simpled delete the line item in PO which GR has been perform and we what to block the users from d

  • Can't get files to show up in PSE 2

    I am using PSE 2. When I go to "file - open" , no files are displayed. This happens for any folder I navigate to in the "look in " box. I know there are files in these folders.  If I manually enter the file name in "file name" field the picture will

  • EXCEL - SAP integration ... which way forward?

    Hi folks, A customer (having a SAP 4.6D system) would like to have an EXCEL sheet being populated with SAP data with some additional formatting (headers, subheading, totals, colouring cells based on certain values; etc ...) within the EXCEL sheet ...