Текущее время: Вс, июл 27 2025, 15:44

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Почему можно в селекте использовать ясно массив, но нельзя его привтвоить переменной.
СообщениеДобавлено: Пт, июн 15 2007, 07:35 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
Всем привет! сори за наивный вопрос, ну очень нуна.
вот в справке помощи нашел пример селекта

select * from table into wa where blabla in ('G','B','S').

вот и мучащий меня уже не первый день вопрос об отсутствии массивов в абапе. почему нет возможности присвоить строку 'G','B','S' переменной и чтобы такую переменную можно было заюзать с оператором IN имяпеременной ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Почему можно в селекте использовать ясно массив, но нельзя его привтвоить переменной.
СообщениеДобавлено: Пт, июн 15 2007, 07:51 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
Salmaner написал:
Всем привет! сори за наивный вопрос, ну очень нуна.
вот в справке помощи нашел пример селекта

select * from table into wa where blabla in ('G','B','S').

вот и мучащий меня уже не первый день вопрос об отсутствии массивов в абапе. почему нет возможности присвоить строку 'G','B','S' переменной и чтобы такую переменную можно было заюзать с оператором IN имяпеременной ?


Ranges не спасёт отца русской демократии ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 08:13 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
я бы с удовольсвтием ... тока ни фига не пойму как им пользоваться.
из справки сапа.
Syntax
RANGES rtab FOR dobj [OCCURS n].

вот что такое dobj?

как добавлять в него элементы-объекты?

это пример из хелпа. дальше идет просто объявление структуры и ни какого rtab ни где нет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 08:21 
Специалист
Специалист

Зарегистрирован:
Сб, май 14 2005, 20:46
Сообщения: 108
Откуда: Санкт-Петербург
1) select * from table into wa where blabla in ('G','B','S').


2)

ranges: r_blabla for table-blabla.

Имеет структуру
DATA: BEGIN OF sel OCCURS 10,
SIGN(1),
OPTION(2),
LOW LIKE f,
HIGH LIKE f,
END OF sel.


соответственно
r_blabla-sign = 'I'.
r_blabla-option = 'EQ'.
r_blabla-low = 'G'.
append r_blabla.
r_blabla-low = 'B'.
append r_blabla.
r_blabla-low = 'S'.
append r_blabla.

select * from table into wa where blabla in r_blala.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 08:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Code:
data: lt_mara type table of mara.
RANGES r_matnr FOR mara-matnr.

refresh r_matnr.
r_matnr = 'IEQ'. r_matnr-low = '11'. append r_matnr.
r_matnr = 'IEQ'. r_matnr-low = '12'. append r_matnr.

select *
   into table lt_mara
   from mara
   where matnr in r_matnr.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 08:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
sibrin написал:
Code:
r_matnr = 'IEQ'. r_matnr-low = '11'. append r_matnr.
r_matnr = 'IEQ'. r_matnr-low = '12'. append r_matnr.

Такой код не пойдет в новых версиях. Правильно по полям:
Code:
r_matnr-sign = 'I'.
r_matnr-option = 'EQ'.
r_matnr-low = '000000000000000011'. 
append r_matnr.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 08:37 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Сергей Королев написал:
sibrin написал:
Code:
r_matnr = 'IEQ'. r_matnr-low = '11'. append r_matnr.
r_matnr = 'IEQ'. r_matnr-low = '12'. append r_matnr.

Такой код не пойдет в новых версиях. Правильно по полям:

Не пойдет на этапе синтаксической проверки или просто не будет правильно работать?

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 08:40 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
вау ... ой пасиба пацаны. хоть понятней стало.
вот по ходу поврос у ranges есть структура внутренняя
и в хелпе описана и в дебагере ее видно. это
sing
option
low
high
что это за структура, в чем ее смысл?
если по названиям судить, то sing это подпись записи, option опции записи, low high соответсвтенно нижний и верхний ... что предел ...?
и можно ли не заплнять каждое поле? кодна делаем in rtable то в какмо поле он ищет значения?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 08:47 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
ArmAnn написал:
Не пойдет на этапе синтаксической проверки или просто не будет правильно работать?

Проверку не пройдет, но сейчас негде проверить.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 08:50 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Вы для эксперемента попробуйте на селекционном экране какой-нибудь программы задать select-options и позаполнять его по разному.
В отладчике посмотрите как select-options будет заполнен - схемы схожие.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 08:51 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
ranges - таблица, где построчно пишете условия выборки для одного поля
sign принимает значения 'I' - включить по условию, или 'E' - исключить по условию
option - операция (равно, диапазон, по маске), наберите в редакторе например EQ и нажмите F1 - получите описание всех операций
low и high - соответственно нижнее и верхнее значение для диапазона, либо если операция требует только одно значение - то используется только low

Для примера - ranges аналогичен select-options, поэтому на селекционном экране позаполняйте select-options и под отладчиком смотрите как это выглядит во внутренней табличке

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 09:03 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
ArmAnn
вот, а из хелпа я этого не понял. теперь все встало на место.

А можно в физической таблице создать поле типа ranges ... или это уже слишком ...?
:)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 09:10 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Salmaner написал:

А можно в физической таблице создать поле типа ranges ... или это уже слишком ...?
:)


Есть структурка SELOPT. Её можно включить в таблицу, а какой в этом смысл ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 09:17 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
Lars

не знаю на сколько мое видение правильно, поэтому строго не судите.
мне нужно создать таблицу соответвствий один ко многим
старыйсчет к списку новыхсчетов.

первый вариант, который пришел в голову был таков
101 2701
101 3104
101 3500

а потом мне намекнули что можно сделать

101 '2701, 3104, 3500'


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 15 2007, 09:36 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Salmaner написал:
...

первый вариант, который пришел в голову был таков
101 2701
101 3104
101 3500

а потом мне намекнули что можно сделать

101 '2701, 3104, 3500'


Подстава, однозначно.

Сделать-то можно , только тогда данную таблицу будет невозможно использовать в ракусах и join-ax (я имею ввиду связь по полю '2701, 3104, 3500'), большая по объёму работа по организации транзакций ведения. А каких-либо очевидных преимуществ не видно.

И может стоит посмотреть в сторону стандартной функциональности (например наборов - gs01 02 03), а не изобретать велосипед?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.

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


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

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


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

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