Доброго дня господа !
Есть код (ниже), хочу операторы
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.