Текущее время: Пт, июл 18 2025, 23:44

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Как убрать ALV-grid
СообщениеДобавлено: Пн, мар 03 2008, 16:56 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 28 2008, 13:41
Сообщения: 22
Откуда: Moscow
Подскажите пожайлуста, как реализовать следущее:

Есть список объектов.
При выборе одного из списка открывается форма для редактирования свойств объекта.
У некоторых типов объекта требуется подгружать данные и выводить их в alv-grid.

Трудность в следущей ситуации.
Если человек тыкает на пункты, в которым не требуется грид то всё ок.
Однако если человек ткнул на пункт и отобразил грид, то никак не могу этот alv убрать потом для пунктов, которым он не требуется.

Подскажите пожайлуста как можно его скрыть.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как убрать ALV-grid
СообщениеДобавлено: Пн, мар 03 2008, 17:19 
Специалист
Специалист

Зарегистрирован:
Пн, фев 11 2008, 16:17
Сообщения: 122
Пол: Мужской
Tony-m написал(а):
Подскажите пожайлуста, как реализовать следущее:

Есть список объектов.
При выборе одного из списка открывается форма для редактирования свойств объекта.
У некоторых типов объекта требуется подгружать данные и выводить их в alv-grid.

Трудность в следущей ситуации.
Если человек тыкает на пункты, в которым не требуется грид то всё ок.
Однако если человек ткнул на пункт и отобразил грид, то никак не могу этот alv убрать потом для пунктов, которым он не требуется.

Подскажите пожайлуста как можно его скрыть.


Попробуйте использовать функцию обновления для списка объектов, если он у Вас также с помощью ALV выводится:

Code:
*&---------------------------------------------------------------------*
*&      Form  REFRESH_PROG
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*

*FORM refresh_prog.
*
*  DATA: l_grid type ref to cl_gui_alv_grid.
*
*  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
*    IMPORTING
*      E_GRID = l_grid.
*
*  CALL METHOD l_grid->REFRESH_TABLE_DISPLAY.
*
* ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, мар 03 2008, 21:00 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Ну если совсем не хочется его на экране видеть - грохнуть его деструктором. А когда надо - создать повторно можно.

ЗЫ А вообще, расскажите потом, что это было и зачем это нужно. А то фиг победишь с такой постановкой...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 04 2008, 10:40 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 28 2008, 13:41
Сообщения: 22
Откуда: Moscow
John Doe написал:
Ну если совсем не хочется его на экране видеть - грохнуть его деструктором.


Вот это и хочу сделать )


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 04 2008, 10:53 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Code:
TRY.
  грид->free( ).
  контейнер->free( ).
CATCH cx_sy_ref_is_initial.
ENDTRY.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 04 2008, 18:26 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 28 2008, 13:41
Сообщения: 22
Откуда: Moscow
Чёта я откровенно туплю. вот у меня есть screen 101
Code:
MODULE STATUS_0101.
  SET PF-STATUS 'ALV'.
  PERFORM refresh_additional_alv_grid.
  "INP_ZZNAME = 'test'.

ENDMODULE.


В нём вызывается форма приведенная ниже. Эта форма для записей с line_from_tbl_itog-ZZTYPE = 4 должна отображать ALV а для остальных его на экране ваще не должно быть. Правильно ли я пытаюсь добиться желанного или нет? помогите пожалуйста.

Code:

data: ADDITIONAL_ALV_CONT type ref to cl_gui_custom_container.
data: additional_alv_grid type ref to cl_gui_alv_grid.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.

DATA:                                 
  fieldcat TYPE slis_t_fieldcat_alv. 
*--- Field catalog table
DATA gt_fieldcat TYPE lvc_t_fcat .
*--- Layout structure
DATA gs_layout TYPE lvc_s_layo .

