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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пт, янв 27 2012, 20:08 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
Здравствуйте!
Есть селекционный экран с несколькими параметрами и кнопкой "Создать". По нажатию кнопки должно осуществляться создание записи в таблице, причем через ракурс ведения. Параметры из экрана выбора должны передаться в ракурс ведения и заполнить соответствующие поля в строке.
Вероятно, передачу/прием параметров необходимо делать так:
пишу в программе с селекционным экраном:
Code:
EXPORT NUM_NAR DATE_NAR NUM_BRIG is_new TO MEMORY ID 'ID_NAR'.

в модуле PBO ракурса ведения:
Code:
IMPORT NUM_NAR DATE_NAR NUM_BRIG is_new FROM MEMORY ID 'ID_NAR'.

Модуль в PBO почему-то не отрабатывает.
И если получится передать параметры, как потом создать пустую запись и заполнить программно нужные поля?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Сб, янв 28 2012, 14:01 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Постановка задачи очень извращенная. Чем обусловлена необходимость ввода данных именно через ракурс ведения?
Самый простой способ: напишите пакетник. Самый правильный способ: уточнить задачу и еще раз подумать.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 02:09 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
В програмулине также осущестляется редактирование записей через ракурс ведения по заполнению параметров селекционного экрана и нажатию кнопки "Редактировать". Такая вот постановка, кроме того она наполовину реализована, а на полпути коней не меняют...
Только что подумал, может можно сделать append в таблицу Extract ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 09:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
А чего вы пакетным вводом не сделаете?
Генерируем стандартный диалог ведения, делаем транзакцию с параметрами на SM30 для вашего ракурса, а дальше - пакетный ввод. Просто и безболезненно :)

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 12:43 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
Решено.
В PBO ракурса разместил свой модуль первым:
Code:
PROCESS BEFORE OUTPUT.
MODULE PREPARE. " <--МОЙ МОДУЛЬ
MODULE LISTE_INITIALISIEREN.
LOOP AT EXTRACT WITH CONTROL
  TCTRL_ZHR_PKTO_F3T CURSOR NEXTLINE.
   MODULE LISTE_SHOW_LISTE.
   MODULE FILL_FIELDS.
ENDLOOP.


Вот текст модуля:
Code:
MODULE PREPARE OUTPUT.
   DATA :
        NUM_NAR TYPE ZNUM_NAR, "номер наряда
        DATE_NAR TYPE DATUM,   "дата наряда
        NUM_BRIG TYPE OBJID,   "номер бригады
        is_new(1) TYPE c VALUE space.

   DEFINE assign_value.
      ASSIGN COMPONENT &1 OF STRUCTURE <vim_total_struc> TO <fs_fldval>.
      <fs_fldval> = &2.
      UNASSIGN <fs_fldval>.
   END-OF-DEFINITION.

  IMPORT NUM_NAR = NUM_NAR DATE_NAR = DATE_NAR NUM_BRIG = NUM_BRIG is_new = is_new FROM MEMORY ID 'ID_NAR'.
  <action> = 'N'.
*  assign_value 'SUM_SD' '999'.
  assign_value 'N_NAR' NUM_NAR.
  assign_value 'DATA1' DATE_NAR.
  assign_value 'F_BRIG' NUM_BRIG.
  APPEND  TOTAL.
  extract = total.
  APPEND EXTRACT.

ENDMODULE.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 12:44 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
nicky555 написал:
А чего вы пакетным вводом не сделаете?
Генерируем стандартный диалог ведения, делаем транзакцию с параметрами на SM30 для вашего ракурса, а дальше - пакетный ввод. Просто и безболезненно :)

Почему сразу пакетник? Почему не воспользоваться CF VIEW_MAINTENANCE или CF VIEW_MAINTENANCE_CALL ???

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 13:21 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
sy-uname, пользуюсь CALL FUNCTION 'VIEW_MAINTENANCE_CALL'.
Проблема все-таки не решена. После отработки описанного выше модуля, в ракурсе действительно добавляется новая строка, заполненная как мне надо. Но при сохранении вылетает в дамп при записи в БД. Кроме того эта строка не удаляется стандартной кнопкой "удалить".


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 13:42 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
KSulimov написал(а):
sy-uname, пользуюсь CALL FUNCTION 'VIEW_MAINTENANCE_CALL'.
Проблема все-таки не решена. После отработки описанного выше модуля, в ракурсе действительно добавляется новая строка, заполненная как мне надо. Но при сохранении вылетает в дамп при записи в БД. Кроме того эта строка не удаляется стандартной кнопкой "удалить".

