Текущее время: Пт, июл 25 2025, 22:25

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Вывод опреленных столбцов в GRID (cl_gui_alv_grid)
СообщениеДобавлено: Чт, май 19 2005, 12:31 
Гость
grid1 TYPE REF TO cl_gui_alv_grid

Есть какаето таблица "ТАБ". При выводе ГРИДА вылазеют все столбцы таблицы, как сделать так чтобы были видны только определенные столбцы данной таблицы. К примеру 1-2 столбца.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 12:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
В каталоге полей укажи для ненужных столбцов NO_OUT = 'X'
Или вообще удали их из каталога полей
Или сохрани вариант по умолчанию и вызывай его при создании


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 13:00 
Гость
А можно немного по подробнее


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 13:35 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Anonymous написал(а):
А можно немного по подробнее


Вот например, вывыдится первые 4 столбца внутр.таблицы:

Code:
PROGRAM ztest.

tables: t001l.


data: ok_code like sy-ucomm,
      gt_t001l type table of t001l,
      g_container type scrfname value 'GRID',
      l_grid type ref to cl_gui_alv_grid,
      g_custom_container type ref to cl_gui_custom_container.

data:
      gt_fieldcat type lvc_t_fcat with header line.


start-of-selection.
  select * into table gt_t001l from t001l.


end-of-selection.

CALL SCREEN 100.

*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
module pbo output.
  set pf-status 'MAIN100'.
  if g_custom_container is initial.
    create object g_custom_container
           exporting container_name = g_container.
    create object l_grid
           exporting i_parent = g_custom_container.


    perform create_fieldcatalog.

    call method l_grid->set_table_for_first_display
         changing   it_fieldcatalog = gt_fieldcat[]
                          it_outtab = gt_t001l.
  endif.
endmodule.

*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
module pai input.
  call method cl_gui_cfw=>dispatch.
  case ok_code.
    when 'EXIT'.
      perform exit_program.
    when others.
*     do nothing
  endcase.
  clear ok_code.
endmodule.

*---------------------------------------------------------------------*
*       form exit_program                                             *
*---------------------------------------------------------------------*
form exit_program.
  call method g_custom_container->free.
  call method cl_gui_cfw=>flush.
  leave program.
endform.

*&---------------------------------------------------------------------*
*&      Form  create_fc
*&---------------------------------------------------------------------*
FORM create_fieldcatalog.
  call function 'LVC_FIELDCATALOG_MERGE'
       exporting
            i_structure_name = 'T001L'
       changing
            ct_fieldcat      = gt_fieldcat[].

  loop at gt_fieldcat.
    if sy-tabix > 5.
      gt_fieldcat-no_out = 'X'.
      modify gt_fieldcat index sy-tabix.
    endif.
  endloop.

ENDFORM.                    " create_fieldcatalog


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 13:46 
Гость
а есть еще один способ.
я его часто применяю в ALV.

Запускаешь программу, создаешь ALV-вариант,
где можешь скрыть не нужные столбцы, отфильтров,
и т.д. и т.п.
Обзываешь его, скажем 'Z1'
А потом в программе уже указываешь - вызов с вариантом.

Преимущество этого способа в том, что
ты как бы определяешь вариант по умолчанию.
Если впоследствие придется добавить/убрать столбец,
то не нужно менять программу. Пользователь
сам сможет изменить вариант и сохранить его


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 13:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
ВН написал(а):
Обзываешь его, скажем 'Z1'
А потом в программе уже указываешь - вызов с вариантом.


Только не нужно зашивать имя варианта в программу!
Используй:

REUSE_ALV_VARIANT_DEFAULT_GET
или
LVC_VARIANT_DEFAULT_GET

Он вернёт тот вариант, который настроен по-умолчанию для пользователя или для всех (смотря как сохранить, какие права дать пользователю для работы с вариантами и т.п.)

Code:
 
  GS_VARIANT-REPORT = sy-repid.
  GS_VARIANT-HANDLE = sy-dynnr.

  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
       EXPORTING
            I_SAVE        = 'A'
       CHANGING
            CS_VARIANT    = GS_VARIANT
       EXCEPTIONS
            WRONG_INPUT   = 1
            NOT_FOUND     = 2
            PROGRAM_ERROR = 3
            OTHERS        = 4.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 14:02 
Гость
ну да, Толян :)
можно и так, так - правильнее


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 14:04 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Мы тоже зачастую именно вариантами разруливаем. Есть например отчет по сбыту - накидали туда полей немерено - насоздавали сами какие-то варианты, плюс юзеры под себя наделали - все рады, все довольны - все-таки ALV - классная штука :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 14:05 
Гость
Всем спасибо за ответ.
И еще один вопрос.
А можно ли задать структуру ГРИДА как у внутренней таблицы созданной например из нескольких таблиц?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 14:06 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
ВН написал(а):
ну да, Толян :)
можно и так, так - правильнее


имхо, еще и на селекц.экран вывести выбор варианта стоит для полного щастья :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 14:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
OlegDm написал(а):
ВН написал(а):
ну да, Толян :)
можно и так, так - правильнее


имхо, еще и на селекц.экран вывести выбор варианта стоит для полного щастья :)


А для этого случая не забыть про LVC_VARIANT_F4, чтобы выбор был вменяемый :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 14:13 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
DaniKz написал(а):
Всем спасибо за ответ.
И еще один вопрос.
А можно ли задать структуру ГРИДА как у внутренней таблицы созданной например из нескольких таблиц?


Был разговор недавно:
http://www.sapboard.ru/forum/viewtopic ... A%F3%F0%F1

мое мнение - создай структуру в словаре и пользуйся на здоровье.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 19 2005, 15:29 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
T написал:
В каталоге полей укажи для ненужных столбцов NO_OUT = 'X'

Можно также использовать TECH = 'X', тогда поля не будет видно в диалоге изменения варианта отображения.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 24 2005, 18:02 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Цитата:
Запускаешь программу, создаешь ALV-вариант,
где можешь скрыть не нужные столбцы, отфильтров


Простите за глупый вопрос, а как содать ALV-вариаант?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 25 2005, 09:41 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Salas написал(а):
Цитата:
Запускаешь программу, создаешь ALV-вариант,
где можешь скрыть не нужные столбцы, отфильтров


Простите за глупый вопрос, а как содать ALV-вариаант?


надо передать в метод set_table_for_first_display
структуру is_variant:

Code:
...
data: gs_variant type disvariant.
...
g_repid = sy-repid.
gs_variant-report = g_repid.
gs_variant-variant = '<ВариантПоУмолчанию>'.
...
    call method grid1->set_table_for_first_display
         exporting i_structure_name = 'BlaBlaBla'
                   is_variant       = gs_variant
                   i_save           = 'A'
...
   


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

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


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

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


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

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