Текущее время: Сб, июл 26 2025, 04:01

Часовой пояс: 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 часа


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

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


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

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