Значит CF как то не так используется. Или попробовать другие FM из SVIM

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 13:55 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
я думаю, что дело не в ФМ, т.к. после его вызова все действия происходят уже непосредственно в ракурсе ведения


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 14:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
sy-uname написал(а):
nicky555 написал:
А чего вы пакетным вводом не сделаете?
Генерируем стандартный диалог ведения, делаем транзакцию с параметрами на SM30 для вашего ракурса, а дальше - пакетный ввод. Просто и безболезненно :)

Почему сразу пакетник? Почему не воспользоваться CF VIEW_MAINTENANCE или CF VIEW_MAINTENANCE_CALL ???


Потому, что эти ФМ не позволяют добавить или изменить запись. Их назначение - вызов стандартного диалога ведения. Опционально - с дополнительными ограничениями выбора.
Задача же, насколько я понял - добавить/изменить записи в диалоге ведения "без ручного ввода".

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 14:24 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
nicky555 написал:

Потому, что эти ФМ не позволяют добавить или изменить запись. Их назначение - вызов стандартного диалога ведения. Опционально - с дополнительными ограничениями выбора.
Задача же, насколько я понял - добавить/изменить записи в диалоге ведения "без ручного ввода".

Разве? А по моему кто то из VIEW_MAINTENANCE VIEW_MAINTENANCE_CALL VIEW_MAINTENANCE_LOW_LEVEL VIEW_MAINTENANCE_NO_DIALOG VIEW_MAINTENANCE_SINGLE_ENTRY вполне предназначен для использования в режиме "без ручного ввода". Иначе бы я их не упоминал.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 17:32 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
Удалось реализовать вставку новой записи. Но есть один недостаток: ключевые поля сразу заполняются программно и пишутся в БД, не подлежат дальнейшему редактированию. Может кто-то знает, как это побороть?

Code:
MODULE PREPARE OUTPUT.
   DATA :
        NUM_NAR TYPE ZNUM_NAR, "номер наряда
        DATE_NAR TYPE DATUM,   "дата наряда
        NUM_BRIG TYPE OBJID,   "номер бригады
        is_new(1) TYPE c VALUE space.

   DEFINE assign_value.
      ASSIGN COMPONENT &1 OF STRUCTURE <vim_total_struc> TO <fs_fldval>.
      <fs_fldval> = &2.
      UNASSIGN <fs_fldval>.
   END-OF-DEFINITION.

  IMPORT NUM_NAR = NUM_NAR DATE_NAR = DATE_NAR NUM_BRIG = NUM_BRIG is_new = is_new FROM MEMORY ID 'ID_NAR'.
  IF is_new = 'X'.
    <action> = 'N'.
    assign_value 'MANDT' sy-mandt.
    assign_value 'AEDTM' sy-datum.
    assign_value 'UNAME' sy-uname.
    assign_value 'N_NAR' NUM_NAR.
*    assign_value 'PERNR' ''."1.
    assign_value 'RAZR' ''.
    assign_value 'SUM_SD' 0.
    assign_value 'SUM_POVR' ''.
    assign_value 'SUM_SV' ''.
    assign_value 'SUM_NIGTH' ''.
    assign_value 'SUM_PR' ''.
    assign_value 'SUM_HOL' ''.
    assign_value 'T_SD' ''.
    assign_value 'T_POVR' ''.
    assign_value 'T_SV' ''.
    assign_value 'T_NIGTH' ''.
    assign_value 'T_PR' ''.
    assign_value 'T_NORM' ''.
    assign_value 'F_BRIG' NUM_BRIG.
    assign_value 'DATA1' DATE_NAR.

    APPEND  TOTAL.
    extract = total.
    APPEND EXTRACT.

    <action> = space.
    is_new = space.
    EXPORT NUM_NAR DATE_NAR NUM_BRIG is_new TO MEMORY ID 'ID_NAR'.

  ENDIF.

ENDMODULE.             


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача параметров из Selection Screen в Maintenance View (ракурс ведения)
СообщениеДобавлено: Пн, янв 30 2012, 19:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Посмотрите на событие 05

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

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


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

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


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

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