Текущее время: Пт, июл 25 2025, 05:15

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: что такое TYPE REF TO, DATA, ANY, FIELD-SYMBOL
СообщениеДобавлено: Пт, окт 17 2008, 08:28 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, сен 25 2008, 16:04
Сообщения: 70
Если провести аналогию с с++, как можно интерпретировать
TYPE REF TO, DATA, ANY, FIELD-SYMBOL в ABAP?

FIELD-SYMBOL - похожи на указатели в с++.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: что такое TYPE REF TO, DATA, ANY, FIELD-SYMBOL
СообщениеДобавлено: Пт, окт 17 2008, 09:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
saynt2day написал(а):
Если провести аналогию с с++, как можно интерпретировать
TYPE REF TO, DATA, ANY, FIELD-SYMBOL в ABAP?

FIELD-SYMBOL - похожи на указатели в с++.

REF TYPE REF TO DATA - вот это указатели, аналогичные указателям в с++. При присваивании такого указателя копируется не значение, на которое он указывает, а ссылка.

FIELD-SYMBOL это указатель с семантикой значения, т.е. при присваивании одного FIELD-SYMBOL другому или переменной, копируется именно значение, а не ссылка.

про остальное - велкам ту F1 :)

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 17 2008, 09:25 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, сен 25 2008, 16:04
Сообщения: 70
благодарствую


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: что такое TYPE REF TO, DATA, ANY, FIELD-SYMBOL
СообщениеДобавлено: Пт, окт 17 2008, 10:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
saynt2day написал(а):
Если провести аналогию с с++, как можно интерпретировать
TYPE REF TO, DATA, ANY, FIELD-SYMBOL в ABAP?

FIELD-SYMBOL - похожи на указатели в с++.

Строго говоря, TYPE REF TO и FIELD-SYMBOL, и то и другое по сути указатели, но ни то ни другое не полноценные указатели. Для одних операций используешь один тип, для других другой.
Например, для генерации объекта данных указатель TYPE REF TO, но для обращения к самим данным FIELD-SYMBOL.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 17 2008, 10:52 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
может поможет

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: что такое TYPE REF TO, DATA, ANY, FIELD-SYMBOL
СообщениеДобавлено: Пт, окт 17 2008, 15:56 
Ассистент
Ассистент

Зарегистрирован:
Пн, авг 06 2007, 16:13
Сообщения: 28
saynt2day написал(а):
Если провести аналогию с с++, как можно интерпретировать
TYPE REF TO, DATA, ANY, FIELD-SYMBOL в ABAP?

FIELD-SYMBOL - похожи на указатели в с++.


в моем понимании TYPE REF TO <тип>- аналог типизированного указателя. TYPE REF TO DATA - указатель типа void

FIELD-SYMBOL <fs> type <тип> - типизированная ссылка.
FIELD-SYMBOL <fs> - ссылка на любой тип( в c++ такого нет )

DATA, ANY - прямых аналагов нет, ну считай, что любой тип данных - типа variant в COM.
2 Parazit ..Например, для генерации объекта данных указатель TYPE REF TO, но для обращения к самим данным FIELD-SYMBOL...

Неточность. Я частенько пользуюсь конструкциями типа(собственно сап так и рекомендует):
Code:
Data pmara type ref to mara.
loop at tmara reference inro pmara.
pmara->matnr = '87654'.
endloop.



вариант использования указателей и FS - допустим есть класс отвечающий за выборку данных. в нем в качестве атрибута есть таблица. Есть класс отвечающий за представление данных( типичная архитектура - 'документ-вид' ).

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

Code:

interface ZI_DOC
  public .


  methods GET_TABLE_REF
    returning
      value(_REF) type ref to DATA .
...
class ZCL_DOC_LIKPDEL definition
  public
  final
  create public .

*"* public components of class ZCL_DOC_LIKPDEL
*"* do not include other source files here!!!
public section.

  interfaces ZI_DOC .



  TYPES:
    BEGIN OF ty_rec,
    ...
  END OF ty_rec .


  DATA:
    m_table TYPE TABLE OF ty_rec .
....

method ZI_DOC~GET_TABLE_REF.
  get REFERENCE OF m_table INTO _ref.
endmethod.

endclass.

CLASS zcl_alvsdrep_view DEFINITION.
  PUBLIC SECTION.
    INTERFACES zi_view.
  PROTECTED SECTION.

    METHODS:
      on_user_command FOR EVENT added_function OF cl_salv_events
            IMPORTING e_salv_function.


    DATA m_grid TYPE REF TO cl_salv_table.
    DATA m_doc TYPE REF TO zi_doc.
ENDCLASS.                    "zcl_alvsdrep_view DEFINITION

CLASS zcl_alvsdrep_view implementation.
METHOD zi_view~view.

    m_doc = _doc.

    FIELD-SYMBOLS <tab> TYPE table.
    DATA pd TYPE REF TO data.
    pd = _doc->get_table_ref(  ).


    ASSIGN pd->* TO <tab>.
    TRY.
        cl_salv_table=>factory(
          IMPORTING
            r_salv_table = m_grid
          CHANGING
            t_table      = <tab> ).
      CATCH cx_salv_msg.                                "#EC NO_HANDLER
    ENDTRY.

....



Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 17 2008, 18:21 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Рекомендую прослушать eLearning на SDN:
https://www.sdn.sap.com/irj/sdn/go/port ... 3da2025704

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

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


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

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


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

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