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

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


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

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


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

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