Текущее время: Сб, апр 27 2024, 06:20

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


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


ВНИМАНИЕ!

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



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

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

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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