Текущее время: Пт, авг 01 2025, 08:48

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


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

Сейчас этот форум просматривают: Google Feedfetcher


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

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