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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: изменение значений полей в PAI
СообщениеДобавлено: Вт, авг 05 2008, 13:59 
Специалист
Специалист

Зарегистрирован:
Чт, апр 13 2006, 08:44
Сообщения: 133
Откуда: 56
Пол: Мужской
на экране при вводе нового значения в поле F1 происходят необходимые расчеты.
Code:
process after input.
  field F1 module F1_change on request.


нужно чтобы при изменении F2 изменялось значение F1 и отрабатывало F1_change

в F2_change: F1 = F2.


работает только такой вариант
Code:
process after input.
  field F2 module F2_change.
  field F1 module F1_change.
  field F2 module F2_change.
  field F1 module F1_change.

остальные вариации (в том числе и с on request, on input) не дают должного результата.
странное решение.

:?: а можно ли сделать чтобы PAI F2, PBO, PAI F1, PBO ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 05 2008, 14:12 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Вычисления значений поместите в PBO и будет Вам счастье...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменение значений полей в PAI
СообщениеДобавлено: Вт, авг 05 2008, 14:17 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
zIk написал:
на экране при вводе нового значения в поле F1 происходят необходимые расчеты.
Code:
process after input.
  field F1 module F1_change on request.


нужно чтобы при изменении F2 изменялось значение F1 и отрабатывало F1_change

в F2_change: F1 = F2.


Смотрите оератор chain
Цитата:
работает только такой вариант
Code:
process after input.
  field F2 module F2_change.
  field F1 module F1_change.
  field F2 module F2_change.
  field F1 module F1_change.

остальные вариации (в том числе и с on request, on input) не дают должного результата.
странное решение.

:?: а можно ли сделать чтобы PAI F2, PBO, PAI F1, PBO ?

Нельзя. Реализуйте логику ABAP-ом, лучше упрошать ситуации, а то потом самим будет непонятно зачем нужны были такие кульбиты, как оно работало и почему вдруг перестало.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 07 2008, 12:30 
Специалист
Специалист

Зарегистрирован:
Чт, апр 13 2006, 08:44
Сообщения: 133
Откуда: 56
Пол: Мужской
Если кто забыл написал(а):
PAI
field ... module ... on input. - срабатывает всегда если значение не initial.
field ... module ... on request. - срабатывает только если значение изменено пользователем.

решить свой вопрос я пробовал так:
в PAI F2 on request - установка флажка FL2 - чтобы затем обработать в PBO.
в PBO - по флажку FL2 меняю значение F1 одним из способов:
  • F1 = F2.
    F1 меняется; PAI-PBO больше не вызывается
  • F1 = F2.
    call function 'SAPGUI_SET_FUNCTIONCODE'.

    F1 меняется; PAI-PBO вызывается; PAI инициируется только on input для непустых полей, а on request не инициируется.
  • call function 'DYNP_VALUES_UPDATE'.
    F1 не меняется; PAI-PBO не инициируется
  • call function 'DYNP_UPDATE_FIELDS'
    exporting request = 'B'.
    (в dynpfields значение только для F1)

    DYNP_UPDATE_FIELDS вылетает на call 'HELP_PUT_FIELD'; F1 меняется; поле F2 заполнено _______;
    после Enter-a PAI-PBO только on input; F1 очищается; F2 заполняется изначально введенным значением
  • call function 'DYNP_UPDATE_FIELDS'
    exporting request = 'A'.
    (в dynpfields значение только для F1)

    F1 не меняется; F1 on request НЕ инициируется, но отрабатывает при первом срабатывании PBO.



:idea: Итого РЕШЕНИЕ такое:
в PAI:
Code:
F2 on request - установка флажка FL2 для обработки в PBO (изменение F1).
F1 on request - установка флажка FL1 для обработки в PBO (реакция на изменение F1).


в PBO:
Code:
if FL2 = 'X'.
  F1 = F2. " чтобы значение в поле появилось
  call function 'DYNP_UPDATE_FIELDS' " чтобы возникло событие on request для F1
    exporting request = 'A'.
   (в dynpfields значение только для F1)
  call function 'SAPGUI_SET_FUNCTIONCODE'. " чтобы PAI-PBO сразу сработало.