FORM show_additional_alv_grid.

    clear tbl_ZRE_IKENES_HOUSE.

    DATA: tbl_ZRE_IKENES_HOUSE_tmp LIKE tbl_ZRE_IKENES_HOUSE_t OCCURS 0 WITH HEADER LINE.
    select * INTO CORRESPONDING FIELDS OF TABLE tbl_ZRE_IKENES_HOUSE_tmp
            FROM ZRE_IKENES_HOUSE
            WHERE BUKRS_MAIN = p_bukrs
            AND BUKRS_MAIN = p_bukrs
            AND ZZNAME_MAIN = line_from_tbl_itog-ZZNAME
            AND ZZTYPE_MAIN = line_from_tbl_itog-ZZTYPE.


    loop at tbl_ZRE_IKENES_HOUSE_tmp.

      tbl_ZRE_IKENES_HOUSE-ZZNAME_MAIN = tbl_ZRE_IKENES_HOUSE_tmp-ZZNAME_MAIN.
      tbl_ZRE_IKENES_HOUSE-ZZTYPE_MAIN = tbl_ZRE_IKENES_HOUSE_tmp-ZZTYPE_MAIN.
      tbl_ZRE_IKENES_HOUSE-ZZRECDATE = tbl_ZRE_IKENES_HOUSE_tmp-ZZRECDATE.
      tbl_ZRE_IKENES_HOUSE-ZZRECTIME = tbl_ZRE_IKENES_HOUSE_tmp-ZZRECTIME.
      tbl_ZRE_IKENES_HOUSE-ZZNAME_ON = tbl_ZRE_IKENES_HOUSE_tmp-ZZNAME_ON.
      tbl_ZRE_IKENES_HOUSE-ZZTYPE_ON = tbl_ZRE_IKENES_HOUSE_tmp-ZZTYPE_ON.

      read table cache_ZRE_ZZTYPE_DIC_tab with table key ZZTYPE = tbl_ZRE_IKENES_HOUSE-ZZTYPE_ON.
        if sy-subrc eq 0.
          tbl_ZRE_IKENES_HOUSE-ZZTYPE_ON_NAME = cache_ZRE_ZZTYPE_DIC_tab-ZZNAME.
        else.
          tbl_ZRE_IKENES_HOUSE-ZZTYPE_ON_NAME = 'error 1 '.
        endif.
        APPEND tbl_ZRE_IKENES_HOUSE.
    ENDLOOP.

    DATA: ls_fieldcat TYPE slis_fieldcat_alv.

        DATA:                                  ALV
          fieldcat TYPE slis_t_fieldcat_alv.   
*        --- Field catalog table
        DATA additional_gt_fieldcat TYPE lvc_t_fcat .
*        --- Layout structure
        DATA additional_gs_layout TYPE lvc_s_layo .

        set TITLEBAR '101'.
        set pf-status 'ALV'.


        data:
              additional_alv_grid type ref to cl_gui_alv_grid,
              dock_sub_cont2 type ref to cl_gui_container,
              ADDITIONAL_ALV_CONT type ref to cl_gui_custom_container,
              repid type syrepid.
    repid = sy-repid.

    if additional_alv_grid is initial.
      IF line_from_tbl_itog-ZZTYPE <> '4'.
**        TRY.
**          additional_alv_grid->free( ).
**          ADDITIONAL_ALV_CONT->free( ).
**
**          CATCH cx_sy_ref_is_initial.
**        ENDTRY.
      else.
        create object ADDITIONAL_ALV_CONT exporting container_name = 'ADDITIONAL_ALV_CONT'.
        create object additional_alv_grid  exporting i_parent = ADDITIONAL_ALV_CONT.

        PERFORM init_additional_fieldcat USING additional_gt_fieldcat[].

        call method additional_alv_grid->set_table_for_first_display
          exporting
            is_layout = additional_gs_layout
          changing
            it_fieldcatalog = additional_gt_fieldcat
            it_outtab = tbl_ZRE_IKENES_HOUSE[].
       ENDIF.
    else.
      perform refresh_additional_alv_grid.
    endif.
  ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 06 2008, 14:34 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Попробуйте использовать метод set_visible.


Code:
    if additional_alv_grid is initial.
      IF line_from_tbl_itog-ZZTYPE <> '4'.
**        TRY.
**          additional_alv_grid->free( ).
**          ADDITIONAL_ALV_CONT->free( ).
**
**          CATCH cx_sy_ref_is_initial.
**        ENDTRY.

Здесь какая то ерунда написана: "если объект не создан, попытаться его инициализировать."


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB