+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средства » SE38 - ABAP Редактор (Модератор: Dmitriy)Тема:
|- Выборка диапазона полей на селекционном экране.




Автор Тема: Выборка диапазона полей на селекционном экране.  (Прочитано 2684 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 223
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Доброго времени суток, уважаемые ABAP-перы.

Я Абапер неопытный, пишу очень редко, в общем иногда приходится, но знаний порой не хватает, поэтому нужен ваш совет.
В общем пишу отчёт для контроллинга. На селекционном экране пишу вот это.
Код: You are not allowed to view links. Register or Login
selection-screen begin of block bk1 with frame title text-001.
select-options: kostl for csks-kostl ,
                kstar for cska-kstar ,
                aufnr for aufk-aufnr .
selection-screen end of block bk1.

Т.е. мне нужно чтобы при заполнении поля kostl на селекционном экране пошёл селект в таблицу t811k и вытащил на экран содержимое диапазона двух полей. Содержимое таблицы по одному условию поля  понятно как вытащить, т.е. если я заполняю поле селекционного экрана kostl и оно совпадает с содержимым поля в табличке t811k, то выводится вся информация таблицы
Код: You are not allowed to view links. Register or Login
start-of-selection.
  select * from t811k appending corresponding fields of table tab
      where  valmin in kostl and valmin in kstar
      and valmin in aufnr.

Что характерно в поле valmin таблицы t811k может хранится как МВЗ (kostl) так и вид затрат kstar так и внутренний заказ aufnr, но мне нужно чтобы когда я ввожу в поле селекционного экрана kostl программа бы делала селект не только по полю valmin таблицы t811k, а по промежутку данных полей  valmin (начальное значение) и valmax (конечное значение). До этого ничего подобного мне делать не приходилось, поэтому нужен совет как это сделать. Заранее спасибо.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 684
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Код: You are not allowed to view links. Register or Login
start-of-selection.
  select * from t811k appending corresponding fields of table tab
      where  valmin in kostl and valmin in kstar
      and valmin in aufnr.

Что характерно в поле valmin таблицы t811k может хранится как МВЗ (kostl) так и вид затрат kstar так и внутренний заказ aufnr, но мне нужно чтобы когда я ввожу в поле селекционного экрана kostl программа бы делала селект не только по полю valmin таблицы t811k, а по промежутку данных полей  valmin (начальное значение) и valmax (конечное значение). До этого ничего подобного мне делать не приходилось, поэтому нужен совет как это сделать. Заранее спасибо.
Ну так как в поле VALMIN может быть что-то одно, т.е. МВЗ (kostl) или ЗАКАЗ (aufnr) или ЭЛЕМЕНТ ЗАТРАТ (kstar), то я бы во-первых, соединил бы в зпросе проверку where  valmin in kostl OR valmin in kstar OR valmin in aufnr так как может быть или то или то или то, а не одновременно. Далее так как вас интересует диапазон, то тут все гораздо сложнее. Похоже надо в ручном режиме перебирать значения полей в таблице и проверять их на вхождение.  Одним запросом это похоже не выбрать.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 223
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Ну в общем то суть вроде бы ясна и у меня даже вроде что то получилось.  Теперь смотря на алвгрид, по названию цикла, пытаюсь его открыть транзакциями KSU3-Просмотр цикла фактической раскладки, KSV3 - Просмотр цикла фактического распределения,KSC3 - просмотр цикла косвенного перерасчёта работ, но проблема в том что я не могу открыть ни одной из этих транзакций цикл который отображается в алвгриде и в табличках T811C и T811K. Таких циклов несколько, ни один из них не открывается,  система говорит что они не созданы, т.е. большинство циклов отображённых  в алвгриде открываются и редактируются, а несколько циклов как будто не существуют, а в алвгриде они есть. Понять не могу где подвох?