Текущее время: Сб, авг 02 2025, 20:23

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


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

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


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

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