Текущее время: Пт, июл 25 2025, 22:25

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Подскажите
СообщениеДобавлено: Вс, май 29 2005, 18:21 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
*Сорри, возможно, глупый вопрос, но просто не получается...
*У меня есть
*внутренняя таблица

p_itab LIKE PC261 OCCURS 0 WITH HEADER LINE

*и строка aaa = 'PС261'

FIELD-SYMBOLS: <P> TYPE STANDARD TABLE.
ASSIGN (aaa) TO <P>.

APPEND LINES OF p_itab TO <P>.
*Вот здесь вываливается в ДАМП, как мне это обойти?
*Заранее спасибо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, май 29 2005, 23:39 
Гость
Надо так
*и строка aaa = 'PС261[]'


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 30 2005, 09:58 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
И всё-таки не работает
Если поконкретнее, то у меня есть

* Здесь передается name_struct = 'pc261'
* p_itab LIKE PC261 OCCURS 0 WITH HEADER LINE.

FORM display_alv TABLES
p_itab
USING
name_struct.

DATA tab_name(100).
CLEAR tab_name.
CONCATENATE name_struct '[]' into tab_name.

*Т.е. tab_name = 'pc261[]'

FIELD-SYMBOLS: <P> TYPE STANDARD TABLE.
ASSIGN (tab_name) TO <P>.

APPEND LINES OF p_itab TO <P>.

*ЗДЕСЬ ПАДАЕТ В ДАМП!!!

* PERFORM create_fieldcatalog.

CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_structure_name = tab_name
is_variant = GS_VARIANT
i_save = 'A'
i_default = def
CHANGING
* it_fieldcatalog = gt_fieldcat[]
IT_OUTTAB = <P>.


Что нужно исправить, чтоб он не вываливался в ДАМП?
Заранее спасибо


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Сначала изложите, чего вы хотите добиться и про какую ошибку написано в дампе.

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


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

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Salas написал(а):
*Т.е. tab_name = 'pc261[]'

ASSIGN (tab_name) TO <P>.



'pc261[]' должно быть заглавными буквами.
После ASSIGN проверяй sy-subrc


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

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
1.
Цитата:
'pc261[]' должно быть заглавными буквами
Сорри 'pc261' у меня заглавными, т.е. 'PC261'
2.
Цитата:
После ASSIGN проверяй sy-subrc

sy-subrc = 4 после assign. Т.е. уже что-то неверно.
3.
Цитата:
Сначала изложите, чего вы хотите добиться

Т.к. в программе в программе будет три разных экрана и три АЛВ-таблицы, то хотелось бы написать одну функцию, в которую т олько надо передавать имя структуры и имя внутренней таблицы


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 30 2005, 10:18 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, окт 18 2004, 12:27
Сообщения: 93
PC261 - это структура в ABAP-словаре.
Что означает попытка добавить строки к PC261[]?


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

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Code:
FORM display_alv TABLES
p_itab
USING
name_struct.


1.) Версия системы?
2.) Внутренняя таблица с именем name_struct на момент вызова перформа уже существует?
3.) Назначение перформа? Смысл производимых действий?
4.) См. "ASSIGN LOCAL COPY OF ...", "CREATE DATA ..."

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


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

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Цитата:
1.) Версия системы?
2.) Внутренняя таблица с именем name_struct на момент вызова перформа существует?
3.) Назначение перформа? Смысл производимых действий?


1.) Версия 4.6
2.) внутренняя таблица заполнена
и если вместо assign-ов явно писать

DATA second_dir TYPE TABLE OF pc261.
*APPEND LINES OF p_itab TO <P>.
APPEND LINES OF p_itab TO second_dir.

А далее

CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_structure_name = name_struct
* is_variant = GS_VARIANT
* i_save = 'A'
* i_default = def
CHANGING
* it_fieldcatalog = gt_fieldcat[]
IT_OUTTAB = second_dir.

То всё выводится.

