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

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


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

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


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

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