Текущее время: Пн, авг 04 2025, 22:06

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Table Control
СообщениеДобавлено: Вт, сен 16 2008, 08:21 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, авг 05 2008, 18:06
Сообщения: 71
Сделал просмотр таблицы через этот элемент{ научили на этом форуме :-) . Спасибо всем еще раз}.

Данные отображаются, добавляю новые, но когда жму ENTER новые данные очищаются т.е например я ввел 5 строк новых. нажал ввод - рузальтат вновь введенные данные исчезли.

Прошу помочь. Вот код экрана

PROCESS BEFORE OUTPUT.
module pre_screen.
LOOP AT ITAB WITH CONTROL TCLESSONS
CURSOR TCLESSONS-TOP_LINE.
MODULE pob_itab.
ENDLOOP.


PROCESS AFTER INPUT.
module user_comand.
LOOP AT ITAB.
MODULE pai_itab.
ENDLOOP.
и код программы

REPORT ZEN_MAIN1.

TABLES: ZEN_LESSONS.

DATA: ITAB LIKE ZEN_LESSONS OCCURS 0 WITH HEADER LINE.
CONTROLS: TCLESSONS TYPE TABLEVIEW USING SCREEN '0100'.
call screen 100.
module pob_itab output.
zen_lessons-lesson_number = itab-lesson_number.
endmodule. " pob_itab OUTPUT
module user_comand input.

endmodule. " user_comand INPUT
module pai_itab input.

endmodule. " pai_itab INPUT
module pre_screen output.
select * from ZEN_LESSONS into table itab.
endmodule.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 16 2008, 09:24 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Цитата:
select * from ZEN_LESSONS into table itab.

К вас этот селект работает?
По сути вопроса:
1. Добавить в pai_itab:
Цитата:
move-corresponding <структура в Table Control> to itab.

modify itab
index MDRV-current_line.

2. Вызывать pre_screen 1 раз при первоначальном запуске экрана. Иначе записи из пустой таблицы ZEN_LESSONS будут обнулять вашу внутреннюю. Код внутри него должен быть примерно такой:
Цитата:
select * from ZEN_LESSONS
into corresponding fields
of table itab.

При условии совпадения структур(хорошее правило).
3. Сохранение в таблице делайте через обработку нажатия соотв. кнопки в user_comand.
Цитата:
module user_command input.
OK_CODE = sy-ucomm.
case OK_CODE.
when 'SAVE'.

perform save_itab_data.

endcase.
endmodule.

form save_init_data.

*самый простой случай

modify ZEN_LESSONS from table itab.

commit work.

endform.


4. Посмотрите примеры DEMO_DYNPRO_TABLE_CONTROL*


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Table Control
СообщениеДобавлено: Вт, сен 16 2008, 10:12 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Nikolay написал(а):
Сделал просмотр таблицы через этот элемент{ научили на этом форуме :-) . Спасибо всем еще раз}.

Данные отображаются, добавляю новые, но когда жму ENTER новые данные очищаются т.е например я ввел 5 строк новых. нажал ввод - рузальтат вновь введенные данные исчезли.

Прошу помочь. Вот код экрана

...

Если одним словом, то BC410 (диалоовое програмирование).
Если чуть развёрнутей - работа экрана описывается циклом - PBO - PAI
PBO - передача данных из ABAP на экран
PAI - передача данных с экрана в ABAP и далее (возможно) следующий цикл .
Переход к PAI инициируется вводом функционального кода - вручную, нажатием на кнопку, выбором пункта меню или через соответствующую комбинацию функциональных клавиш (Enter - такая же ФК).
Из этого и стройте/переделывайте логику экрана. Это если коротенько.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Table Control
СообщениеДобавлено: Ср, сен 17 2008, 09:39 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, авг 05 2008, 18:06
Сообщения: 71
Примерно так и понимаю

все, что в POB срабатывает ОДИН раз перед отображением экрана. там я должен начитать внутр. таблицу и в цикле передать в TC т.е заполнить строчки в TC

PAI срабатывает после действия пользователя( например нажатия клавиши) и там я должен перенести то, что пользователь ввел во внутр. таблицу.

Пытался сделать все , как советует Aval, но у меня результат тотже.
ПРичем проблемы именно с редактированием(добавлением). Отобразить в режиме без редактирования все получется.что-то тут я никак не пойму :cry: .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 17 2008, 11:13 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Aval предложил сделать modify строчки в pai

Code:
move-corresponding <структура в Table Control> to itab.

modify itab
index MDRV-current_line.

что правильно
но, если запись новая, то изменятся нечему.
попробуйте
Code:
move-corresponding <структура в Table Control> to itab.

modify itab
index MDRV-current_line.
if sy-subrc <> 0.
  append itab.
endif.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 17 2008, 11:23 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Как мне кажется проблема у вас с затиранием добавленных записей во внутр.таблицу первоначальным селектом, который как я говорил выше должен отрабатывать ОДИН РАЗ. Вот полный набор подпрограмм, модулей и экранной логики одного из моих TC:
http://sapboard.ru/forum/viewtopic.php?t=38903
Обратите внимание на использование переменной g_MDRV_copied.
Вот здесь она позволяет выполнить первоначальный селект 1 раз:
Code:
if g_MDRV_copied is initial.
*&spwizard: copy ddic-table 'ZAUMD'
*&spwizard: into internal table 'g_MDRV_itab'
    select * from ZAUMD
       into corresponding fields
       of table g_MDRV_itab.
    g_MDRV_copied = 'X'.
    refresh control 'MDRV' from screen '0102'.
    refresh g_MDRV_del.
  endif.


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

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


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

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


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

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