Всем доброго времени суток!
Прошу прощение возможно за глупый вопрос, но столкнувшись с тонкостями написания sql языка в ABAP я не допонимаю как писать ту или иную часть кода. Казалось бы синтаксис простой, нооо...не срабатывает. При написании отчёта непосредственно в ABAP допустим с какой либо таблицы на селекционном экране выбора задаются условия в соответствии с которыми происходит селект с таблицы. Ну вот допустим пример select * from aufk appending corresponding fields of table tab
where auart in s_auart
and aufnr in s_aufnr
and erdat in s_erdat
and phas0 ne ''.
В этом коде видно, что на селекционном экране я могу заполнять поля, т.е. выбирать какие записи мне брать из таблиц, т.е. что я хочу этим сказать, а то что если я на селекционном экране заполню только одно из полей, например укажу Вид заказ ТОРО, то запрос выдаст мне список заказов с этим видом, а если два поля заполню, например вид заказа и номер заказа то запрос выдаст мне из таблицы aufk один заказ с видом и номером. Тоже самое пытаюсь сделать с внешней таблицей sql сервера. В ABAP указываю следующее selection-screen begin of block lb2 with frame title text-001.
parameters: year2 like tab-year obligatory,
r_num2 like tab-r_num,
ufio2 like tab-ufio.
selection-screen end of block lb2.
data: dbs type dbcon-con_name.
dbs = 'TEST_ERP_SQL'.
EXEC SQL.
CONNECT TO :dbs
ENDEXEC.
EXEC SQL.
open Test_ERP_DB for
select r_num, y_creat, ufio from Requests WHERE r_num = :r_num2
y_creat = :year2
endexec.
*break-point.
do.
EXEC SQL.
FETCH NEXT Test_ERP_DB into :tab-r_num, :tab-year, :tab-ufio
endexec.
if sy-subrc <> 0.
exit.
else.
append tab.
* break-point.
endif.
enddo.
break-point.
EXEC SQL.
CLOSE Test_ERP_DB
ENDEXEC.
При запуске и заполнении селекционного экрана всё отрабатывает и таблица заполняется согласно условиям, которые я указал на селекционном экране, но если я не заполняю хотя бы одно поле, например укажу год, чтобы произошла выборка всех записей из внешней таблицы за весь год, то условие не срабатывает. Не пойму, вроде бы синтаксис простой ABAPерский, но условия срабатывают только если я заполняю все поля на селекционном экране. Может быть кто нибудь подскажет что я не так делаю?!