Текущее время: Чт, мар 28 2024, 19:42

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Динамическая выборка таблиц
СообщениеДобавлено: Вт, май 15 2018, 14:15 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Сама идея - это на начальном экране сделать drop list из таблиц, которые мне нужны, они по структуре одинаковые.
И вывод их.
Идея есть, как это реализовать, но вот с drop-list на селективном экране - тут у меня остались вопросы.
посмотрел пару программ, там не совсем то, что нужно :(
подскажите пожалуйста начало...


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

Зарегистрирован:
Ср, янв 26 2005, 05:11
Сообщения: 185
Пол: Мужской
Сделай домен со списком значений.
и сделай дополнение PARAMETERS ..... TYPE ............... AS LISTBOX VISIBLE LENGTH 70.
Есть еще ФМ 'VRM_SET_VALUES'


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Вт, май 15 2018, 14:32 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Code:
TYPE-POOLS: vrm, slist, icon.

PARAMETERS: p_list_a TYPE char3 AS LISTBOX VISIBLE LENGTH 30
  OBLIGATORY DEFAULT '001'
  USER-COMMAND change_p_list_a.        " список

DATA:
      list       TYPE vrm_values,
      value      LIKE LINE OF list.

INITIALIZATION.

CLEAR value.
  REFRESH list.

  value-key  = '001'.
  value-text = 'Текст 1'.
  APPEND value TO list.

  value-key  = '002'.
  value-text = 'Текст2'.
  APPEND value TO list.

  value-key  = '003'.
  value-text = 'Текст3'.
  APPEND value TO list.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id     = 'P_LIST_A'
      values = list.


START-OF-SELECTION.

WRITE : 'Вы выбрали:',p_list_a.


Последний раз редактировалось Kuranov.Dmitry Вт, май 15 2018, 15:18, всего редактировалось 1 раз.

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

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Code:
SELECTION-SCREEN BEGIN OF BLOCK SELECT-TABLES-BLOCK with frame title text-010.

INITIALIZATION.
CLEAR value.
  REFRESH list.

  value-key  = '001'.
  value-text = 'Текст 1'.
  APPEND value TO list.

  value-key  = '002'.
  value-text = 'Текст2'.
  APPEND value TO list.

  value-key  = '003'.
  value-text = 'Текст3'.
  APPEND value TO list.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id     = 'P_LIST_A'
      values = list.
SELECTION-SCREEN END OF BLOCK SELECT-TABLES-BLOCK.


нуууу, я не совсем понимаю как с этим еще и работать :(((((


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

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
и что не понятного?

1) формируем список ключ - текстовое значение
2) запускаем ФМ VRM_SET_VALUES, который заполняет список
3) после запуска в параметре будет лежать выбранный ключ


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

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

1) формируем список ключ - текстовое значение
2) запускаем ФМ VRM_SET_VALUES, который заполняет список
3) после запуска в параметре будет лежать выбранный ключ


прошу прощения, все отлично работает)


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

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Code:
SELECTION-SCREEN BEGIN OF BLOCK SELECT-TABLES-BLOCK with frame title text-010.


я вложил в такой блок и прописал в текстовых элементах 010 = Сравнение таблиц
но нигде не показывается эта надпись...
второй вопрос:
Code:
SELECTION-SCREEN BEGIN OF BLOCK SELECT-TABLES-BLOCK with frame title text-010.
SELECTION-SCREEN BEGIN OF LINE.
   CLEAR value.
     REFRESH list.

     value-key  = '011'.
     value-text = 'Вчера'.
     APPEND value TO list.

     value-key  = '012'.
     value-text = 'Сегодня'.
     APPEND value TO list.

     value-key  = '013'.
     value-text = 'май 2018'.
     APPEND value TO list.

     CALL FUNCTION 'VRM_SET_VALUES'
       EXPORTING
         id     = 'P_LIST_A'
         values = list.
  SELECTION-SCREEN END OF LINE.

  SELECTION-SCREEN BEGIN OF LINE.
    CLEAR value.
    REFRESH list.

    value-key  = '011'.
    value-text = 'Вчера'.
    APPEND value TO list.

    value-key  = '012'.
    value-text = 'Сегодня'.
    APPEND value TO list.

    value-key  = '013'.
    value-text = 'май 2018'.
    APPEND value TO list.

    CALL FUNCTION 'VRM_SET_VALUES'
      EXPORTING
        id     = 'P_LIST_b'
        values = list.
  SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK SELECT-TABLES-BLOCK.

не выводит дроп лист список, только дефаултные значения, которые я прописал в блоке
объявления переменных, переде селекшн скрин:
Code:
REPORT  zpp_copydata_mrp5_vs_12.
TABLES: zppmrp5, zppmrp5_12.

DATA: gt_result_tab TYPE TABLE OF zpp_result_tab_mpr5vs12." WITH HEADER LINE.

