Текущее время: Вт, авг 21 2018, 20:13

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как обойти ограничение длины селекционного параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Чт, авг 09 2018, 16:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
Хочу параметр селекционного экрана типа string передать по кнопке F4 в редактор текста CL_GUI_TEXTEDIT. Всё работает, кроме случая, если текст введен напрямую в параметр, но ENTER не нажимали. При использовании DYNP_VALUES_READ текст обрезает до 255 символов.
Искал другие ФМ-ы, искал по интернету - безуспешно.
Пока сделал вызов редактора по отдельной кнопке, соответственно значение параметра обновляется и можно работать с переменной напрямую.
Но вопрос остаётся открытым, т.к. довольно часто использую тип string.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Последний раз редактировалось Parazit Пт, авг 10 2018, 15:47, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Чт, авг 09 2018, 16:59 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 17:25
Сообщения: 2954
Пол: Мужской
Привет :)
Не хочешь сразу на СЭ влепить CL_GUI_TEXTEDIT?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Чт, авг 09 2018, 23:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
Besa написал:
Привет :)
Не хочешь сразу на СЭ влепить CL_GUI_TEXTEDIT?

Привет!
Не-а. Я хочу этот параметр сохранять в вариант и передавать в SUBMIT.
Извращаться можно по разному, но хочется по миссионерски, стандарт ведь как-то это делает. :)

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Пт, авг 10 2018, 08:49 
Специалист
Специалист

Зарегистрирован:
Чт, мар 29 2007, 12:51
Сообщения: 141
Откуда: Yugorsk.RU
Пол: Мужской
а что за жестокий отчёт такой, что критерии поиска длиннее 255 выходят?
Как пользователи практически с этим работают, если не секрет?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Пт, авг 10 2018, 11:42 
Модератор
Модератор

Зарегистрирован:
Пн, июн 27 2011, 09:25
Сообщения: 419
Сделать 2 или более полей.

причем 1ое не скрыто - остальные скрыты.
по ENTER через HIDE показывать остальные поля по мере необходимости.

и на экране - не закваска.
и SUBMIT отработает с вариантом.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Пт, авг 10 2018, 12:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
pberezin написал:
а что за жестокий отчёт такой, что критерии поиска длиннее 255 выходят?
Как пользователи практически с этим работают, если не секрет?

Действительно, это не простой отчёт, а инструмент анализа для компании разработчика.
Программа запускается в фоне, а в параметре передаётся запрос SQL. :)

Но это не единственный случай, когда нужен string на селекционном экране.
Например, полный путь к файлу в каталоге, особенно если в виде каталога отображается доступ к различным системам хранения файлов: локальный компьютер, сервер приложений, FTP, SAP Office, BDS и т.д.
Или полный путь к атрибуту XML, в некоторых стандартных формах они очень длинные (кажется в пенсионных были проблемы).
Вот для наглядности из формы на прибыль: 'Файл\Документ\Прибыль\РасчНал\РасхРеалВнеРеал\РасхРеал\ПрямРасхТорг@РеалПокТов'.

Понятно, что разных путей обхода можно найти много, чем и приходится довольствоваться.
Но вот есть пунктик, который бы хотелось решить и не ограничивать себя в использовании стандартных приёмов.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Пт, авг 10 2018, 12:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
olegbash написал(а):
Сделать 2 или более полей.

причем 1ое не скрыто - остальные скрыты.
по ENTER через HIDE показывать остальные поля по мере необходимости.

и на экране - не закваска.
и SUBMIT отработает с вариантом.

Я сделал проще, справа от параметра string воткнул кнопку. Соответственно по нажатию срабатывает PAI/PBO-логика и переменная экрана заполняется, надобность в использовании DYNP_VALUES_READ отпадает. В варианте данные сохраняются (7000 знаков точно, мне достаточно), SUBMIT ещё не проверил.
Суть вопроса не в том, как найти альтернативное решение, а в том, чтобы заставить работать стандартное, а именно в событии программы At selection-screen on value-request

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Пт, авг 10 2018, 13:40 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 17:25
Сообщения: 2954
Пол: Мужской
Пока все думаю как заставить работать стандарт, все таки еще одна альрнативка
:lol:

