SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Как обойти ограничение длины селекционного параметра для DYNP_VALUES_READ ? https://www.sapboard.ru/forum/viewtopic.php?f=13&t=96705 |
Страница 1 из 2 |
Автор: | Parazit [ Чт, авг 09 2018, 15:04 ] |
Заголовок сообщения: | Как обойти ограничение длины селекционного параметра для DYNP_VALUES_READ ? |
Хочу параметр селекционного экрана типа string передать по кнопке F4 в редактор текста CL_GUI_TEXTEDIT. Всё работает, кроме случая, если текст введен напрямую в параметр, но ENTER не нажимали. При использовании DYNP_VALUES_READ текст обрезает до 255 символов. Искал другие ФМ-ы, искал по интернету - безуспешно. Пока сделал вызов редактора по отдельной кнопке, соответственно значение параметра обновляется и можно работать с переменной напрямую. Но вопрос остаётся открытым, т.к. довольно часто использую тип string. |
Автор: | Besa [ Чт, авг 09 2018, 15:59 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
Привет Не хочешь сразу на СЭ влепить CL_GUI_TEXTEDIT? |
Автор: | Parazit [ Чт, авг 09 2018, 22:42 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
Besa написал: Привет Не хочешь сразу на СЭ влепить CL_GUI_TEXTEDIT? Привет! Не-а. Я хочу этот параметр сохранять в вариант и передавать в SUBMIT. Извращаться можно по разному, но хочется по миссионерски, стандарт ведь как-то это делает. |
Автор: | pberezin [ Пт, авг 10 2018, 07:49 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
а что за жестокий отчёт такой, что критерии поиска длиннее 255 выходят? Как пользователи практически с этим работают, если не секрет? |
Автор: | olegbash [ Пт, авг 10 2018, 10:42 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
Сделать 2 или более полей. причем 1ое не скрыто - остальные скрыты. по ENTER через HIDE показывать остальные поля по мере необходимости. и на экране - не закваска. и SUBMIT отработает с вариантом. |
Автор: | Parazit [ Пт, авг 10 2018, 11:30 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
pberezin написал: а что за жестокий отчёт такой, что критерии поиска длиннее 255 выходят? Как пользователи практически с этим работают, если не секрет? Действительно, это не простой отчёт, а инструмент анализа для компании разработчика. Программа запускается в фоне, а в параметре передаётся запрос SQL. Но это не единственный случай, когда нужен string на селекционном экране. Например, полный путь к файлу в каталоге, особенно если в виде каталога отображается доступ к различным системам хранения файлов: локальный компьютер, сервер приложений, FTP, SAP Office, BDS и т.д. Или полный путь к атрибуту XML, в некоторых стандартных формах они очень длинные (кажется в пенсионных были проблемы). Вот для наглядности из формы на прибыль: 'Файл\Документ\Прибыль\РасчНал\РасхРеалВнеРеал\РасхРеал\ПрямРасхТорг@РеалПокТов'. Понятно, что разных путей обхода можно найти много, чем и приходится довольствоваться. Но вот есть пунктик, который бы хотелось решить и не ограничивать себя в использовании стандартных приёмов. |
Автор: | Parazit [ Пт, авг 10 2018, 11:41 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
olegbash написал(а): Сделать 2 или более полей. причем 1ое не скрыто - остальные скрыты. по ENTER через HIDE показывать остальные поля по мере необходимости. и на экране - не закваска. и SUBMIT отработает с вариантом. Я сделал проще, справа от параметра string воткнул кнопку. Соответственно по нажатию срабатывает PAI/PBO-логика и переменная экрана заполняется, надобность в использовании DYNP_VALUES_READ отпадает. В варианте данные сохраняются (7000 знаков точно, мне достаточно), SUBMIT ещё не проверил. Суть вопроса не в том, как найти альтернативное решение, а в том, чтобы заставить работать стандартное, а именно в событии программы At selection-screen on value-request |
Автор: | Besa [ Пт, авг 10 2018, 12:40 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
Пока все думаю как заставить работать стандарт, все таки еще одна альрнативка 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. |
Автор: | Parazit [ Пт, авг 10 2018, 13:04 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
Besa написал: Пока все думаю как заставить работать стандарт, все таки еще одна альрнативка Именно так я пока и сделал. |
Автор: | olegbash [ Пт, авг 10 2018, 13:22 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
так более стандартно: и кнопка и вариант и Submit и загрузка из текстового файлика... но у каждого свой взгляд на стандарт Code: data gs_line type C LENGTH 7000 .
select-OPTIONS: s_sql FOR gs_line NO INTERVALS. |
Автор: | Parazit [ Пт, авг 10 2018, 13:30 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
olegbash написал(а): так более стандартно: и кнопка и вариант и Submit и загрузка из текстового файлика... но у каждого свой взгляд на стандарт Code: data gs_line type C LENGTH 7000 . select-OPTIONS: s_sql FOR gs_line NO INTERVALS. Насчёт текстового файлика прикольный вариант. |
Автор: | Besa [ Пт, авг 10 2018, 14:11 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины параметра для DYNP_VALUES_READ ? |
Parazit написал: Besa написал: Пока все думаю как заставить работать стандарт, все таки еще одна альрнативка Именно так я пока и сделал. Извини, не внимательно прочитал. Попробовал еще вариант через средство поиска - то есть, создать СП в словаре, создать к нему пользовательское СП (ФМ). Вводим значение в поле, вызываем СП, в ФМ значение будет видно, но тоже обрезанное. Поддерживаю, думаю имеет смысл рассмотреть другой подход в целом. |
Автор: | DKiyanov [ Вт, авг 14 2018, 18:12 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины селекционного параметра для DYNP_VALUES_READ ? |
делал подобное: 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. |
Автор: | Parazit [ Ср, авг 15 2018, 23:17 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины селекционного параметра для DYNP_VALUES_READ ? |
DKiyanov написал: делал подобное: ... Тут обнаружилось ещё одно волшебное свойство, достаточно создать "AT SELECTION-SCREEN ON VALUE-REQUEST FOR field" без какой-либо обработки и экранное поле типа string стирается при нажатии F4. Поэтому данный способ не прокатывает. |
Автор: | pberezin [ Чт, авг 16 2018, 14:36 ] |
Заголовок сообщения: | Re: Как обойти ограничение длины селекционного параметра для DYNP_VALUES_READ ? |
а не жестоко для системы вцелом, такие критичные вещи, как полный текст выполняемого SQL-запроса, пихать на селекционник? Ктото чтото наколбасит, и потом вместо select from bseg будет delete from bseg Или программную проверку вешать, что первая фраза в тексте = SELECT пробел. М.б. надёжнее статичный объект настройки в системе создать (например в DMSе) и к нему в Пуле текстов Текст настроить? И в нём хранить. А на селекционнике выбирать только ключ этого объекта. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |