{"id":1546,"date":"2016-07-20T14:56:21","date_gmt":"2016-07-20T13:56:21","guid":{"rendered":"http:\/\/oprsteny.cz\/?p=1546"},"modified":"2016-07-20T14:56:21","modified_gmt":"2016-07-20T13:56:21","slug":"abap-select-alv-layout-on-the-selection-screen","status":"publish","type":"post","link":"https:\/\/oprsteny.cz\/?p=1546","title":{"rendered":"ABAP &#8211; Select ALV layout on the selection screen"},"content":{"rendered":"<p>If you want to offer your\u00a0users to have a parameter on the selection screen where they can select\u00a0layout of the ALV to be displayed, you can use the following code snippet<!--more--><\/p>\n<p>The parameter on the selection screen:<\/p>\n<pre lang=abap>SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.\r\n  PARAMETERS p_layo LIKE disvariant-variant.\r\nSELECTION-SCREEN END OF BLOCK b01.<\/pre>\n<p>When your report is started, you can pre-fill the <em>p_layo<\/em> parameter with value of the DEFAULT layout in the <em>INITIALIZATION<\/em> event:<\/p>\n<pre lang=abap>INITIALIZATION.\r\nPERFORM get_default_layout CHANGING p_layo.\r\n\r\nFORM get_default_layout CHANGING cv_layout TYPE disvariant-variant.\r\n  DATA:\r\n    ls_variant TYPE disvariant.\r\n\r\n  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'\r\n    EXPORTING\r\n      i_save        = 'A'\r\n    CHANGING\r\n      cs_variant    = ls_variant\r\n    EXCEPTIONS\r\n      wrong_input   = 1\r\n      not_found     = 2\r\n      program_error = 3\r\n      OTHERS        = 4.\r\n  IF sy-subrc = 0.\r\n    cv_layout = ls_variant-variant.\r\n  ENDIF.\r\nENDFORM.<\/pre>\n<p>To allow user to select from all saved variants, just hook the <em>ON VALUE-REQUEST<\/em> to the selection screen parameter:<\/p>\n<pre lang=abap>AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layo.\r\n  perform select_alv_variant CHANGING p_layo.\r\n\r\nFORM select_alv_variant CHANGING cv_layout TYPE disvariant-variant.\r\n  DATA:\r\n    ls_variant TYPE disvariant.\r\n\r\n  ls_variant-report = sy-repid.\r\n\r\n  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'\r\n    EXPORTING\r\n      is_variant    = ls_variant\r\n      i_save        = 'A'\r\n    IMPORTING\r\n      es_variant    = ls_variant\r\n    EXCEPTIONS\r\n      not_found     = 1\r\n      program_error = 2.\r\n  IF sy-subrc <> 0.\r\n    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno\r\n      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.\r\n  ELSE.\r\n    cv_layout = ls_variant-variant.\r\n  ENDIF.\r\nENDFORM.<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>If you want to offer your\u00a0users to have a parameter on the selection screen where they can select\u00a0layout of the ALV to be displayed, you can use the following code snippet<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[16,86,136,9,222],"tags":[446,447,478,479,481,480],"class_list":["post-1546","post","type-post","status-publish","format-standard","hentry","category-abap","category-alv","category-alv-tutorial","category-development","category-dynpro","tag-abap","tag-alv","tag-disvariant","tag-layout","tag-reuse_alv_variant_default_get","tag-reuse_alv_variant_f4"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3nYbe-oW","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts\/1546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1546"}],"version-history":[{"count":1,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts\/1546\/revisions"}],"predecessor-version":[{"id":1547,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=\/wp\/v2\/posts\/1546\/revisions\/1547"}],"wp:attachment":[{"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oprsteny.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}