Текущее время: Вт, мар 19 2019, 19:22

Часовой пояс: 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
Сообщения: 220
Откуда: Нижневартовск->Москва
Пол: Женский
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 часа


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

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


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

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