Текущее время: Сб, авг 02 2025, 05:39

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: На основании всех полей таблиц BSIK и BKPF создаю структуру. Как избежать дублей полей?
СообщениеДобавлено: Пн, мар 17 2008, 13:29 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Т.к. в таблицах есть совпадающие по типу и наименованию поля, при попытке по-простому создать структуру из всех полей обеих таблиц синтакс-проверка ругается на повторы. Какие есть варианты красиво решить эту проблему?

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: На основании всех полей таблиц BSIK и BKPF создаю структуру. Как избежать дублей полей?
СообщениеДобавлено: Пн, мар 17 2008, 14:39 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Моха написал(а):
Т.к. в таблицах есть совпадающие по типу и наименованию поля, при попытке по-простому создать структуру из всех полей обеих таблиц синтакс-проверка ругается на повторы. Какие есть варианты красиво решить эту проблему?

Красиво - использовать только нужные поля из обеих структур.
Посредственно - использовать конструкцию
SAP написал(а):
INCLUDE { {TYPE struc_type} | {STRUCTURE struc} }
[AS name [RENAMING WITH SUFFIX suffix]].

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


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Сэнкс. Тупо не понял сначала смысла суффикса. Фишка в том, что заранее неизвестны нужные поля. Точнее будут использоваться разные варианты.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Dynamic Internal Tables and Structures - ABAP


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

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Моха написал(а):
Сэнкс. Тупо не понял сначала смысла суффикса. Фишка в том, что заранее неизвестны нужные поля. Точнее будут использоваться разные варианты.
А какой смысл создавать подобную структуру ?

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
vvvictor написал:
А какой смысл создавать подобную структуру ?
Есть функции для вывода данных на экран в грид, которые требуют наличия такой базовой структуры.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
TYPES: BEGIN OF ls_bkpf_bsik.
INCLUDE TYPE bkpf AS bkpf RENAMING WITH SUFFIX _bkpf.
INCLUDE TYPE bsik AS bsik RENAMING WITH SUFFIX _bsik.
TYPES: END OF ls_bkpf_bsik.

------------------------------------------

START-OF-SELECTION.

get lfa1.

get lfb1.

get bsik.

get bkpf.

*move bkpf to gt_output.
*move-corresponding bsik to gt_output.
do.
ASSIGN COMPONENT sy-index OF STRUCTURE bkpf to <output>.
ASSIGN COMPONENT sy-index OF STRUCTURE gt_output to <input>.
if sy-subrc = 0.
<input> = <output>.
else.
bkpf_indexes = sy-index - 1.
exit.
endif.
enddo.

do.
ASSIGN COMPONENT sy-index OF STRUCTURE bsik to <output>.
sy_index = bkpf_indexes + sy-index.
ASSIGN COMPONENT sy_index OF STRUCTURE gt_output to <input>.
if sy-subrc = 0.
<input> = <output>.
else.
exit.
endif.
enddo.

append gt_output.


end-of-selection.
-------------------------------------------

g_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = g_repid
* I_INTERNAL_TABNAME =
i_structure_name = 'ls_bkpf_bsik'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_INCLNAME =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = gt_fieldcat[]
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Не хочет заполняться филд-каталог по структуре, которой нет в словаре :(.
Прийдется или структуру (с суффиксами) повторить в словаре (не хочется руками поля забивать ...), или узнать способ использования функции со структурой не из словаря (а возможно ли это ...?) :(.

2ROKO
Пример по ссылке помог. Спасибо.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Йес! Занес труктуру в Словарь!

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Моха написал(а):
Йес! Занес структуру с суффиксами в Словарь!

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 18 2008, 14:07 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Моха написал(а):
Не хочет заполняться филд-каталог по структуре, которой нет в словаре :(.

вот такой вариант у меня прекрасно заполняет филдкаталог по табличке MAIN_DATA, описанной в программе:
Code:
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
       I_PROGRAM_NAME     = REPID
       I_INTERNAL_TABNAME = 'MAIN_DATA'
       I_INCLNAME  = REPID
    CHANGING
       CT_FIELDCAT = RT_FIELDCAT
    EXCEPTIONS
       INCONSISTENT_INTERFACE = 1
       PROGRAM_ERROR          = 2.

PS. Не уверен насчет нужности I_INCLNAME, но так уж склалось

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


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
ArmAnn написал:
... PS. Не уверен насчет нужности I_INCLNAME, но так уж склалось
Странно, но подобный код у нас не прокатил :(. I_INCLNAME нужен - он указывает на отчет/инклюду, содержащую описание структуры.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 18 2008, 21:54 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Моха написал(а):
ArmAnn написал:
... PS. Не уверен насчет нужности I_INCLNAME, но так уж склалось
Странно, но подобный код у нас не прокатил :(. I_INCLNAME нужен - он указывает на отчет/инклюду, содержащую описание структуры.


Наверное это из-за INCLUDE TYPE. REUSE_ALV_FIELDCATALOG_MERGE его не понимает:

Цитата:
Dictionary references are only considered if the keywords LIKE or INCLUDE STRUCTURE (not TYPE) are used.


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

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Jelena написала:
Наверное это из-за INCLUDE TYPE. REUSE_ALV_FIELDCATALOG_MERGE его не понимает:

Цитата:
Dictionary references are only considered if the keywords LIKE or INCLUDE STRUCTURE (not TYPE) are used.
Пробовали и INCLUDE STRUCTURE. Почему то не получилось, но спасибо за уточнение. Проверю еще раз при случае.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 19 2008, 09:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Моха написал(а):
Пробовали и INCLUDE STRUCTURE. Почему то не получилось
Попробуйте определение таблицы полностью заглавными буквами написать.


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

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


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

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


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

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