Текущее время: Чт, авг 16 2018, 23:25

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


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


ВНИМАНИЕ!

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



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

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


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

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


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

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 326
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, 16:18, всего редактировалось 1 раз.

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

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 302
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, 16:15 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 326
и что не понятного?

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


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

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

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


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


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

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 302
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, 17:28 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 326
Естественно, у вас полная ерунда написана.

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

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

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

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


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

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


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

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 326
так заполните список.. выше я привел пример как.

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

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


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

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

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

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

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


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

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


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

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

Зарегистрирован:
Пн, мар 12 2012, 10:38
Сообщения: 138
Потому что системе пофигу как вы в программе свой код вставляете. Она работает основываясь на событиях селекционного экрана.
Инициализация выполняется всегда до вывода 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, 10:04 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 302
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, 10:13 
Старший специалист
Старший специалист

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


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

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


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

Сейчас этот форум просматривают: Programmer


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

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