Текущее время: Вс, авг 03 2025, 08:03

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: SALV: оптимальная ширина столбца
СообщениеДобавлено: Пт, ноя 07 2008, 16:39 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 12:44
Сообщения: 305
Откуда: Жайрем -> Астана
Доброго вечера!
В программе используется SALV(CL_SALV_TABLE), и хочется некоторые столбцы оптимизировать по ширине их значений. Вроде бы для этого и есть метод CL_SALV_COLUMN->SET_OPTIMIZED. Но на деле ничего не получается.

Сталкивался кто с этим?

PS: SAP ECC 6.0


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 17:16 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
У меня работает...
Code:
DATA: ITAB TYPE TABLE OF SFLIGHT,
      ALV TYPE REF TO CL_SALV_TABLE.
DATA: LR_COLUMNS TYPE REF TO CL_SALV_COLUMNS.

START-OF-SELECTION.
  SELECT * FROM SFLIGHT INTO TABLE ITAB.

END-OF-SELECTION.
  CL_SALV_TABLE=>FACTORY(
  IMPORTING
    R_SALV_TABLE = ALV
  CHANGING
    T_TABLE      = ITAB ).

  LR_COLUMNS = ALV->GET_COLUMNS( ).
  LR_COLUMNS->SET_OPTIMIZE( ABAP_TRUE ).

  ALV->DISPLAY( ).

Почувствуйте разницу, закомментировав пару нужных строк.

Добавил: извини, это я не прочувствовал сам. Тоже не работает. Думаю...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 17:50 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
John Doe написал:
У меня работает...
Code:
DATA: ITAB TYPE TABLE OF SFLIGHT,
      ALV TYPE REF TO CL_SALV_TABLE.
DATA: LR_COLUMNS TYPE REF TO CL_SALV_COLUMNS.

START-OF-SELECTION.
  SELECT * FROM SFLIGHT INTO TABLE ITAB.

END-OF-SELECTION.
  CL_SALV_TABLE=>FACTORY(
  IMPORTING
    R_SALV_TABLE = ALV
  CHANGING
    T_TABLE      = ITAB ).

  LR_COLUMNS = ALV->GET_COLUMNS( ).
  LR_COLUMNS->SET_OPTIMIZE( ABAP_TRUE ).

  ALV->DISPLAY( ).

Почувствуйте разницу, закомментировав пару нужных строк.

Добавил: извини, это я не прочувствовал сам. Тоже не работает. Думаю...

А что не работает? У меня такой код работает.

_________________
"После" - не значит "вследствие"


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Такой-то работает... А если так дописать - то нет...
Code:
  LR_COLUMNS = ALV->GET_COLUMNS( ).
  LR_COLUMN ?= LR_COLUMNS->GET_COLUMN( 'PRICE' ).

  LR_COLUMN->SET_OPTIMIZED( ABAP_TRUE ).
  LR_COLUMN->IS_OPTIMIZED( RECEIVING VALUE = FLAG ).
  IF FLAG IS NOT INITIAL.
    BREAK-POINT.
  ENDIF.

Причем флаг ставит сто пудово, а на экране не оптимизирует. Бага одно слово. Или фича...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 10 2008, 07:52 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 12:44
Сообщения: 305
Откуда: Жайрем -> Астана
хе-хе, видимо что-то они там пропустили
пришлось дописывать метод CL_SALV_CONTROLLER_METADATA=>GET_LVC_FIELDCATALOG на предмет передачи поля optimized в col_opt, и соответсвенно чтобы это работало пришлось использовать SALV для ALV Grid Control...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 11 2008, 14:39 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 11 2008, 14:35
Сообщения: 1
где-нибудь перед
Code:
GR_TABLE->DISPLAY( ).

нужно сделать
Code:
  gr_functions = gr_table->get_functions( ).
  gr_functions->set_all( ).

и оптимизация будет работать. Скорее всего можно добавить конкретных функций, а не set_all( ), но искать неохота :)


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

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


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

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


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

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