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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: вывод внутр таблицы в alv
СообщениеДобавлено: Чт, июл 05 2007, 12:00 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 02 2007, 09:04
Сообщения: 5
Простой вопрос.
Как вывести в ALV внутреннюю таблицу, создаваемую вручную, с данными введёнными тоже вручную типа :
data: begin of tab occurs 100,
col1(15) value '1234567890',
col2(15) value '0987654321',
end of tab.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 05 2007, 12:05 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Посмотреть пакет SLIS.
Пошерстить форум, скажем по REUSE_ALV_GRID_DISPLAY.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 05 2007, 12:21 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
банальный ответ - создать fieldcatalog вручную.

можно посмотреть как это делается тут:


Code:
REPORT  z_teestt                                .


DATA: BEGIN OF tab OCCURS 100,
col1(15) VALUE '1234567890',
col2(15) VALUE '0987654321',
END OF tab.

DO 5 TIMES.
  APPEND tab.
ENDDO.


CALL FUNCTION 'HR_IT_SHOW_ANY_TABLE_ON_ALV'
  TABLES
    table          = tab
* EXCEPTIONS
*   FB_ERROR       = 1
*   OTHERS         = 2
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


Цитата:
таблицу, создаваемую вручную, с данными введёнными тоже вручную


или я не в тему?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 05 2007, 12:34 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Пчему же не в тему ... выводит же :)
Интереесный в модуле комментарий:

* Note: this function module is thought only for debugging
* and/or rapid prototyping. you give in a table and a work
* area and you get the table displayed... using a little macro
* with just one line of code.
* Real world scenarios require the ability to manipulate the field
* catalog for this purpose other 3 funct modules will be provided.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 05 2007, 13:43 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 02 2007, 09:04
Сообщения: 5
Спасибо большое. Но как fieldcatalog заполнять для этого ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 05 2007, 14:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
otkos написал(а):
Спасибо большое. Но как fieldcatalog заполнять для этого ?
Вам-же Lars всё написал -
Цитата:
Посмотреть пакет SLIS.
Пошерстить форум, скажем по REUSE_ALV_GRID_DISPLAY.
- подробнее просто быть не может - найдётся куча примеров что, как и зачем.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 05 2007, 15:46 
Специалист
Специалист

Зарегистрирован:
Ср, мар 28 2007, 11:02
Сообщения: 132
Откуда: SPb
Примерно как то так:

Code:
FORM initALV.

data: it_fieldcat type lvc_t_fcat,
      wa_fieldcat type lvc_s_fcat,
      wa_layout type lvc_s_layo.

DATA: WA_CELLTAB TYPE LVC_S_STYL,
      IT_CELLTAB TYPE LVC_T_STYL,
      L_INDEX TYPE I.

w_cprog = sy-cprog.

wa_fieldcat-fieldname = 'PNUMBER'.
wa_fieldcat-tabname = 'EmployeeList'.
*wa_fieldcat-checkbox = 'X'.
wa_fieldcat-edit = ''.
wa_fieldcat-outputlen = '8'.
wa_fieldcat-REPTEXT = 'YO'.
*wa_fieldcat-col_pos = '1'.
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.

*Initialize the celltab table

CLEAR : WA_CELLTAB, IT_CELLTAB.
REFRESH IT_CELLTAB.

WA_LAYOUT-STYLEFNAME = 'CELLTAB'.
wa_layout-edit = ''.

data: exitByUser type SLIS_EXIT_BY_USER,
      exitByCaller.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
   I_CALLBACK_USER_COMMAND = 'USERCOMMAND'
   I_CALLBACK_PROGRAM = w_cprog
    I_GRID_TITLE = 'Àâàíñû'
    IS_LAYOUT_LVC = WA_LAYOUT
    IT_FIELDCAT_LVC = IT_FIELDCAT
  importing
    E_EXIT_CAUSED_BY_CALLER = exitByCaller
    ES_EXIT_CAUSED_BY_USER = exitByUser
  TABLES
    T_OUTTAB = EmployeeList
  EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.
ENDFORM.

_________________
С уважением, СашОК.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 06 2007, 08:00 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Если структура большая, то вручную заполнять fieldcatalog долго.Можно исп. ФМ REUSE_ALV_FIELDCATALOG_MERGE (структура объявлена в словаре). Можно использовать RTTI, если структура таблица забита в описаниях типов в программе


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 06 2007, 09:04 
Специалист
Специалист

Зарегистрирован:
Ср, мар 28 2007, 11:02
Сообщения: 132
Откуда: SPb
Art386 написал:
Если структура большая, то вручную заполнять fieldcatalog долго.Можно исп. ФМ REUSE_ALV_FIELDCATALOG_MERGE (структура объявлена в словаре). Можно использовать RTTI, если структура таблица забита в описаниях типов в программе


Я понял для себя, что REUSE_ALV_FIELDCATALOG_MERGE заполняет структуру по таблице БД. А по внутр таблице (которая собрана из разных Таблиц БД) у меня заполнить не получилось :( Если у Вас есть кусочек кода - буду благодарен ;)

_________________
С уважением, СашОК.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 06 2007, 09:38 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Сашок написал(а):

Я понял для себя, что REUSE_ALV_FIELDCATALOG_MERGE заполняет структуру по таблице БД. А по внутр таблице (которая собрана из разных Таблиц БД) у меня заполнить не получилось :( Если у Вас есть кусочек кода - буду благодарен ;)

1. Не по таблице БД, а по объекту из словаря данных.
2. Необязательно - там есть ещё ряд параметров (I_PROGRAM_NAME, I_INTERNAL_TABNAME, I_INCLNAME) которые как раз необходимо задавать для формирования каталога для таблиц/структур, описанных в отчётах. Но есть ряд ограничений, если я ничего не путаю, то таблица должна быть описана как data: begin of itab OCCURS и поля как field LIKE со ссылкой на словарь

PS всё это можно найти через поиск.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 06 2007, 09:43 
Специалист
Специалист

Зарегистрирован:
Ср, мар 28 2007, 11:02
Сообщения: 132
Откуда: SPb
Это решение мне нравиться больше, чем заполнять ручками. Спасибо!

_________________
С уважением, СашОК.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 09 2007, 10:31 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, янв 23 2007, 10:47
Сообщения: 9
Откуда: Зеленоград
И если ипользовать в 'REUSE_ALV_FIELDCATALOG_MERGE'
I_INCLNAME = "имя инклюда" , то обязательно ширина кода программы не должна быть больше 72 символов - а то дамп.

в ФМ используется вот такая фишка (считывает код проги)
READ REPORT L_PROG_TAB_LOCAL INTO L_ABAP_SOURCE.

а L_ABAP_SOURCE - длинной не более 72.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 09 2007, 10:39 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, янв 23 2007, 10:47
Сообщения: 9
Откуда: Зеленоград
Если нужно сделать каталог полей внутренней таблицы с помощью
REUSE_ALV_FIELDCATALOG_MERGE , надо указать имя инклюда из которого ФМ достает список полей , читая код инклюда построчно и таблицу нужно описать как глобальную. А то ...MERGE с помощью ФМ "GET_COMPONENT_LIST" достает список полей - а он работает только с данными описанными в программе как глобальные.


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

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


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

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


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

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