TYPE-POOLS: vrm, slist, icon.
  PARAMETERS: p_list_a TYPE char7 AS LISTBOX VISIBLE LENGTH 10
  OBLIGATORY DEFAULT 'Вчера'(011)
  USER-COMMAND change_p_list_a.        " список

  PARAMETERS: p_list_b TYPE char7 AS LISTBOX VISIBLE LENGTH 10
  OBLIGATORY DEFAULT 'Сегодня'(012)
  USER-COMMAND change_p_list_b.        " список
DATA:
      list       TYPE vrm_values,
      value      LIKE LINE OF list.


DATA gs_result_tab LIKE TABLE OF gt_result_tab.
DATA: ok_code LIKE sy-ucomm,
      g_container TYPE scrfname VALUE 'GRID1',
      grid1  TYPE REF TO cl_gui_alv_grid,
      gt_fieldcat TYPE lvc_t_fcat," каталог полей
      gs_layout TYPE lvc_s_layo,
      g_custom_container TYPE REF TO cl_gui_custom_container.
DATA l_elevel like zppmrp5-elevel.
RANGES r_elevel FOR l_elevel.

FIELD-SYMBOLS: <fs_fieldcat> TYPE lvc_s_fcat,
               <gs_result_tab> LIKE LINE OF gt_result_tab.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Вт, май 15 2018, 16:28 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Естественно, у вас полная ерунда написана.

что делает код внутри блока
SELECTION-SCREEN BEGIN OF LINE. ?

зачем вы его туда запихнули?

почитайте курс по ABAP в плане структуры программы

У вас не показывается надпись из text-010 потому что в блоке нет ни одного параметра. и сап видать решил что пустой блок не нужен и можно оптимизировать экран


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

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Тем не менее, в дроп листе только дефаултное значение.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Вт, май 15 2018, 16:40 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
так заполните список.. выше я привел пример как.

заполнить его надо в блоке INITIALIZATION.
и его не надо запихивать в блок

SELECTION-SCREEN BEGIN....
SELECTION-SCREEN END....


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Ср, май 16 2018, 08:37 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Kuranov.Dmitry написал(а):
так заполните список.. выше я привел пример как.

заполнить его надо в блоке INITIALIZATION.
и его не надо запихивать в блок

SELECTION-SCREEN BEGIN....
SELECTION-SCREEN END....

я поставил блок инициализации после селекшн скрин
но сначала у меня выводится таблица, а если нажать esc, то выпадает в экрна выбора.
почему так?
ведь перед инициализацией экран выбора стоит


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Ср, май 16 2018, 08:38 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Осталось только выводить text-001


Последний раз редактировалось sonics Ср, май 16 2018, 09:14, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Ср, май 16 2018, 09:01 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 09:38
Сообщения: 170
Потому что системе пофигу как вы в программе свой код вставляете. Она работает основываясь на событиях селекционного экрана.
Инициализация выполняется всегда до вывода Selection screen, а т.к. у вас нет start-of-selection перед началом основной логики, то система считает что это тоже часть инициализации.

Почитайте про логику селекционного экрана, а то уже не смешно, честно.
Подумайте, почему код ниже не скомпилируется?
Code:
DATA: gt_mseg TYPE TABLE OF mseg.

START-OF-SELECTION.

  PERFORM get_data.

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_data.
  SELECT * FROM mseg INTO CORRESPONDING FIELDS OF TABLE gt_mseg WHERE mblnr = '1'.
ENDFORM.                    "get_data

IF LINES( gt_mseg[] ) > 0.
  WRITE 'Selection works!'.
ENDIF.

Как можно писать код, не понимая как он работает?

p.s. Страшно как-то становится, вдруг за вами потом придется программы дорабатывать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Ср, май 16 2018, 09:04 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Saperx написал(а):
Потому что системе пофигу как вы в программе свой код вставляете. Она работает основываясь на событиях селекционного экрана.
Инициализация выполняется всегда до вывода Selection screen, а т.к. у вас нет start-of-selection перед началом основной логики, то система считает что это тоже часть инициализации.

Почитайте про логику селекционного экрана, а то уже не смешно, честно.
Подумайте, почему код ниже не скомпилируется?
Code:
DATA: gt_mseg TYPE TABLE OF mseg.

START-OF-SELECTION.

  PERFORM get_data.

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_data.
  SELECT * FROM mseg INTO CORRESPONDING FIELDS OF TABLE gt_mseg WHERE mblnr = '1'.
ENDFORM.                    "get_data

IF LINES( gt_mseg[] ) > 0.
  WRITE 'Selection works!'.
ENDIF.

Как можно писать код, не понимая как он работает?

p.s. Страшно как-то становится, вдруг за вами потом придется программы дорабатывать.

а ведь придется же.... и вправду.....


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая выборка таблиц
СообщениеДобавлено: Ср, май 16 2018, 09:13 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
Вроде разобрался... спасибо.. посмотрел примеры программ
осталось разобраться с этим через case :D и выполнение тех или иных действий)
но с этим я еще попробую сам поработать


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу 1, 2, 3, 4  След.

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


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

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


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

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