Текущее время: Ср, май 14 2025, 15:58

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Динамические структуры
СообщениеДобавлено: Вт, мар 22 2005, 10:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 10 2005, 10:21
Сообщения: 198
Пол: Мужской
Вот встал вопрос, необходимо создать отчет/ALV Grid, в который в зависимости от данных селективного экрана динамическое число столбцов, т.е. отчет за 2 месяца - 2 столбца, за год - 12 столбцов и т.д. Конечное число стобцов неизвестно. Как проще организовать структуру для хранения таких данных?

_________________
Если программа заработала с первого раза, значит она написана принципиально неверно!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 11:05 
Гость
ну самое простое это создать структуру с максимально возможным числом столбцов :)


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 11:11 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
В зависмости от того скока месяцев передали формировать филд каталог


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 11:58 
Гость
Ich Will написал:
В зависмости от того скока месяцев передали формировать филд каталог


наиболее верный вариант


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 12:43 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 10 2005, 10:21
Сообщения: 198
Пол: Мужской
Ich Will написал:
В зависмости от того скока месяцев передали формировать филд каталог


Филд каталог формировать не проблема, но вот вот как прописать, откуда брать данные для столбцов ALV Grid'а? В field_cat все равно надо указывать поле структуры :(

_________________
Если программа заработала с первого раза, значит она написана принципиально неверно!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 12:45 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 10 2005, 10:21
Сообщения: 198
Пол: Мужской
EHOT написал(а):
ну самое простое это создать структуру с максимально возможным числом столбцов :)


Это чего, описать полей этак 120 что-ли? :)
А красивее как-то можно?

_________________
Если программа заработала с первого раза, значит она написана принципиально неверно!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 12:48 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Igor Moskvin написал:
Это чего, описать полей этак 120 что-ли? :)
А красивее как-то можно?


Если действительно количество стобцов неизвестно, то можно попробовать (сам я не пробовал) использовать CL_ABAP_STRUCTDESCR (как раз я тему поднимал недавно), и с помощью него формировать динамический тип.
Хотя, конечно, это довольно извратно получится.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Последний раз редактировалось 111 Вт, мар 22 2005, 12:49, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 12:49 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
Igor Moskvin написал:
EHOT написал(а):
ну самое простое это создать структуру с максимально возможным числом столбцов :)


Это чего, описать полей этак 120 что-ли? :)
А красивее как-то можно?

можно в лупе инкрементить к-нить переменную и составлять из неё имя поля.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 12:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Igor Moskvin написал:
EHOT написал(а):
ну самое простое это создать структуру с максимально возможным числом столбцов :)


Это чего, описать полей этак 120 что-ли? :)
А красивее как-то можно?


Если поглядеть на САПовские таблицы с оборотами, то увидишь, что они так и поступают. Так сказать, местный колорит :)

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 13:35 
Гость
Динамическое создание внутренних таблиц:
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING it_fieldcatalog = lt_fieldcat
IMPORTING ep_table = gt_outtab.
Code:
*
* Копирайт не мой, благодарности автору отдельно :) !!! Но для примера более чем достаточно:
*
REPORT ZZZ1 .
data: lt_fieldcat type LVC_T_FCAT,
      gt_outtab   type ref to data,
      gf_line     type ref to data,
      fcat_line   like line of lt_fieldcat
.
field-symbols: <tab> type table,
               <line>,
               <field>.

refresh lt_fieldcat.

clear fcat_line.
fcat_line-FIELDNAME = 'FIRST'.
fcat_line-OUTPUTLEN = 10.
fcat_line-INTTYPE = 'C'.
append fcat_line to lt_fieldcat.

clear fcat_line.
fcat_line-FIELDNAME = 'SECOND'.
fcat_line-OUTPUTLEN = 20.
fcat_line-INTTYPE = 'C'.
append fcat_line to lt_fieldcat.

CALL METHOD cl_alv_table_create=>create_dynamic_table
           EXPORTING it_fieldcatalog = lt_fieldcat
           IMPORTING ep_table        = gt_outtab.

ASSIGN gt_outtab->* TO <tab>.
create data gf_line like line of <tab>.
ASSIGN gf_line->* TO <line>.

assign component 'FIRST'  of structure <line> to <field>.
<field> = 'ОДЫН'.
assign component 'SECOND' of structure <line> to <field>.
<field> = 'ДВА'.
append <line> to <tab>.

assign component 'FIRST'  of structure <line> to <field>.
<field> = 'ЫЩО ОДЫН'.
assign component 'SECOND' of structure <line> to <field>.
<field> = 'ИЩО ДВА'.
append <line> to <tab>.

loop at <tab> assigning <line>.
  write / <line>.
endloop.


Последний раз редактировалось Stenj_90 Вт, мар 22 2005, 13:57, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 13:44 
Гость
TYPE-POOLS
: slis
.
DATA
: longrow(1023) TYPE c
, sum TYPE dmbtr
, l TYPE i
, i TYPE i
, n(3) TYPE n
, fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE
, fnam TYPE slis_fieldname
.
FIELD-SYMBOLS
: <f> TYPE dmbtr
.
DESCRIBE FIELD sum LENGTH l.
DO 12 TIMES.
i = ( sy-index - 1 ) * l.
sum = sy-index.
n = sy-index.
ASSIGN longrow+i(l) TO <f> CASTING.
<f> = sum.
CLEAR fcat.
CONCATENATE 'SUM' n INTO fnam.
fcat-fieldname = fnam.
* Как нибудь заполнить fcat
APPEND fcat.
ENDDO.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 22 2005, 14:05 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Stenj_90 написал(а):
Динамическое создание внутренних таблиц:
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING it_fieldcatalog = lt_fieldcat
IMPORTING ep_table = gt_outtab.


А кто-нибудь смотрел, как реализован этот шедевр?
Через generate subroutine pool :-) .

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, мар 23 2005, 07:10 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 10 2005, 10:21
Сообщения: 198
Пол: Мужской
Забавно, сейчас что-нидь попробую :idea:

_________________
Если программа заработала с первого раза, значит она написана принципиально неверно!


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

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


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

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


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

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