Добрый день уважаемые коллеги!!!! В АВАР_е делаю первые шаги, а вообще я консультант в HR. Возникла необходимость загрузки данных по инфотипам 1000, 1951, 1952 в эксель файл. программа, которую я написал, работает безотказно, но появилась необходимость постоянного (непрерывного) обновления этих данных каждые 15 секунд. Пробовал играться с циклами while, do - ничего не вышло. У меня большая просьба - подскажите что необходимо сделать чтобы это реализовать. Программа использует логическую базу данных PCH. А вот собственно и она:
REPORT ZHR_TO_ARCGIS.
TYPE-POOLS ole2.
DATA: C80(80), C70(70), C60(60), C40(40), C30(30), C20(20), C10(10).
DATA: XLTEXT TYPE I. DATA: XLWORKBOOKNORMAL TYPE I. data: file_txt like rlgrap-filename. "C:\tmp\test.txt
DATA: EXCEL TYPE ole2_object. DATA: BOOKS TYPE OLE2_OBJECT. DATA: ACTIVWINDOW TYPE OLE2_OBJECT. DATA: ACTIVSELEC TYPE OLE2_OBJECT. DATA: ACTIVBOOKS TYPE OLE2_OBJECT. DATA: CELL TYPE OLE2_OBJECT. DATA: ACTIVSHEET TYPE OLE2_OBJECT. DATA: SELECT1 TYPE OLE2_OBJECT. DATA: COL TYPE I, ROW TYPE I, BEG_ROW TYPE I, END_ROW TYPE I, BEG_COL TYPE I, END_COL TYPE I, COL_POST TYPE I, ROW_POST TYPE I, NUM_ROW TYPE I. DATA: COL_J10 TYPE I. " Позиция вывода столбца = col_j * 10 DATA: VALUE(40).
data: index(4).
FILE_TXT = 'C:\TEST1\locationtamplate.xls'.
INDEX = 1.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" TABLES: objec, hrp1000, hrp1951, hrp1952. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" infotypes: 1000, 1951, 1952 .
types: BEGIN OF HRP, objid LIKE p1952-objid, short LIKE p1000-short, stext LIKE p1000-stext, readiness LIKE p1951-readiness, longitude like p1952-longitude, latitude LIKE p1952-latitude, END OF HRP. DATA etab type standard table of HRP with header line . data stab type HRP . data gtab type etab . data r type i. DATA H TYPE I.
INITIALIZATION. PCHPLVAR = '01'. PCHOTYPE = 'O'. pchobjid-low = '50000050'. append pchobjid.
CLEAR etab.
start-of-selection.
get objec. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Loop at p1952 WHERE begda LE pc-endda AND endda GE pc-begda.
if p1952-longitude ne 0 and p1952-latitude ne 0 . if p1952-subty = 0008. stab-objid = p1952-objid. stab-longitude = p1952-longitude. stab-latitude = p1952-latitude. "append stab to etab. WRITE: /, stab-longitude, stab-latitude. endif. ENDIF. ENDloop.
Loop at p1951 WHERE begda LE pc-endda AND endda GE pc-begda. if p1000-objid = stab-objid. stab-readiness = p1951-readiness. "append stab to etab. WRITE: stab-readiness. endif. ENDloop.
Loop at p1000 WHERE begda LE pc-endda AND endda GE pc-begda. if p1000-objid = stab-objid. stab-short = p1000-short. stab-stext = p1000-stext. append stab to etab. write: stab-objid, stab-short, stab-stext. endif. ENDloop.
clear stab. end-of-selection. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" CREATE OBJECT EXCEL 'EXCEL.APPLICATION'. CALL METHOD OF EXCEL 'workbooks' = BOOKS. SET PROPERTY OF EXCEL 'DisplayAlerts' = 0.
CALL METHOD OF BOOKS 'open' EXPORTING #1 = FILE_TXT #2 = 2 #3 = 1 . SET PROPERTY OF EXCEL 'visible' = 0. " =1-видимо, =0-не видимо
CALL METHOD OF EXCEL 'ActiveWorkbook' = ACTIVBOOKS. IF SY-SUBRC NE 0. WRITE: / ' ERROR WHEN OPENING EXCEL.APPLICATION', sy-msgli. ENDIF.
PERFORM SET_CELL USING 1 1 'latitude'. PERFORM SET_CELL USING 1 2 'longitude'. PERFORM SET_CELL USING 1 3 'ID number'. PERFORM SET_CELL USING 1 4 'Short name'. PERFORM SET_CELL USING 1 5 'Full name'. PERFORM SET_CELL USING 1 6 'Readiness'.
INDEX = 2.
************************************************************************************
LOOP at etab.
Perform set_cell using index 1 etab-latitude. Perform set_cell using index 2 etab-longitude. Perform set_cell using index 3 etab-objid. Perform set_cell using index 4 etab-short. Perform set_cell using index 5 etab-stext. Perform set_cell using index 6 etab-readiness. num_row = num_row + 1. index = index + 1.
ENDLOOP. FILE_TXT = 'C:\TEST1\location.xls'. XLTEXT = -4158. XLTEXT = 36. XLWORKBOOKNORMAL = -4143. CALL METHOD OF ACTIVBOOKS 'SaveAs' EXPORTING #1 = FILE_TXT #2 = XLWORKBOOKNORMAL #3 = '' #4 = '' #5 = 0 #6 = 0 #7 = 1 #8 = 2.
CALL METHOD OF BOOKS 'close'. FREE OBJECT CELL. FREE OBJECT ACTIVBOOKS.
CALL METHOD OF EXCEL 'Quit'. FREE OBJECT CELL. FREE OBJECT BOOKS. FREE OBJECT EXCEL.
INCLUDE ZGEOLOCA_EXCEL_FORM.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
*&---------------------------------------------------------------------* *& Include ZGEOLOCA_EXCEL_FORM *&---------------------------------------------------------------------* form GEt_cell using row col changing value. CALL METHOD OF EXCEL 'activecell' = CELL EXPORTING #1 = ROW #2 = COL. GET PROPERTY OF CELL 'value' = VALUE. endform.
FORM SET_CELL USING ROW COL VALUE.
CALL METHOD OF EXCEL 'cells' = CELL
EXPORTING #1 = ROW #2 = COL. SET PROPERTY OF CELL 'value' = VALUE. ENDFORM.
_________________ G O T T_M I T_U N S
|