Текущее время: Ср, июл 16 2025, 06:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Выборка диапазона полей на селекционном экране.
СообщениеДобавлено: Пн, апр 18 2016, 07:42 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 806
Откуда: South Kazakhstan
Пол: Мужской
Добрый день, уважаемые ABAP-перы.

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

Code:
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, то выводится вся информация таблицы

Code:
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 (конечное значение). До этого ничего подобного мне делать не приходилось, поэтому нужен совет как это сделать. Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выборка диапазона полей на селекционном экране.
СообщениеДобавлено: Пн, апр 18 2016, 12:02 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
Не совсем понял, как могут быть увязаны в условие диапазон kostl, заданный на экране выбора, и диапазон значений [valmin;valmax]?

Может быть, имеет смысл сначала набрать действующие kostl из CSKS, предъявив таблице kostl с экрана выбора, а затем каждую строку полученной таблицы сравнивать со значением [T811K-VALMIN; T811K-VALMAX]?

По разделению полей из T811K - есть поле FIELD, которое четко разделяет, для какого поля БД вытащили значение.


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

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 806
Откуда: South Kazakhstan
Пол: Мужской
Ваша мысль возможно самая что ни на есть правильная, я же говорил что я как программер не опытен и думал может быть в АБАПе можно как то ухищрится и сделать что то подобное. В общем насколько я понял Вы имеете в виду, что мне сначала нужно будет выгружать во внутреннюю табличку из CSKS всё что я набрал в виде МВЗ на селекционном экране, а затем сравнивать это выгруженное МВЗ с содержимым полей T811K-VALMIN; T811K-VALMAX. А как мне быть с диапазоном? Ну т.е. в поле T811K-VALMIN хранится начальное значение, а в поле T811K-VALMAX конечное. Т.е как мне проверить входит то или иное МВЗ в диапазон этих МВЗ забитых в эти поля в сегментах цикла распределения затрат?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выборка диапазона полей на селекционном экране.
СообщениеДобавлено: Пн, апр 18 2016, 15:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Paul_80 написал:
Может быть, имеет смысл сначала набрать действующие kostl из CSKS, предъявив таблице kostl с экрана выбора, а затем каждую строку полученной таблицы сравнивать со значением [T811K-VALMIN; T811K-VALMAX]?

Проще

where kostl in range
and kostl between valmin and valmax.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выборка диапазона полей на селекционном экране.
СообщениеДобавлено: Пн, апр 18 2016, 15:38 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
Code:
TABLES: csks.

TYPES:
  BEGIN OF lty_kostl,
    kostl TYPE t811k-valmin,
  END OF lty_kostl.

DATA: lt_t811k TYPE TABLE OF t811k,
      lt_kostl TYPE HASHED TABLE OF lty_kostl WITH UNIQUE KEY kostl.

SELECT-OPTIONS so_kostl FOR csks-kostl.

SELECT DISTINCT kostl INTO TABLE lt_kostl FROM csks WHERE kostl IN so_kostl.


IF lt_kostl[] IS NOT INITIAL.
  SELECT * FROM t811k
  INTO TABLE lt_t811k
  FOR ALL ENTRIES IN lt_kostl
  WHERE
    field LIKE '%KOSTL' AND
    valmin <= lt_kostl-kostl AND
    valmax >= lt_kostl-kostl.
ENDIF.


Kengur написал(а):
where kostl in range
and kostl between valmin and valmax.

Так не получится, Вы смешали слева поля таблицы БД и параметры, которые надо передавать в Select


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выборка диапазона полей на селекционном экране.
СообщениеДобавлено: Вт, апр 19 2016, 11:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Paul_80 написал:
Так не получится, Вы смешали слева поля таблицы БД и параметры, которые надо передавать в Select

У кого то не получается, у кого то получается... :D

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выборка диапазона полей на селекционном экране.
СообщениеДобавлено: Вт, апр 19 2016, 13:50 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 08:43
Сообщения: 806
Откуда: South Kazakhstan
Пол: Мужской
Оба решения интересны. В общем то я последовал синтаксису, который написал Paul_80. Вроде бы всё работает. Спасибо товарищи за подсказку.

В продолжении темы возник такой вопрос. Сделал я отчёт, в котором можно смотреть в каких циклах распределения затрат находится тот или иной МВЗ или Вида затрат. Теперь смотря на алвгрид, по названию цикла, пытаюсь его открыть транзакциями KSU3-Просмотр цикла фактической раскладки, KSV3 - Просмотр цикла фактического распределения,KSC3 - просмотр цикла косвенного перерасчёта работ, но проблема в том что я не могу открыть ни одной из этих транзакций цикл который отображается в алвгриде и в табличках T811C и T811K. Таких циклов несколько, ни один из них не открывается, система говорит что они не созданы. Понять не могу где подвох?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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