Текущее время: Вт, июл 22 2025, 00:26

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Ссылка на таблицу
СообщениеДобавлено: Ср, апр 11 2007, 12:23 
Специалист
Специалист

Зарегистрирован:
Ср, мар 21 2007, 14:32
Сообщения: 158
Господа!
как объявить тип, чтобы itable ссылалось на таблицы, структуру которых я не знаю?

types: begin of t_table,
table type standard table of ???,
tablename type string,
end of t_table.
data: itables type table of t_table, itable type t_table.

нужно сделать что-то типа такого:
data: t0 type table of tcp00.
data: t1 type table of tcp01.
select * from tcp00 into table t0.
select * from tcp01 into table t1.

itable-tablename = 'tcp00'.
itable-table = t0.
append itable to itables.

itable-tablename = 'tcp01'.
itable-table = t1.
append itable to itables.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ссылка на таблицу
СообщениеДобавлено: Ср, апр 11 2007, 12:35 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
_gary_ написал(а):
Господа!
как объявить тип, чтобы itable ссылалось на таблицы, структуру которых я не знаю?

[url=help.sap.com]ref to data[/url]

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 11 2007, 12:44 
Специалист
Специалист

Зарегистрирован:
Ср, мар 21 2007, 14:32
Сообщения: 158
Забыл сказать.
Нужно чтобы работало не только с таблицами объявленными как
data: type table of tcp00.

но и с такими:
data: begin of ITAB_DATA occurs 0,
itablename type string,
itable type ref to data,
end of ITAB_DATA.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 11 2007, 13:07 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
_gary_ написал(а):
Забыл сказать.
Нужно чтобы работало не только с таблицами объявленными как
data: type table of tcp00.

но и с такими:
data: begin of ITAB_DATA occurs 0,
itablename type string,
itable type ref to data,
end of ITAB_DATA.


А разве не работает?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 11 2007, 14:03 
Специалист
Специалист

Зарегистрирован:
Ср, мар 21 2007, 14:32
Сообщения: 158
В общем вот скелет того что нужно организовать.

CLASS CLS_XML_EXCEL DEFINITION.
private section.
types: begin of t_table,
name type string,
reftable type ref to data,
end of t_table.
data: d_tables type table of t_table.

methods:
AddTable
exporting tblname type string
tbl type table,
Show.
ENDCLASS.

CLASS CLS_XML_EXCEL IMPLEMENTATION.
METHOD AddTable.
data: d_table type t_table.
d_table-name = tblname.
*вот здесь нужна ссылка на таблицу, а не копия таблицы.
*т.к. таблицы могут быть большими и две ее копии иметь неохота
*как-то. А вот как эту саму ссылку получить????
* d_table-reftable = tbl.
append d_table to d_tables.
ENDMETHOD.

METHOD Show.
data: d_table type t_table.
field-symbols: <field> type any, <row> type any,
<table> type table.
loop at d_tables into d_table.
write: / d_table-name.
assign d_table-reftable->* to <table>.
loop at <table> assigning <row>.
do.
new-line.
assign component sy-tabix of structure <row> to <field>.
if sy-subrc ne 0.
exit.
endif.
write: <field>.
enddo.
endloop.
endloop.
ENDMETHOD.
ENDCLASS.

по началу в класс методом AddTable запихиваются все таблицы.
и потом Show выводит их на экран.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 11 2007, 14:08 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Help на create data


CREATE DATA ItabRef TYPE ...
ASSIGN ItabRef->* TO <FT>.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 11 2007, 14:18 
Специалист
Специалист

Зарегистрирован:
Ср, мар 21 2007, 14:32
Сообщения: 158
ну это ведь вроде как получится что я узнаю структуру таблицы.

вот этот ведь код в SHOW не сработает

loop at d_tables into d_table.
write: / d_table-name.
assign d_table-reftable->* to <table>. // <table> здесь пустая таблица с нужными полями
loop at <table> assigning <row>. <-вот сюда руганется
do.
new-line.
assign component sy-tabix of structure <row> to <field>.
if sy-subrc ne 0.
exit.
endif.
write: <field>.
enddo.
endloop.
endloop.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 11 2007, 14:29 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Ну смотря как обозвать <table> и <row>.

<table> type standard table (или any table)
<row> type any


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 11 2007, 14:42 
Специалист
Специалист

Зарегистрирован:
Ср, мар 21 2007, 14:32
Сообщения: 158
Спасибо
разобрался


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

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


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

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


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

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