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

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


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

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


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

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