REPORT Y96TEST_LIST_TO_EXCEL NO STANDARD PAGE HEADING LINE-SIZE 55.
TYPE-POOLS: Y96XL.
INCLUDE OLE2INCL.
INCLUDE .
INCLUDE .
DATA GS TYPE C.
START-OF-SELECTION.
* Регистрация callback-ов на события
CALL FUNCTION 'Y96_LIST_TO_EXCEL_REG_CALLBACK'
EXPORTING
* PROGRAM =
* on_start = 'ON_START'
ON_CELL_BASE = 'ON_CELL_BASE'
ON_CELL = 'ON_CELL'
ON_ROW = 'ON_ROW'
ON_TAG = 'ON_TAG'
ON_EXCEL = 'ON_EXCEL'
ON_CONFIRM = 'ON_CONFIRM'
EXCEPTIONS
OTHERS = 1.
SET PF-STATUS 'MAIN'.
DATA: INDEX TYPE I,
DMBTR LIKE BSEG-DMBTR,
NUM(5) TYPE N.
DATA: TOTAL_BTR LIKE BSEG-DMBTR.
DO 10 TIMES.
INDEX = 10000 + SY-INDEX.
NUM = SY-INDEX.
DMBTR = INDEX.
ADD DMBTR TO TOTAL_BTR.
WRITE: / SY-VLINE, INDEX,
SY-VLINE, NUM,
SY-VLINE, DMBTR,
SY-VLINE, SPACE AS CHECKBOX,
SY-VLINE.
CASE SY-INDEX.
WHEN 1. WRITE: ICON_EXECUTE_OBJECT AS ICON.
WHEN 2. WRITE: ICON_SELECT_DETAIL AS ICON.
WHEN 3. WRITE: ICON_PRINT AS ICON.
WHEN 4. WRITE: ICON_COPY_OBJECT AS ICON.
WHEN 5. WRITE: ICON_SORT_DOWN AS ICON.
WHEN 6. WRITE: ICON_SORT_UP AS ICON.
WHEN 7. WRITE: ICON_SEARCH AS ICON.
WHEN 8. WRITE: ICON_INSERT_ROW AS ICON.
WHEN 9. WRITE: ICON_DELETE_ROW AS ICON.
WHEN 10. WRITE: ICON_CHANGE_TEXT AS ICON.
ENDCASE.
WRITE SY-VLINE.
CASE SY-INDEX.
WHEN 1. WRITE: SYM_PLUS_BOX AS SYMBOL.
WHEN 2. WRITE: SYM_MINUS_BOX AS SYMBOL.
WHEN 3. WRITE: SYM_PLUS_CIRCLE AS SYMBOL.
WHEN 4. WRITE: SYM_MINUS_CIRCLE AS SYMBOL.
WHEN 5. WRITE: SYM_FILLED_SQUARE AS SYMBOL.
WHEN 6. WRITE: SYM_HALF_FILLED_SQUARE AS SYMBOL.
WHEN 7. WRITE: SYM_SQUARE AS SYMBOL.
WHEN 8. WRITE: SYM_FILLED_CIRCLE AS SYMBOL.
WHEN 9. WRITE: SYM_HALF_FILLED_CIRCLE AS SYMBOL.
WHEN 10. WRITE: SYM_CIRCLE AS SYMBOL.
ENDCASE.
WRITE SY-VLINE.
ENDDO.
FORMAT COLOR COL_TOTAL.
ULINE.
WRITE: / SY-VLINE, (11) 'Итого',
SY-VLINE, (5) '',
SY-VLINE, (16) TOTAL_BTR,
SY-VLINE, (1) SPACE,
SY-VLINE, (2) SPACE,
SY-VLINE, (1) SPACE,
SY-VLINE.
ULINE.
FORMAT COLOR OFF.
TOP-OF-PAGE.
WRITE: / 'Дата:', SY-DATUM.
FORMAT COLOR COL_HEADING.
ULINE.
WRITE: / SY-VLINE, (51) 'Заголовок' CENTERED, SY-VLINE.
ULINE.
WRITE: / SY-VLINE, (38) 'Числа в разных форматах' CENTERED,
SY-VLINE, (10) 'Объекты' CENTERED,
SY-VLINE.
ULINE.
WRITE: / SY-VLINE, (11) 'Число',
SY-VLINE, (5) 'Число',
SY-VLINE, (16) 'Сумма',
SY-VLINE, (1) 'X',
SY-VLINE NO-GAP, (4) 'Icon' NO-GAP,
SY-VLINE NO-GAP, (3) 'Sym' NO-GAP,
SY-VLINE.
FORMAT COLOR OFF.
ULINE.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'XLSP'.
CALL FUNCTION 'Y96_CUR_LIST_TO_EXCEL_BY_HTML'
EXPORTING
* filename = ' ' " Имя файла
CONFIRM = ' ' " Выводить экран запроса имени файла
* EXEC = 'X' " Выполнять файл
* COLOR_OFF = ' ' " Выключить цвет
* BORDER_OFF = ' ' " Выключить границы
SYMBOL_MODE = 'X' " Режим символов
CHECKBOX_MODE = 'X' " Режим CheckBox-ов
ICON_MODE = 'X' " Режим иконок
EXCEPTIONS
OTHERS = 1.
* Режимы: "-" - Порбелы; "T" - соотв тест; "X" - объект
ENDCASE.
* Все строки листнга имеющие одинаковое форматирование сгрупированы
* Возникает на каждой ячейке в группе строк перед началом формирования
FORM ON_CELL_BASE
USING
INDEX " № группы
COL " № столбца
NAME " Имя выводимой глобальной переменной
TD TYPE Y96XL_TD " описание ячейки
CHANGING
CONCATENATE_WITH_PREV " сложить с предидущей ячейкой
SPLIT_AT_POS TYPE I. " разбить ячейку по позиции
* BREAK-POINT.
* IF col = 2.
* concatenate_with_prev = 'X'.
* split_at_pos = 12.
* ENDIF.
ENDFORM.
* возникает при тегах: ;;;>STYLE<
* Начальное значение берётся из текстов к группе функций
FORM ON_TAG TABLES ITTAG " Содержимое тега
USING TAGNAME. " Имя тега
* BREAK-POINT.
ENDFORM.
* Возникает на каждой ячейке
FORM ON_CELL
USING
INDEX " № группы строк
COL " № столбца
NAME " Имя выводимой глобальной переменной
TD TYPE Y96XL_TD " описание ячейки
ROW " № строки
VAL " содержимое ячейки
STYLE TYPE Y96XL_TD_STYLE " описание стиля ячейки
CHANGING
STYLE_STR " стока добавляемая к стилю ячейки
IN_TAG " строка вставляется в тег
BEFORE_VAL " строка вствл. после тега перд. содер. яч
AFTER_VAL. " строка вствл. после содерж. ячейки
IF ROW = 3.
BEFORE_VAL = ''.
STYLE_STR = 'font-style:italic;'.
AFTER_VAL = ''.
ENDIF.
IF ROW = 5.
STYLE_STR = 'text-decoration:underline;text-underline-style:single;'.
ENDIF.
CASE NAME.
WHEN 'INDEX'.
STYLE_STR = 'text-decoration:underline;text-underline-style:double;'.
IF STYLE-GS = 'X'.
TRANSLATE GS USING ' XX '.
STYLE-GS = GS.
ENDIF.
WHEN 'NUM'.
* in_tag = 'STYLE="COLOR:RED"'.
* style_str = 'COLOR:RED;'.
* CLEAR style-sid.
BEFORE_VAL = ''.
AFTER_VAL = ''.
WHEN 'DMBTR'.
STYLE-TOP = 'X'.
WHEN 'TOTAL_BTR'.
VAL = '=СУММ(E5:E14)'.
CLEAR STYLE-DECS.
ENDCASE.
* BREAK-POINT.
ENDFORM.
* Взникает на каждой строке
* Значения скрытых полей востанавливаются
FORM ON_ROW TABLES HIDEFIELDS " Список скрытых полей в указаной строке
USING ROW " № строки
LINE " Содержимое строки
CHANGING IN_TAG " Строка вставляется тег |
CANCEL. " "X" - отменить вывод строки
IF ROW = 2.
* cancel = 'X'.
IN_TAG = 'STYLE="HEIGHT:26PT"'.
ENDIF.
ENDFORM.
* Возникает после загрузки данных в excel
FORM ON_EXCEL USING H_APPL TYPE OLE2_OBJECT
H_BOOKS TYPE OLE2_OBJECT
H_WORK TYPE OLE2_OBJECT
H_SHEET TYPE OLE2_OBJECT.
ENDFORM.
* Возникает перед запросом имени файла
FORM ON_CONFIRM TABLES ITVAR TYPE Y96XL_VAR_TAB " Варианты
USING SVAR TYPE Y96XL_VAR " Выбраный вариант
SCR TYPE Y96XL_SCR " Опции на экране
NOT_CALL_SCREEN " Не вызывать экран
CANCEL. " Отмена выгрузки
NOT_CALL_SCREEN = 'X'.
ENDFORM.
Используются технологии
uCoz