Текущее время: Сб, июн 21 2025, 20:07

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Посоветуйте, как токое можно реализовать?
СообщениеДобавлено: Пт, апр 15 2005, 11:46 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Я заполняю таблицу символяами
'A' , 'B', 'C'...и.т.д.,
если только таблицы с такими же именами A, B, C не пустые.
В случае, если DESCRIBE TABLE B LINES num_lines.
и num_lines при этом равен 0, то символ 'B' я пропускаю .
Символьные значения можно как-то использовать в качестве имен переменных ?
Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Посоветуйте, как токое можно реализовать?
СообщениеДобавлено: Пт, апр 15 2005, 11:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 12:50
Сообщения: 134
Откуда: UA->DE
Пол: Женский
Salas написал(а):
Символьные значения можно как-то использовать в качестве имен переменных ?

См. FIELD-SYMBOLS


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 12:42 
Гость
TYPES: BEGIN OF TABL ,
POLE(10),
END OF TABL,
TABLT TYPE TABL OCCURS 0.
DATA: A TYPE TABLT,
B TYPE TABLT,
C TYPE TABLT.
DATA: L LIKE LINE OF A.
FIELD-SYMBOLS: <P> TYPE TABLT.
DATA: TABNAM(10),
TABTYP(10) VALUE 'TABL',
I TYPE I.

********************************
* ЗДЕСЬ - ЗАПОЛНЕНИЕ ТАБЛИЦ
*
* например так, для проверки:
*
* L-POLE = 'dddd'.
* APPEND L TO B.
*********************************

TABNAM = 'A'.
PERFORM OTABL.
TABNAM = 'B'.
PERFORM OTABL.
TABNAM = 'C'.
PERFORM OTABL.

*---------------------------
FORM OTABL.
ASSIGN (TABNAM) TO <P>.
DESCRIBE TABLE <P> LINES I.
IF I = 0.
L-POLE = TABNAM.
APPEND L TO <P>.
ENDIF.
UNASSIGN <P>.
ENDFORM. "OTABL


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 13:02 
Гость
немного измененный вариант,
по-моему больше подходящий для твоего вопроса


TYPES: BEGIN OF TABL ,
POLE(10),
END OF TABL,
TABLT TYPE TABL OCCURS 0.
DATA: A TYPE TABLT,
B TYPE TABLT,
C TYPE TABLT.

DATA: BEGIN OF TITOG OCCURS 0,
TABNAM(10),
END OF TITOG,
L LIKE LINE OF A.

FIELD-SYMBOLS: <P> TYPE ANY TABLE.
DATA: TABNAM(10),
TABTYP(10) VALUE 'TABL',
I TYPE I.

L-POLE = 'dddd'.
APPEND L TO B.

TABNAM = 'A'.
PERFORM OTABL.
TABNAM = 'B'.
PERFORM OTABL.
TABNAM = 'C'.
PERFORM OTABL.
WRITE:/ 'Пустые таблицы'.
LOOP AT TITOG.
WRITE:/ TITOG-TABNAM.
ENDLOOP.

*---------------------------
FORM OTABL.
ASSIGN (TABNAM) TO <P>.
DESCRIBE TABLE <P> LINES I.
IF I = 0.
TITOG-TABNAM = TABNAM.
APPEND TITOG.
ENDIF.
UNASSIGN <P>.
ENDFORM.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 14:19 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Огромное спасибо, за исчерпывающий ответ,
я пока разбираюсь, куда что вставить.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 15:13 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
ВН, спасибо.
Объединил оба твоих ответа в единый, теперь модуль,
в котором происходи запись во внутреннюю таблицу, а из нее
уже на экранную отлично работает.

Цитата:
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'MY_STATUS'.
SET TITLEBAR 'Payroll of one period'.
CLEAR name_id.
REFRESH name_id.

DATA index200 TYPE i.
CLEAR index200.
DATA cur_record(10).
CLEAR cur_record.

DO num_RECORDS TIMES.
index200 = index200 + 1.
CASE index200.
WHEN 1.
cur_record = 'VERSION'.
WHEN 2.
cur_record = 'VERSC'.
WHEN 3.
cur_record = 'V0'.
WHEN 4.
cur_record = 'CRT'.
WHEN 5.
cur_record = 'RT'.
WHEN 6.
cur_record = 'ABC'.
WHEN 7.
cur_record = 'WPBP'.
ENDCASE.

DATA tab_name(100).
CLEAR tab_name.
CONCATENATE 'result-inter-' cur_record into tab_name.
FIELD-SYMBOLS: <P> TYPE ANY TABLE.
IF index200 > 2.
ASSIGN (tab_name) TO <P>.
DATA cur_number TYPE i.
DESCRIBE TABLE <P> LINES cur_number.
IF cur_number > 0.
name_id-name = cur_record.
name_id-number = cur_number.

APPEND name_id.
ENDIF.
ENDIF.
ENDDO.
ENDMODUL.


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

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


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

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


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

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