SAPфорум.RU
https://www.sapboard.ru/forum/

Кнопка нажатия полосы прокрутки в batch input-e
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=100276
Страница 1 из 1

Автор:  Maksimka [ Пт, янв 13 2023, 07:56 ]
Заголовок сообщения:  Кнопка нажатия полосы прокрутки в batch input-e

Всем добрый день.

Сделал программу пакетного ввода стандартным путём SHDB на транзакцию IW31 - Создание заказов ТОРО. Вроде бы всё работает, но есть проблема. При записи программы пакетного ввода через SHDB экран добавления материалов отображается на 24 материала, т.е. вмещает на экране не больше 24 строк. Приходится нажимать полосу прокрутки для добавления 25-го и последующих материалов. В итоге пакетник понимает ввод только 24 материалов. Не могу выловить нажатие кнопки прокрутки, это действие не записывается при записи SHDB.

Может быть, кто-то делал что-то похожее и знает, как добавить это дело в программу?

Автор:  baboon [ Пт, янв 13 2023, 09:21 ]
Заголовок сообщения:  Re: Кнопка нажатия полосы прокрутки в batch input-e  Тема решена

Попробуйте Page Down нажать.
Должно быть что-то, типа =P+

Автор:  Maksimka [ Пт, янв 13 2023, 13:47 ]
Заголовок сообщения:  Re: Кнопка нажатия полосы прокрутки в batch input-e

baboon написал(а):
Попробуйте Page Down нажать.
Должно быть что-то, типа =P+

Что то я не подумал о Page Down, щелчок мышки не записывает, а нажатие Page Down отображает как =P+. Спасибо.

Автор:  Yozhhhhh [ Вт, янв 17 2023, 22:24 ]
Заголовок сообщения:  Re: Кнопка нажатия полосы прокрутки в batch input-e

Там же в пакетнике ALV экраны устроены по принципу отображаемых строк.
То есть по идее даже после PgDn курсор, установленный на первой строке активной области, будет работать со строкой, которая будет подаваться в пакетнике как (01). А эту проблему вы как решили в таком случае?

Есть в финансах места, где тоже приходится крутить. Но там нажатие Enter освобождает ячейки от ввода.
Таким образом, можно схитрить и всегда работать с первой строкой. Поле будет называться ...(01).

Если у вас поля не очищаются, строка в ALV по идее никак не может стать 25-й. Она будет первой. А первое значение уже было скушано.

Автор:  Maksimka [ Вт, май 30 2023, 15:12 ]
Заголовок сообщения:  Re: Кнопка нажатия полосы прокрутки в batch input-e

Yozhhhhh написал:
Там же в пакетнике ALV экраны устроены по принципу отображаемых строк.
То есть по идее даже после PgDn курсор, установленный на первой строке активной области, будет работать со строкой, которая будет подаваться в пакетнике как (01). А эту проблему вы как решили в таком случае?

Есть в финансах места, где тоже приходится крутить. Но там нажатие Enter освобождает ячейки от ввода.
Таким образом, можно схитрить и всегда работать с первой строкой. Поле будет называться ...(01).

Если у вас поля не очищаются, строка в ALV по идее никак не может стать 25-й. Она будет первой. А первое значение уже было скушано.

Если интересно, то вот та часть кода, где сдвигается строка. По сути я просто считаю sy-tabix в виде переменной number8. Вроде бы всё работает.
Code:
FORM MATERIALS .
  """""""""""""""""""""""""переход материалы
  PERFORM BDC_DYNPRO      USING 'SAPLCOIH' '3000'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
        '=KPVG'.
  """""""""""""""""""""""""""""""материал
  PERFORM BDC_DYNPRO      USING 'SAPLCOIH' '3000'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
        '/00'.
  IF NUMBER8 = 15.
    PERFORM BDC_DYNPRO      USING 'SAPLCOIH' '3000'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
          '=P+'.
    PERFORM BDC_DYNPRO      USING 'SAPLCOIH' '3000'.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
          '/00'.
    NUMBER8 = NUMBER8 - 13.
  ENDIF.
  CLEAR Z.
  CONCATENATE 'RESBD-POSNR(' NUMBER8 ')' INTO Z.
  PERFORM BDC_FIELD       USING Z
        NUMBER9.
  CLEAR Z.
  CONCATENATE 'RESBD-MATNR(' NUMBER8 ')' INTO Z.
  PERFORM BDC_FIELD       USING Z
       ZITAB_MAT-MATNR.

  CLEAR Z.
  CONCATENATE 'RESBD-MENGE(' NUMBER8 ')' INTO Z.
  PERFORM BDC_FIELD       USING Z
        ZITAB_MAT-MENGE2.

  CLEAR Z.
  CONCATENATE 'RESBD-EINHEIT(' NUMBER8 ')' INTO Z.
  PERFORM BDC_FIELD       USING Z
        ZITAB_MAT-EINHEIT.

  CLEAR Z.
  CONCATENATE 'RESBD-LGORT(' NUMBER8 ')' INTO Z.
  PERFORM BDC_FIELD       USING Z
        ZITAB_MAT-LGORT.

  CLEAR Z.
  CONCATENATE 'RESBD-WERKS(' NUMBER8 ')' INTO Z.
  PERFORM BDC_FIELD       USING Z '8000'.

  PERFORM BDC_DYNPRO      USING 'SAPLCOMD' '3910'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
        '/00'.
  PERFORM BDC_DYNPRO      USING 'SAPLCOIH' '3000'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
        '/00'.
ENDFORM.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/