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

Часовой пояс: 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 часа


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

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


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

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