Code:
parameters p_str type string.
selection-screen begin of line.
selection-screen comment 1(33) text.
"selection-screen position 35.
parameters p_test type char10.
selection-screen pushbutton 46(4) but1 user-command cli1.
selection-screen end of line.

initialization.
  text = 'test'.
  but1 = icon_search.

at selection-screen.
  break-point.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Пт, авг 10 2018, 14:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
Besa написал:
Пока все думаю как заставить работать стандарт, все таки еще одна альрнативка
:lol:


Именно так я пока и сделал. :)

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Пт, авг 10 2018, 14:22 
Модератор
Модератор

Зарегистрирован:
Пн, июн 27 2011, 09:25
Сообщения: 419
так более стандартно: и кнопка и вариант и Submit и загрузка из текстового файлика...

но у каждого свой взгляд на стандарт :D

Code:
data gs_line type C LENGTH 7000 .
select-OPTIONS: s_sql FOR gs_line NO INTERVALS.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Пт, авг 10 2018, 14:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
olegbash написал(а):
так более стандартно: и кнопка и вариант и Submit и загрузка из текстового файлика...

но у каждого свой взгляд на стандарт :D

Code:
data gs_line type C LENGTH 7000 .
select-OPTIONS: s_sql FOR gs_line NO INTERVALS.

Насчёт текстового файлика прикольный вариант. :)

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Пт, авг 10 2018, 15:11 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 17:25
Сообщения: 2954
Пол: Мужской
Parazit написал:
Besa написал:
Пока все думаю как заставить работать стандарт, все таки еще одна альрнативка
:lol:


Именно так я пока и сделал. :)

Извини, не внимательно прочитал.

Попробовал еще вариант через средство поиска - то есть, создать СП в словаре, создать к нему пользовательское СП (ФМ). Вводим значение в поле, вызываем СП, в ФМ значение будет видно, но тоже обрезанное.

Поддерживаю, думаю имеет смысл рассмотреть другой подход в целом.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины селекционного параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Вт, авг 14 2018, 19:12 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 11:12
Сообщения: 562
Откуда: Волгодонск
Пол: Мужской
делал подобное:
Code:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR field.
  f4_field = abap_true.
  SUPPRESS DIALOG. " приводит к запуску PAI

AT SELECTION-SCREEN.
  if f4_field = abap_true.
    f4_field = abap_false.

* далее делаем то что нужно   
  endif.

_________________
Изображение Попытка не пытка


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины селекционного параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Чт, авг 16 2018, 00:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
DKiyanov написал:
делал подобное:
...

Тут обнаружилось ещё одно волшебное свойство,
достаточно создать "AT SELECTION-SCREEN ON VALUE-REQUEST FOR field"
без какой-либо обработки и экранное поле типа string стирается при нажатии F4.
Поэтому данный способ не прокатывает. :)

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обойти ограничение длины селекционного параметра для DYNP_VALUES_READ ?
СообщениеДобавлено: Чт, авг 16 2018, 15:36 
Специалист
Специалист

Зарегистрирован:
Чт, мар 29 2007, 12:51
Сообщения: 141
Откуда: Yugorsk.RU
Пол: Мужской
а не жестоко для системы вцелом, такие критичные вещи, как полный текст выполняемого SQL-запроса, пихать на селекционник?
Ктото чтото наколбасит, и потом вместо select from bseg будет delete from bseg :)
Или программную проверку вешать, что первая фраза в тексте = SELECT пробел.

М.б. надёжнее статичный объект настройки в системе создать (например в DMSе) и к нему в Пуле текстов Текст настроить? И в нём хранить.
А на селекционнике выбирать только ключ этого объекта.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

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


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

Сейчас этот форум просматривают: alexwitch


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

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