How to find out, if a dynamic genereated structure already exists in DDIC?

Good morning developers,
can you help me with that above mentioned problem?
I'm about to write a report which manages to change tablecontrol(s) to alvgrids.
My current problem is, that i read all fields of a tablecontrol and generate its <b>structure</b> dynamically ( temporary just during runtime of the report, not stored yet ).
Now I have to know, if this generated structure already exists in the DDIC, or not.
If not, i have to create a type of my generated structure and store it in the DDiC.
I know that there s a FM called <b>"COMPARE_STRUCTURE_DATA"</b>.
But i think i have to know the name of the existing structure in DDiC.
Is there also a way for a recursive search in ddic?
If not:  when i read the fields of my tablecontrol from the DDiC, i read from ddic-table D021S. In its field "FNAM" it contains for example SFLIGHT-carrid ( <table><column> ).
I could split 'FNAM' into table and column. How do i search for the structuretype of a table?
Thx for your replys, post points waiting
Regards
Basti

Hello Bastian
All dynpro fields (including table controls) are either based on DDIC structures of program variables. Thus, the following coding will return you the required answer.
*& Report  ZUS_SDN_RTTI_IS_DDICTYPE
REPORT  zus_sdn_rtti_is_ddictype.
TYPE-POOLS: abap.
TYPES: BEGIN OF ty_s_line.
TYPES:   field(3)  TYPE n.
TYPES:   flag(1)   TYPE c.
" INCLUDE TYPE knb1.
TYPES: END OF ty_s_line.
TYPES: ty_t_line    TYPE STANDARD TABLE OF ty_s_line
                    WITH DEFAULT KEY.
DATA:
  gs_line    TYPE ty_s_line,
  gs_knb1    TYPE knb1,
  go_tabdescr      TYPE REF TO cl_abap_tabledescr,
  go_strucdescr    TYPE REF TO cl_abap_structdescr.
START-OF-SELECTION.
  go_strucdescr ?= cl_abap_tabledescr=>describe_by_data( gs_line ).
  IF ( go_strucdescr->is_ddic_type( ) = abap_true ).
    WRITE: / 'gs_line is a DDIC type'.
  ELSE.
    WRITE: / 'gs_line is not a DDIC type'.
  ENDIF.
  SKIP.
  go_strucdescr ?= cl_abap_tabledescr=>describe_by_data( gs_knb1 ).
  IF ( go_strucdescr->is_ddic_type( ) = abap_true ).
    WRITE: / 'gs_knb1 is a DDIC type'.
  ELSE.
    WRITE: / 'gs_knb1 is not a DDIC type'.
  ENDIF.
END-OF-SELECTION.
However, if a dynpro field is based on a type defined within the program the situation may be more complex if the type includes DDIC structures (as shown above). But I am sure you will master this obstacle.
Regards
  Uwe

Similar Messages

  • How to find out if disk drive is faulty already?

    How to find out if disk drive is faulty already?

    Hi Sükrü
    You can read the table E071 with the object id and get the transport request number. Use this transport request and read the table E070, the field "TRSTATUS" will give the status whether the object is locked or released.
    Hope this helps !
    Regards
    Ranganath
    PS : Reward points if found useful !

  • How to find out the tables from extract structures

    Hi All,
    As I know my data sources are 2lis_04_p_matnr,2lis_04_p_comp,2lis_04_p_arbpl.
    How to find out the tables concerned with the fields in the extract structure.
    Thanks

    Pl check this link:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/29/79eb3cad744026e10000000a11405a/frameset.htm
    OR navigate to: help.sap.com - netweaver - bi content - supply chain - look for your application area and the extractor and you will see the source tables and fields.
    Ravi Thothadri

  • JCA: how to find out that import parameter is structure?

    Hello,
    I'm using JCA to obtain import parameter of some function (com.sapportals.connector.metadata.functions.IParameter). Now, I'd like to switch program flow depend on kind of this import parameter (scalar, structure, table). Especially, I'm interested in finding out that import parameter is structure. In API I was only locate getStructure() method in IParameter. I tried to compare with null value, but it didn't solve my problem.
    Best Regards,
    Josef Motl

    I have come along this post so many times that now that I have solved it myself I will have to reply to it, even after 5 years.
    MappedRecord output = (MappedRecord) ix.execute(ixspec, input);
    //Now we want to read the output.
    //If we deal with a structure, we get an IRecord Object
    IRecord addressStructure = (IRecord) output.get("ADDRESS");
    //Otherwise we would get an IRecordSet Object (Field)
    I hope it will help all those searching as well.
    BR
    Sigi

  • How to find out if a structure already exists in DDIC

    Hi all,
    I want to find out if a structure or table type already exists in the DDIC. I intend to use the DDIF_TABL_GET function module and catch the exception raised but I am not sure if this 'illegal input'  exception is only raised if a structure does not exist in DDIC. Is it the right way or is there a function module or static class method which can return me this info stg. like DDIC_OBJECT_EXISTS or not . I have the same problem for the table types too, but I think the solution must be similar...
    Kind Regards,
    Sükrü Ilker Birakoglu

    Hi all,
    Thank you for your answers. I also found an alternative way for solving the problem. If you call the function module DDIF_TABL_GET with the state parameter set to 'M' (get the object regardless of its state(active, new)), the export parameter GOTSTATE shows us if the object in DDIC exists or not(if this parameter is space, then the object does not exist).
    Kind Regards,
    Sükrü Ilker Birakoglu

  • HT5622 how do I find out if the apple id is already existing?

    I have tried over and over again to reset my email to my Apple ID but it keeps telling me the ID already exists. I have tried to reset the password for that particular email but I don't receive the verification email as it says. I looked at the articles as to why I may not be receiving the email but none pertain to me. this is all for the purpose of changing the ID on my icloud account. I just need to know how many ID's I have set up in this email and how I can delete them.

    Hello jenny86753092008,
    Welcome to the Apple Support Communities! Your iTunes and iCloud passwords will always be the same unless you have multiple accounts with us. To check to see if you have multiple accounts, you can use this handy Apple ID tool:
    Apple - My Apple ID
    https://iforgot.apple.com/appleid
    You can also contact us for assistance to see if you have multiple Apple ID accounts:
    If you forgot your Apple ID password - Apple Support
    http://support.apple.com/en-us/HT201487
    Make sure that you’re entering the correct Apple ID. In most cases, your Apple ID is also the primary email address of your Apple ID account. If these steps didn't help you change your password, contact Apple Support.
    Cheers,
    Matt M.

  • How to find opened document is new one or already existing one

    is there any API to check opened document is newly created

    If I remember correctly, you've asked a few questions about plug-ins, so if
    you want to do this in a plug-in environment, you can use the
    PDDocRequiresFullSave
    flag in the PDDocSaveFlags.
    Karl Heinz Kremer
    PDF Acrobatics Without a Net
    PDF Software Development, Training and More...
    [email protected]
    http://www.khkonsulting.com
    On Tue, Oct 22, 2013 at 12:40 AM, George Johnson

  • How to find out which C library I am using?

    On my Solaris 9 UltraSparc system,
    % echo $LD_LIBRARY_PATH
    /opt/gcc/3.4.4/lib:/opt/glib/2.12.1/lib:/opt/gnome/lib:/opt/openssl/0.9.7g/lib
    % /usr/lib/libc.so
    usage: ld.so.1 [-e option,...] dynamic-object [object args,...]
    On my Solaris 10 x86 system,
    % echo $LD_LIBRARY_PATH
    /pkg/gcc/4.2.1/lib:/opt/gcc/current/lib:/opt/glib/2.10.1/lib:/usr/sfw/lib:/usr/lib/mps:/opt/openldap/lib:/opt/openssl/current/lib
    % /usr/lib/libc.so
    usage: ld.so.1 [-e option,...] dynamic-object [object args,...]
    On my Linux/x86 system,
    % echo $LD_LIBRARY_PATH
    /opt/openssl/0.9.7g/lib:/opt/gcc/3.4.4/lib:/opt/binutils2.13/lib:/opt/glib/2.12.1/lib:/opt/java/j2sdk1.4.1_01/lib
    % /lib/libc.so.6
    GNU C Library stable release version 2.6.1, by Roland McGrath et al.
    From the above, can one tell what C library I am linking to on the Solaris systems? If not, how can one tell? How do I know the exact location of the C library I am using?
    On the Linux/x86 system, I can use gnu_get_libc_version() to find out the version of glibc I am supposedly using. But it does not work when I compiled the identical C program using gcc on the Solaris 9/UltraSparc and Solaris 10/x86 systems. If I can use gnu_get_libc_version() , does that mean for sure that my C program links to glibc? On the other hand, if the linker reports that gnu_get_libc_version() is not found, does that mean for sure that my C program is not linked to glibc?
    Is there a function on the Sun libc similiar to gnu_get_libc_version()?
    http://docs.sun.com/source/819-3690/Using.Libs.html says "The Solaris operating system comes with several libraries installed in /usr/lib. Most of these libraries have a C interface. Of these, the libc and libm, libraries are linked by the CC driver by default." If one wants to link to the glibc library, how to override the default? How to find out the default? Is it in some environ variable? If one changes the CC driver to gcc, does the default remain the Sun libc? And if one compiles explictly using gcc, i.e. "gcc myprog.c", is the default C library the Sun Library, or glibc?
    gnu.org has a (web page for the) glibc manual but I am not able to find a Sun C Library Manual. Is there one?
    Edited by: hzmonte on Jun 28, 2008 1:43 AM

    I'll discuss only the Sun C compiler here. For questions about gcc, look in the gcc manual, or try a gcc forum.
    Run the command "ldd" on an executable file or shared library, and it will report the shared libraries that it will link to, based on any runpath in the file, and on LD_LIBRARY_PATH. Example: % echo $LD_LIBRARY_PATH
    LD_LIBRARY_PATH: Undefined variable
    % cc hello.c
    % ldd a.out
            libc.so.1 =>     /lib/libc.so.1
            libm.so.2 =>     /lib/libm.so.2
            /platform/SUNW,A70/lib/libc_psr.so.1 BTW, except possibly for testing, there is usually no need to set LD_LIBRARY_PATH, and setting it is usually a bad idea. For more on this topic see Rod Evans' blog:
    [http://blogs.sun.com/rie/entry/tt_ld_library_path_tt]
    Prefer to set a runpath in the executable so that no client needs to set LD_LIBRARY_PATH.
    If you want to know what libraries the C compiler will link, based on a given command line, you can add the -v (verbose) option, which will display each subcommand. Or you can use the -### option, which shows what commands would be run. Example: % cc -### hello.c
    ### Note: NLSPATH = \
    /opt/SUNWspro/prod/bin/../lib/locale/%L/LC_MESSAGES/%N.cat:/opt/SUNWspro/prod/bin/../../lib/locale/%L/LC_MESSAGES/%N.cat
    ###     command line files and options (expanded):
    ### hello.c
    /opt/SUNWspro/prod/bin/acomp -xldscope=global -i hello.c -y-fbe -y/opt/SUNWspro/prod/bin/fbe -y-xarch=generic \
    -y-xmemalign=8i -y-o -yhello.o -y-verbose -y-xthreadvar=no%dynamic -y-comdat -xdbggen=no%stabs+dwarf2+usedonly \
    -xdbggen=incl -y-s -m32 -fparam_ir -Qy -D__SunOS_5_10 -D__SUNPRO_C=0x590 -D__SVR4 -D__sun -D__SunOS -D__unix \
    -D__sparc -D__BUILTIN_VA_ARG_INCR -D__C99FEATURES__ -Xa -D__PRAGMA_REDEFINE_EXTNAME -Dunix -Dsun \
    -Dsparc -D__RESTRICT -xc99=%all,no%lib -D__FLT_EVAL_METHOD__=0 -I/opt/SUNWspro/prod/include/cc \
    "-g/opt/SUNWspro/prod/bin/cc -c " -fsimple=0 -D__SUN_PREFETCH -destination_ir=yabe
    ### Note: LD_LIBRARY_PATH = <null>
    ### Note: LD_RUN_PATH = <null>
    /usr/ccs/bin/ld /opt/SUNWspro/prod/lib/crti.o /opt/SUNWspro/prod/lib/crt1.o /opt/SUNWspro/prod/lib/misalign.o \
    /opt/SUNWspro/prod/lib/values-xa.o hello.o -Y "P,/opt/SUNWspro/prod/lib/sparc:/opt/SUNWspro/prod/lib:/usr/ccs/lib:/lib:/usr/lib" \
    -Qy -lc /opt/SUNWspro/prod/lib/crtn.oThe basic runtime support library is /lib/libc.so.1, on any version of Solaris, used by every compiler version. You can check the patch version of the library by running
    showrev -p | grep <patch>
    where <patch> is the patch number for the library. The patch number depends on the Solaris version. You can get more information at [http://sunsolve.sun.com].
    There is no manual specifically for the C library. There is a Solaris man page for each function in the library, and you can check the C Users Guide and the Solaris Linker and Libraries Guide for additional information.

  • How to find out company code from a plant ?

    Hello friends,
    I have to modify a program that uses FM "BAPI_COMPANYCODE_GET_PERIOD".   For that, we have to export company code ID.  Currently it is hard coded with one company code.  Now we want to make this program usable by all company codes.  So instead of hard coding, I would like to dynamically find out company code based on the plant.   So I want to know - how to find out company code from a plant ?  Is there any table that has plant to company-code assignment data, or any other FM/BAPI to get this info ?
    Thanks,
    - Chetan

    hi
    u can find this from table T001K
    or just goto EC01
    here click on STRUCTURE>NAVIGATION
    double click on co code u will get the list
    u can slo try this in EC02
    regards
    kunal

  • JS CS3: Is a property read only? How to find out...

    Hello all,
    I found out about the x.reflect.properties object and find it very helpful in my current project.
    Now I know how to find out about the properties of a dynamically given object :)
    But here's the rub: is there any better way to find out if I can actually change one of those properties (i.e. whether it is not "read-only") other than just to try {} catch(){} it?
    Thank you
    Gerald

    [email protected] wrote:
    > Hello all,
    >
    > I found out about the x.reflect.properties object and find it very helpful in my current project.
    >
    > Now I know how to find out about the properties of a dynamically given object :)
    >
    > But here's the rub: is there any better way to find out if I can actually change one of those properties (i.e. whether it is not "read-only") other than just to try {} catch(){} it?
    From the JS Tools Guide
    ReflectionInfo.type (String)
    The type of the reflected element. One of:
    readonly: A Read only property.
    readwrite: A read-write property.
    createonly: A property that is valid only during creation of an
    object.
    method: A method.
    for photoshop scripting solutions of all sorts
    contact: [email protected]

  • How to find out CPU and memory usage for an instance?

    Hi DBA Gurus,
    How to find out CPU usage and memory usage for an instance?
    Any information is appreciated!
    Thank you!
    Robert

    you can calculate cpu usage by adding fallowing three factors which you can get from v$sysstat
    1. Parse CPU time : This represents the percentage of CPU time spent parsing SQL statements. Parse time CPU can be a strong indication that an application has not been well tuned. High parse time CPU usually indicates that the application may be spending too much time opening and closing cursors or is not using bind variables.
    2. Recursive CPU time : Sometimes, to execute a SQL statement issued by a user, the Oracle Server must issue additional statements. Such statements are called recursive calls or recursive SQL statements. For example, if you insert a row into a table that does not have enough space to hold that row, the Oracle Server makes recursive calls to allocate the space dynamically if dictionary managed tablespaces are being used.
    Recursive calls are also generated due to the inavailability of dictionary info in the dictionary cache, firing of database triggers, execution of DDL, execution of SQL within PL/SQL blocks, functions or stored procedures and enforcement of referential integrity constraints
    3. Other CPU time : This represents the percentage of time spent looking for buffers, fetching rows or index keys, etc. Generally, \"Other\" CPU should represent the highest percentage of CPU time out of the total CPU time used.
    total memory used you can calculate adding
    total_agrigate_area+sga
    memory usage on os level you can know by fallowing commands
    vmstat 5 20 depending upon os

  • How To find out

    Hi
    How to Find out that how many tabpages are existed in a Given canvas(Tabtypecanvas) at runtime dynamically .
    please give me suggestions

    I don't know the answer. Maybe you should try a different approach. Use a technique in which you save this information in a control-block while writing the forms.
    Can you give me an idea, why you need it dynamically?

  • How to find out PR, PO GR's pending for morethan 30days

    Hi Guru's,
                        How to find out the PR,PO,GR's , which are pending for more than 30days. Thanx in advance

    This can be achieved in the purchasing list displays.
    For PRs you can use ME5A.
    select the field change date  (this has the creation date) from dynamic selections, enter the date that is 30 days ago, press F2 and select the icon for smaller than. Further  enter Processing status N. Execute.
    for open GRs you can check in ME2M (by material) and ME2L (by vendor)
    Enter selection parameter WE101, enter delivery date (that is 30 days ago) press F2 and selec the icon for smaller than. Execute.

  • How to find out the user-exits?

    hi.
    how to find out the user-exits?
    regards
    eswar.

    Hi,
    *& Report  ZEXITFINDER
    *report  zexitfinder.
    *& Enter the transaction code that you want to search through in order
    *& to find which Standard SAP User Exits exists.
    *& Tables
    tables : tstc, "SAP Transaction Codes
    tadir, "Directory of Repository Objects
    modsapt, "SAP Enhancements - Short Texts
    modact, "Modifications
    trdir, "System table TRDIR
    tfdir, "Function Module
    enlfdir, "Additional Attributes for Function Modules
    tstct. "Transaction Code Texts
    *& Variables
    data : jtab like tadir occurs 0 with header line.
    data : field1(30).
    data : v_devclass like tadir-devclass.
    *& Selection Screen Parameters
    selection-screen begin of block a01 with frame title text-001.
    selection-screen skip.
    parameters : p_tcode like tstc-tcode obligatory.
    selection-screen skip.
    selection-screen end of block a01.
    *& Start of main program
    start-of-selection.
    Validate Transaction Code
    select single * from tstc
    where tcode eq p_tcode.
    Find Repository Objects for transaction code
    if sy-subrc eq 0.
    select single * from tadir
    where pgmid = 'R3TR'
    and object = 'PROG'
    and obj_name = tstc-pgmna.
    move : tadir-devclass to v_devclass.
    if sy-subrc ne 0.
    select single * from trdir
    where name = tstc-pgmna.
    if trdir-subc eq 'F'.
    select single * from tfdir
    where pname = tstc-pgmna.
    select single * from enlfdir
    where funcname = tfdir-funcname.
    select single * from tadir
    where pgmid = 'R3TR'
    and object = 'FUGR'
    and obj_name = enlfdir-area.
    move : tadir-devclass to v_devclass.
    endif.
    endif.
    Find SAP Modifactions
    select * from tadir
    into table jtab
    where pgmid = 'R3TR'
    and object = 'SMOD'
    and devclass = v_devclass.
    select single * from tstct
    where sprsl eq sy-langu
    and tcode eq p_tcode.
    format color col_positive intensified off.
    write:/(19) 'Transaction Code - ',
    20(20) p_tcode,
    45(50) tstct-ttext.
    skip.
    if not jtab[] is initial.
    write:/(95) sy-uline.
    format color col_heading intensified on.
    write:/1 sy-vline,
    2 'Exit Name',
    21 sy-vline ,
    22 'Description',
    95 sy-vline.
    write:/(95) sy-uline.
    loop at jtab.
    select single * from modsapt
    where sprsl = sy-langu and
    name = jtab-obj_name.
    format color col_normal intensified off.
    write:/1 sy-vline,
    2 jtab-obj_name hotspot on,
    21 sy-vline ,
    22 modsapt-modtext,
    95 sy-vline.
    endloop.
    write:/(95) sy-uline.
    describe table jtab.
    skip.
    format color col_total intensified on.
    write:/ 'No of Exits:' , sy-tfill.
    else.
    format color col_negative intensified on.
    write:/(95) 'No User Exit exists'.
    endif.
    else.
    format color col_negative intensified on.
    write:/(95) 'Transaction Code Does Not Exist'.
    endif.
    Take the user to SMOD for the Exit that was selected.
    at line-selection.
    get cursor field field1.
    check field1(4) eq 'JTAB'.
    set parameter id 'MON' field sy-lisel+1(10).
    call transaction 'SMOD' and skip first screen.
    Regards

  • How to find out the Transactions used per month & the USER who used that

    Hi,
    1)How to find out the Transactions used per month & the USER who used that?
    2)and can i get the above same for minimum 20 month?
    System : SAP- Enterprise Core Component.

    You can use my program...
    *& Report  Z_ABAP_TCODE_MONITOR
    *****&  Program Type          : Report                                 *
    *****&  Title                 : Z_ABAP_TCODE_MONITOR                   *
    *****&  Transaction code      : ZTCODE_USAGE                           *
    *****&  Developer name        : Shailendra Kolakaluri                  *
    *****&  Deveopment start date : 26 th Dec 2011                         *
    *****&  Development Package   : ZDEV                                   *
    *****&  Transport No          : DEVK906086                                       *
    *****&  Program Description   : This program is to display
    *List all tcodes executed during previous day.
    *& Show the number of users executing tcodes
    *& Modification history
    REPORT  Z_ABAP_TCODE_MONITOR.
    *& List all tcodes executed during previous day.
    *& Show the number of users executing tcodes
    TYPE-POOLS : slis.
    DATA: ind TYPE i,
          fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          layout TYPE slis_layout_alv,
          variant TYPE disvariant,
          events  TYPE slis_t_event WITH HEADER LINE,
          heading TYPE slis_t_listheader WITH HEADER LINE.
    *REPORT  z_report_usage.
    TYPES: BEGIN OF zusertcode,
      date   TYPE swncdatum,
      user   TYPE swncuname,
      mandt     TYPE swncmandt,
      tcode     TYPE swnctcode,
      report TYPE swncreportname,
      count     TYPE swncshcnt,
    END OF zusertcode.
    *data   : date type n.
    DATA: t_usertcode  TYPE swnc_t_aggusertcode,
          wa_usertcode TYPE swncaggusertcode,
          wa           TYPE zusertcode,
          t_ut         TYPE STANDARD TABLE OF zusertcode,
          wa_result    TYPE zusertcode,
          t_result     TYPE STANDARD TABLE OF zusertcode.
    PARAMETER: month TYPE dats DEFAULT sy-datum.
    *PARAMETER: date TYPE dats.
    *select-options : username for wa_usertcode-account.
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM get_fieldcatalog.
      PERFORM set_layout.
    PERFORM get_event.
    PERFORM get_comment.
      PERFORM display_data.
    FORM get_data .
    *date = sy-datum - 2 .
    After start-of-selection add this line (parameter Month required 01 as day).
      concatenate month+0(6) '01' into month.
      CALL FUNCTION 'SWNC_COLLECTOR_GET_AGGREGATES'
        EXPORTING
          component     = 'TOTAL'
          ASSIGNDSYS    = 'DEV'
          periodtype    = 'M'
          periodstrt    = month
        TABLES
          usertcode     = t_usertcode
        EXCEPTIONS
          no_data_found = 1
          OTHERS        = 2.
      wa-date  = month.
    *wa-date  = date.
      wa-mandt = sy-mandt.
    wa_usertcode-account = username.
      LOOP AT t_usertcode INTO wa_usertcode.
        wa-user = wa_usertcode-account.
        IF wa_usertcode-entry_id+72 = 'T'.
          wa-tcode  = wa_usertcode-entry_id.
          wa-report = space.
        ELSE.
          wa-tcode  = space.
          wa-report = wa_usertcode-entry_id.
        ENDIF.
        COLLECT wa INTO t_ut.
      ENDLOOP.
      SORT t_ut BY report ASCENDING.
      CLEAR: wa, wa_result.
    endform.
    FORM get_fieldcatalog .
    fcat-tabname     = 't_ut'.
    fcat-fieldname   = 'DATE'.
    fcat-seltext_l   = 'Date'.
    fcat-key         = 'X'.
    APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'MANDT'.
      fcat-seltext_l   = 'Client'.
      fcat-key         = 'X'.
      APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'USER'.
      fcat-seltext_l   = 'User Name'.
      fcat-key         = 'X'.
      APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'TCODE'.
      fcat-seltext_l   = 'Transaction Code'.
      fcat-key         = 'X'.
      APPEND fcat.
    ENDFORM.
    *&      Form  SET_LAYOUT
          text
    -->  p1        text
    <--  p2        text
    FORM set_layout .
      layout-colwidth_optimize = 'X'.
    ENDFORM.                    " SET_LAYOUT
    *&      Form  GET_EVENT
          text
    -->  p1        text
    <--  p2        text
    *FORM get_event .
    events-name = slis_ev_top_of_page.
    events-form = 'TOP_OF_PAGE'.
    APPEND events.
    *ENDFORM.                    " GET_EVENT
    **&      Form  GET_COMMENT
          text
    -->  p1        text
    <--  p2        text
    *FORM get_comment .
    DATA: text(30).
    text = 'Billing Report'.
    heading-typ = 'H'.
    heading-info = text.
    APPEND heading.
    *ENDFORM.                    " GET_COMMENT
    **&      Form  top_of_page
          text
    -->  p1        text
    <--  p2        text
    *FORM top_of_page .
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
         it_list_commentary       = heading[]
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
    *ENDFORM.                    " top_of_page
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM display_data .
      sort t_ut[].
    DELETE ADJACENT DUPLICATES FROM t_ut[] COMPARING ALL FIELDS.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = sy-cprog
          is_layout          = layout
          it_fieldcat        = fcat[]
          i_save             = 'A'
          is_variant         = variant
          it_events          = events[]
        TABLES
          t_outtab           = t_ut
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " DISPLAY_DATA

Maybe you are looking for

  • My blackberry 8310 wont let me dowload apps

    my blackberry 8310 wont let me dowload apps whenever i click a app to download it says my smartfone dont recognise it

  • "Incorrect structure found in PDF file"?

    I put together multi-page seminar presentations by using the Acrobat "Create PDF from Multiple Files" command to join together individual PDFs acquired elsewhere or generated by Mathematica or Illustrator, and then reorganizing these pages in Acrobat

  • Add device cdrom non global zone

    Hi All , how to add device cdrom to non global zone ? many thanks

  • Really big events too hard to edit

    I am a basketball coach and I want to use IMovie to edit games from other teams. I am importing full length games which last up to 2 hours as an event but it is really hard to scroll through that much film and select 20 second clips. If you lose your

  • Lightroom 2 trial, how do i go back?

    Hello all helpful adobe users :) I thought I'd like to give the new version of lightroom a try, so I downloaded a trial. When I installed it, I recall that i chose for lightroom to convert my library, Im not quite sure though. Then one day, I acciden