Текущее время: Чт, май 15 2025, 07:21

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: диалоговый ФМ для выбора записей
СообщениеДобавлено: Чт, авг 25 2005, 15:33 
Гость
помогите, граждане абаперы!

хочу сделать так: вызывать функцию, которая передавала бы в диалоговое окно данные из внутренней таблицы, при этом пользователь мог бы отметить те данные, которые его устраивают, то есть обратно бы возвращались только выбранные данные. есть такое?

извините, если коряво вопрос поставлен :oops: :oops: :oops:


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 25 2005, 15:44 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
CALL SCREEN, а затем в цикле обходить внутр. табл. на предмет "помечания"... Либо в PAI этого модального скрина делать внутр. табл. только с отмеченными строками и экспортировать в MEMORY ID, а затем импортировать эту табличку в основной программе


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:   Тема решена
СообщениеДобавлено: Пт, авг 26 2005, 11:13 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Можно сделать как-нибудь так:
Code:
TYPE-POOLS:
  slis.
*&---------------------------------------------------------------------*
*&       Class LC_POPUP_TO_SELECT
*&---------------------------------------------------------------------*
CLASS lc_popup_to_select DEFINITION.
  PUBLIC SECTION.
    METHODS get_data.
    METHODS show_popup.
    METHODS write_result.
  PRIVATE SECTION.
    DATA: BEGIN OF as_outtab,
      selfield TYPE xfeld.
    INCLUDE TYPE makt.
    DATA: END OF as_outtab.
    DATA:
      at_outtab LIKE TABLE OF as_outtab
    .
ENDCLASS.               "LC_POPUP_TO_SELECT

*&---------------------------------------------------------------------*
*&       Class (Implementation)  lc_popup_to_select
*&---------------------------------------------------------------------*
CLASS lc_popup_to_select IMPLEMENTATION.
  METHOD get_data.
    SELECT *
      UP TO 100 ROWS
      INTO CORRESPONDING FIELDS OF TABLE at_outtab
      FROM makt
      WHERE spras = sy-langu.
  ENDMETHOD.                    "get_data

  METHOD show_popup.
    DATA:
      lt_fcat   TYPE slis_t_fieldcat_alv
    .
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
      EXPORTING
        i_structure_name = 'MAKT'
      CHANGING
        ct_fieldcat      = lt_fcat.
    CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
      EXPORTING
        i_tabname            = 'AT_OUTTAB'
        i_checkbox_fieldname = 'SELFIELD'
        it_fieldcat          = lt_fcat
      TABLES
        t_outtab             = at_outtab.
  ENDMETHOD.                    "show_popup

  METHOD write_result.
    LOOP AT at_outtab INTO as_outtab WHERE selfield IS NOT INITIAL.
      WRITE / as_outtab-maktx.
    ENDLOOP.
  ENDMETHOD.                    "write_result
ENDCLASS.               "lc_popup_to_select

DATA:
  glc_popup_to_select TYPE REF TO lc_popup_to_select
.

START-OF-SELECTION.
  CREATE OBJECT glc_popup_to_select.
  CALL METHOD glc_popup_to_select->get_data.
  CALL METHOD glc_popup_to_select->show_popup.
  CALL METHOD glc_popup_to_select->write_result.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 26 2005, 13:38 
Гость
class'но!
супер, спасибо!


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 29 2005, 10:45 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
[quote="EGF"]Можно сделать как-нибудь так:
TYPE-POOLS:
slis.
-вообще икключительно полезная штука! смотрите примеры!

_________________
полный SAPец


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 29 2005, 16:37 
Гость
хм, мне вот говорят, что "tables with header line are not supported in OO context". а как сделать так, чтобы после выборки была возможность сравнить содержимое выборки по ключу с другой таблицей базы данных. получается, что внутренние таблицы в рамках классов не поддерживаются?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 29 2005, 16:46 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Alraun написал(а):
хм, мне вот говорят, что "tables with header line are not supported in OO context". а как сделать так, чтобы после выборки была возможность сравнить содержимое выборки по ключу с другой таблицей базы данных. получается, что внутренние таблицы в рамках классов не поддерживаются?


