organmusic написал(а):
вот простой макет программы:
----------- Cut ----------------
DATA:
BEGIN OF it_tab OCCURS 0,
.....
END OF it_tab,
n TYPE P,
s TYPE P.
SELECT * INTO CORRESPONDING FIELDS OF TABLE it_tab.
.........
WRITE:/ 'Выбрано', n, 'записей', s, 'байт'.
------------ Cut -------------------
n определяется легко - sy-dbcnt или LINES ( it_tab )
далее логично v = n * <размер записи>
Но как в программе (не в отладчике) определить этот самый <размер записи>?
Не хочется каждый раз при правке структуры it_tab
суммировать вручную размеры полей и вставлять в формулу
Может вот это вот поможет?
Code:
DATA:
ltb_sflight TYPE STANDARD TABLE OF sflight.
SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE ltb_sflight.
DESCRIBE TABLE ltb_sflight.
WRITE sy-tfill.
WRITE sy-tleng.
WRITE sy-toccu.
v = sy-tfill * sy-tleng.
с sdn.sap.com:
SY-TFILL
After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TFILL contains the number of lines in the relevant internal table.
SY-TLENG
After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TLENG contains the length of the lines in the relevant internal table.
SY-TOCCU
After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TLENG contains the initial amount of memory allocated to the relevant internal table.