Текущее время: Вт, мар 19 2024, 14:45

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


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


ВНИМАНИЕ!

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



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

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

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


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

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

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


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

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

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

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


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

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


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

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

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

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


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

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

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

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

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

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


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
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, 12:40 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Пока все думаю как заставить работать стандарт, все таки еще одна альрнативка
: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, 13:04 
Почетный гуру
Почетный гуру
Аватара пользователя

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


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

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


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

Зарегистрирован:
Пн, июн 27 2011, 08:25
Сообщения: 475
так более стандартно: и кнопка и вариант и 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, 13:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
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, 14:11 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

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


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

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

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

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


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

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
делал подобное:
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 ?
СообщениеДобавлено: Ср, авг 15 2018, 23:17 
Почетный гуру
Почетный гуру
Аватара пользователя

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

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

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


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

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

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


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

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


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

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


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

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