С созданием функции Function group не тот указал по ошибке, в итоге спрашивала пароль разработчика. В PAI модуле IF number CO '0987654321' проверил, работает. Определяет, если не цифра. Теперь в функцию вставить пытаюсь. С функцией CONVERSION_EXIT_ Z _OUTPUT небольшая проблема: если программно указывать значение, например в PAI "поле_ввода = '1'" то функция запускается и работает. А если значение вводить на экране с клавиатуры в поле ввода, соответственно затем со срабатыванием OK_CODE , то не работает. Пока на этом остановился. По типам данных: для поля ввода string, для функции import и export типа CLIKE.
С созданием функции Function group не тот указал по ошибке, в итоге спрашивала пароль разработчика. В PAI модуле IF number CO '0987654321' проверил, работает. Определяет, если не цифра. Теперь в функцию вставить пытаюсь. С функцией CONVERSION_EXIT_ Z _OUTPUT небольшая проблема: если программно указывать значение, например в PAI "поле_ввода = '1'" то функция запускается и работает. А если значение вводить на экране с клавиатуры в поле ввода, соответственно затем со срабатыванием OK_CODE , то не работает. Пока на этом остановился. По типам данных: для поля ввода string, для функции import и export типа CLIKE.
Саму проверку вводимых значений в функцию пока не вставлял. Проверяю её по export. С присвоением в PAI: те пробелы, что идут за вводимыми значениями не влияли на проверку, а те что перед ними(слева) убираю при помощи SHIFT strshift left DELETING LEADING ' '. Проблема в том, что если написать программно "поле_ввода = 'чему-то'", то в поле ввода на экране выводится значение из функции из export. А если не программно значения в поле вводить, то export из функции в поле не вставляется.
Если уж проверять то вводимым значениям, то код функции с пробелом такой:
Если функция вызывается, то output(export) отрабатывать должен. В функции без всяких IF напрямую прописано - Output = 'proverka'. Тут может функция не воспринимает, что в поле ввода что-то ввели? Если в само поле ничего не вводить и не прописывать присвоение в PBA и PAI, то функция тоже ничего не выводит. Либо тут какая-то проблема с типами данных может быть.
Ради интереса в функции написал одну только строчку - Leave program. Если в модуле пишу "поле_ввода = значение", то работает. А если с экрана ввожу значение в это же самое поле ввода с последующим исполнением OK_Code по нажатию на кнопку, то не срабатывает. Тут наверное в самой программе надо как-то повторно присвоить значение введённое пользователем.
Сам факт изменения поля фиксируется и при ok_code вызываются соответствующие функции. Программа SAPCNVE и в ней функции AB_GET_C_PARMS и AB_SET_C_PARMS. Проверял путём указания неверного типа данных. Если поле с неверным типом данных оставлять пустым, то ничего не произойдёт, а если ввести в него что-то, то сразу вываливается ошибка при выполнении функции AB_GET_C_PARMS, которая внутри SAPCNVE. Сам SAPCNVE оказался не таким уж и большим. Внутри help на немецком про CONVERSION_EXIT_ xxxxx _OUTPUT и CONVERSION_EXIT_ xxxxx _INPUT и две фунции. Пока только непонятно почему весь этот набор функций и программм не хочет вызывать CONVERSION_EXIT_ Z _OUTPUT, если значения в поле вручную вводятся. Ладно, попробую перевести с немецкого что написано в этом SAPCNVE, может что прояснится.
Функция ....Z_OUTPUT в Export и Import почему-то только тип "с" воспринимает. У меня поле типа string было, вот и не работало, ошибку тоже никакую не выдавало. С пробелами - просто размерность типа "с" убрал и нормально. Теперь другая проблема появилась - "функции ...Z_INPUT не существует". Интересно, они должны быть идентичными - ....Z_OUTPUT и ...Z_INPUT?
Всё, работает наконец-то Conv. exit. Если кому интересно, то вкратце: типы данных - в самой функции тип CLIKE, поле ввода типа "С" с указанием длины. Создаём CONVERSION_EXIT_ xxxxx_INPUT и CONVERSION_EXIT_ xxxxx _OUTPUT. Код первой функции:
Code:
CALL 'CONVERSION_EXIT_ALPHA_INPUT' ID 'INPUT' FIELD INPUT
ID 'OUTPUT' FIELD OUTPUT.
Код второй функции:
Code:
IF input CO '0123456789' .
........
ENDIF.
Теперь при ok_code либо программном изменении значения поля вызываются две верхнии функции и происходит проверка. Вроде всё.
P.S.
А тип "c" без размерности мне 1 символ выдавал, пришлось длину выставлять. Впрочем с помощью 'CONVERSION_EXIT_ALPHA_INPUT' в первой функции проблема с пробелами решилась.[/code]
All times are GMT + 4 Hours Goto page Previous1, 2
Page 2 of 2
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.