Docking Container in a Subscreen

Hi All,
I'm required to create a docking container in a subscreen (which will eventually be placed in a tab-strip).
I have tried to get this, but without any success thus far. Is it technically possible to place a docking container in a subscreen? If not, then is there a sound logical reason beind why it cannot be done?
Regards,
Anand Mandalika.

I tried to place a docking container into a custom container at the main screen (not subscreen). When I tried to instantiate the DC I've got a generic dump CNTL_ERROR. I've got the same result on attempt to open DC within other DC. The portion of the code where it was raised is:
IF CONTAINER_MUST_BE_TOPLEVEL = 0.     
    FRAME_CONTAINER = CONTAINER.       
ELSE.                                  
    RAISE CNTL_ERROR.                  
ENDIF.                                 
I don't know what does it mean to be "top level container", but it might be a starting point for further research. It seems to me that docking containers were not ment to belong to any parent, screen or subscreen. They just float by themselves, leaning on the edge of the window or another docking container. But, why they have PARENT parameter in CONSTRUCTOR then?
Has anyone succeed in opening docking container within any other container?
Igor

Similar Messages

  • What create docking container on a subscreen?

    Hi Experts,
    How to create docking container on a subscreen?
    What parametr "parent" in constructor CL_GUI_DOCKING_CONTAINER?
    Thanks
    Mike Fedorov

    Here's an example...Kindly steal from Rich Heilman -;)
    report zrich_0001 .
    data:
          dockingleft  type ref to cl_gui_docking_container,
          text_editor    type ref to cl_gui_textedit,
          repid type syrepid.
    data: itext type table of tline-tdline,
          xtext type tline-tdline.
    parameters: p_check.
    at selection-screen output.
      repid = sy-repid.
      create object dockingleft
                  exporting repid     = repid
                            dynnr     = sy-dynnr
                            side      = dockingleft->dock_at_left
                            extension = 1070.
      create object text_editor
                  exporting
                       parent     = dockingleft.
      xtext = 'http:\\www.sap.com'.
      append xtext to itext.
      call method text_editor->set_text_as_r3table
         exporting
               table              = itext
         exceptions
               others             = 1.
    start-of-selection.
      call method text_editor->get_text_as_r3table
         importing
               table              = itext
         exceptions
               others             = 1.
      loop at itext into xtext.
        write:/ xtext.
      endloop.
    Greetings,
    Blag.

  • Docking Container inside Subscreens

    Hi Experts,
    I have simple question. In a program of mine there is subscreen which eventually goes into a tabstrip control. I want to create a docking container inside this subscreen. So the docking container appears inside the tabsrip control. 
    I can create a docking container in a normal screen. I want to know how to do the same in a subscreen. Please advise me on this,

    @ Vindika
    Sorry, but this is not possible. Everyone who doesn't say so would need to show the code for proof. Once I tried various ways of achieving that. With confidence I can say: you can't embed docking container within subscren. I have also never seen anyone here who could complete this. You need either different container or screen type to make this combination work.
    @ Anand
    Sorry, but this post doesn't prove anything. Simple saying "I tested the solution with subscreen and it is OK" without publishing the code is worth not too much for me.
    Regards
    Marcin

  • Docking container in a subscreeen

    hy gurus, got an issue on the putting a docking container in a subscreen.
    the subscreen doesn't display.
    I've created a dynpro 202 as subscreen ,
    i've  created a custom container( GO_CONTAINER_OBJECT)  in the dynpro 202.
    in the main dynpro (200)
    i have in the pbo and pai
    pbo
    CALL SUBSCREEN sub_202 INCLUDING 'SAPMZPMCMO' '0202'.
    pai.
    CALL SUBSCREEN sub_202.
    in the pbo of 202 i have.
      MODULE  tree_and_docking.
      MODULE alv_display.
    module tree_and_docking.
    * container for alv-tree
      CREATE OBJECT:
       go_container_object
        EXPORTING
          side      = cl_gui_docking_container=>dock_at_bottom
          repid     = sy-repid
          ratio = '40'
          extension = 250
          dynnr     = '0202',
       go_splitter
          EXPORTING parent = go_container_object
                rows = 1
              columns = 2.
      CALL METHOD:
      go_splitter->set_border
      EXPORTING border = space,
      go_splitter->get_container
      EXPORTING row = 1
      column = 1
      RECEIVING container = dock_sub_cont1,
      go_splitter->set_row_height
      EXPORTING id = 1
      height = '30',
    go_splitter->set_column_width
      EXPORTING id = 1
        width = '20',
      go_splitter->get_container
          EXPORTING row = 1
                column = 2
      RECEIVING container = dock_sub_cont2,
      go_splitter->set_column_width
      EXPORTING id = 2
        width = '100'.
    etc...
    but nothing is displaying when i call the screen.
    Did i miss something?
    Edited by: EBONGUE ANDRE on Oct 5, 2010 5:59 PM

    I guess you can't mix docking container with subscreen. How would that look like (docked at bottom of subscreen's?). No this can't be used like that. Use custom container instead.
    @Uwe
    I got used to this little yellow sign next to your name. How that happens that their take it away from you? I thought SAP Mentor honor is granted forever.
    Regards
    Marcin

  • Create a Docking container

    Hi Experts,
    My requirement is to create a docking container on a subscreen.
    How to create such docking container ?
    Thanks
    Alok Vishnoi

    Hi Alok ,
    Try to do below
    data:  docking_container   type ref to cl_gui_docking_container,
      splitter_container  type ref to cl_gui_splitter_container,
      top_container       type ref to cl_gui_container.
    * Create container for alv tree
      create object docking_container
        exporting
          side      = cl_gui_docking_container=>dock_at_left
          extension = 270
          repid     = sy-repid
          dynnr     = '100'.
      if not docking_container is initial.
    *   Creating object for splitter container
        create object splitter_container
          exporting
            link_dynnr = '100'
            link_repid = sy-repid
            parent     = docking_container
            rows       = 1
            columns    = 1.
      endif.                               " IF NOT docking_container IS INITIAL
      if not splitter_container is initial.
    *   Method to get the container name of top splitter area of docking container
        call method splitter_container->get_container
          exporting
            row       = 1
            column    = 1
          receiving
            container = top_container.
      endif.                               " IF NOT splitter_container IS INITIAL
    you can check more info on my reply of below thread
    https://www.sdn.sap.com/irj/scn/profile?userid=3925441
    hope this info is useful to you.
    Thanks!
    Edited by: Prasanth Maddela on Apr 22, 2009 5:34 PM

  • Can I use Docking container in Subscreen

    Hi Friends,
       I have used Docking container in subscreen,its instance is getting created ,but i am unable to view it .
    So,can I use docking container in Subscreen?

    Hi Bujji,
    here is the code is have used for creating docking container.
    pls,check it once
      IF ref_members_container IS INITIAL.
        lt_fldcat = ref_matrix->mt_sxxx_keys.
        CREATE OBJECT ref_members_container
          EXPORTING
          PARENT                      =
          REPID                       =
            dynnr                       = c_screen-new_member
            side                        = lc_dock_side
          extension                   = 300
          lifetime                    = 1  " Life time screen
            ratio                       = '95'
          EXCEPTIONS
            cntl_error                  = 1
            cntl_system_error           = 2
            create_error                = 3
            lifetime_error              = 4
            lifetime_dynpro_dynpro_link = 5
            others                      = 6.
        CREATE OBJECT ref_members_grid
          EXPORTING
            i_parent          = ref_members_container
          EXCEPTIONS
            error_cntl_create = 1
            error_cntl_init   = 2
            error_cntl_link   = 3
            error_dp_create   = 4
            others            = 5.
        ls_layout-zebra = c_true.
        ls_layout-sel_mode = 'A'.   " Multiple Selection
        CALL METHOD ref_members_grid->set_table_for_first_display
          EXPORTING
       I_BYPASSING_BUFFER            =
       I_BUFFER_ACTIVE               =
       I_CONSISTENCY_CHECK           =
       I_STRUCTURE_NAME              =
       IS_VARIANT                    =
       I_SAVE                        =
       I_DEFAULT                     = 'X'
            is_layout                  = ls_layout
       IS_PRINT                      =
       IT_SPECIAL_GROUPS             =
       IT_TOOLBAR_EXCLUDING          =
       IT_HYPERLINK                  =
       IT_ALV_GRAPHICS               =
          CHANGING
            it_outtab                = <lt_keys>
            it_fieldcatalog          = lt_fldcat
       IT_SORT                       =
       IT_FILTER                     =
          EXCEPTIONS
            invalid_parameter_combination = 1
            program_error                 = 2
            too_many_lines                = 3
            OTHERS                        = 4.
      ELSE.
        CALL METHOD ref_members_grid->tables_display_refresh
          CHANGING
            it_outtab = <lt_keys>.
      ENDIF.

  • Assign subscreen to docking container

    Hi All,
    I have requirement to make the subscreen of mainscreen draggable/reziable. Very much similar to se80.
    I have two subscreens in main screen. Now I need to give this reziable functionality to one of the subscreen .
    This can be achieved through docking container. But currently I am not using any containers.
    If suppose I have to use docking container then how will i assign this subscreen of main screen to docking container.
    Please suggest.
    Thanks.

    Thanks Naimesh.
    I have tabstrip and subscreen inside it. For each tabstrip click we display different table controls which are again designed in different screens as subscreen. Now how will I make this subscreen in Main screen resizable.

  • Embedding a screen in a docking container - Is it possible at all??

    I am working on a screen design similar to SE80, where I will be required to display a tree structure in screen say '0100' to the left of the screen and upon node_double_click event, I should be able to bring up another screen '0200' on to the right side with out navigating away from the screen 0100.
    I have a custom control in my initial screen 0100, covering the full area, and I am instantiating the docking container object in the node_double_click handler method of the tree control. I have passed sy-repid and dynpro number '0200' but to no avail.
    The following is the code sample.
          IF docking_right IS INITIAL.
            CREATE OBJECT docking_right
              EXPORTING
                repid     = g_repid
                dynnr     = '0200'
                side      = cl_gui_docking_container=>dock_at_right
                extension = 900.
          ENDIF.
    I have gone through many posts in this forum but none of them have a definitive indication if that can be possible, that is why I had to create this new thread. I will be glad if any of you could let me know if there is way accomplishing this.
    Thanks in advance,
    Raghu.

    Hi Raghu,
    I was specifically interested in exploring the option (if any) of combining conventional controls and the new GUI controls because I am trying to get to a scenario where I should be able create conventional controls like list boxes and buttons dynamically based on user actions. .
    For GUI controls you always need some container which is a "bridge" b/w control created in program and the screen. For standard dialogs you don't need such container. You just place them on the screen. Therefore you can combine these techniques by simply placing a container (which you already have and will use for tree control). The rest of the screen area can be used by standard controls (listoboxes, i/o fields etc). This way standard controls would be statically set, whereas container would store GUI control assinged dynamically in program.
    If, on the other hand, you want both controls and GUI controls be dynamically determined, just keep you container (for GUI control) and create a subscreen area where you dynamically swap different screens. These screen must be set as subscreens and must have statically defined layout, thus only determination of the screen to be displayed is dynamic here.
    Anyhow, there is no way to dynamically set standard controls on the screen. You could, however in turn switch them on/off in PBO (based on certain conditions) but this would require placing all the possible controls and just hiding/showing them. No replacment is then possible, so image empty gaps which this approach would produce.
    Ironically the constructor of docking container supports repid and dynpro for no apparent utility.
    As I said, container is used only to place some GUI control in it and then send this entire package (container+ GUI control) to appropriate place on the screen. That's why in container's constructor there is both repid and dynpro. These only determine where this container should be attached.
    Regards
    Marcin

  • Docking container in a screen with others elements.

    Hy yall,
    i'm trying to add a docking container at the bottom of a screen where i have already others elements like subscreen etc...
    The add is ok but the dockingcontainer is pushing on the right all the elements in the dynpro.
    How can i control where the docking starts ( his distance from the top) in other to keep it under the others elements?
    P.s: it's a docking_left.

    Hello Andre
    If you have already elements on the screen I would recommend to use a resizable CUSTOM_CONTROL element on the screen to which you link your docking container.
    Furthermore, if the docking container should dock from the bottom why don't you use DOCKING_BOTTOM and make the width of the docking container huge (to fill the entire screen to the right side)?
    Regards
      Uwe

  • Different screens in docking container...?

    Hi gurus,
    I'll try to explain what I'd like to do....
    I have a dynpro with a docking container, on the left I have a tree where I can choose an activity (e.g.: go to se11, go to se38, go to se16, and so on).
    I would like to run those transaction inside the docking container, without leaving to another screen, is it possible?
    Thank you very much!!!

    Hi,
    I think it is not possible, although your idea is interesting. You must think that we must use Call Transaction XXXX and that means that we´re leaving our current programme in order to execute the called programmed and screen behind transaction XXXX. We cannot use Submit since the instruction is for executable reports only.
    When using the SAP´s main menu, we have to leave the main programme (SAPLSMTR_NAVIGATION, screen 0100) when double clicking a node in the tree. When using a docking container, you must insert either screens or subscreens for displaying your information. You cannot enbed a transaction into this screens since it happens what I´ve explained in my first paragraph.
    If you find a way, let us know.

  • How can I pass a docking container to a program in a non-simple context?

    Dear colleagues,
    I want to pass a docking container like the one in SE80 to another program.
    The following code works fine:
    REPORT z_moving_dock.
    DATA: cl_docker type REF TO cl_gui_docking_container.
    PARAMETERS: test.
    INITIALIZATION.
      CREATE OBJECT cl_docker EXPORTING no_autodef_progid_dynnr = 'X'.
    END-OF-SELECTION.
      WRITE:/ test.
    But I cannot extend this to my current program. There I sourced out anything related to the GUI into a function group to obey the MVC paradigma. (That's maybe the error in reasoning, but I'm following the book Design Patterns in Object-Oriented ABAP from SAP Press and -- of course -- good and healthy programming style.)
    So it's a function group which knows the dynpros and controls, the main program knows only the data.
    Now I have a docking container like the one in SE80. We have many working older programs and I want to switch to them carrying the docking container with me. I have searched the Demos in SAP, the Online Help, the SAP Library, Books, the Web, this Forum, but none of them goes beyond the simpler examples that always work.
    I tried the LINK method on the docking container. I tried it before calling the new program (btw. by SUBMIT). I tried it afterwards from the called program (via a function module from the aforementioned group -- but the group is tied to the old program context and therefore I am in a new "instance" of it). I tried different values for REPID and DYNNR in LINK. I debugged SE80 -- too complicated!
    If it works well I get the container back when I return to the calling program. If it works badly the container is completely lost.
    Perhaps I should export something to memory?
    But I strongly would prefer not to alter the called programs: In the future I might also want to call a SAP standard program.
    I also didn't find some documentation explaining what is going on in the background so I could figure out in which direction to "think".
    I also tested the following code on SAP R/3 4.7 and SAP ERP 2005 with the same results.
    In the meantime I also created a minimal example. First the triggering report:
    REPORT z_moving_docking_container.
    DATA: g_example TYPE REF TO zcl_moving_docking_container.
    CREATE OBJECT g_example.
    This obviously calls the main class ZCL_MOVING_DOCKING_CONTAINER which has only this constructor:
    METHOD constructor.
      CALL FUNCTION 'Z_SHOW_DYNPRO'.
    ENDMETHOD.
    Normally this class should handle the business logic. Here it only calls this function module. In the appropriate function group, say Z_MOVING_DOCKING_CONTAINER, I have these declarations in the TOP-Include:
    FUNCTION-POOL z_moving_docking_container.
    DATA:
      gv_okcode TYPE ui_func,
      go_docker TYPE REF TO cl_gui_docking_container.
    The function group also contains a dynpro 9000 with this flow logic:
    PROCESS BEFORE OUTPUT.
      MODULE status_9000.
    PROCESS AFTER INPUT.
      MODULE user_command_9000.
    The modules are straightforward:
    MODULE status_9000 OUTPUT.
      SET PF-STATUS '9000'.
      IF go_docker IS INITIAL.
        CREATE OBJECT go_docker
               EXPORTING no_autodef_progid_dynnr = 'X'.
      ENDIF.
    ENDMODULE.
    with at least the function code ONLI defined in PF-status 9000 and
    MODULE user_command_9000 INPUT.
      IF gv_okcode = 'ONLI'.
        SUBMIT z_sample_report AND RETURN.
      ELSE.
        LEAVE PROGRAM.
      ENDIF.
    ENDMODULE.
    The report Z_SAMPLE_REPORT can be any report you like.
    At last the function module contains the following code:
    FUNCTION z_show_dynpro.
    *"*"Lokale Schnittstelle:
      CALL SCREEN 9000.
    ENDFUNCTION.
    As I see this, this is a straightforward application of the working example at the top and the principles of MVC and encapsulation of the dynpro logic (to "avoid" global variables as best as possible).
    Clearly in some sense this is an academic question, but I have built a fairly big application like that up to now ...
    </edit>
    Thanks for reading and contemplating,
    Thomas
    Edited by: Thomas Geiß on Feb 4, 2009 11:03 AM
    Edited by: Thomas Geiß on Feb 4, 2009 11:59 AM
    Edited by: Thomas Geiß on Feb 4, 2009 12:01 PM

    You'll either have to pass the data in as parameters in the applet tags or create a JavaScript tag and have the JavaScript pass it in. If the array is very large then you open a connection between the Applet and a servlet and pass the data that way.

  • How to set background color in a docking container?

    Hi guys!
    Is it possible to set a background color for a docking container?
    I don't find any appropriate method to do that.
    Is there actually a way?

    Hi,
    Please refer the below program as a reference for Color using Docking Container Concept.
    REPORT zcuitest_alv_07.
    * Use of colours in ALV grid (cell, line and column)            *
    * Table
    TABLES : mara.
    * Type
    TYPES : BEGIN OF ty_mara,
              matnr         LIKE mara-matnr,
              matkl         LIKE mara-matkl,
              counter(4)    TYPE n,
              free_text(15) TYPE c,
              color_line(4) TYPE c,           " Line color
              color_cell    TYPE lvc_t_scol,  " Cell color
    END OF ty_mara.
    * Structures
    DATA  : wa_mara     TYPE ty_mara,
            wa_fieldcat TYPE lvc_s_fcat,
            is_layout   TYPE lvc_s_layo,
            wa_color    TYPE lvc_s_scol.
    * Internal table
    DATA : it_mara     TYPE STANDARD TABLE OF ty_mara,
           it_fieldcat TYPE STANDARD TABLE OF lvc_s_fcat,
           it_color    TYPE TABLE          OF lvc_s_scol.
    * Variables
    DATA : okcode LIKE sy-ucomm,
           w_alv_grid          TYPE REF TO cl_gui_alv_grid,
           w_docking_container TYPE REF TO cl_gui_docking_container.
    PARAMETERS : p_column AS CHECKBOX,
                 p_line   AS CHECKBOX,
                 p_cell   AS CHECKBOX.
    START-OF-SELECTION.
      PERFORM get_data.
    END-OF-SELECTION.
      PERFORM fill_catalog.
      PERFORM fill_layout.
      CALL SCREEN 2000.
    *&      Module  status_2000  OUTPUT
    *       text
    MODULE status_2000 OUTPUT.
      SET PF-STATUS '2000'.
    ENDMODULE.                 " status_2000  OUTPUT
    *&      Module  user_command_2000  INPUT
    *       text
    MODULE user_command_2000 INPUT.
      DATA : w_okcode LIKE sy-ucomm.
      MOVE okcode TO w_okcode.
      CLEAR okcode.
      CASE w_okcode.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " user_command_2000  INPUT
    *&      Module  alv_grid  OUTPUT
    *       text
    MODULE alv_grid OUTPUT.
      IF w_docking_container IS INITIAL.
        PERFORM create_objects.
        PERFORM display_alv_grid.
      ENDIF.
    ENDMODULE.                 " alv_grid  OUTPUT
    *&      Form  create_objects
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM create_objects.
    * Ratio must be included in [5..95]
      CREATE OBJECT w_docking_container
        EXPORTING
          ratio                       = 95
        EXCEPTIONS
          cntl_error                  = 1
          cntl_system_error           = 2
          create_error                = 3
          lifetime_error              = 4
          lifetime_dynpro_dynpro_link = 5
          others                      = 6.
      CREATE OBJECT w_alv_grid
        EXPORTING
          i_parent          = w_docking_container.
    ENDFORM.                    " create_objects
    *&      Form  display_alv_grid
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM display_alv_grid.
      CALL METHOD w_alv_grid->set_table_for_first_display
        EXPORTING
          is_layout                     = is_layout
        CHANGING
          it_outtab                     = it_mara
          it_fieldcatalog               = it_fieldcat
        EXCEPTIONS
          invalid_parameter_combination = 1
          program_error                 = 2
          too_many_lines                = 3
          OTHERS                        = 4.
    ENDFORM.                    " display_alv_grid
    *&      Form  get_data
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM get_data.
      SELECT * FROM mara UP TO 5 ROWS.
        CLEAR : wa_mara-color_line, wa_mara-color_cell.
        MOVE-CORRESPONDING mara TO wa_mara.
        ADD 1                   TO wa_mara-counter.
        MOVE 'Blabla'           TO wa_mara-free_text.
        IF wa_mara-counter = '0002'
        AND p_line = 'X'.
    * Color line
          MOVE 'C410' TO wa_mara-color_line.
        ELSEIF wa_mara-counter = '0004'
        AND p_cell = 'X'.
    * Color cell
          MOVE 'FREE_TEXT' TO wa_color-fname.
          MOVE '5'         TO wa_color-color-col.
          MOVE '1'         TO wa_color-color-int.
          MOVE '1'         TO wa_color-color-inv.
          APPEND wa_color TO it_color.
          wa_mara-color_cell[] = it_color[].
        ENDIF.
        APPEND wa_mara TO it_mara.
      ENDSELECT.
    ENDFORM.                    " get_data
    *&      Form  fill_catalog
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM fill_catalog.
    * Colour code :                                                 *
    * Colour is a 4-char field where :                              *
    *              - 1st char = C (color property)                  *
    *              - 2nd char = color code (from 0 to 7)            *
    *                                  0 = background color         *
    *                                  1 = blue                     *
    *                                  2 = gray                     *
    *                                  3 = yellow                   *
    *                                  4 = blue/gray                *
    *                                  5 = green                    *
    *                                  6 = red                      *
    *                                  7 = orange                   *
    *              - 3rd char = intensified (0=off, 1=on)           *
    *              - 4th char = inverse display (0=off, 1=on)       *
    * Colour overwriting priority :                                 *
    *   1. Line                                                     *
    *   2. Cell                                                     *
    *   3. Column                                                   *
      DATA : w_position TYPE i VALUE '1'.
      CLEAR wa_fieldcat.
      MOVE w_position TO wa_fieldcat-col_pos.
      MOVE 'MATNR'    TO wa_fieldcat-fieldname.
      MOVE 'MARA'     TO wa_fieldcat-ref_table.
      MOVE 'MATNR'    TO wa_fieldcat-ref_field.
      APPEND wa_fieldcat TO it_fieldcat.
      ADD 1 TO w_position.
      CLEAR wa_fieldcat.
      MOVE w_position TO wa_fieldcat-col_pos.
      MOVE 'MATKL'    TO wa_fieldcat-fieldname.
      MOVE 'MARA'     TO wa_fieldcat-ref_table.
      MOVE 'MATKL'    TO wa_fieldcat-ref_field.
    * Color column
      IF p_column = 'X'.
        MOVE 'C610'     TO wa_fieldcat-emphasize.
      ENDIF.
      APPEND wa_fieldcat TO it_fieldcat.
      ADD 1 TO w_position.
      CLEAR wa_fieldcat.
      MOVE w_position TO wa_fieldcat-col_pos.
      MOVE 'COUNTER'  TO wa_fieldcat-fieldname.
      MOVE 'N'        TO wa_fieldcat-inttype.
      MOVE '4'        TO wa_fieldcat-intlen.
      MOVE 'Counter'  TO wa_fieldcat-coltext.
      APPEND wa_fieldcat TO it_fieldcat.
      ADD 1 TO w_position.
      CLEAR wa_fieldcat.
      MOVE w_position  TO wa_fieldcat-col_pos.
      MOVE 'FREE_TEXT' TO wa_fieldcat-fieldname.
      MOVE 'C'         TO wa_fieldcat-inttype.
      MOVE '20'        TO wa_fieldcat-intlen.
      MOVE 'Text'      TO wa_fieldcat-coltext.
      APPEND wa_fieldcat TO it_fieldcat.
    ENDFORM.                    " fill_catalog
    *&      Form  fill_layout
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM fill_layout.
    * Field that identify color line in internal table
      MOVE 'COLOR_LINE' TO is_layout-info_fname.
    * Field that identify cell color in inetrnal table
      MOVE 'COLOR_CELL' TO is_layout-ctab_fname.
    ENDFORM.                    " fill_layout

  • Refresh cl_salv_table= factory attached to a Docking Container

    Hi Gurus!!
    I have a issue with a cl_salv_table=>factory attached to a Docking Container.
    Here is my code set up, which might be wrong actually:
    I've created a simple report, with a TOP and some include for PBO, PAI and routines. In the Report, I call a Screen, here 2000.
    The TOP contains
    DATA: docking_container     TYPE REF TO cl_gui_docking_container,
          gc_table_alv          TYPE REF TO cl_salv_table.
    The Screen Flow is basic:
    PROCESS BEFORE OUTPUT.
      MODULE status_2000.
    PROCESS AFTER INPUT.
      MODULE user_command_2000.
    With status_2000:
    MODULE status_2000 OUTPUT.
      SET PF-STATUS 'STATUS'.
    *  SET TITLEBAR 'xxx'.
    * Initialization of docking container
      IF docking_container IS INITIAL.
        CREATE OBJECT docking_container
          EXPORTING
            side   = cl_gui_docking_container=>dock_at_bottom
          EXCEPTIONS
            OTHERS = 1.
        IF sy-subrc <> 0. MESSAGE a500. ENDIF.
        CALL METHOD docking_container->set_height
          EXPORTING
            height = 170.
      ENDIF.
    ENDMODULE.                 " STATUS_2000  OUTPUT
    Then the Screen PAI looks dumb, but in this example, I have drastically made the code simpler

    I think you are not releasing proxy object with method FREE of docking container.
    Check the below code. It first displays SFLIGHT table, then after another dialog step is concluded, it shows SPFLI table.
    DATA: r_dock_container TYPE REF TO cl_gui_docking_container,
          r_salv_table     TYPE REF TO cl_salv_table.
    DATA: it_sflight TYPE sflight OCCURS 0,
          it_spfli   TYPE spfli   OCCURS 0.
    DATA: count TYPE i.
    START-OF-SELECTION.
      SELECT * FROM sflight INTO TABLE it_sflight UP TO 10 ROWS.
      SELECT * FROM spfli INTO TABLE it_spfli UP TO 10 ROWS.
      CALL SCREEN 0200.
    MODULE pbo OUTPUT.
      SET PF-STATUS space.
      IF count IS INITIAL.
        CREATE OBJECT r_dock_container
          EXPORTING
            side   = cl_gui_docking_container=>dock_at_bottom
          EXCEPTIONS
            OTHERS = 1.
        CALL METHOD r_dock_container->set_height
          EXPORTING
            height = 170.
        CALL METHOD cl_salv_table=>factory
          EXPORTING
            r_container  = r_dock_container
          IMPORTING
            r_salv_table = r_salv_table
          CHANGING
            t_table      = it_sflight.
    *  ALV Display
        r_salv_table->display( ).
      ELSE.
        r_dock_container->free( ).   "this is crucial to release proxy object of docking container
        CLEAR r_dock_container.   "and clear a reference variable (with these two statements your control will disapear from screen)
        "now you can create a new one and bound a new ALV to it
        CREATE OBJECT r_dock_container
           EXPORTING
             side   = cl_gui_docking_container=>dock_at_bottom
           EXCEPTIONS
             OTHERS = 1.
        CALL METHOD r_dock_container->set_height
          EXPORTING
            height = 170.
        CALL METHOD cl_salv_table=>factory
          EXPORTING
            r_container  = r_dock_container
          IMPORTING
            r_salv_table = r_salv_table
          CHANGING
            t_table      = it_spfli.
    *  ALV Display
        r_salv_table->display( ).
      ENDIF.
      ADD 1 TO count .
    ENDMODULE.                  
    Of course you have to adjust it with your tables and data, but this works fine
    Regards
    Marcin
    Edited by: Marcin Pciak on Jun 16, 2009 12:57 PM

  • Background Execution Problem-Docking Container with 2 ALV Grids in one scre

    Hi Friends,
    I have created 2 ALV Grids in one screen - one below another using DOCKING CONTAINER.
    The objects are 'g_dock_cont' and 'g_dock_cont1'.
    I am getting the foreground output as expected with 2 ALV Grids.
    While executing in background (F9), I am getting only output of first ALV grid. Second ALV is not getting displayed in BACKGROUND(F9) mode.
    How to solve this.
    FORM create_objects.
    * Materials with data
      IF   g_dock_cont IS INITIAL.
       IF sy-batch NE 'X'.
    *CREATE THE OBJECT FOR DOCKING CONTAINER
        CREATE OBJECT g_dock_cont
          EXPORTING
            side                  = cl_gui_docking_container=>dock_at_top
            extension             = 300.
        ENDIF.
    *CREATE THE OBJECT FOR ALV GRID
        CREATE OBJECT g_alvgrid
               EXPORTING i_parent = g_dock_cont.
        wa_layout-grid_title =
              'Materials with Data'.
      ENDIF.
    IF NOT I_DETAIL[] IS INITIAL.
    CALL METHOD g_alvgrid->set_table_for_first_display
      EXPORTING
        IS_VARIANT                    = WA_VARIANT_STX
        IS_LAYOUT                     = wa_layout
      CHANGING
        it_outtab                     = I_DETAIL
        IT_FIELDCATALOG               = LIT_FIELDCATALOG[]
      EXCEPTIONS
        INVALID_PARAMETER_COMBINATION = 1
        PROGRAM_ERROR                 = 2
        TOO_MANY_LINES                = 3
        others                        = 4
    IF sy-subrc <> 0.
    ENDIF.
    ENDIF.
    *MATERIALS WITHOUT DATA
      IF   g_dock_cont1 IS INITIAL.
       IF sy-batch NE 'X'.
    *CREATE THE OBJECT FOR DOCKING CONTAINER
        CREATE OBJECT g_dock_cont1
          EXPORTING
            side                  = cl_gui_docking_container=>dock_at_bottom
            extension             = 300.
       ENDIF.
    *CREATE THE OBJECT FOR ALV GRID
        CREATE OBJECT g_alvgrid1
               EXPORTING i_parent = g_dock_cont1.
        wa_layout1-grid_title =
              'Materials without Data'.
      ENDIF.
    IF NOT I_MARA[] IS INITIAL.
    CALL METHOD g_alvgrid1->set_table_for_first_display
      EXPORTING
        IS_LAYOUT                     = wa_layout1
      CHANGING
        it_outtab                     = I_MARA
        IT_FIELDCATALOG               = i_fieldcat[]
      EXCEPTIONS
        INVALID_PARAMETER_COMBINATION = 1
        PROGRAM_ERROR                 = 2
        TOO_MANY_LINES                = 3
        others                        = 4
    IF sy-subrc <> 0.
    ENDIF.
    ENDIF.
    ENDFORM.                    " create_objects
    Regards,
    Viji.

    Hi,
    What i was saying is that you need to code again for background mode of execution.
    AT END OF SELECTION.
    IF SY-BATCH EQ 'X'.
      PERFORM DISPLAY1.
      PERFORM DISPLAY2.
    In DISPLAY1 use REUSE_ALV_LIST_DISPLAY to display data from outtab1.
    In DISPLAY2 use REUSE_ALV_LIST_DISPLAY to display data from outtab2.
    For example : execute this report in background mode.this will not execute in online mode.
    After execution you will get two spools one for KNA1 and one for LFA1 data. Spool can be controlled via IS_PRINT structure.
    report  zrbackground.
    data gt_lfa1 type standard table of lfa1.
    data gt_kna1 type standard table of kna1.
    start-of-selection.
      select * from lfa1 into table gt_lfa1 up to 10 rows.
      select * from kna1 into table gt_kna1 up to 20 rows.
    end-of-selection.
      if sy-batch eq 'X'.
        perform display_lfa1.
        perform display_kna1.
      endif.
    *&      Form  DISPLAY_LFA1
          text
    -->  p1        text
    <--  p2        text
    form display_lfa1 .
      call function 'REUSE_ALV_LIST_DISPLAY'
        exporting
          i_callback_program = sy-repid
          i_structure_name   = 'LFA1'
        tables
          t_outtab           = gt_lfa1
        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_LFA1
    *&      Form  DISPLAY_KNA1
          text
    -->  p1        text
    <--  p2        text
    form display_kna1 .
      call function 'REUSE_ALV_LIST_DISPLAY'
        exporting
          i_callback_program = sy-repid
          i_structure_name   = 'KNA1'
        tables
          t_outtab           = gt_kna1
        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_KNA1
    Please let me know if its not clear or you need more info.
    Thanks,
    Abhishek
    Edited by: abhishek sinha on May 8, 2009 7:42 PM
    Edited by: abhishek sinha on May 8, 2009 8:45 PM

  • ALV tree in docking container

    i am trying to call a docking container (on hotspot click of ALV.-> Reuse_alv_grid_display).
    And a alv tree is to be displayed in docking container.
    I have wrote the entire code and there is no error is thrown by the system, but docking container displayed.
    I am posting entire code .Please let me know where i am mistaken.
    check r_ucomm eq '&IC1'."when user double click on any cell of ALV.
       CASE rs_selfield-SEL_TAB_FIELD.
         WHEN 'I_MKPF-WERKS'.
           perform create_dock.
           perform create_alv_tree.
    *           WHEN .
    *           WHEN OTHERS.
       ENDCASE.
    FORM CREATE_DOCK ."docking container is created
       check obj1 is initial.
       CREATE OBJECT OBJ1
         EXPORTING
    *    PARENT                      =
         REPID                       = sy-repid
         DYNNR                       = sy-dynnr
           SIDE                        = obj1->DOCK_AT_bottom
         EXTENSION                   = 500
         EXCEPTIONS
           CNTL_ERROR                  = 1
           CNTL_SYSTEM_ERROR           = 2
           CREATE_ERROR                = 3
           LIFETIME_ERROR              = 4
           LIFETIME_DYNPRO_DYNPRO_LINK = 5
           others                      = 6
       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.         
    FORM CREATE_ALV_TREE . "alv Tree
    create object tree
         exporting
             parent              = obj1
             node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
             item_selection      = 'X'
             no_html_header      = 'X'
             no_toolbar          = ''
         exceptions
             cntl_error                   = 1
             cntl_system_error            = 2
             create_error                 = 3
             lifetime_error               = 4
             illegal_node_selection_mode  = 5
             failed                       = 6
             illegal_column_name          = 7.
       if sy-subrc <> 0.
         message x208(00) with 'ERROR'.                          "#EC NOTEXT
       endif.
       data l_hierarchy_header type treev_hhdr.
       perform build_hierarchy_header changing l_hierarchy_header.
       IF gt_fieldcatalog[] is   initial.
         perform buildfield_cat using 'TRNTYP' 'TRNTYP' .
         perform buildfield_cat using 'EXDAT' 'Excise Doc' .
         perform buildfield_cat using 'WERKS' 'Excise Doc' .
         perform buildfield_cat using 'EXNUM' 'Excise Doc' .
         perform buildfield_cat using 'EXYEAR' 'Excise Doc' .
         perform buildfield_cat using 'MATNR' 'Excise Doc' .
         perform buildfield_cat using 'RITEM1' 'Excise Doc' .
         perform buildfield_cat using 'RITEM2' 'Excise Doc' .
         perform buildfield_cat using 'MAKTX' 'Excise Doc' .
         perform buildfield_cat using 'REMOVAL' 'Excise Doc' .
         perform buildfield_cat using 'MEINS' 'Excise Doc' .
         perform buildfield_cat using 'EXBAS' 'Excise Doc' .
         perform buildfield_cat using 'EXBED' 'Excise Doc' .
       endif.
    call method tree->set_table_for_first_display
         EXPORTING
    *      i_structure_name    = 'SFLIGHT'
           is_hierarchy_header = l_hierarchy_header
         CHANGING
           it_outtab           = t_J_1IEXCDTL[] "table must be empty !
           it_fieldcatalog     = gt_fieldcatalog.
    perform create_hierarchy.
    call method tree->frontend_update.
    FORM CREATE_HIERARCHY .
    sort IJ_1IEXCDTL by chapid matnr.
       LOOP AT IJ_1IEXCDTL into WJ_1IEXCDTL.
         on change of WJ_1IEXCDTL-chapid.
           perform add_carrid_line using    WJ_1IEXCDTL
                                        changing l_carrid_key.
         endon.
         on change of WJ_1IEXCDTL-matnr.
           perform add_complete_line using  WJ_1IEXCDTL"last complete line.
                                            l_carrid_key
                                   changing l_last_key.
         endon.
       ENDLOOP.
    endform.
    form add_carrid_line using     WJ_1IEXCDTL1 type J_1IEXCDTL
                                    p_relat_key type lvc_nkey
                          changing  p_node_key type lvc_nkey.
       data: l_node_text type lvc_value.
       l_node_text =   WJ_1IEXCDTL1-chapid.
       call method tree->add_node
         EXPORTING
           i_relat_node_key = p_relat_key
           i_relationship   = cl_gui_column_tree=>relat_last_child
           i_node_text      = l_node_text
           is_outtab_line   = WJ_1IEXCDTL
         IMPORTING
           e_new_node_key   = p_node_key.
    endform.                    "add_carrid_line
    form add_complete_line using   WJ_1IEXCDTL2 type J_1IEXCDTL
                                  p_relat_key type lvc_nkey
                        changing  p_node_key type lvc_nkey.
       data: l_node_text type lvc_value.
       write WJ_1IEXCDTL2-matnr to l_node_text .
       call method tree->add_node
         EXPORTING
           i_relat_node_key = p_relat_key
           i_relationship   = cl_gui_column_tree=>relat_last_child
           is_outtab_line   = WJ_1IEXCDTL2
           i_node_text      = l_node_text
         IMPORTING
           e_new_node_key   = p_node_key.
    endform.                    "add_complete_line

    This is the ALV and i want docking container containing alv tree to be displayed with the details of this alv
    at bottom of screen.

Maybe you are looking for

  • Mail Auto Retrieval - Nokia 5800

    Hi, Im having a problem with Nokia's Email App on my 5800XM. I just set up 3 mail accounts, but i can configure automatic retrieval only for 2 of them. Is it limited just for 2 account (auto retrieval)? Is there any way to increase this value?. Hope

  • If you follow only one presidential candidate who is also a cat...

    You could also follow Doug LaDouche https://www.youtube.com/watch?v=uoODXHGdROs

  • Getting error in Forum Moderator Summary

    Hi all, I have configured Forum into portal. Created the iView based on the template (User, Admin, and Initial Admin view). All the forum iViews are working fine. I enabled the moderator for particular category For egs: Root Category --> Travel (set

  • Zen Micro problems URGENT h

    Hi i have a problem with my zen micro. when i turn it on e get the following menu Recovery Mode - Clean up 2- Format all 3- Reload Firmware 4- Reboot i tried all of these butit stays the same... when i get the firmware it doesn't detect my device but

  • I can't remove event handler functions

    Hi guys! Please help to remove event handler functions of a FLVPlaback. I add some functions for an FLVPlaback instance and that's why doesn't work the control panel (play button, pause button and so on) Here is a link: http://sexaid.fw.hu/vg/vg.html