Текущее время: Вс, авг 03 2025, 23:35

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Получение названия поля таблицы по значению
СообщениеДобавлено: Пн, сен 22 2008, 16:54 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 25 2008, 16:04
Сообщения: 10
Добрый день.

Столкнулся с такой вот задачкой.
Есть таблица БД, содержит однотипные поля. Каждая строка таблицы содержит некоторые данные в каждом из столбцов.
Как получить названия столбцов данной таблицы, значения которых для некоторой строки равны определенному значению.

Например:

#|AA|BB|CC|DD
---------------------
1 | 0 | 2 | 3 | 2
---------------------
2 | 4 | 1 | 4 | 2
---------------------
3 | 1 | 0 | 0 | 6

Например, для строки 1, где значение равно 2: это столбцы BB и DD.

Интересует решение через филд символы(FIELD-SYMBOL), если, конечно, таковое существует.

Заранее спасибо !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 22 2008, 17:31 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
DESCRIBE FIELD INTO ... попробуйте.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 22 2008, 18:44 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 25 2008, 16:04
Сообщения: 10
Спасибо ! То что надо !
*thumbs up*


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 23 2008, 11:41 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 25 2008, 16:04
Сообщения: 10
Оказалось, что всё-таки, это не совсем то, что нужно ! Хотя в виду текущей реализации таблицы, данное решение помогло.

У меня столбцы были реализованы следующим образом:
название / тип
AA / zxxxx_AA
BB / zxxxx_BB
CC / zxxxx_CC

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

Так что, оператор DESCRIBE FIELD в данном случае не дает название столбца.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 23 2008, 12:04 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Можно такой подход пользовать


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 23 2008, 12:21 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Да можно сделать вообще тупо, типа

Code:
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE gs_data TO <l_f>.
IF sy-subrc > 0 .
   EXIT .
ENDIF.
IF <LF> = l_value .
    ....
ENDIF.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 23 2008, 13:25 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 25 2008, 16:04
Сообщения: 10
111 написал(а):
Да можно сделать вообще тупо, типа

Code:
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE gs_data TO <l_f>.
IF sy-subrc > 0 .
   EXIT .
ENDIF.
IF <LF> = l_value .
    ....
ENDIF.


таким образом и делал, и describe field в таком случае, в соответствующей переменной, в компоненте name содержит имя типа столбца, а не его название.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 23 2008, 13:26 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 25 2008, 16:04
Сообщения: 10
Пономарев Артем написал:


Это уже поинтересней ! спасибо ! попробую в ближайшем времени !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 23 2008, 13:39 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Kostin Yuriy написал(а):
таким образом и делал, и describe field в таком случае, в соответствующей переменной, в компоненте name содержит имя типа столбца, а не его название.

Я имел ввиду, можно было тупо сделать что-нибудь вроде
Code:
CASE sy-index .
...
ENDCASE.

внутри
Code:
IF <LF> = l_value .
    ....
ENDIF.

Хотя это не очень красиво.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 23 2008, 13:42 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 25 2008, 16:04
Сообщения: 10
111 написал(а):
Kostin Yuriy написал(а):
таким образом и делал, и describe field в таком случае, в соответствующей переменной, в компоненте name содержит имя типа столбца, а не его название.

Я имел ввиду, можно было тупо сделать что-нибудь вроде
Code:
CASE sy-index .
...
ENDCASE.

внутри
Code:
IF <LF> = l_value .
    ....
ENDIF.

Хотя это не очень красиво.


Ок, теперь понял, но подобный вариант рассматривался )) Это, да, не очень красиво. Не очень динамически !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 23 2008, 17:01 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 25 2008, 16:04
Сообщения: 10
Пономарев Артем написал:


Вот это просто идеально ! Спасибо ! Метод взят на заметку ! 8)


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

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


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

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


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

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