Текущее время: Вс, авг 03 2025, 07:36

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Динамически изменяемые поля в отчете
СообщениеДобавлено: Сб, ноя 01 2008, 08:07 
Начинающий
Начинающий

Зарегистрирован:
Пн, сен 01 2008, 19:03
Сообщения: 13
Посоветуйте пожалуйста, каким методом можно воспользоваться, чтобы сформировать отчет, в котором количество полей изменяется взависимости, от того какой период задается (в годах). :?:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Динамически изменяемые поля в отчете
СообщениеДобавлено: Сб, ноя 01 2008, 08:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
IAP написал(а):
Посоветуйте пожалуйста, каким методом можно воспользоваться, чтобы сформировать отчет, в котором количество полей изменяется взависимости, от того какой период задается (в годах). :?:

В поиск обратитесь по ключевому слову create_dynamic_table.
Code:
WHILE p_n LE p_k.
        CLEAR: fieldname.
        CASE p_curtp.
          WHEN '10'.
            CONCATENATE 'WOG' p_n INTO fieldname.
            PERFORM f_dyn_list USING fieldname tabname.
          WHEN '30'.
            CONCATENATE 'WKG' p_n INTO fieldname.
            PERFORM f_dyn_list USING fieldname tabname.
        ENDCASE.
        ADD 1 TO p_n.
      ENDWHILE.
CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog           = it_dyn
    IMPORTING
      ep_table                  = <fs_data_coep>
    EXCEPTIONS
      generate_subpool_dir_full = 1
      OTHERS                    = 2.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 06 2008, 13:39 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
в новых версиях системы можно проще: CREATE DATA ... TYPE STANDARD TABLE...
вариант с каталогом полей более громоздкий :) хотя знать, как это работает изнутри тоже полезно


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 07 2008, 02:26 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Art386 написал:
в новых версиях системы можно проще: CREATE DATA ... TYPE STANDARD TABLE...
вариант с каталогом полей более громоздкий :) хотя знать, как это работает изнутри тоже полезно

Что то я не нашол как с помощю этого оператора создать перемнную с произвольной (изначально не заданной) структурой.


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

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
DKiyanov написал:
Что то я не нашол как с помощю этого оператора создать перемнную с произвольной (изначально не заданной) структурой.

Code:
REPORT TEST.

FIELD-SYMBOLS:
<t001>, <fs>.

DATA:
lr_t001 TYPE REF TO data.

CONSTANTS:
s1(30) VALUE 'T001',
s2(30) VALUE 'BUKRS',
s3(30) VALUE 'BUTXT'.

DATA:
lt_where(72) OCCURS 0 WITH HEADER LINE.

CREATE DATA lr_t001 TYPE (s1).
ASSIGN lr_t001->* TO <t001>.
ASSIGN (s1) TO <fs>.

CONCATENATE s2 '=' '3000' INTO lt_where SEPARATED BY space.
APPEND lt_where.
SELECT *
INTO <t001>
FROM (s1)
WHERE (lt_where).
ASSIGN COMPONENT s3 OF STRUCTURE <t001> TO <fs>.
WRITE: / s3, ': ', <fs>.
ENDSELECT.


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

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
DKiyanov написал:
Art386 написал:
в новых версиях системы можно проще: CREATE DATA ... TYPE STANDARD TABLE...
вариант с каталогом полей более громоздкий :) хотя знать, как это работает изнутри тоже полезно

Что то я не нашол как с помощю этого оператора создать перемнную с произвольной (изначально не заданной) структурой.


А как-нибудь так:

Code:
  DATA: table_type  TYPE REF TO cl_abap_tabledescr,
        struct_type TYPE REF TO cl_abap_structdescr,
        comp_tab    TYPE cl_abap_structdescr=>component_table,
        comp        LIKE LINE OF comp_tab,
        dref        TYPE REF TO data.

  FIELD-SYMBOLS: <table> TYPE table.

  comp-name = 'column1'.
  comp-type = cl_abap_elemdescr=>get_c( 40 ).
  APPEND comp TO comp_tab.
  comp-name = 'column2'.
  comp-type = cl_abap_elemdescr=>get_i( ).
  APPEND comp TO comp_tab.
  struct_type = cl_abap_structdescr=>create( comp_tab ).

  table_type = cl_abap_tabledescr=>create( struct_type ).
  CREATE DATA dref TYPE HANDLE table_type.

  ASSIGN dref->* TO <table>.


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

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


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

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


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

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