Автор Тема: Создание и редактирование экрана  (Прочитано 37720 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Создание и редактирование экрана
« : Ноябрь 13, 2012, 01:08:36 pm »
можно ли в созданном экране менять заголовки, названия, размеры, цвета, доступность (чтение/запись), видимый/невидимый и др. параметры компонентов.
Т.е. допустим есть Текстовое поле...в окне атрибутов можно поменять его параметры....а можно ли обратиться к этим параметрам непосредственно в коде программы?....или может есть классы для этого?...как их найти? и использовать?...

суть в том, чтобы можно было в коде программы поменять параметры определенного компонента

PS: надо ФМ создать
« Последнее редактирование: Ноябрь 13, 2012, 01:12:45 pm от jacknk88 »

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #1 : Ноябрь 13, 2012, 01:15:21 pm »
You are not allowed to view links. Register or Login
можно ли в созданном экране менять заголовки, названия, размеры, цвета, доступность (чтение/запись), видимый/невидимый и др. параметры компонентов.
Т.е. допустим есть Текстовое поле...в окне атрибутов можно поменять его параметры....а можно ли обратиться к этим параметрам непосредственно в коде программы?....или может есть классы для этого?...как их найти? и использовать?...

суть в том, чтобы можно было в коде программы поменять параметры определенного компонента
Сходу трудно сказать, попробуйте поиграть с ФМ-и "DYNP_VALUES_READ" с последующим запуском "DYNP_VALUES_UPDATE".

P.S. Сам текстовые поля (названия) никогда не менял, только тексты кнопок GUI-статуса, ну и поля ввода-вывода экрана соответственно, ч/з упомянутый последним ФМ.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #2 : Ноябрь 13, 2012, 01:33:29 pm »
DYNP_VALUES_READ   для чтения,
DYNP_VALUES_UPDATE   для перезаписи???

не пойму....sy-subrc = 0, а ничего не меняется((
FIELDNAME - это поля ИМЯ из ОКНА АТРИБУТОВ?
« Последнее редактирование: Ноябрь 13, 2012, 01:49:45 pm от jacknk88 »

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #3 : Ноябрь 13, 2012, 02:36:12 pm »
с помощью DYNP_VALUES_READ нашел пока что только одну компоненту и смог считать его значение...полученную таблицу, т.е. с теми же параметрами кроме FIELDNAME запускаю DYNP_VALUES_UPDATE ...sy-subrc = 0.!!!...ничего не меняется...решил после него сразу заново считать и получил тоже что и в начале, т.е. ничего не изменилось...почему?

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #4 : Ноябрь 13, 2012, 02:52:55 pm »
You are not allowed to view links. Register or Login
с помощью DYNP_VALUES_READ нашел пока что только одну компоненту и смог считать его значение...полученную таблицу, т.е. с теми же параметрами кроме FIELDNAME запускаю DYNP_VALUES_UPDATE ...sy-subrc = 0.!!!...ничего не меняется...решил после него сразу заново считать и получил тоже что и в начале, т.е. ничего не изменилось...почему?
Как предположение: а может нельзя менять неизменяемые поля? ::)

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #5 : Ноябрь 14, 2012, 05:42:13 am »
You are not allowed to view links. Register or Login
Как предположение: а может нельзя менять неизменяемые поля? ::)

похоже нет...получается только с изменяемыми полями, т.е. с теми в которых ввод разрешен...
придется создавать несколько экранов и вызывать их(((

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #6 : Ноябрь 16, 2012, 07:45:29 am »
кто_нибудь знает как можно добавить стандартную кнопку Вариант и Сохранить вариант на свой собственный созданный экран?....или надо создать статус и поставить эти кнопки, а обработку писать уже самому?!....если так, то для отображения уже сохраненных вариантов я нашел ФМ RS_VARIANT_CATALOG (рис. 2), а как запустить стандартное диалоговое окно для сохранения варианта не знаю(((...уже замучался все подходящие ФМ запускать(((...может знаете к какой группе функций они принадлежат?.....

и почему то у меня при создании статуса на своем экране кнопки все появляются внизу экрана(((...как исправить?....и как вывести на своем экране стандартные кнопки: сохранить, выход из системы, назад  и т.д.?

ниже скриншоты этих даалоговых окошек
« Последнее редактирование: Ноябрь 16, 2012, 07:56:41 am от jacknk88 »

Оффлайн Sed0Y

  • ECC 7.0 (ERP/CRM), EHP
  • Newbie
  • *
  • Сообщений: 121
  • Репутация: +7/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #7 : Ноябрь 16, 2012, 02:40:36 pm »
можете еще попробовать через:

Код: You are not allowed to view links. Register or Login
  LOOP AT SCREEN.
....
        IF screen-group1 NE 'FIELS1'.
          screen-active = '0'.
        ENDIF.
.....
    MODIFY SCREEN.
  ENDLOOP.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #8 : Ноябрь 16, 2012, 06:38:39 pm »
На вкладке "Свойства" экрана нужно поставить радиобатОн в положение "стандартный экран", а у вас стоит "модальное диалоговое окно", поэтому и кнопки GUI-статуса внизу.   

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Создание и редактирование экрана
« Ответ #9 : Ноябрь 19, 2012, 12:03:53 am »
You are not allowed to view links. Register or Login
кто_нибудь знает как можно добавить стандартную кнопку Вариант и Сохранить вариант на свой собственный созданный экран?....или надо создать статус и поставить эти кнопки, а обработку писать уже самому?!
Сохранить вариант: CALL FUNCTION 'RS_VARIANT_SAVE_FROM_SELSCREEN'
Прочитать вариант: CALL FUNCTION 'RS_VARIANT_FETCH'

Пример использования можно посмотреть в тексте: RSDBSPVA ну или в функциях поставить точку останова и посмотреть на параметры вызовов.

PS: А вообще-то курс BC410 было бы неплохо полистать.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #10 : Ноябрь 19, 2012, 06:52:30 am »
You are not allowed to view links. Register or Login
На вкладке "Свойства" экрана нужно поставить радиобатОн в положение "стандартный экран", а у вас стоит "модальное диалоговое окно", поэтому и кнопки GUI-статуса внизу.   
так в том и дело что "стандартный стоит везде"....я пробовал менять на другие - не помогает((

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #11 : Ноябрь 19, 2012, 07:35:27 am »
а в чем разница между RS_VARIANT_CATALOG и RS_VARIANT_FETCH ?....что лучше использовать?

при использовании 'RS_VARIANT_SAVE_FROM_SELSCREEN' выходит сообщение "экран выбора не содержит объектов"(((...может он только для селекционного экрана подходит?!

вот один из экранов...для которых надо сохранить вариант
« Последнее редактирование: Ноябрь 19, 2012, 07:40:06 am от jacknk88 »

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #12 : Ноябрь 19, 2012, 08:10:27 am »
а подтянуть стандартную кнопку вместе с функцией обработки видимо не получится?!...надо самому обработку делать по ok_code?....
статус как обычно создовать: скопировать из проги и редактировать его? или создать свою и каким-то образом дернуть стандартные кнопки и функции??
« Последнее редактирование: Ноябрь 19, 2012, 08:12:53 am от jacknk88 »

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #13 : Ноябрь 19, 2012, 08:49:54 am »
какой тип статуса должен быть?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Создание и редактирование экрана
« Ответ #14 : Ноябрь 19, 2012, 11:03:04 am »
You are not allowed to view links. Register or Login
какой тип статуса должен быть?
Ну такой вот как на рисунке ниже: "Статус диалога"

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Создание и редактирование экрана
« Ответ #15 : Ноябрь 19, 2012, 11:04:32 am »
You are not allowed to view links. Register or Login
а в чем разница между RS_VARIANT_CATALOG и RS_VARIANT_FETCH ?....что лучше использовать?
Ну я написал модули, которые вызываются при стандартном сохранении/чтении вариантов в отчетах. Чем что-то отличается от чего-то другого не знаю, не исследовал.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #16 : Ноябрь 19, 2012, 11:06:29 am »
а что про это:

Цитировать
при использовании 'RS_VARIANT_SAVE_FROM_SELSCREEN' выходит сообщение "экран выбора не содержит объектов"

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Создание и редактирование экрана
« Ответ #17 : Ноябрь 19, 2012, 11:15:44 am »
You are not allowed to view links. Register or Login
а что про это:
Ну параметры вызова не правильно передаешь. Какие и как не скажу, так как не использовал ведение вариантов для собственных экранов.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #18 : Ноябрь 20, 2012, 07:13:23 am »
может кто-нибудь сохранял значения полей как вариант со своего экрана или знает как это сделать?....какие бы параметры я не указывал все равно не работает
Цитировать
при использовании 'RS_VARIANT_SAVE_FROM_SELSCREEN' выходит сообщение "экран выбора не содержит объектов"

Цитировать
может он только для селекционного экрана подходит?!


Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #19 : Ноябрь 20, 2012, 08:05:14 am »
некоторые люди говорят, что он работает только на селекционном экране((....а есть другие способы сохранения варианта?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Создание и редактирование экрана
« Ответ #20 : Ноябрь 20, 2012, 09:48:14 am »
You are not allowed to view links. Register or Login
некоторые люди говорят, что он работает только на селекционном экране((....а есть другие способы сохранения варианта?
Ну можно прицепить селекционный экран на подэкран своей программы, буду на работе, пример прицеплю. Можно вообще использовать селекционный первый экран работы, а дальше уже свои диалоги добавить, тогда вообще автоматом все булет рпботать.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Создание и редактирование экрана
« Ответ #21 : Ноябрь 20, 2012, 11:02:51 am »
Добавить свой селекционный экран на подэкран стандартной транзакции можно следующим образом:

Есть экран 2000, в нем сделана область подэкрана SUB_SCREEN вот в ней и будет выводится селекционный экран из программы.
Код: You are not allowed to view links. Register or Login
*&---------------------------------------------------------------------*
*& Report  YTSH_TEST_200
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  ytsh_test_200.

DATA: ok_code LIKE sy-ucomm.

*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF SCREEN 2010 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK bl_2020 WITH FRAME TITLE text-101.
PARAMETERS b_datum LIKE sy-datum OBLIGATORY DEFAULT sy-datum.
SELECTION-SCREEN END OF BLOCK bl_2020.
SELECTION-SCREEN END OF SCREEN 2010.
*----------------------------------------------------------------------*


* Прочитать данные запаса у клиента
CALL SCREEN 2000.

*&---------------------------------------------------------------------*
*&      Module  STATUS_2000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_2000 OUTPUT.
  SET PF-STATUS 'PF2000'.
  SET TITLEBAR 'Test 2000'.
ENDMODULE.                 " STATUS_2000  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_2000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_2000 INPUT.
  CASE ok_code.
    WHEN 'EXIT'. LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_2000  INPUT
Логика экрана
Код: You are not allowed to view links. Register or Login
PROCESS BEFORE OUTPUT.
  MODULE status_2000.
  CALL SUBSCREEN sub_screen INCLUDING sy-cprog '2010'.

*
PROCESS AFTER INPUT.
  CALL SUBSCREEN sub_screen.
  MODULE user_command_2000.
Ну и сам экран на картинке ниже: SCREEN2000.png

PS: Но я бы просто сделал программу типа REPORT с первым селекционным экраном, а дальше уже в START-OF-SELECTION просто вызывал бы уже нужные мне диалоговые экраны.

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #22 : Ноябрь 21, 2012, 06:53:16 am »
а Вы знали что меняя параметр FUNCTION в ФМ RS_VARIANT_FETCH можно также и удалять вариант, просматреть и т.д.
Также там как раз запускается RS_VARIANT_CATALOG

т.е. параметр FUNCTION может быть следующим:

GET - получить вариант
VDEL  - удалить вариант
VSHO - вроде проссматреть....исправте, пожалуйста, если не прав
CO26 - а вот это не нашел((

может знаете где можно посмотреть?..лично я смотрел здесь:
зашел в свой статус экрана - Перейти к - Объекты интерф. польз. - Список функций

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Создание и редактирование экрана
« Ответ #23 : Ноябрь 21, 2012, 10:59:51 am »
Я решил попробовать немного подругому, точнее используя ФМ..и почти получилось.
Вы не знаете можно ли сохранить передоваемые значения полей с помощью RS_CREATE_VARIANT в главной программе ФМ. Релизовав этот ФМ на селекционном экране я определил, что значения полей передаются в таблице vari_contents  . Я заполняю эту таблицу своими значениями ( это уже без селекционного экрана при вызове из своего экран)...Фм прорабатывает нормально..sy-subrc=0. однако как проверить сохранил ли он в действительности значения не знаю(((....пробовал вызвать RS_VARIANT_FETCH .....вариант показывает, только вместо названия полей и их значений везде стоят символы #...может это все из-за отсутствия селек. экрана?!....

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Создание и редактирование экрана
« Ответ #24 : Ноябрь 21, 2012, 11:10:04 am »
Ну если уже идти немного по другому, то программа это набор экранов - правильно? Какое количество экранов вам нужно сохранять как вариант? Первый, второй и т.д....

Sapforum.Biz

Re: Создание и редактирование экрана
« Ответ #24 : Ноябрь 21, 2012, 11:10:04 am »