Текущее время: Пн, июл 28 2025, 09:31

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Создание копии таблицы
СообщениеДобавлено: Чт, июл 08 2010, 17:04 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
Прошу помощи.

Пишу отчет. Объявил структуру следующим образом:
Code:
DATA: BEGIN OF tab OCCURS 0,
  p_nom   like HRT1045-TABSEQNR,
  p_rank  like HRT1045-RANK,
  p_slevl like HRT1045-SLEVL,
  p_otype like HRT1045-APP_OTYPE,
  p_objid like HRT1045-APP_OBJID,
  p_text  like HRT1045-APP_STEXT,
  p_rating like HRT1045-RATING,
  p_rtext like HRT1045-RTEXT,
  p_parent like HRT1045-PARENT,
END OF tab.


Дальше структуру наполняю с помощью селекта по таблице HRT1045. Создается таблица с нескольким десятком записей. Хочу дальше эту таблицу разбить на несколько подтаблиц, но у каждой структура аналогична вышеописанной tab.

Описывать новую структуру заново не хочется, пытался объявить так:
Code:
DATA: tab1 like tab.

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

Как правильно объявить вторую таблицу, чтобы потом можно было ее наполнить при обработке таблицы tab?
П.С. я не абапер, потому прошу сильно не пинать :D


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Чт, июл 08 2010, 18:57 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, дек 22 2006, 17:08
Сообщения: 86
Откуда: Ростов-на-Дону
Пол: Мужской
Попробуйте так
Code:
TYPES: BEGIN OF tab ,
  p_nom   like HRT1045-TABSEQNR,
  p_rank  like HRT1045-RANK,
  p_slevl like HRT1045-SLEVL,
  p_otype like HRT1045-APP_OTYPE,
  p_objid like HRT1045-APP_OBJID,
  p_text  like HRT1045-APP_STEXT,
  p_rating like HRT1045-RATING,
  p_rtext like HRT1045-RTEXT,
  p_parent like HRT1045-PARENT,
END OF tab.
data: tab1 type standart table of tab.
data: tab2 type standart table of tab.



Примерно так.

_________________
Имеющий глаза - да увидит!
Debug


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Чт, июл 08 2010, 18:58 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Цитата:
Как правильно объявить вторую таблицу

А так:
Code:
DATA: tab1 like tab OCCURS 0


или еще лучше:
Code:
TYPES:
BEGIN OF ST,
p_nom   like HRT1045-TABSEQNR,
  p_rank  like HRT1045-RANK,
  p_slevl like HRT1045-SLEVL,
  p_otype like HRT1045-APP_OTYPE,
  p_objid like HRT1045-APP_OBJID,
  p_text  like HRT1045-APP_STEXT,
  p_rating like HRT1045-RATING,
  p_rtext like HRT1045-RTEXT,
  p_parent like HRT1045-PARENT,
END OF ST,

T_DATA_TABLE TYPE STANDARD TABLE OF ST.

DATA:
TAB  TYPE T_DATA_TABLE,
TAB1 TYPE T_DATA_TABLE.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Чт, июл 08 2010, 19:29 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
Art386 написал:
А так:
Code:
DATA: tab1 like tab OCCURS 0


или еще лучше:
Code:
TYPES:
BEGIN OF ST,
p_nom   like HRT1045-TABSEQNR,
  p_rank  like HRT1045-RANK,
  p_slevl like HRT1045-SLEVL,
  p_otype like HRT1045-APP_OTYPE,
  p_objid like HRT1045-APP_OBJID,
  p_text  like HRT1045-APP_STEXT,
  p_rating like HRT1045-RATING,
  p_rtext like HRT1045-RTEXT,
  p_parent like HRT1045-PARENT,
END OF ST,

T_DATA_TABLE TYPE STANDARD TABLE OF ST.

DATA:
TAB  TYPE T_DATA_TABLE,
TAB1 TYPE T_DATA_TABLE.

Первый способ пробовал - не вышло. Завтра попробую второй.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Чт, июл 08 2010, 19:36 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Цитата:
Первый способ пробовал - не вышло. Завтра попробую второй.

что именно не вышло?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Чт, июл 08 2010, 20:26 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
Maksimus написал:
Прошу помощи.

Пишу отчет. Объявил структуру следующим образом:
Code:
DATA: BEGIN OF tab OCCURS 0,
......
Описывать новую структуру заново не хочется, пытался объявить так:
[code]DATA: tab1 like tab.

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


А так пробовали ?
tab1[] = tab[].

_________________
Никого не трогаю, примусы починяю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы  Тема решена
СообщениеДобавлено: Чт, июл 08 2010, 22:24 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Поскольку не ABAPер, то я бы просто написала вот так:
Code:
data: tab1 like standard table of tab with header line.


Т.о. вы объявляете внутреннюю таблицу (internal table) полностью аналогичную tab. Кошернее было бы использовать TYPES, да и таблицы с header line (OCCURS 0) вообще считаются устаревшими (хотя мне лично они очень даже нравятся), но полагаю в данном случае можно этими условностями пренебречь.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Пт, июл 09 2010, 04:37 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
Jelena написала:
Поскольку не ABAPер, то я бы просто написала вот так:
Code:
data: tab1 like standard table of tab with header line.


Т.о. вы объявляете внутреннюю таблицу (internal table) полностью аналогичную tab. Кошернее было бы использовать TYPES, да и таблицы с header line (OCCURS 0) вообще считаются устаревшими (хотя мне лично они очень даже нравятся), но полагаю в данном случае можно этими условностями пренебречь.


Спасибо. Все получилось!
Просто и понятно :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Пт, июл 09 2010, 09:11 
Специалист
Специалист

Зарегистрирован:
Ср, янв 26 2005, 05:11
Сообщения: 185
Пол: Мужской
А так проще, писанины меньше.
data tab1 like tab2[].


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Пт, июл 09 2010, 12:34 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
Serge69 написал:
А так проще, писанины меньше.
data tab1 like tab2[].


Ваш вариант не подходит.
Ругается...
Цитата:
... is a table without a header line


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Пт, июл 09 2010, 12:39 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Maksimus, в Вашем случае
data tab1 like tab[].
Нельзя же просто копипастить, будьте чуть внимательнее :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Пт, июл 09 2010, 12:49 
Специалист
Специалист

Зарегистрирован:
Ср, янв 26 2005, 05:11
Сообщения: 185
Пол: Мужской
Цитата:
Ваш вариант не подходит.
Ругается...

ну так надо добавить with header line


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Пт, июл 09 2010, 13:25 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Serge69 написал:
Цитата:
Ваш вариант не подходит.
Ругается...

ну так надо добавить with header line

Кажется, я понял, почему у автора "не работали" эти варианты:
Code:
data tab1 like tab2[].
DATA: tab1 like tab OCCURS 0.


Таблички объявляются без хедера в таком случае.

Скорее всего, у него в коде где-нибудь написано
Code:
append tab1.

На что, естественно, ругается компилятор...
Цитата:
The internal table "TAB1" has no header line - instead of "APPEND
TAB1", only "APPEND wa TO TAB1" is possible.


Ну и решение в итоге из 3 вариантов:
Code:
data tab1 like tab2[] with header line.
DATA: tab1 like tab OCCURS 0 with header line.
data: tab1 like standard table of tab with header line.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание копии таблицы
СообщениеДобавлено: Пт, июл 09 2010, 18:18 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, июл 19 2007, 07:04
Сообщения: 1072
Пол: Мужской
Besa написал:
Maksimus, в Вашем случае
data tab1 like tab[].
Нельзя же просто копипастить, будьте чуть внимательнее :)


Besa, ну я не настолько глуп чтобы просто копипастить. Не надо воспринимать вещи буквально.
Art386, в своем последнем посте абсолютно прав.


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

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


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

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


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

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