endif.

if FL1 = 'X'.
  " реакция на изменение F1
endif.


осталось непонятно:
:?: что же за параметр request у ФМ DYNP_UPDATE_FIELDS (почему при request = 'B' на экране все заломалось)?
:?: как и для чего использовать ФМ DYNP_VALUES_UPDATE?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 07 2008, 13:01 
Специалист
Специалист

Зарегистрирован:
Чт, апр 13 2006, 08:44
Сообщения: 133
Откуда: 56
Пол: Мужской
еще для справки
Code:
* Function modules to update screen

* Doesn't work in value request event
call function 'DYNP_VALUES_UPDATE'

* Doesn't work if the field is read only
call function 'DYNP_UPDATE_FIELDS'


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 07 2008, 19:18 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Согласна с sy-uname - IMHO как-то небрежно продуман дизайн экрана. Понимаю, если бы поле F1 было input, а F2 просто display (типа в F1 вводим номер поставщика, а в F2 получаем название организации), все понятно. А тут выходит, что у вас оба поля input, но вы в программе почему-то манипулируете их значениями после ввода пользователя. Так очень легко самому запутаться в трех соснах и юзеров запутать. Получается, что вижу и ввожу одно, а потом в программе "перепятушки". А что если оба поля юзер изменит? :?

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменение значений полей в PAI
СообщениеДобавлено: Чт, авг 07 2008, 21:35 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
zIk написал:
на экране при вводе нового значения в поле F1 происходят необходимые расчеты.
Code:
process after input.
  field F1 module F1_change on request.


нужно чтобы при изменении F2 изменялось значение F1 и отрабатывало F1_change

в F2_change: F1 = F2.


А не проще ли сделать совместную обработку в PAI?
Code:
CHAIN.
  FIELD: F1, F2.
  MODULE process ON CHAIN-REQUEST.
ENDCHAIN.


Естественно, для анализа лучше хранить старые значения переменных F1 и F2 :wink:

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменение значений полей в PAI
СообщениеДобавлено: Пт, авг 08 2008, 07:17 
Специалист
Специалист

Зарегистрирован:
Чт, апр 13 2006, 08:44
Сообщения: 133
Откуда: 56
Пол: Мужской
Jelena написала:
Согласна с sy-uname - IMHO как-то небрежно продуман дизайн экрана. Понимаю, если бы поле F1 было input, а F2 просто display (типа в F1 вводим номер поставщика, а в F2 получаем название организации), все понятно. А тут выходит, что у вас оба поля input, но вы в программе почему-то манипулируете их значениями после ввода пользователя. Так очень легко самому запутаться в трех соснах и юзеров запутать. Получается, что вижу и ввожу одно, а потом в программе "перепятушки". А что если оба поля юзер изменит? :?
если интересно - Задача изначальная:
В заказе в списке операций (тр IW32) введено самопальное поле "Колво" - используется только для операций добавленных через "добавление ТехКарт" для указания порционности ТехКарт.
Смысл задачи на разработку - когда у одной операции изменяют "Колво" - нужно поменять "Колво" у всех операций из той же ТехКарты.
А при изменении "Колво" - у операции нужно (и уже функционирует) пересчитать "Работа", "Продолжительность",...


Удав написал(а):
А не проще ли сделать совместную обработку в PAI?
Code:
CHAIN.
  FIELD: F1, F2.
  MODULE process ON CHAIN-REQUEST.
ENDCHAIN.


Естественно, для анализа лучше хранить старые значения переменных F1 и F2 :wink:
В рамках исходной "упрощенной задачи" объединять on request в один модуль обработки, а в нем "как-то" определять от кого сюда попали - немного усложнило бы "упрощенную задачу" :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменение значений полей в PAI
СообщениеДобавлено: Пт, авг 08 2008, 09:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
zIk написал:
В рамках исходной "упрощенной задачи" объединять on request в один модуль обработки, а в нем "как-то" определять от кого сюда попали - немного усложнило бы "упрощенную задачу" :)

