Help needs on Report Painter

Hi friends,
I needs some information on Report Painter.
I already searched in help.sap.com.
but i cannot get these below information.
Please help me out. it is very urgent for me.
1.what are the general Tcodes used in this ?
2.when and where should  we use report painter concept over standard reporting ?
3. Is report painter exclusively used for any specific module like Project systems, FI/CO. or it can be used across all the SAP Functional Modules?
4. I tried to create Report using Report painter Tcode CJE4
then i got some basic doubts as below?
a) what is difference between Project report and Summarization reports for project in report painter?
b)Is it mandatory to create Form then attaching this Form to Report?
c)what is difference in Two Axes, One axis with key figure,
One axis without key figure structure ?
d) what is meant by Key figure and Characteristics in this ?
Thanks in advance.
Regards,
Sateesh

Report painter
the below Pdf should help you
http://www.virtuosollc.com/PDF/Get_Reporter.pdf
Reward points..

Similar Messages

  • Help needed on Report painter

    Hi All,
    I have a requirement where i have to copy standard cost center report S_ALR_87013611 and change the G/L account to Alternative account and text.
    how do i copy this report painter report and modify the G/L account as required.
    i haven't worked on report painter .
    Points guaranteed !!!!
    Thanks & Regards,
    Raghavendra

    Hi,
    The Transaction code to create creating report writer it is GR31 and report painter is GRR1 and for .
    Reaport Painter allows you to create reports using data from SAP application components, which you can adapt to meet your individual requirements.
    Many of your reporting requirements can already be met by using the standard reports provided by various SAP application components. If these SAP standard reports do not meet your reporting needs, Report Painter enables you to define your specific reports quickly and easily.
    Report Painter fulfills a function similar to Report Writer, but is easier to use. Most of the functions found in Report Writer have been built into Report Painter; however, you do not need to be familiar with all Report Writer concepts (such as Sets) in order to use Report Painter.
    When executing a Report Painter report, it is displayed by the system in Report Writer format. You thus have access to the same functions as for Report Writer reports defined in the same way, and can combine Report Painter and Report Writer reports together in a report group.
    Report Painter uses a graphical report structure, which forms the basis for your report definition and displays the rows and columns as they appear in the final report output.
    To facilitate report definition, you can use many of the standard reporting objects provided by SAP (such as libraries, row/column models, and standard layouts) in your own specific reports. When you define a Report Painter report you can use groups (sets). You can also enter characteristic values directly.
    Advantages of Report Painter include:
    Flexible and simple report definition
    Report definition without using sets
    Direct layout control: The rows and columns are displayed in the report definition as they appear in the final report output, making test runs unnecessary.
    Hope this helps u.
    Regards,
    Seema.

  • Need Help Using the Report Painter

    Hi experts,
    i'm using report painter GRR1, how can i resize the Lead Column? i need it to increase its length, i had already maintained the texts(short middle and long texts).
    Thanks for the help,
    zryxel

    Go to FORMATTING > COLUMNS > Select the Format Group and Edit Column Width.
    Reward points if useful.
    Salamat!
    AJ

  • Help needed in optimizing painting logic

    Hi,
    I am working on a Applet where i have to do a lot of painting, the applet is kind of microsoft project, where u can define a activity as a rectangle and then u can select the rectangle and drag it to some other date,
    i am posting a code below, which i am using to draw all the rectangles,
    but some times when there is a lot of data scrolling is really very slow
    Can any one look at the code, and let help me optimize it,
    U can copy the code, compile and run it to see what i mean by slow,
    just in class data , change the value 600 to some thing less like 50 and it works very fast
    //start code
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.ArrayList;
    public class TestDisplaySize extends JFrame
         private     JScrollPane scrollPane ;
         private MyPanel panel ;
         public TestDisplaySize()
              super("layered pane");
              this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              panel = new MyPanel();
              scrollPane = new JScrollPane(panel);
              Container contentPane = this.getContentPane();
              contentPane.add(scrollPane, BorderLayout.CENTER);
              setSize(new Dimension(800,600));
              this.setVisible(true);
              JViewport viewPort = scrollPane.getViewport();
         class MyPanel extends JPanel
              private int height;
              private int last;
              private Data data;
              public MyPanel()
         this.setBackground(Color.white);
         this.setOpaque(true);
         data = new Data();
         int size = data.getSize();
         height = size * 50;     
         last = data.getDataSize(0);
         int last1 = last -1;
         int length = data.getX(0, last1) + 100;
         System.out.println ("Lenght " + length + " height " + height);
         setPreferredSize(new Dimension(length, height) );     
         public void paintComponent(Graphics g)
    super.paintComponent(g);
    setBackground(Color.white);
    Rectangle r = scrollPane.getViewport().getViewRect();
    g.setClip((Shape)r);
    g.setColor(Color.blue);
    int x = 0;
    for(int i = 0; i < last ; i++)
         x +=60;
         g.drawLine(x, 0, x, height);
         g.drawString(String.valueOf(i), x, 10);
    int size = data.getSize();
    int width = 30;
    int height = 20;
    int yAxis = 20;
    g.setColor(Color.cyan);
    for(int i = 0; i < size; i++)
         int dataSize = data.getDataSize(i);
         for(int k = 0; k < dataSize; k++)
              int xAxis = data.getX(i, k);
              g.fill3DRect(xAxis, yAxis, width, height, true);
         yAxis = yAxis + 50;
    private class Data
              private ArrayList totalData = new ArrayList();
              public Data()
                        for(int i = 0; i < 600; i++)
                        ArrayList data = new ArrayList();
                        int l = 50;
                        for(int k = 0; k < 600; k++)
                             data.add(new Integer(l));
                             l = l + 50;
                        totalData.add(data);
              public int getSize()
                   return totalData.size();     
              public int getDataSize(int i)
                   return ((ArrayList)totalData.get(i)).size();     
              public int getX(int x, int y)
                   ArrayList data = (ArrayList)totalData.get(x);
                   Integer i = (Integer)data.get(y);
                   return i.intValue();
         public static void main(String args[])
         new TestDisplaySize();

    You should only paint what is visible. For example if you are presenting a grid of 100 x 100 boxes. And each box is 20 pixels wide and 20 pixels high, then that would create an <image> the size of 2000 x 2000. That is big ;-)
    What you want to do, is calculate what portion of the <image> that is viewable in your scrollpane and then only perform the paint operations on those boxes. For example, if the viewports width is 200 and its hieght is 80, then you should only paint 10 x 4 boxes (40 boxes total, each 20x20 pixels in size) -- The trick is figuring out what boxes need to be painted.!! I'll leave that up to you, but should be able to find code examples on the net doing something of this sort.
    Hope this helps, and makes sense.
    Cory

  • Help Needed in Reports (Breaks, totals)

    Hi All,
    I am a fairly new user in Apex and would appreciate any help. I have a requirement to generate a report as follows:
    In below reports 1001,1002 are projects and i need to obtain project totals (e.g. 500,300,150,50) displayed conditionally. At first i had to display only projects and i could do it using 1 column report break.
    But how can i include the totals in the report breaks. And its more than 3 columns that i would need in breaks.
    Any suggestions? I dont think i can use breaks for this as APEX does not support more than 3 columns.
    Name task budget Expense commitments balance end_Date
    1001 500 300 150 50 15-01-2008
    1001-1-aa 1 200 100 50 50 15-01-2008
    1001-2-ab 2 300 200 100 0 15-01-2008
    1002 500 300 150 50 15-01-2008
    1002-1-aa 1 200 100 50 50 01-01-2008
    1002-2-ab 2 300 200 100 0 01-01-2008
    Thanks
    Sumana

    Hi All,
    Thanks Arie, your suggestion helped me to move in the right direction.
    I could display the project totals as needed without using breaks, but using a combination of query and report template change. The above examples given helped to certain extent.
    Now I have a requirement which is an extention to the above problem. I dont know if I must start a new thread for this.
    I need the report totals to be displayed conditionally. This condition has 3 cases, out of which I am able to achecive two.
    For the 3rd I would really appreciate any help/suggestions. I tried changing query/template. But it dint help.
    Here is the prob:
    Col1 Col2 Col3
    Project_name sum(amt) sum(amt)
    task1 amt amt
    task2 amt amt
    In above, the sum(amt) must be displayed when project_owner is person logged in.
    Col1 Col2 Col3
    Project_name
    task1 amt amt
    task2 amt amt
    In above, when task owner is person logged in then I must not display the sum(amt).
    I am successful in acheving both of the above, when all tasks owner is person logged in and when project owner is person logged in.
    But when I have project owner = person logged in and task1 owner = person logged in and task2 owner != person logged in my display comes out as shown below.
    Col1 Col2 Col3
    Project_name sum(amt) sum(amt)
    Project_name
    task1 amt amt
    *task2                     amt                           amt
    The actual display for third case must be:
    Col1 Col2 Col3
    Project_name sum(amt) sum(amt)
    task1 amt amt
    *task2                     amt                           amt
    Thanks
    Sumana

  • Help needed to report open orders from R/3 SD!

    Hello all,
    I need to report net open order value from SAP R/3 SD to BW. I'm using cube 0SD_C05 to report inquiry vs. quotation vs. orders. Is there any standard ods object in business content which can be used to report open orders? If not, will it be a good idea to create a ODS object and use it directly for reporting open orders? This BW installation is for a small IT company and we don't generate a lot of quotations or orders on a daily basis. Please guide.
    Thanks and Regards,
    Sumit

    hi Sumit,
    check if you can use 0SD_O01 - order item data
    http://help.sap.com/saphelp_nw2004s/helpdata/en/41/2b4f815f153014e10000000a114e5d/content.htm
    other business content ods objects are 0sd_o02-05.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/0b/f5cc3c7dea9006e10000000a114084/frameset.htm
    (expand left side 'ods')
    hope this helps.

  • Help needed with Report Design

    Hi All,
    Here is the requirement.
    Period Type(holds 2 values) : Payment and Vested.
    we have field 'Total Days' which is calculated based on "User Selected" Period Type.
    For example, When Period Type is Payment,
    If start date is less than or equal to grant date and end date is less than or equal to vest date, then calculation is (End Date - Grant Date)+1
    If start date is greater than grant date and end date is less than or equal to vest date, then calculation is (End Date - Mobility Start Date)+1 (similarly 2 more if conditions) ...we have similar calculation for Period Type - 'Vested'.
    This Period Type is a multiselect Prompt. How can this be achievable.
    Any thoughts will be greatly appreciated.
    Thanks.

    I simply did as i got a tip on FB to do
    quote from adobe themselves on facebook "Adobe Illustrator You might also want to try asking on our forums as there are many people that can help there as well! http://forums.adobe.com/community/illustrator/illustrator_general"
    sry if it was wrong of me, simply thought there might be someone nice out there to give a helping hand
    Date: Tue, 5 Jun 2012 13:41:48 -0600
    From: [email protected]
    To: [email protected]
    Subject: Help needed with a design!
        Re: Help needed with a design!
        created by in Illustrator - View the full discussion
    This really isn't the place to ask for free services.
         Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/4467790#4467790
         To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/4467790#4467790. In the Actions box on the right, click the Stop Email Notifications link.
         Start a new discussion in Illustrator by email or at Adobe Forums
      For more information about maintaining your forum email notifications please go to http://forums.adobe.com/message/2936746#2936746.

  • Help needed for report on tables vbak and vbap

    Hello,
    I needed help in one of my work issues, this is my first project and Iam still learning. kindly help.
    I was asked to take erdat,vbeln,posnr from selection screen and compare it with the data already in tables vbap,vbak. If the data
    already exists and exception needs to be raised saying that the 'data exists',but if the data is not present in the tables the
    tables have to be updated. This has to be done using function module only.
    Then I have to write a REPORT calling the above function module and finally displaying the number of records updated and the
    list of them.
    I have started writing a function module:
    FUNCTION z_tableupdate.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(DATE) LIKE  VBAK-ERDAT DEFAULT SY-DATUM
    *"     VALUE(SALESORDERNO) LIKE  VBAK-VBELN
    *"     VALUE(ITEMNO) LIKE  VBAP-POSNR
    *"  EXPORTING
    *"     VALUE(EX_VBAP) LIKE  VBAP STRUCTURE  VBAP
    *"     VALUE(SYS) LIKE  SY-SYSID
    *"     VALUE(EX_VBAK) LIKE  VBAK STRUCTURE  VBAK
    *"  EXCEPTIONS
    *"      DATA_UPDATED
    *"      DATA_EXISTS
      SELECT * FROM vbak INTO vbak_wa WHERE erdat = date
                                        AND vbeln = salesorderno.
      ENDSELECT.
      SELECT * FROM vbap INTO vbap_wa WHERE posnr = itemno.
      ENDSELECT.
      IF sy-subrc EQ 0.
        ex_vbap = vbap_wa.
        ex_vbak = vbak_wa.
      ELSE.
        RAISE data_exists.
      ENDIF.
      sys = sy-sysid.
    ENDFUNCTION.
    How is the above code for function module, will this work??
    Now can I write a report to call the above function module and update the record?? if so, how to update ??? please help...Lots of thanks in advance.

    Hi
    Welcome to SDN forum
    Whay can't you write a simple report in SE38.
    why you are using Fun module
    Nothing wrong in it.
    But first become perfetc in reports in SE38 and then do using the fun modules
    write a simple select statement like
    SELECT AVBELN AERDAT BPOSNR BMATNR
    INTO TABLE ITAB
    FROM VBAK AS A JOIN VBAP ON
    AVBELN = BVBELN
    WHERE A~VBELN  IN  S_VBELN AND
                 A~ERDAT  IN  S_ERDAT AND
                 B~POSNR IN S_POSNR.
    IF SY-SUBRC <> O.
      WRITE: / 'No data found'.
    ENDIF.
    First write this in SE38 by defining a proper selection screen and internal tables
    then do as fun module
    see the doc for fun module
    Function Modules;
    Check this matter.
    Function Modules are Global ABAP programs created by SAP for reusable purpose.they have IMPORT,EXPORT and TABLE parameters, and EXCEPTIONS to through when error occurs.
    You can create them from TCode SE37.
    Go through the following doc:
    Function modules are cross-program, reusable procedures that are organized into function groups, and whose functions are implemented between the statements FUNCTION and ENDFUNCTION. Function modules and their interfaces are created in the Function Builder.
    Function Module Interfaces
    The parameter interface of a function module is defined in the Function Builder. It includes the definition of interface parameters and the specification of exceptions that can be triggered by a function module. The Function Builder automatically generates comment lines below the FUNCTION statement in the source code of the function module, which represent the interface of the function module with the following syntax:
    Syntax
    ... [IMPORTING parameters]
    [EXPORTING parameters]
    [CHANGING parameters]
    [TABLES table_parameters]
    [{RAISING|EXCEPTIONS} exc1 exc2 ...]
    The syntax and semantics of IMPORTING, EXPORTING, CHANGING, RAISING, and EXCEPTIONS mainly correspond to the definition of method interfaces with [CLASS-]METHODS. The additional option of defining table parameters using TABLES is obsolete.
    Interface parameters
    The interface parameters are defined on the relevant tab pages in the Function Builder.
    IMPORTING parameters are input parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input parameter. The content of the actual parameter is passed to the input parameter when the call is made. The content of an input parameter for which 'pass by reference' is defined cannot be changed in the function module.
    EXPORTING parameters are output parameters. When the function module is called, a suitable actual parameter can be specified for every output parameter. The content of an output parameter that is defined for 'pass by value' is transferred to the actual parameter if the function module is completed without errors. An output parameter that is defined for pass by reference is not initialized when the function module is called.
    CHANGING parameters are input and output parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input or output parameter. When the function module is called, the content of the actual parameter is passed to the input/output parameter, and when the function module is completed, the content of the input/output parameter is passed to the actual parameter.
    TABLES parameters are table parameters. Table parameters are obsolete CHANGING parameters that are typed as standard tables with a header line. If an internal table without a header line or a table body is passed as an actual parameter to a formal parameter of this type, an empty local header line is generated in the function module. If an internal table with a header line is used as an actual parameter, both the table body and the header line are passed to the function module. Pass by value is not possible in formal parameters defined using TABLES. Formal parameters defined with TABLES can be replaced by formal parameters defined with CHANGING. A local work area can be created for the internal table in the function module by using the addition LIKE LINE OF itab of the DATA statement.
    Exceptions
    The exception of a function module are defined on the Exceptions tab page in the Function Builder. Here you can select exception classes to define whether class-based exceptions are declared or non-class-based exception are defined. Class-based exceptions are represented in the above syntax by RAISING, and non-class-based exceptions are represented by EXCEPTIONS.
    The addition RAISING is used to declare class-based exceptions that can be propagated from the function module to the caller. Exceptions in the categories CX_STATIC_CHECK and CX_DYNAMIC_CHECK must be explicitly declared, otherwise a propagation can lead to an interface violation. A violation of the interface leads to the treatable exception CX_SY_NO_HANDLER. Exceptions of the category CX_NO_CHECK are implicitly always declared. The declaration of exceptions of the category CX_STATIC_CHECK is statically checked in the syntax check. For exceptions of the category CX_DYNAMIC_CHECK, the check is not performed until runtime. In a function module in which class-based exceptions are declared with the RAISING addition, the statement CATCH SYSTEM-EXCEPTIONS cannot be used. Instead, the relevant treatable exceptions should be handled in a TRY control structure.
    The addition EXCEPTIONS is used to define a list of non-class-based exceptions that can be triggered in the function module using the statements RAISE or MESSAGE RAISING. Exceptions defined in this way - as with formal parameters - are bound to the function module and cannot be propagated. If an exception of this type is triggered in a function module, and no return value has been assigned to it with the homonymous addition EXCEPTIONS of the CALL FUNCTION statement when the call was made, this leads to a runtime error.
    Note
    For new developments after release 6.10, SAP recommends that you work with class-based exceptions that are independent of the function module.
    RFC is a technology which is used to access a functions (Modules) from
    the remote systems.
    If a function module is set as remote enabled which can be access from
    the remote system via RFC.Eg: U can access the Remote enabled function modules in ur VB,Webdynpro,Java,Visual composer program.
    A function module can be set as remote enabled by SE37->Go to ur FM->click the option Button "remote enabled".
    But Normal function modules can not accessd from the remote system.
    Good Example for RFC enabled function module is : BAPI(Business Application Programming Interface)
    Note: All BAPIs are Remote enabled but not all remote enabled function modules are BAPI.
    CALLING A FUNCTION MODULE:
    1)In U ABAP Editor --> Click "Patter" ---> Selection Option Button "Call Function"
    --> Write the Corresponding FM name --> Hit Enter
    2)The appropriate import ,export Parameters will be displayed in ur editor
    3)Pass the Values Here.
    Also check these links.
    http://www.geocities.com/victorav15/sapr3/abapfun.html
    Check this link:
    http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
    Check this link:
    http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
    See the following links:
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/26/64f623fa8911d386e70000e82011b8/content.htm
    Regards
    Anji

  • Help needed with reporting API

    Hi Guys,
    ok i have tried many things but i just cant seem to get to grips with the "apireport.pl" tool provided to produce reports.
    I have downloaded a fresh copy from ironport, only changed the Hostnames and primary_config files as needed, but no matter what i do i get the following error when i run the tool.
    "Argument "--" isn't numeric in addition (+) at C:\Ironport reporting\apireport-1-0\apireport.pl line 264, <CSVFILE> line 2".
    The othert thing is that the reports are produced but when you look at it the pie chart it just displays as a single state of all inbound mail being clean.
    Any help or example scripts / config would be appreciated.
    Thanks

    I can now see that the report being produced IS only displaying the data for clean mail, hence the pie chart showing all mail clean, it just isnt displaying any other data but i dont know how to resolve this. When i look at the reports chart there is no data in the fields for anything other than clean mail so im presuming the process isnt either pulling in the data or processing it into the report
    Any help would be appreciated thanks

  • Help Needed on report Urgent

    Hi Experts
    my requirement is to combine the standard selection screens of T-CODE IW39 & IW59 as a one selection screen.
    i tried  a lot but i'm unable to do it.
    in these selection screens some blocks are called by dynamically through ldb. if i copied standard prog of T-CODE IW39 as zprogram it dispalying the whole selection screen but at that time i'm unable to merge IW59 selection screen code with this caode.
    can any help me urgent .plz

    hi
    chk this out
    SELECTION-SCREEN: Special Variant for Logical Databases
    You may only use these variants in the INCLUDE program DBldbSEL of logical database ldb.
    Variants:
    1.SELECTION-SCREEN BEGIN OF VERSION vers TEXT-xxx.
    2. SELECTION-SCREEN END OF VERSION vers.
    3. SELECTION-SCREEN EXCLUDE ... .
    4.SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab.
    5.SELECTION-SCREEN FIELD SELECTION FOR TABLE dbtab.
    6.SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE node.
    7.SELECTION-SCREEN FIELD SELECTION FOR NODE node.
    Variant 1
    SELECTION-SCREEN BEGIN OF VERSION vers TEXT-xxx.
    Variant 2
    SELECTION-SCREEN END OF VERSION vers.
    Variant 3
    SELECTION-SCREEN EXCLUDE ... .
    Effect
    Defines a selection screen version (three character name vers). Between BEGIN OF VERSION and END OF VERSION , you can exclude selection screen objects from version vers using SELECTION-SCREEN EXCLUDE. This allows you to reduce the database-specific part of the standard selection screen to those objects relevant to the report in question without having to sacrifice important selection criteria in other reports.
    You activate a selection screen version for a report by entering it in the report attributes. If the database access program SAPDBldb itself has a selection screen version in its attributes, this applies to all reports that use the logical database and for which you have not declared a particular selection screen variant.
    The function of the text symbol TEXT-xxx is to enable users to choose a selection screen variant using F4 help on the program attributes screen.
    Extras:
    (for SELECTION-SCREEN EXCLUDE) 1. ... PARAMETERS par 2. ... SELECT-OPTIONS sel
    3. ... RADIOBUTTON GROUPS radi
    4. ... BLOCKS block
    5. ... IDS id
    Effect
    Excludes selection screen objects between SELECTION-SCREEN BEGIN and END OF VERSION. You can also exclude individual parameters, select-options, and radiobutton groups, within SELECTION-SCREEN BEGIN/END OF BLOCK blocks, and other SELECTION-SCREEN objects such as comments and underlines using the ID id addition.
    Notes
    You can only exclude objects of the DS:ABEN.SELECTION_SCREEN>standard selection screen 1000, not any that belong to a screen defined using SELECTION-SCREEN BEGIN OF SCREEN ... AS SUBSCREEN. If the standard selection screen includes objects from other screens ( SELECTION-SCREEN INCLUDE ... ID ...), you can use SELECTOIN-SCREEN EXCLUDE IDS ... to exclude them from the screen.
    The database program SAPDBldb can use the function module RS_SELSCREEN_VERSION to use the active version of the selection screen for the current report.
    Example
    TABLES SPFLI.
    NODES CHARLY.                  " with structure SFLIGHT
    PARAMETERS PAR_1 LIKE SPFLI-CARRID FOR TABLE SPFLI.
    SELECT-OPTIONS SEL_1 FOR SPFLI-CONNID.
    SELECT-OPTIONS SEL_2 FOR CHARLY-FLDATE.
    SELECT-OPTIONS SEL_3 FOR SPFLI-CITYFROM.
    SELECTION-SCREEN COMMENT /10(20) TEXT-100 FOR TABLE SFLIGHT ID 001.
    SELECTION-SCREEN COMMENT /8(30) TEXT-200 FOR NODE CHARLY ID 002.
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN NO INTERVALS.
      SELECTION-SCREEN BEGIN OF BLOCK B100 WITH FRAME TITLE TEXT_001.
        PARAMETERS P100_1 TYPE SFLIGHT-SEATSMAX FOR NODE CHARLY.
      SELECTION-SCREEN END OF BLOCK B100.
    SELECTION-SCREEN END OF SCREEN 100.
    PARAMETERS PAR_2 LIKE SY-SUBRC FOR TABLE SFLIGHT.
    PARAMETERS PAR_3 LIKE CHARLY-PLANETYPE FOR NODE CHARLY.
    SELECTION-SCREEN BEGIN OF VERSION ABC TEXT-008.
      SELECTION-SCREEN EXCLUDE PARAMETERS: PAR_1, PAR_3.
      SELECTION-SCREEN EXCLUDE SELECT-OPTIONS SEL_2.
      SELECTION-SCREEN EXCLUDE IDS 001.
    SELECTION-SCREEN END   OF VERSION ABC.
    SELECTION-SCREEN BEGIN OF VERSION XYZ TEXT-XYZ.
      SELECTION-SCREEN EXCLUDE IDS 100.
    SELECTION-SCREEN END OF VERSION XYZ.
    If the report attributes (or the attributes of database program SAPDBldb) contain the selection screen version ABC, the parameters PAR_1 and PAR_3, the select-option SEL_2 and the comment with text number 100 (ID 001) do not appear on the selection screen. Text symbol 008 of SAPDBldb is displayed if you choose F4 help for the 'Selection screen version' field.
    If the program attributes (or the attributes of the database program SAPDBldb) contain the selection screen version XYZ, the block B100 containing the parameter P100_1 does not appear on the standard selection screen 1000, but it does appear on the subscreen 100..
    Variant 4
    SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE dbtab.
    Variant 6
    SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE
    node.
    Extras:
    ... ID id
    Effect
    This statement returns the tables or nodes of the logical database for which additional selections are supported. If one of these tables or nodes is active in the report (declared using TABLES or NODES, or in the path from the database hierarchy root to a table declared using TABLES or NODES), the 'Free selections' pushbutton appears on the selection screen. If the user chooses this function, the system branches to a dialog in which the user can enter selections for the relevant fields of the appropriate tables. There are two ways to set the fields for which users can make free selections:
    Using a selection view created for that purpose:
    You maintain selection views within logical database maintenance. They consist of a set of fields from tables in the logical database that are divided into groups. You can also preselect fields here. Customers may overlay the selection view (that is, the system searches first for a customer-specific selection view. Only if one does not exist will the system display the SAP selection view).
    If you have already made a preselection in the selection view, the user sees the selection screen for the preselected fields on which to enter his or her selections. If no fields have been preselected, the user must first select some.
    Using all fields of all tables
    In this case, the user must choose the table and then the fields for which he or she wants to define additional selections. Having selected these, he or she then passes to the selection screen for entering the free selections.
    The database access program SAPDBldb takes on the form of a complex data object DYN_SEL consisting of WHERE clauses generated by the user input for dynamic database access.
    Note
    You cannot use free selections for nodes with type C (complex data objects).
    Note
    The precise definition of the object DYN_SEL is stored in TYPE-POOL RSDS and reads:
    TYPES: BEGIN OF RSDS_WHERE,
             TABLENAME LIKE RSDSTABS-PRIM_TAB,
             WHERE_TAB LIKE RSDSWHERE OCCURS 5,
           END OF RSDS_WHERE.
    TYPES: BEGIN OF RSDS_TYPE,
             CLAUSES TYPE RSDS_WHERE OCCURS 5,
             TEXPR   TYPE RSDS_TEXPR,
             TRANGE  TYPE RSDS_TRANGE,
           END   OF RSDS_TYPE.
    DATA DYN_SEL TYPE RSDS_TYPE.
    The object DYN_SEL contains (amongst other elements) a component (CLAUSES), which is an internal table. Each line in the internal table contains a table name (TABLENAME) and a further internal table (WHERE_TAB), that contains the WHERE clauses for table (TABLENAME).
    The structure of the two other components is contained in type pool RSDS.
    TEXPR contains the selections in a storeable format that you can use for the 'freely callable' function modules used to enter free selections ( FREE_SELECTIONS_INIT, FREE_SELECTIONS_DIALOG). TRANGE contains the selections in the form of RANGES tables , that you can use with the IN operator in the SELECT, CHECK and IF statements.
    Note
    Neither the TYPE-POOL RSDS nor the declaration of DYN_SEL need to be written into the database program: both are automatically included by the system.
    In the database program SAPDBldb, an access to a table XXXX might look like this:
    FORM PUT_XXXX.
      DATA L_DS_CLAUSES TYPE RSDS_WHERE.
      MOVE 'XXXX' TO L_DS_CLAUSES-TABLENAME.
      READ TABLE DYN_SEL-CLAUSES WITH KEY L_DS_CLAUSES-TABLENAME
                                 INTO L_DS_CLAUSES.
      SELECT * FROM XXXX
               WHERE field1 IN ...
               AND   field2 ....
               AND (L_DS_CLAUSES-WHERE_TAB).
          PUT XXXX.
      ENDSELECT.
    ENDFORM.
    Note
    If the table L_DS_CLAUSES-WHERE_TAB is empty (in other words, there are no free selections for table XXXX), the system ignores the addition ... AND (L_DS_CLAUSES-WHERE_TAB) in the SELECT statement.
    Variant 5
    SELECTION-SCREEN FIELD SELECTION FOR TABLE dbtab.
    Variant 7
    SELECTION-SCREEN FIELD SELECTION FOR NODE node.
    Extras:
    ... ID id
    Effect
    This statement returns the tables and nodes of the logical database for which field selections are supported.
    If required by the report, not all fields of these tables and nodes are filled from the database, but only those that the report needs. You declare these fields in the report using GET dbtab FIELDS f1 ... fn or GET dbtab LATE FIELDS f1 ... fn (the field list is then completed by the system, using the key fields of table dbtab).
    You can improve performance considerably by restricting the fields used to those that are really necessary.
    The database access program SAPDBldb receives the fields for the dynamic field selection in the form of an internal table SELECT_FIELDS.
    Note
    You cannot use this addition for nodes with type C (complex data objects).
    Note
    The exact definition of the object SELECT_FIELDS is stored in TYPE-POOL RSFS and reads:
    TYPES: BEGIN OF RSFS_TAB_FIELDS,
             TABLENAME LIKE RSDSTABS-PRIM_TAB,
             FIELDS LIKE RSFS_STRUC OCCURS 10,
           END OF RSFS_TAB_FIELDS.
    TYPES: RSFS_FIELDS TYPE RSFS_TAB_FIELDS OCCURS 10.
    DATA SELECT_FIELDS TYPE RSFS_FIELDS.
    SELECT_FIELDS is an internal table. Each line of the internal table contains a table name (TABLENAME) and a further internal table (FIELDS) containing the fields of table (TABLENAME).
    Note
    You do not need to declare the TYPE-POOL RSFS or SELECT_FIELDS in the database program, since both are included automatically by the system. Unlike the objects linked using the DYNAMIC SELECTIONS addition, SELECT_FIELDS is also available in the report.
    In the database program SAPDBldb, an access to table XXXX might look like this:
    FORM PUT_XXXX.
      DATA L_TAB_FIELDS TYPE RSFS_TAB_FIELDS.
      MOVE 'XXXX' TO L_TAB_FIELDS-TABLENAME.
      READ TABLE SELECT_FIELDS WITH KEY L_TAB_FIELDS-TABLENAME
                               INTO L_TAB_FIELDS.
      SELECT (L_TAB_FIELDS-FIELDS)
                 INTO CORRESPONDING FIELDS OF XXXX
                 FROM XXXX
             WHERE field1 IN ...
             AND   field2 ....
          PUT XXXX.
      ENDSELECT.
    ENDFORM.
    Notes
    If table L_TAB_FIELDS is empty (in other words, the report for table XXXX does not require any field selection), SELECT (L_TAB_FIELDS) ... behaves like SELECT * ..., that is, all fields of table XXXX are filled.
    The internal table SELECT_FIELDS is filled when the INIT routine runs in the database program or when the INITIALIZATION runs in the report. The program can access it if the logical database requires extra fields.

  • Help needed with report grouping

    Post Author: David Waugh
    CA Forum: General
    I have a summary report that has three groupings - The groupings areas follow:
    Partner Group (Group1)Client Group (Group2)Actual Client (Group3)
    For instance, there are 9 Partners, and each Client Group can/could have numerous Actual Clients.
    The Details section is supressed.  There are two parameter fields (Start Date and End Date).  The summary is initally displayed at the Actual Client Group (Group 3) footer.  Then there is a summary total on the Client Group (Group2) level, for all of those clients that are within that same Client Group.
    I am able to sort all of the data at the Client Group (Group2) level either ascending or descending.  In the Actual Client Group footer there is a Running Total for the Invoices billed during the period provided via the two parameter fields.  Then there is an Invoice total for all of the clients that are within that same Client Group level (Group2).
    I need to setup another parameter that will sort via Client Group displaying the top 25 Client Groups per Partner.   Is this done via a Group Selection Formula?
    Any help is appreciated.
    Thank you,David

    Post Author: Jagan
    CA Forum: General
    Have a read in the help about TopN and about the group sort expert.
    Is there a reason you're using running totals rather than plain old summaries?

  • Help needed in report programming

    Hi All
    I am processing some data on first screen of a report transaction and an output is displayed on second screen. My requirement is that when I press back, I have to come to SAP initial screen.
    I have tried all options with 'LEAVE'. Problem is that control doesnt come even once in report, it goes into some standard code so I am unable to make changes..
    Kindly help.
    Thanks
    Dinesh
    <LOCKED BY MODERATOR - USE APPROPRIATE TITLES>
    <LOCKED BY MODERATOR - URGENT, PLEASE HELP OR SIMILAR ARE FORBIDDEN>
    Edited by: Alvaro Tejada Galindo on Aug 18, 2008 5:17 PM

    Hi,
    Since it is a report program. U have to set PF status in ur output page (either ALV or any other output format).
    In GUI status, triger the function code for BACK.
    Then, inside the event AT USER-COMMAND, code LEAVE PROGRAM for the BACK function.
    If it is an ALV output, the PF-status and User-command event should be called in the ALV function module.
    Regards,
    Prem

  • Help needed for Report Generator in B1 2005

    Hi,
    I have upgraded to B1 2005 and I would like to know where I can find Help files for the report generator (used to customize invoices ...). In particular, I would like to know where I can find information about the system functions available e.g. currentpage().
    Thanks in advance for your help!
    JP

    Use this link.
    <a href="https://websmp102.sap-ag.de/form/sapnet?_FRAME=OBJECT&_HIER_KEY=701100035871000437965&_SCENARIO=01100035870000000183&">https://websmp102.sap-ag.de/form/sapnet?_FRAME=OBJECT&_HIER_KEY=701100035871000437965&_SCENARIO=01100035870000000183&</a>
    In Customization section you can find a document based on PLD

  • Help Needed For Report creation

    Hi
    i am new to flex and i want to know that how we can create
    the simple grid/freeform reports in flex 2.
    Please help me.
    Jayesh

    Use this link.
    <a href="https://websmp102.sap-ag.de/form/sapnet?_FRAME=OBJECT&_HIER_KEY=701100035871000437965&_SCENARIO=01100035870000000183&">https://websmp102.sap-ag.de/form/sapnet?_FRAME=OBJECT&_HIER_KEY=701100035871000437965&_SCENARIO=01100035870000000183&</a>
    In Customization section you can find a document based on PLD

  • Help needed with a paint program

    Hi, I am writing a program to work as a paint application. I have all the necessary buttons. One of my buttons needs to be able to add a small image to the painting frame by clicking the mouse onto the screen...for example, to display a picture of a house, I click the house button which then puts my house picture onto the scribble panel wherever I click the mouse. My problem is that I am new to java and I am stuck on how I can do this. I have put all the code on here which I have. If any one knows the code which I can add to make this work I would very much appreciate it as it is driving me insane!
    Many thanks....
    CODE "DrawingTools.java".............................
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.geom.*;
    public class DrawingTools {
    public static void main (String [] args) {
         Toolkit tk = Toolkit.getDefaultToolkit(); // get system dependent information
    Dimension dim = tk.getScreenSize(); // encapsulate width and height of system
    JFrame f = new DrawingToolFrame();
    f.setSize(800, 550);
    f.setTitle("Drawing Tool v1.10");
    f.setIconImage(tk.getImage("Paint.gif"));
    f.setVisible(true);
    f.setResizable(false);
    class DrawingToolFrame extends JFrame implements ActionListener {
    private JCheckBox checkNormal, checkBold, checkDotted, checkSpray;
    // private JRadioButton orBlack, orBlue, orRed, orYellow, orNormal, orBold, orDotted, orSpray;
    private JButton boldButton, dottedButton, sprayButton;
    private JButton blackButton, blueButton, yellowButton, redButton, greenButton, houseButton, tvButton, starButton;
    private ScribblePanel scribblePanel;
    private JButton scribbleButton, undoButton, newButton, quitButton;
    private JMenuItem newItem, quitItem, undoItem, houseItem, tvItem, starItem,/* normalItem,*/ boldItem, dottedItem, sprayItem, blackItem, blueItem, redItem, yellowItem, greenItem;
    public DrawingToolFrame() {
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    dispose();
    System.exit(0);
    Container contentPane = getContentPane();
    JMenuBar menuBar = new JMenuBar();
         setJMenuBar(menuBar);
         JMenu fileMenu = new JMenu("File");
         newItem = new JMenuItem("New");
         newItem.setMnemonic(KeyEvent.VK_N); //add Alt-N to New short-cut
         newItem.addActionListener(this);
         fileMenu.add(newItem);
         quitItem = new JMenuItem("Quit");
         quitItem.setMnemonic(KeyEvent.VK_Q); //add Alt-Q to Quit short-cut
         quitItem.addActionListener(this);
         fileMenu.add(quitItem);
         menuBar.add(fileMenu);
         JMenu editMenu = new JMenu("Edit");
         undoItem = new JMenuItem("Undo");
         undoItem.addActionListener(this);
         editMenu.add(undoItem);
         menuBar.add(editMenu);
         JMenu shapeMenu = new JMenu("Shape");
         houseItem = new JMenuItem("House");
         houseItem.addActionListener(this);
         shapeMenu.add(houseItem);
         tvItem = new JMenuItem("Television");
         tvItem.addActionListener(this);
         shapeMenu.add(tvItem);
         starItem = new JMenuItem("Star");
         starItem.addActionListener(this);
         shapeMenu.add(starItem);
         menuBar.add(shapeMenu);
    JMenu optionMenu = new JMenu("Option");
    JMenu lineMenu = new JMenu("Line");
         optionMenu.add(lineMenu);
              //normalItem = new JMenuItem("Normal");
              //normalItem.addActionListener(this);
              //lineMenu.add(normalItem);
              boldItem = new JMenuItem("Bold");
              boldItem.addActionListener(this);
              lineMenu.add(boldItem);
              dottedItem = new JMenuItem("Dotted");
              dottedItem.addActionListener(this);
         lineMenu.add(dottedItem);
         sprayItem = new JMenuItem("Spray");
         sprayItem.addActionListener(this);
         lineMenu.add(sprayItem);
         JMenu colourMenu = new JMenu("Colour");
         optionMenu.add(colourMenu);
              blackItem = new JMenuItem("Black");
              blackItem.addActionListener(this);
              colourMenu.add(blackItem);
              blueItem = new JMenuItem("Blue");
              blueItem.addActionListener(this);
              colourMenu.add(blueItem);
              redItem = new JMenuItem("Red");
              redItem.addActionListener(this);
         colourMenu.add(redItem);
         yellowItem = new JMenuItem("Yellow");
         yellowItem.addActionListener(this);
         colourMenu.add(yellowItem);
         greenItem = new JMenuItem("Green");
                   greenItem.addActionListener(this);
         colourMenu.add(greenItem);
         menuBar.add(optionMenu);
    JPanel p = new JPanel();
    ImageIcon scribbleIcon = new ImageIcon("Scribble.gif");
    scribbleButton = new JButton("Scribble", scribbleIcon);
    scribbleButton.setMnemonic(KeyEvent.VK_S); //add Alt-S to Undo short-cut
    scribbleButton.setToolTipText("Click this button and you can draw free hand lines.");
    p.add(scribbleButton);
    //scribbleButton = addJButton("Scribble", p);
    p.add(Box.createHorizontalStrut(20));
    ImageIcon undoIcon = new ImageIcon("Undo.gif");
    undoButton = new JButton("Undo", undoIcon);
    undoButton.setMnemonic(KeyEvent.VK_U); //add Alt-U to Undo short-cut
    undoButton.setToolTipText("Undo the last step");
    p.add(undoButton);
    //undoButton.addActionListener(this);
    p.add(Box.createHorizontalStrut(20));
    ImageIcon newIcon = new ImageIcon("New.gif");
    newButton = new JButton("New", newIcon);
    newButton.setMnemonic(KeyEvent.VK_N); //add Alt-N to New short-cut
    newButton.setToolTipText("Make a new Drawing");
    p.add(newButton);
    p.add(Box.createHorizontalStrut(20));
    ImageIcon quitIcon = new ImageIcon("Door.gif"); //add icon to button
    quitButton = new JButton("Quit", quitIcon);
    quitButton.setMnemonic(KeyEvent.VK_Q); //add Alt-Q to exit short-cut
    quitButton.setToolTipText("Click to Exit");
    p.add(quitButton);
    undoButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    scribblePanel.undo();}});
    scribbleButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    scribblePanel.repaint();}});
    newButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    scribblePanel.repaint();}});
    quitButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    System.exit(0);}});
    contentPane.add(p, "South");
    p = new JPanel();
    p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
    p.add(Box.createVerticalStrut(10));
    ImageIcon boldIcon = new ImageIcon("Bold.gif"); //add icon to button
    boldButton = new JButton("Bold", boldIcon);
    p.add(boldButton);
    p.add(Box.createVerticalStrut(10));
    ImageIcon dottedIcon = new ImageIcon("Dotted.gif"); //add icon to button
    dottedButton = new JButton("Dotted", dottedIcon);
    p.add(dottedButton);
    p.add(Box.createVerticalStrut(10));
    ImageIcon sprayIcon = new ImageIcon("Spray.gif"); //add icon to button
    sprayButton = new JButton("Spray", sprayIcon);
    p.add(sprayButton);
    /*     ButtonGroup groupA = new ButtonGroup();
         p.add(Box.createVerticalStrut(20));
         orNormal = addJRadioButton("Normal", true, groupA, p);
         p.add(Box.createVerticalStrut(20));
         orBold = addJRadioButton("Bold", false, groupA, p);
         p.add(Box.createVerticalStrut(20));
         orDotted = addJRadioButton("Dotted", false, groupA, p);
         p.add(Box.createVerticalStrut(20));
         orSpray = addJRadioButton("Spray", false, groupA, p);*/
    contentPane.add(p, "East");
    p = new JPanel();
    p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
    p.add(Box.createVerticalStrut(10));
    ImageIcon dIcon = new ImageIcon("Black.gif"); //add icon to button
    blackButton = new JButton("Black", dIcon);
    p.add(blackButton);
    p.add(Box.createVerticalStrut(10));
    ImageIcon eIcon = new ImageIcon("Blue.gif"); //add icon to button
    blueButton = new JButton("Blue", eIcon);
    p.add(blueButton);
    p.add(Box.createVerticalStrut(10));
    ImageIcon fIcon = new ImageIcon("Red.gif"); //add icon to button
    redButton = new JButton("Red", fIcon);
    p.add(redButton);
    p.add(Box.createVerticalStrut(10));
    ImageIcon gIcon = new ImageIcon("Yellow.gif"); //add icon to button
    yellowButton = new JButton("Yellow", gIcon);
    p.add(yellowButton);
    p.add(Box.createVerticalStrut(10));
    ImageIcon hIcon = new ImageIcon("Green.gif"); //add icon to button
    greenButton = new JButton("Green", hIcon);
    p.add(greenButton);
    p.add(Box.createVerticalStrut(30));
    ImageIcon houseIcon = new ImageIcon("house.gif");
    houseButton = new JButton("House", houseIcon);
    houseButton.setToolTipText("Click to add a house in the picture!");
    p.add(houseButton);
    //houseButton = addJButton("House", p);
    p.add(Box.createVerticalStrut(10));
    ImageIcon tvIcon = new ImageIcon("tv.gif");
    tvButton = new JButton("Television", tvIcon);
    tvButton.setToolTipText("Click to add a Television in the picture!");
    p.add(tvButton);
    //tvButton = addJButton("Television", p);
    p.add(Box.createVerticalStrut(10));
    ImageIcon starIcon = new ImageIcon("star.gif");
    starButton = new JButton("Star", starIcon);
    starButton.setToolTipText("Click to add stars in the picture!");
    p.add(starButton);
    //starButton = addJButton("Star", p);
    contentPane.add(p, "West");
    scribblePanel = new ScribblePanel();
    contentPane.add(scribblePanel, "Center");
    private JButton addJButton(String text, Container container) {
    JButton button = new JButton(text);
    container.add(button);
    return button;
    private JRadioButton addJRadioButton(String text, boolean on, ButtonGroup group, Container container) {
    JRadioButton button = new JRadioButton(text, on);
    group.add(button);
    container.add(button);
    return button;
    public void actionPerformed(ActionEvent e) {
    Object source = e.getSource();
    if (source instanceof JMenuItem) {
    String arg = e.getActionCommand();
    if (arg.equals("Undo"))
    scribblePanel.undo();
    else if (arg.equals("New"))
    scribblePanel.repaint();
    else if (arg.equals("Quit"))
    System.exit(0);
    }

    The code posted just sends any data it receives back to the person who sent it. To get it to work there, you probably should flush after the println. I believe your mother taught you always to flush. It seems you have forgotten.

Maybe you are looking for