bossjohn написал(а):
polkon написал(а):
при присвоении TYPE стабильно выдает синтаксическую ошибку:
что такое
присвоение TYPE?
Т.е.
ошибка указывает на строчку
DATA: gt_table TYPE TABLE OF t_table WITH HEADER LINE. " Внутренняя таблица ?
P.S. программа из приведенного куска кода отлично активируется,
давайте всю программу в студию.
Вот вся прога:
TYPES: BEGIN OF specification,
place_number TYPE ekpo-ebelp,
product_code TYPE ekpo-matnr,
supplier_code TYPE ekko-llief,
product_name TYPE makt-maktx,
quantity TYPE ekpo-menge,
unit TYPE ekpo-meins,
price TYPE ekpo-netpr,
total TYPE ekpo-netwr,
currency TYPE ekko-waers,
date TYPE eket-eindt,
* aedat TYPE ekpo-aedat,
END OF specification.
*TYPES specification_table TYPE TABLE OF specification.
DATA: specification_table TYPE TABLE OF specification WITH HEADER LINE. " Внутренняя таблица
TYPES: BEGIN OF t_table, " Тип
seller TYPE char100,
buyer TYPE char100,
delivery_place TYPE char100,
one_table type specification,
main_table TYPE specification,
END OF t_table.
DATA: gt_table TYPE TABLE OF t_table WITH HEADER LINE. " Внутренняя таблица
DATA:
* seller type char100,
* buyer type char100,
* delivery_place type char100,
* main_table type specification_table.
DATA:
* Begin of it_ekko,
preorder_number type ekko-angnr,
confirmation_number type ekko-ihrez,
order_data type ekko-aedat,
curr type ekko-waers,
* End of it_ekko,
* Begin of it_ekpo,
total_price type ekpo-netwr,
nds type ekpo-netwr.
* End of it_ekpo.
DATA:
temp_ekko TYPE ekko,
temp_ekpo TYPE ekpo,
temp_lfa1_adrnr TYPE lfa1-adrnr,
temp_addr1_sel TYPE addr1_sel,
temp_addr1_val TYPE addr1_val,
temp_t001_adrnr TYPE t001-adrnr,
temp_t001w_adrnr TYPE t001w-adrnr.
SELECT * FROM ekko INTO temp_ekko WHERE ebeln = 4500000034.
ENDSELECT.
SELECT adrnr FROM lfa1 INTO temp_lfa1_adrnr WHERE lifnr = temp_ekko-lifnr.
ENDSELECT.
temp_addr1_sel-addrnumber = temp_lfa1_adrnr.
CALL FUNCTION 'ADDR_GET'
EXPORTING
address_selection = temp_addr1_sel
IMPORTING
address_value = temp_addr1_val.
CONCATENATE temp_ekko-lifnr temp_addr1_val-name1 temp_addr1_val-name2
temp_addr1_val-name3 temp_addr1_val-name4 INTO seller SEPARATED BY space.
SELECT adrnr FROM t001 INTO temp_t001_adrnr WHERE bukrs = temp_ekko-bukrs.
ENDSELECT.
temp_addr1_sel-addrnumber = temp_t001_adrnr.
CALL FUNCTION 'ADDR_GET'
EXPORTING
address_selection = temp_addr1_sel
IMPORTING
address_value = temp_addr1_val.
CONCATENATE temp_addr1_val-name1 temp_addr1_val-name2
temp_addr1_val-name3 temp_addr1_val-name4 INTO buyer SEPARATED BY space.
preorder_number = temp_ekko-angnr.
confirmation_number = temp_ekko-ihrez.
order_data = temp_ekko-aedat.
SELECT adrnr FROM t001w INTO temp_t001w_adrnr WHERE werks = temp_ekko-eq_werks.
ENDSELECT.
IF temp_t001w_adrnr = ''.
SELECT * FROM ekpo INTO temp_ekpo WHERE ebeln = 4500000034.
SELECT adrnr FROM t001w INTO temp_t001w_adrnr WHERE werks = temp_ekpo-werks
AND adrnr NE ''.
ENDSELECT.
ENDSELECT.
ENDIF.
temp_addr1_sel-addrnumber = temp_t001w_adrnr.
CALL FUNCTION 'ADDR_GET'
EXPORTING
address_selection = temp_addr1_sel
IMPORTING
address_value = temp_addr1_val.
CONCATENATE temp_addr1_val-name1 temp_addr1_val-name2
temp_addr1_val-name3 temp_addr1_val-name4 INTO delivery_place SEPARATED BY space.
DATA tb_line TYPE specification.
*total_price = 0.
*NDS = 0.
SELECT * FROM ekpo INTO temp_ekpo WHERE ebeln = 4500000034.
CALL METHOD z_test_class1=>number_TRANSFORM
EXPORTING
input = temp_ekpo-ebelp
flag = ' '
IMPORTING
output = tb_line-place_number.
tb_line-product_code = temp_ekpo-matnr.
* tb_line-supplier_code = temp_ekko-llief.
SELECT maktx FROM makt INTO tb_line-product_name WHERE matnr = temp_ekpo-matnr
AND spras = 'R'.
ENDSELECT.
tb_line-quantity = temp_ekpo-menge.
tb_line-unit = temp_EKPO-MEINS.
* SELECT kbetr FROM konv INTO tb_line-price WHERE knumv = temp_ekko-knumv
* AND kposn = temp_ekpo-ebelp
* AND kschl = 'P001'.
* ENDSELECT.
tb_line-price = temp_ekpo-netpr.
tb_line-total = temp_ekpo-netwr.
total_price = total_price + tb_line-total.
NDS = NDS + TEMP_EKPO-NETWR.
IF temp_ekko-waers = 'RUB'.
tb_line-currency = 'РУБ'.
ELSE.
tb_line-currency = temp_ekko-waers.
ENDIF.
SELECT eindt FROM eket INTO tb_line-date WHERE ebeln = temp_ekko-ebeln.
ENDSELECT.
* DO 5 TIMES.
INSERT tb_line INTO TABLE main_table.
* ENDDO.
ENDSELECT.
CURR = tb_line-currency.