Текущее время: Вс, июл 27 2025, 15:17

Часовой пояс: 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 часа


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

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


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

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