Текущее время: Чт, июл 24 2025, 00:39

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


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

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


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

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