Текущее время: Ср, июл 23 2025, 21:44

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: как вывести возможные значения на экране
СообщениеДобавлено: Чт, май 03 2012, 20:09 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Проблемма такая.У меня в алви есть поле,которое
нужно проверить на пусто,и подать экранчик с возможными записями,они должны выбрать и записать это поле.Код поиска им не нужен.экран должен появится сам. Как это сделать.
я помню есть какой простой способ,не screen painter же заводить.Что-то вроде list processing или как-то можно вызвать код поиска не нажимая кнопку.
Как я не формулировала вопрос поиске не нашла


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Чт, май 03 2012, 20:24 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
gasjuk написал(а):
Проблемма такая.У меня в алви есть поле,которое
нужно проверить на пусто,и подать экранчик с возможными записями,они должны выбрать и записать это поле.Код поиска им не нужен.экран должен появится сам. Как это сделать.
я помню есть какой простой способ,не screen painter же заводить.Что-то вроде list processing или как-то можно вызвать код поиска не нажимая кнопку.
Как я не формулировала вопрос поиске не нашла

Что за код поиска? Средство поиска имеете виду? Почему не нужено? Заводить screen painter это создавать свой dynpro? при чем тут list processing?
Не удивительно, что в поиске сложно что то найти. Формулируйте проблему четче.
Из того что Вы написали, я вижу что Вам просто нужно проверять значение в этом поле (есть события по уходу с ячейки, есть события по нажатию энтер, можете повесить на сохранение и т.д...), и выдавать ошибку, если значение не соответствует тому что в справочнике. Выдавать ошибку в протокол и заставлять пользователя выбрать значение используя Средство поиска, предварительно повесив это СП на поле. Можно сделать и вызов возможных значений и автоматом, только, имхо, это лишнее. Примеров как реализовать отдельные шаги из Вашей задачи куча, как на форуме так и в самой системе в виде нескольких стандартных примеров.
Если что то не получается на конкретном шаге, спрашивайте или переформулируйте вопрос.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Чт, май 03 2012, 20:39 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Вы правы средство поиска,оно у меня навешано и хорошо работает.Проблемма в том,что пользователи
операторы не хотят нажимать на кнопку и молча подставлять в поле не разрешают.Обязательно нужно выводить экран с возможными значениями,даже если оно одно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Чт, май 03 2012, 21:03 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
и как быть? Я выделяю строчку и при этом должно появится окно со значенями.ничего не нажимая.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Чт, май 03 2012, 21:27 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, ноя 12 2004, 10:44
Сообщения: 370
Откуда: Москва
вероятно речь о выпадающем списке. Dropdown box, да? гуглить так: "abap drop down list"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Чт, май 03 2012, 22:10 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Посмотрела примеры на дроп даун,как бы тоже не то.получается для каждой строчки нужен свой список,т.к. ключи в каждой строчке разные.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Пт, май 04 2012, 06:40 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
gasjuk написал(а):
и как быть? Я выделяю строчку и при этом должно появится окно со значенями.ничего не нажимая.
gasjuk, попробуйте на событие "DOUBLE_CLICK" принудительно вызывать нужное Вам средство поиска при помощи ФМ 'F4IF_FIELD_VALUE_REQUEST'.
Code:
       DATA: O_TAB TYPE T_OUT_TAB,
             RET_TAB TYPE TABLE OF DDSHRETVAL,
             RET_STR TYPE DDSHRETVAL,
             PLNNR(8) TYPE N,
             PLNAL(2) TYPE C,
             LV_LEN TYPE I.

       IF E_FIELDNAME = 'PLNNR'.
         READ TABLE OUT_TAB INTO O_TAB INDEX ES_ROW_NO-ROW_ID.

         SET PARAMETER ID 'WRK' FIELD IWERK.
         CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
           EXPORTING
             TABNAME                   = 'PLKO'
             FIELDNAME                 = 'PLNNR'
             SEARCHHELP                = 'ZPLKSA'
             SHLPPARAM                 = 'PLNNR'
             CALLBACK_PROGRAM          = SY-REPID
             CALLBACK_FORM             = 'SET_VALUES_FOR_F4_PLNNR'
           TABLES
             RETURN_TAB                = RET_TAB
           EXCEPTIONS
             FIELD_NOT_FOUND           = 1
             NO_HELP_FOR_FIELD         = 2
             INCONSISTENT_HELP         = 3
             NO_VALUES_FOUND           = 4
             OTHERS                    = 5.

         IF SY-SUBRC = 0.
           FIELD-SYMBOLS <FS> TYPE ANY.
           LOOP AT RET_TAB INTO RET_STR.
             ASSIGN COMPONENT RET_STR-FIELDNAME OF STRUCTURE O_TAB TO <FS>.
             <FS> = RET_STR-FIELDVAL.
           ENDLOOP.
       ENDIF.
       GRID1->REFRESH_TABLE_DISPLAY( EXPORTING IS_STABLE = GS_STBL ).