Ну да, проще использовать и PAI, и PBO-логику чем просто PAI-логику :lol:

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменение значений полей в PAI
СообщениеДобавлено: Пт, авг 08 2008, 09:14 
Специалист
Специалист

Зарегистрирован:
Чт, апр 13 2006, 08:44
Сообщения: 133
Откуда: 56
Пол: Мужской
Удав написал(а):
zIk написал:
В рамках исходной "упрощенной задачи" объединять on request в один модуль обработки, а в нем "как-то" определять от кого сюда попали - немного усложнило бы "упрощенную задачу" :)

Ну да, проще использовать и PAI, и PBO-логику чем просто PAI-логику :lol:
если это подкол, то:

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 08 2008, 09:21 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Млин... А пацаны то не знают :(

Вам уже четверо специалистов этого форума посоветовало разобраться с собственной логикой экрана и сумбуром, который там заложен. Вместо этого Вы продолжаете свою линию гнуть. Зачем тогда эту тему здесь писали, если помощь и советы не нужна? :evil:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменение значений полей в PAI
СообщениеДобавлено: Пт, авг 08 2008, 09:49 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
zIk написал:
...
в PAI менять значения полей не хорошо, по выходу из модуля - новое значение может вернуться на старое. ("может" - потому что пока тестил было такое, но когда и как конкретно - точно не вспомню)

У вас есть отличный шанс разбогатеть - в тысячах стандартных диалоговых транзакциях именно так и делается - в PAI меняется значения полей. Чем не повод к судебным разбирательствам?

Кстати, о кручении PBO-PAI - а что будет если пользователь после ввода значения не нажмёт enter, а захочет сменит таб? Или сразу нажмёт сохранить? Или другой функциональный код? Вы стопроцентно уверены что по завершению PAI начнётся именно PBO текущего экрана?

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


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

Зарегистрирован:
Чт, апр 13 2006, 08:44
Сообщения: 133
Откуда: 56
Пол: Мужской
John Doe написал:
Млин... А пацаны то не знают :(

Вам уже четверо специалистов этого форума посоветовало разобраться с собственной логикой экрана и сумбуром, который там заложен. Вместо этого Вы продолжаете свою линию гнуть. Зачем тогда эту тему здесь писали, если помощь и советы не нужна? :evil:
с логикой экрана разобрался, вопросы решил. За помощь спасибо :D

только объясняюсь сумбурно :oops:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменение значений полей в PAI
СообщениеДобавлено: Пт, авг 08 2008, 10:20 
Специалист
Специалист

Зарегистрирован:
Чт, апр 13 2006, 08:44
Сообщения: 133
Откуда: 56
Пол: Мужской
sy-uname написал(а):
zIk написал:
...
в PAI менять значения полей не хорошо, по выходу из модуля - новое значение может вернуться на старое. ("может" - потому что пока тестил было такое, но когда и как конкретно - точно не вспомню)

У вас есть отличный шанс разбогатеть - в тысячах стандартных диалоговых транзакциях именно так и делается - в PAI меняется значения полей. Чем не повод к судебным разбирательствам?
Начинаю понимать, что мне посоветовали использовать CHAIN - НЕ чтобы один PAI-модуль для ОБРАБОТКИ изменения любого из chain-полей, А для возможности ИЗМЕНЕНИЯ всех chain-полей в этом PAI-модуле.
+ анализ старых значений. о чем уже писал Удав

:oops:


Последний раз редактировалось zIk Пт, авг 08 2008, 11:12, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменение значений полей в PAI
СообщениеДобавлено: Пт, авг 08 2008, 10:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
zIk написал:
в PAI менять значения полей не хорошо

Порадовало :)
В данном случае может быть имеет смысл поискать user-exit, который отрабатывает в нужном месте?

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


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

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


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

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


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

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