Текущее время: Пт, авг 01 2025, 14:44

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


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

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


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

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