3. Смысл, что хочется только передавать имя и саму внутреннюю таблицу, а не повторять код вызова метода
grid1->set_table_for_first_display 3 раза.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 30 2005, 10:38 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Salas написал(а):
3. Смысл, что хочется только передавать имя и саму внутреннюю таблицу, а не повторять код вызова метода
grid1->set_table_for_first_display 3 раза.


Code:
FORM display_alv TABLES
p_itab
USING
name_struct.

CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_structure_name = name_struct
is_variant = GS_VARIANT
i_save = 'A'
i_default = def
CHANGING
* it_fieldcatalog = gt_fieldcat[]
IT_OUTTAB = p_itab.

ENDFORM.

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


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

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Salas написал(а):

sy-subrc = 4 после assign. Т.е. уже что-то неверно


Очевидно, неверно имя внутренней таблицы в ASSIGN.


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

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Code:
FORM display_alv TABLES
p_itab
USING
name_struct.

CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_structure_name = name_struct
is_variant = GS_VARIANT
i_save = 'A'
i_default = def
CHANGING
* it_fieldcatalog = gt_fieldcat[]
IT_OUTTAB = p_itab.

ENDFORM.


К сожаленю тоже летит в ДАМП.

До этого у меня определено всё ТАК:

Code:
DATA rgdir LIKE  PC261 OCCURS 0 WITH HEADER LINE.
*...Заполнение rgdir
PERFORM display_alv TABLES
                                rgdir
                          USING
                                'PC261'.


Далее, если почему то, если явно писать в FORM

Code:
DATA second_dir TYPE TABLE OF pc261.
APPEND LINES OF p_itab TO second_dir.


А потом уже делать

Code:
CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_structure_name = name_struct
is_variant = GS_VARIANT
i_save = 'A'
i_default = def
CHANGING
* it_fieldcatalog = gt_fieldcat[]
IT_OUTTAB = second_dir.


То работает нормально.

Т.е. формальной подстановкой не выходит, а конкретно подставляя явно типы - работает.
:cry:

Может, можно как-то приписать second_dir тип (name_struct)?
Т.е. сделать по смыслу
DATA second_dir TYPE TABLE OF (name_struct)???


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 30 2005, 11:09 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, окт 18 2004, 12:27
Сообщения: 93
А почему бы просто Field Catalog не построить по name_struct и не передавать его методу set_table_for_first_display? :roll:


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

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Ты что-то типа этого хотел?

(cl_gui_container=>default_screen использован для краткости, применять на практике не стОит..)

Code:
parameters: dummy.

data: itab type t001.

data: grid type ref to cl_gui_alv_grid.

data: gt_t001 type table of T001.
data: gt_t001t type table of T001T.

INITIALIZATION.

  CREATE OBJECT GRID
    EXPORTING
      I_PARENT          = cl_gui_container=>default_screen.

  perform show_grid tables gt_t001 using 'T001'.

START-OF-SELECTION.

  CALL METHOD GRID->FREE.

  CREATE OBJECT GRID
    EXPORTING
      I_PARENT          = cl_gui_container=>default_screen.

  perform show_grid tables gt_t001t using 'T001T'.

  write 'dummy'.

FORM show_grid tables pt_tab
                using p_structure like DD02L-TABNAME.

  CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
     EXPORTING
       I_STRUCTURE_NAME             = p_structure
    CHANGING
      IT_OUTTAB                     = pt_tab[].

ENDFORM.                    " show_grid


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

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Salas написал(а):
Code:
FORM display_alv TABLES
p_itab
USING
name_struct.

CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_structure_name = name_struct
is_variant = GS_VARIANT
i_save = 'A'
i_default = def
CHANGING
* it_fieldcatalog = gt_fieldcat[]
IT_OUTTAB = p_itab.

ENDFORM.


К сожаленю тоже летит в ДАМП.


Сорри.
Конечно же,

Code:
....
IT_OUTTAB = p_itab[].

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

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


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

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


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

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