Текущее время: Пн, июл 28 2025, 22:40

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Кас считать строку STANDARD таблицы
СообщениеДобавлено: Чт, фев 28 2013, 14:11 
Ассистент
Ассистент

Зарегистрирован:
Пт, янв 25 2013, 17:37
Сообщения: 44
Доброго дня господа !

Есть код (ниже), хочу операторы
ASSIGN LOCAL COPY OF INITIAL <rcLoad> TO <rcFind>.
ASSIGN COMPONENT stWhat OF STRUCTURE <rcFind> TO <flFind>.
Вынести до цикла - для этого необходимо получить размерность одной
строки стандарт таблицы. Как это сделать ? (ключей нет)

READ TABLE tbLoad ASSIGNING <rcLoad> index 1. Ошибка !
ASSIGN LOCAL COPY OF INITIAL <rcLoad> TO <rcFind>.
ASSIGN COMPONENT stWhat OF STRUCTURE <rcFind> TO <flFind>.
LOOP AT tbLoad ASSIGNING <rcLoad>.

Ошибка ....
Для таблиц типа "HASHED TABLE" или "ANY TABLE" не разрешены явные и
неявные индексные операции. "TBLOAD" имеет тип "ANY TABLE". Возможно
перед "TBLOAD" не указано дополнение "TABLE".

Можно предв циклом
LOOP AT tbLoad ASSIGNING <rcLoad>.
ASSIGN LOCAL COPY OF INITIAL <rcLoad> TO <rcFind>.
ASSIGN COMPONENT stWhat OF STRUCTURE <rcFind> TO <flFind>.
EXIT.
ENDLOOP.
Но может есть еще варианты ?

Code:
FUNCTION ZSP_FM_MAKE.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(STWHAT) TYPE  STRING
*"     VALUE(STFIND) TYPE  STRING
*"     VALUE(STLOAD) TYPE  STRING
*"     VALUE(STSAVE) TYPE  STRING
*"  CHANGING
*"     REFERENCE(TBLOAD) TYPE  ANY TABLE
*"     REFERENCE(TBSAVE) TYPE  ANY TABLE
*"----------------------------------------------------------------------

FIELD-SYMBOLS: <flWhat> TYPE Any,
               <rcLoad> TYPE Any,
               <flLoad> TYPE Any,
               <rcSave> TYPE Any,
               <flSave> TYPE Any,
               <rcFind> TYPE Any,
               <flFind> TYPE Any.

IF tbLoad IS NOT INITIAL.
  LOOP AT tbLoad ASSIGNING <rcLoad>.
    IF <rcFind> IS NOT ASSIGNED.
      ASSIGN LOCAL COPY OF INITIAL <rcLoad> TO <rcFind>.
      ASSIGN COMPONENT stWhat OF STRUCTURE <rcFind> TO <flFind>.
    ENDIF.
    ASSIGN COMPONENT stWhat OF STRUCTURE <rcLoad> TO <flWhat>.
    <flFind> = <flWhat>.
    READ TABLE tbSave ASSIGNING <rcSave> FROM <rcFind>.
    "READ TABLE tbSave ASSIGNING <rcSave> WITH KEY (stFind) = <flWhat>.
    IF Sy-Subrc = 0.
      ASSIGN COMPONENT stLoad OF STRUCTURE <rcLoad> TO <flLoad>.
      ASSIGN COMPONENT stSave OF STRUCTURE <rcSave> TO <flSave>.
      IF <flSave> <> ''.
        <flSave> = <flSave> && ','.
      ENDIF.
      <flSave> = <flSave> && <flLoad>.
    ENDIF.
  ENDLOOP.
  CLEAR tbLoad.
ENDIF.

ENDFUNCTION.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Кас считать строку STANDARD таблицы
СообщениеДобавлено: Чт, фев 28 2013, 14:38 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
А можно прочитать про GENERIC TYPES.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Кас считать строку STANDARD таблицы
СообщениеДобавлено: Чт, фев 28 2013, 14:58 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 15 2011, 15:02
Сообщения: 122
Цитата:
Ошибка ....
Для таблиц типа "HASHED TABLE" или "ANY TABLE" не разрешены явные и
неявные индексные операции. "TBLOAD" имеет тип "ANY TABLE". Возможно
перед "TBLOAD" не указано дополнение "TABLE".

Может поможет если поменять тип на
Code:
     TBLOAD TYPE  standard TABLE
     TBSAVE TYPE  standard TABLE.

По крайне мере для FORM собирается без ошибок.

_________________
Поздравляю тебя, Шарик, ты - балбес!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Кас считать строку STANDARD таблицы
СообщениеДобавлено: Чт, фев 28 2013, 15:07 
Ассистент
Ассистент

Зарегистрирован:
Пт, янв 25 2013, 17:37
Сообщения: 44
Пономарев Артем написал:
А можно прочитать про GENERIC TYPES.


Если не сложно приложите пример


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Кас считать строку STANDARD таблицы
СообщениеДобавлено: Чт, фев 28 2013, 15:08 
Ассистент
Ассистент

Зарегистрирован:
Пт, янв 25 2013, 17:37
Сообщения: 44
[quote="8051core]
Может поможет если поменять тип на
[/quote]

Не у меня могут передаваться разные типы таблиц.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Кас считать строку STANDARD таблицы
СообщениеДобавлено: Чт, фев 28 2013, 19:24 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 16 2010, 09:57
Сообщения: 106
Откуда: СПб
Пол: Мужской
Не оно?

viewtopic.php?f=13&t=72232


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

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


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

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


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

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