Текущее время: Вс, июл 20 2025, 20:11

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Пара вопросов по АВАР (Программно переключать закладки TABSTRIP и считать текущую строку из ALVGrid)
СообщениеДобавлено: Вт, янв 09 2007, 16:37 
Ассистент
Ассистент

Зарегистрирован:
Пн, май 29 2006, 11:05
Сообщения: 30
Все привет!

В процессе работы у меня возникла пара вопросов:

1) Имеем элемент управления типа TABSTRIP с несколькими закладками. на каждой закладке есть свой собственный ALV Grid. Работа с закладками реализована через один общий контейнер. С помощью мышки закладки переключаются и нормально отображают содержимое. Мне нужно программно переключить закладки. На первой закладке у меня в гриде возникает событие (например нажали F1\Enter\F4) и я хочу переключиться на вторую закладку и обновить ее грид с уже новыми параметрами. В процедуре обработки события первого грида ставлю свойство ACTIVETAB для TABSTRIP в нужную мне закладку и вижу, что нужная мне закладка стала активной, но содержимое закладки не обновилось, т.е. вижу грид первой закладки. Что делать?

2) Как мне прочитать поля только текущей строки в ALV Grid при возникновения некоторого события (например ONF1)?


Скажите как все это можно проделать.

Заранее спасибки.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 09 2007, 16:51 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
1. Возможно, что при перключении между закладками не меняется номер подъэкрана, который должОн отображаться и есс-но видим "старый" грид (хотя есть и более извращенная версия :) ).
2. Метод грида: get_current_cell

_________________
С уважением, В.Ш.
4.6C


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

Зарегистрирован:
Пн, май 29 2006, 11:05
Сообщения: 30
Для главной формы на которой находится TABSTRIP у меня в логике установлено следующее:

Code:
PROCESS BEFORE OUTPUT.
MODULE PBO_100.
call subscreen pgnscr including sy-repid dynnr.

*
PROCESS AFTER INPUT.
call subscreen pgnscr.
MODULE PAI_100.


Переменная PGNSCR -типа ПОДЭКРАН, которая через атрибут закладки ССЫЛОЧНОЕ ПОЛЕ привязано ко всем закладкам.

в процедуре перехода у меня следующий код

Code:
  loop at screen.
    if screen-name = 'PGN2'.
      pages-activetab = 'PG2'.
      dynnr = '0120'.
      screen-invisible = 0.
      MODIFY SCREEN.
      exit.
    endif.
  endloop.


PGN2 -это нужная закладка
PG2 -это код функции второй закладки.
0120 -это имя подэкрана выводимого на второй закладке.

По бреак поинту она правильно ищет нужную закладку и ставит указанные значения.

(с помощью мышки все нормально переключается)

Что мне нужно поменять в программе, чтобы переключение в runtime отработало?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 10 2007, 02:24 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Буду краток :roll: (с)

1. По поводу работы с закладками посмотрите транзакцию abapdocu, делее экраны->комплексные экраны->листание закладок в ABAP программе - и будет вам счастье. (название конкретного репорта я не помню :oops: )

2. По поводу программной установки нужной закладки. Идея в следующем: в событии, которое "прикручено" к контролу (в Вашем случае ALV грид) пишем вызов метода сl_gui_cfw=>set_new_ok_code (подробно см. тут http://sapboard.ru/forum/viewtopic.php ... tnewokcode ). В в параметрах которого вместо 'DUMMY' указываем 'PG2' или sy-ucomm другой закладки (Hint: событие будет обработано в PAI модуле так-же, как и мышастое переключение). Ну и где-то еще вычитываем сопутствующие данные для правильной выборки? во вновь отображаемом гриде.

Ну, как-то так... :roll:

_________________
С уважением, В.Ш.
4.6C


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

Зарегистрирован:
Пн, май 29 2006, 11:05
Сообщения: 30
Уф-ф!

С программным переключением закладок все получилось, как и рекомендовали.
Виктор! СПАСИБО за подсказку.

Подскажите еще по одному вопросу касающемуся выборки нужной строки:

АВЛГрид засасывает данные из внутренней таблицы. Уникального кода у этой таблицы нет (но внимательно на нее посмотрев обнаружил, что она имеет уникальную совокупность из нескольких полей).
Используя метод грида GET_CURRENT_CELL
можем получить
e_row
es_row_id
es_row_no

подскажите какой из этих параметров и как можно использовать, чтобы найти нужную строчку в исходной внутренней таблице (как-то через READ TABLE делается, но что-то у меня не находит).


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

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
read table lt_table index es_row_id-index.

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 10 2007, 18:47 
Ассистент
Ассистент

Зарегистрирован:
Пн, май 29 2006, 11:05
Сообщения: 30
О... Точно!

Витя, СПАСИБО! Все пашет!


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

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


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

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


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

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