Если СП возвращает несколько значений:
Code:
*-------------------------------------------------------------------------
* FORM        : SET_VALUES_FOR_F4_PLNNR
* DESCRIPTION :
*-------------------------------------------------------------------------
FORM SET_VALUES_FOR_F4_PLNNR
                       TABLES   RECORD_TAB    STRUCTURE SEAHLPRES
                       CHANGING SHLP          TYPE      SHLP_DESCR
                                CALLCONTROL   LIKE      DDSHF4CTRL.
  DATA LS_INTERFACE TYPE DDSHIFACE.
  LOOP AT SHLP-INTERFACE INTO LS_INTERFACE.
    IF LS_INTERFACE-SHLPFIELD = 'PLNNR' OR
       LS_INTERFACE-SHLPFIELD = 'PLNAL' OR
       LS_INTERFACE-SHLPFIELD = 'PLNTY'.
          LS_INTERFACE-F4FIELD = 'X'.
          MODIFY SHLP-INTERFACE FROM LS_INTERFACE.
    ENDIF.
  ENDLOOP.
ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Пт, май 04 2012, 20:09 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Спасибо за подсказку.Экран появляется,поле заполняю но оно не появляется в алви.
Я еще не пойму как работать с <gtable>.
Обявление такое
FIELD-SYMBOLS <gtable> TYPE STANDARD TABLE.
USING
p_grid TYPE REF TO cl_gui_alv_grid
pref_datatable TYPE REF TO data
.
ASSIGN pref_datatable->* TO <gtable>.



ASSIGN LOCAL COPY OF INITIAL LINE OF <gtable> TO <gstruct>.
READ TABLE <gtable> INTO <gstruct> INDEX irow.

Вот я вижу в отладке все поля таблицы и их значения,а попыка получить значение полей не получается,говорит не
стуктурв


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Сб, май 05 2012, 05:28 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
gasjuk написал(а):
Экран появляется,поле заполняю но оно не появляется в алви.
А Вы метод REFRESH_TABLE_DISPLAY вызываете после модификации внутреней таблицы?
gasjuk написал(а):
Я еще не пойму как работать с <gtable>.
для получения значения поля пишите следующее
Code:
FIELD-SIMBOLS : <LV_FIELD1> TYPE ANY.
ASSIGN COMPONENT 'FIELD1' OF STRUCTURE <gstruct> TO <LV_FIELD1>.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Сб, май 05 2012, 08:40 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
slim большое спасибо,что вы не бросаете меня. REFRESH_TABLE_DISPLAY я конечно делала.Но что-то без результатно.Я значение подставляю в табл.
Нужно видимо подставить еще кудато,как вот срабатывает само средсто поиска.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Сб, май 05 2012, 08:48 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
Вы делаете следующим образом?:
1. На собатие DOUBLE_CLICK вешаете вызов ФМ, который возвращает выбранное пользователем значение.
2. Модифицируете соотвествующее поле во внутреней табличке, которая указана как параметр IT_OUTTAB метода SET_TABLE_FOR_FIRST_DISPLAY
3. В собатие DOUBLE_CLICK вызываете REFRESH_TABLE_DISPLAY (для эксперимента попробуйте вызывать REFRESH_TABLE_DISPLAY в PAI модуле)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Сб, май 05 2012, 09:05 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Да я так и делала,по крайней мере очень поже..К сожалению мы сегодня не работаем.Теперь только в понедельник попробую снова


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Сб, май 05 2012, 13:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
slim написал(а):
3. В собатие DOUBLE_CLICK вызываете REFRESH_TABLE_DISPLAY (для эксперимента попробуйте вызывать REFRESH_TABLE_DISPLAY в PAI модуле)

REFRESH_TABLE_DISPLAY лучше вызывать в PBO-логике.
Для того, чтобы после DOUBLE_CLICK вызвалась PAI и соответственно PBO логика, необходимо выполнить ФМ SAPGUI_SET_FUNCTIONCODE

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Пн, май 07 2012, 20:31 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Slim тысяча благодарностей!Правда пришллось все делать на уровне выделенной строки,чтобы
оператор не искал где ему кликать.Теперь у меня новая проблемма,в стандартной саповской функции очень долго,практически виснет select из одной таблицы.Попробовала se11-тоже самое.
если выбираю только по номеру заказа и позиции,то select в se11выполняется практически мгновенно,а при добавлении поля bukrs начинает виснуть. Предполагаю что дело в мндексах.
Хотелось бы узнать можно ли принудительно назначить индекс,как это сделать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: как вывести возможные значения на экране
СообщениеДобавлено: Чт, май 10 2012, 05:16 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
gasjuk написал(а):
Хотелось бы узнать можно ли принудительно назначить индекс,как это сделать?
Можно. в тр. se11. заходите в режиме изменения в необходимую таблицу и нажимаете кнопку "Индексы". SAP, на сколько я знаю, автоматически выбирает необходимый индекс из созданных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

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


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

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


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

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