Текущее время: Сб, авг 02 2025, 20:23

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


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

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


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

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