Текущее время: Чт, мар 21 2019, 07:23

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Пн, дек 17 2018, 11:02 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 375
Подскажите пожалуйста, а как будет именоваться стандартная кнопка "Выполнить" ?
мне надо проверку сделать, перед выполнением, if.
Пример:
вводим данные в поле
нажимаем выполнить
программа сначала проверяет вводились ли эти данные ранее (мы ведем таблицу log по данным, которые вводились)
если вводились, вывести варианты и даты
если нет, продолжить выполнение программы
Подскажите пожалуйста


Последний раз редактировалось sonics Пн, дек 17 2018, 11:26, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Пн, дек 17 2018, 11:25 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 435
START-OF-SELECTION


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Пн, дек 17 2018, 11:28 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 435
Code:
PARAMETERS p_data type dats.



START-OF-SELECTION.
SELECT SINGLE mandt INTO sy-mandt FROM z_my_tab WHERE dat = p_data.
IF sy-subrc = 0.
   PERFORM do_data_exist.
ELSE.
   PERFORM new_data.
ENDIF.



Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Пн, дек 17 2018, 11:31 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 375
Kuranov.Dmitry написал(а):
START-OF-SELECTION

да лааааадно, все так просто ?

блин, а вы ведь правы, это же логично . . .
p.s.: простите за тему :(


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Пн, дек 17 2018, 11:43 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 375
вы зря удалили сообщения про кнопку ONLI, это была очень интересная информация :(


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Пн, дек 17 2018, 11:45 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 435
sonics написал(а):
вы зря удалили сообщения про кнопку ONLI, это была очень интересная информация :(

Там была ошибка) чтоб не вводить в заблуждение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Чт, дек 20 2018, 15:10 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 375
Code:
selection-screen begin of block b2 with frame.
  selection-screen begin of line.
      selection-screen comment 1(15) text-0c3 for field p_matnr.
      parameters p_matnr type matnr obligatory.
      selection-screen comment 60(10) text-0c4 for field p_gamng.
      parameters p_gamng type int4 default '1' obligatory.
  selection-screen end of line.
selection-screen end of block b2.

тут меня интересует введение p_matnr

Code:
select * from zuznospis_log into table lt_zuznospis_log_second where matnr in p_matnr and node is initial.
  loop at lt_zuznospis_log_second.

  endloop.


я неверно понял как обращаться к параметру ?
мне надо выбрать все записи из таблицы где matnr равен введенному matnr в поле p_matnr и у которых поле node пустое?
технически я понимаю, что поле не обладает никаким значением, но я не знаю как обратиться к этому полю?
Цитата:
The IN operator with "P_MATNR" is followed neither by an internal table nor by a value list.
The internal table "LT_ZUZNOSPIS_LOG_SECOND" has no Header line - explicit specification of an output area with "INTO wa" or "ASSIGNING <fs>" is required.


тут хотел бы понять почему каждый раз ему надо таблица with header line?
т.е. мне для работы сделать wa_mywork LIKE LINE OF it_zuz_second_table? или как?
совсем не понимаю с этими заголовками :\ вроде все просто должно быть.
Вот данные, вот таблица
делай внутреннюю, делай селект и заливай данные в нее, потом выводи :(
поясните пожалуйста.
может мне надо было использовать selection-options p_matrn for zuznospis_log-matnr?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Чт, дек 20 2018, 15:15 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 435
parameters p_matnr

замените на
SELECT-OPTIONS p_matnr


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Чт, дек 20 2018, 15:24 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 375
Kuranov.Dmitry написал(а):
parameters p_matnr

замените на
SELECT-OPTIONS p_matnr

ну к этому я пришел тоже, но неужели нельзя как то обратиться именно paramtrs?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Чт, дек 20 2018, 16:19 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 01 2005, 08:11
Сообщения: 222
Откуда: Нижневартовск->Москва
Пол: Женский
where matnr in p_matnr
заменить на
where matnr = p_matnr

чем не устраивает?

_________________
Всегда открыта новым авантюрам!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Чт, дек 20 2018, 16:33 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 375
superbizon написала:
where matnr in p_matnr
заменить на
where matnr = p_matnr

чем не устраивает?

да это устраивает...
у меня больше вопрос по второй части


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Чт, дек 20 2018, 18:24 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 435
не очень понятно в чем состоит вторая часть.. селекту без разницы еть хедер лайн или нет.
3 варианта:
1)
Code:
DATA lt_zuznospis_log_second TYPE TABLE OF zuznospis_log WITH HEADER LINE.

  select * from zuznospis_log into table lt_zuznospis_log_second where matnr in p_matnr and node is initial.

  loop at lt_zuznospis_log_second.

  endloop.

Плюсы этого варианта:
+) мало букв набивать
Минусы этого варианта
-)не рекомендован САП ( считается устаревшим)
-)нельзя использовать в классах

2)
Code:
DATA lt_zuznospis_log_second TYPE TABLE OF zuznospis_log.
DATA ls_zuz LIKE LINE OF lt_zuznospis_log_second.

  select * from zuznospis_log into table lt_zuznospis_log_second where matnr in p_matnr and node is initial.

  loop at lt_zuznospis_log_second INTO lszuz.

  endloop.

Плюсы этого варианта:
+) можно использовать везде
Минусы этого варианта
-) каждая строка копируется. ( минус к производительности

3)
Code:
DATA lt_zuznospis_log_second TYPE TABLE OF zuznospis_log.
FIELD-SYMBOLS <FF> LIKE LINE OF lt_zuznospis_log_second.

  select * from zuznospis_log into table lt_zuznospis_log_second where matnr in p_matnr and node is initial.

  loop at lt_zuznospis_log_second ASSIGNING <ff>.

  endloop.

Плюсы:
+) можно использовать везде
+) нет копирования строки таблицы, сразу прямой доступ


Последний раз редактировалось Kuranov.Dmitry Пт, дек 21 2018, 11:48, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Повесить событие на стандартную кнопку "Выполнить"
СообщениеДобавлено: Пт, дек 21 2018, 10:18 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 375
Цитата:
DATA lt_zuznospis_log_second TYPE TABLE OF zuznospis_log.
DATA ls_zuz LIKE LINE OF lt_zuznospis_log_second.

select * from zuznospis_log into table lt_zuznospis_log_second where matnr in p_matnr and node is initial.

loop at lt_zuznospis_log_second INTO lszuz.

endloop.


спасибо, я как раз второй использовал вариант, просто мне требовалось пояснение.. когда вариантов много, не совсем понимаешь, что верно, а что нет и в чем различие в них...


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

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


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

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


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

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