Внутренние таблицы в рамках классов поддерживаются, не поддерживаются таблицы с заголовком. Для борьбы с этим "недостатком" следует просто дополнительно явно объявлять рабочую область, которую и использовать в конструкциях вида READ TABLE itab INTO wa или LOOP itab INTO wa


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 30 2005, 15:29 
Гость
а как привести внутренние таблицы друг другу?
допустим, я на основе приведённого кода сделала помимо:
at_outtab LIKE TABLE OF as_outtab
ещё:
end_tab LIKE TABLE OF as_outtab
когда пытаюсь сделать
LOOP AT at_outtab INTO end_tab WHERE и т.д.
ошибка в приведении ME->END_TAB к ME->AT-OUTTAB
или так нельзя вообще делать?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 30 2005, 15:55 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Объявление подобное этому
Code:
end_tab LIKE TABLE OF as_outtab

создаёт внутренние таблицы без заголовка. Поэтому в конструкции LOOP ... ENDLOOP необходимо явно указывать рабочую область в дополнении INTO. В Вашем случае таблица end_tab не является рабочей областью для таблицы at_outtab, поэтому конструкция
Code:
LOOP AT at_outtab INTO end_tab WHERE и т.д.

является мягко говоря неверной.
Чтобы присвоить таблицу с заголовком таблице без заголовка нужно использовать символы "[]" после названия таблицы с заголовком, давая тем самым понять, что Вы обращаетесь не к заголовку, а к телу таблицы.
Code:
lt_without_header_line = lt_with_header_line[].


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 30 2005, 16:13 
Гость
не понимаю.
Code:
DATA: BEGIN OF as_outtab,
      selfield TYPE xfeld.
    INCLUDE TYPE makt.
    DATA: END OF as_outtab

создаёт внутреннюю таблицу с заголовком?
но:
Code:
LIKE TABLE OF

создаёт на основе неё внутреннюю таблицу без заголовка?
объясните для тупых :?: :?: :?:


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 30 2005, 16:16 
Гость
а at_outtab тогда что? почему по ней можно сделать loop at?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 30 2005, 16:38 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Alraun написал(а):
Code:
DATA: BEGIN OF as_outtab,
      selfield TYPE xfeld.
    INCLUDE TYPE makt.
    DATA: END OF as_outtab

создаёт внутреннюю таблицу с заголовком?

Создает структуру без таблицы
Alraun написал(а):
Code:
LIKE TABLE OF

создаёт на основе неё внутреннюю таблицу без заголовка?

создает таблицу без заголовка

если нужно просто скопировать
Code:
end_tab = at_outtab.

если перенести только часть -
Code:
data: wa_outtab like as_outtab.
loop at_outtab into wa_outtab where ...
append wa_outtab to end_tab.
endloop.

или
Code:
loop at_outtab into as_outtab where ...
append wa_outtab to end_tab.
endloop.

или
Code:
end_tab = at_outtab.
delete end_outtab  where ...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 31 2005, 09:01 
Гость
поняла.
спасибо всем за терпение :)


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 31 2005, 11:26 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Alraun написал(а):
не понимаю.
Code:
DATA: BEGIN OF as_outtab,
      selfield TYPE xfeld.
    INCLUDE TYPE makt.
    DATA: END OF as_outtab

создаёт внутреннюю таблицу с заголовком?

Чтобы таким макаром создать внутр. табл. с заголовком, должна быть конструкция вида:
Code:
DATA: BEGIN OF as_outtab occurs 0,
      selfield TYPE xfeld.
    INCLUDE TYPE makt.
    DATA: END OF as_outtab.

Если объявлять LIKE TABLE OF, делается по-другому:
Code:
end_tab LIKE TABLE OF as_outtab WITH HEADER LINE.

По-моему, так! (с) Винни-Пух


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 31 2005, 11:30 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Только тогда as_outtab надо объявлять без "OCCURS 0". По-моему, так... (с) Винни-Пух


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

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


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

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


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

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