Текущее время: Ср, май 14 2025, 00:45

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


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

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


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

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