SAPфорум.RU https://sapboard.ru/forum/ |
|
Работы с 150-ым экраном в user-exit https://sapboard.ru/forum/viewtopic.php?f=13&t=95488 |
Страница 1 из 1 |
Автор: | Maksimka [ Пт, сен 22 2017, 14:34 ] |
Заголовок сообщения: | Работы с 150-ым экраном в user-exit |
Добрый день всем. В диалоговом программировании я не силен, поэтому заранее извиняюсь за возможно неумный вопрос. Есть расширение ITOB0001 PM: Customer-Include-Subscreen для осн. данных техн.объектов, там есть экран 150, на который можно добавить свои поля и вывести их в основной записи единицы оборудования. Так вот, одно поле я вывел на экран в виде справочника, ну т.е. создал z-овскую табличку и средство поиска к этому полю на экране 150. В z табличке справочник с ключевым полем цифрового значения и поле текстового значения. На экран 150 я вывожу ключевое поле из справочника, а рядом добавил поле типа output, которое бы мне выводило из справочника текстовое наименование связываясь по ключевому полю. С ключевым полем всё нормально, ну т.е. оно изменяется и добавляется и сохраняется, а вот рядом добавленное поле с атрибутом только output стоит пустое. Я так понимаю надо обрабатывать PBO и PAI, но не понятно можно ли делать это как со всеми z-овскими экранами или в user-exit это надо делать как то по другому? Вот код, он собственно не большой да и не факт, что правильный. Может кто делал и подскажет? Code: process before output.
module status_1000. module status_1000 output. if sy-tcode = 'IE03'. loop at screen. screen-input = '0'. modify screen. endloop. endif. endmodule. MODULE USER_COMMAND_0100. module USER_COMMAND_0100 output. select single * from EQUI where ZZITO_LOC = EQUI-ZZITO_LOC. endmodule. process after input . chain. field: EQUI-ZZITO_LOC. MODULE USER_COMMAND_1000 on chain-request. module USER_COMMAND_1000 input. select single * from ZIH08 where znum = EQUI-ZZITO_LOC. endmodule. endchain |
Автор: | Kuranov.Dmitry [ Пт, сен 22 2017, 14:58 ] |
Заголовок сообщения: | Re: Работы с 150-ым экраном в user-exit |
ваш юзер экзит в Z-программе объявите в ней глобальную переменную с именем как у поля для текста и заселектите в неё текст в PAI. .upd Тут вы выбираете текст? Code: module USER_COMMAND_1000 input. select single * from ZIH08 where znum = EQUI-ZZITO_LOC. endmodule. как я понял раб область ZIH08 определена через TABLES глобально? назовите ваш output контролл как ZIH08-text и будет вам счастье. text - имz колонки с текстом |
Автор: | Maksimka [ Пн, сен 25 2017, 06:43 ] |
Заголовок сообщения: | Re: Работы с 150-ым экраном в user-exit |
Kuranov.Dmitry написал(а): Тут вы выбираете текст? Code: module USER_COMMAND_1000 input. select single * from ZIH08 where znum = EQUI-ZZITO_LOC. endmodule. Добрый день Дмитрий. Спасибо, что ответили. Да, здесь я пытаюсь выбрать текст из справочника, вернее я пытаюсь сделать так, чтобы при изменении поля изменялся бы и текст в поле рядом в соответствии со справочником и вроде бы эта часть срабатывает, т.е. PAI модуль отрабатывает правильно, но вот при просмотре ЕО текста не видно, значит PBO не срабатывает или что? Цитата: как я понял раб область ZIH08 определена через TABLES глобально? ZIH08 - это физическая табличка (справочник), к которому привязано средство поиска. Глобально я её ни где не определял. Я думал, что раз в PAI не возникает ошибки при компиляции, значит программа видит эту табличку. Или я не прав? Цитата: назовите ваш output контролл как ZIH08-text и будет вам счастье. text - имz колонки с текстом Я вот здесь не понял что Вы подразумеваете под output контролл. Это поле или что? В общем есть табличка ZIH08, в ней два поля. Одно цифровое znum (ключевое), второе поле текстовое LOCATION, поле znum я добавил в физическую табличку EQUI и обозвал его как ZZITO_LOC. Данные при вводе из справочника при заполнении основной записи единицы обрудования берутся и сохраняются, но вот сам текст, который рядом должен в другом поле отображаться не передаётся. При чём если я делаю изменение этого поля или создание новой ЕО, то текст рядом отображается, но после сохранения при открытии основной запиМожно поподробнее объяснить мне что я не так делаю? Буду весьма признателен за это. |
Автор: | Maksimka [ Пн, сен 25 2017, 08:31 ] |
Заголовок сообщения: | Re: Работы с 150-ым экраном в user-exit |
В общем вроде бы разобрался. Немного криво код написал, поэтому не отрабатывало. Создал новую табличку. В общем в итоге получилось что то вроде. Code: process before output.
MODULE USER_COMMAND_0100. select single * from zie01_loc where znum = equi-zzito_loc. endmodule. process after input . chain. field: EQUI-ZZITO_LOC. MODULE USER_COMMAND_1000 on chain-request. select single * from zie01_loc where znum = equi-zzito_loc. endmodule. endchain. |
Автор: | Kuranov.Dmitry [ Пн, сен 25 2017, 09:15 ] |
Заголовок сообщения: | Re: Работы с 150-ым экраном в user-exit |
Maksimka написал: Я вот здесь не понял что Вы подразумеваете под output контролл. Это поле или что?/ Я имел в виду рядом с полем ввести Textfield поставить ему только чтение и флажок двумерный |
Автор: | Kuranov.Dmitry [ Пн, сен 25 2017, 09:25 ] |
Заголовок сообщения: | Re: Работы с 150-ым экраном в user-exit |
Maksimka написал: Данные при вводе из справочника при заполнении основной записи единицы обрудования берутся и сохраняются, но вот сам текст, который рядом должен в другом поле отображаться не передаётся. При чём если я делаю изменение этого поля или создание новой ЕО, то текст рядом отображается, но после сохранения при открытии основной запиМожно поподробнее объяснить мне что я не так делаю? Буду весьма признателен за это. Когда вы создали новую запись, экранная логика работает так 1) отработало PBO 2) Пользователь выбрал из справочника значение 3) отработало PAI и там выбрался текст при открытии старой записи отрабатывает только PBO и выборки текста нет текст имхо лучше выбирать в PBO |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |