Текущее время: Вт, июл 29 2025, 00:05

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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