Текущее время: Пт, май 16 2025, 01:39

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: create_dynamic_table стыдно, но все же...
СообщениеДобавлено: Пн, сен 26 2005, 13:06 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 04 2004, 12:01
Сообщения: 68
Откуда: 4.6С
бодрого времени суток всем!

перечитал форум, счастие было близко, но...
создаю динамически внутреннюю таблицу через
cl_alv_table_create=>create_dynamic_table, каталог полей беру из словарной таблицы и т.д. и т.п. как было описано неоднократно на форуме. Но если в таблице содержится поле типа I или F, то таблица получается выравненной и в результате несовпадение длины словарной таблицы и динамически созданной на величину выравнивания, что приводит к дампу при селектах или попытке модифаить словарную таблицу. Подскажите, кто сталкивался, это как-нить лечиться или прийдется ждать 4.7?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 09:17 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 04 2004, 12:01
Сообщения: 68
Откуда: 4.6С
нашел на http://sap.ittoolbox.com/code/d.asp?a=s&d=3038

Note: tables with alignment are not supported (example: MARA)

пришлося через присвоение типов сделать и, соответсвенно, в цикле модифаить записи словарной таблицы.

Code:
     DATA ref_table TYPE REF TO data.
     DATA ref_wa    TYPE REF TO data.
     DATA l_fieldname(5) VALUE '......'.

     FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
     FIELD-SYMBOLS <wa>    TYPE ANY.
     FIELD-SYMBOLS <wa2>   TYPE ANY.
     FIELD-SYMBOLS <field> TYPE ANY.

     CALL METHOD create_table
      EXPORTING tabname = tabname
      IMPORTING table   = ref_table.

     ASSIGN  ref_table->* TO <table>.
     CREATE DATA ref_wa TYPE (tabname).
     ASSIGN ref_wa->* TO <wa2>.

     SELECT * FROM (tabname)
      INTO CORRESPONDING FIELDS OF TABLE <table>.
       WHERE ....

     IF ( sy-subrc EQ 0 ).
       LOOP AT <table> ASSIGNING <wa>.
         ASSIGN COMPONENT l_fieldname OF STRUCTURE <wa> TO <field>.
         <field> = .....
         <wa2> = <wa>.                         
         MODIFY (tabname) FROM <wa2>.
       ENDLOOP.
     ENDIF.


модифаить напрямую
Code:
MODIFY (tabname) FROM TABLE <table>.

и из <wa>
Code:
MODIFY (tabname) FROM <wa>.

отказывается...вываливается, самка сабаки, в дамп. говорит, что несоппадают длины таблиц.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 13:14 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
имхо в приведенном примере можно обойтись
CREATE DATA ref_table TYPE TABLE OF (tabname).

cl_alv_table_create=>create_dynamic_table нужен когда таблицы нет в словаре и у него есть довольно серьеэное ограничение - в программе можно создавать не более 36 таблиц.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 27 2005, 13:28 
Гость
Boger написал(а):
имхо в приведенном примере можно обойтись
CREATE DATA ref_table TYPE TABLE OF (tabname).

cl_alv_table_create=>create_dynamic_table нужен когда таблицы нет в словаре и у него есть довольно серьеэное ограничение - в программе можно создавать не более 36 таблиц.


версия 4.6,
а конструкция CREATE DATA ref_table TYPE TABLE OF (tabname). работает только начиная с версии 4.7.

36 таблиц мне не надоть, с 3-мя бы разобраться ;)


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

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
если повторные вызовы идут, 36 не так уж и много ;)


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

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


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

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


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

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