Change 2034_old -> fill_cond_tab (many obozn for 1 nomn : tvz117 * 170601 , d18t : 161101).
+ For them must be button PageUp/Page down on screen with malfunction elements).
Change 2034_old -> fill_cond_tab (many obozn for 1 nomn : tvz117 * 170601 , d18t : 161101).
+ For them must be button PageUp/Page down on screen with malfunction elements).
*---------------------------------------------------------------------*
* FORM ZTEXT_WIDTH_PT (версія для ABAP 4.x)
*---------------------------------------------------------------------*
FORM ztext_width_pt USING i_text TYPE c
CHANGING e_width TYPE f.
DATA: lv_len TYPE i,
lv_char TYPE c LENGTH 1,
lv_add TYPE f.
CLEAR: e_width.
lv_len = STRLEN( i_text ).
DO lv_len TIMES.
lv_char = i_text+sy-index-1(1).
CLEAR lv_add.
" --- Латиниця великі ---
IF lv_char CP '[A-Z]'.
CASE lv_char.
WHEN 'I'. lv_add = 3.5.
WHEN 'M' OR 'W'. lv_add = 6.2.
WHEN OTHERS. lv_add = 5.5.
ENDCASE.
" --- Латиниця малі ---
ELSEIF lv_char CP '[a-z]'.
CASE lv_char.
WHEN 'i' OR 'j' OR 'l'. lv_add = 2.8.
WHEN 'm'. lv_add = 7.0.
WHEN 'w'. lv_add = 6.0.
WHEN 'f' OR 't' OR 'r'. lv_add = 3.2.
WHEN OTHERS. lv_add = 4.8.
ENDCASE.
" --- Кирилиця великі ---
ELSEIF lv_char CP '[А-Я]'.
CASE lv_char.
WHEN 'І'. lv_add = 3.5.
WHEN 'М' OR 'Ш' OR 'Щ' OR 'Ф' OR 'Ю'. lv_add = 7.0.
WHEN OTHERS. lv_add = 6.0.
ENDCASE.
" --- Кирилиця малі ---
ELSEIF lv_char CP '[а-я]'.
CASE lv_char.
WHEN 'і'. lv_add = 2.8.
WHEN 'м' OR 'ш' OR 'щ' OR 'ф' OR 'ю'. lv_add = 6.5.
WHEN OTHERS. lv_add = 5.5.
ENDCASE.
" --- Цифри ---
ELSEIF lv_char CP '[0-9]'.
lv_add = 5.0.
" --- Пробіл ---
ELSEIF lv_char = ' '.
lv_add = 3.0.
" --- Розділові знаки ---
ELSEIF lv_char CA '.,-/:;!?()""'''.
lv_add = 3.5.
" --- Інше ---
ELSE.
lv_add = 5.0.
ENDIF.
e_width = e_width + lv_add.
ENDDO.
ENDFORM.
Якщо в тебе вже є файл (шлях у змінній mypath(50)), треба відкрити його через Workbooks->Open.
DATA: g_excel TYPE ole2_object,
g_workbooks TYPE ole2_object,
g_workbook TYPE ole2_object,
g_sheets TYPE ole2_object,
g_sheet TYPE ole2_object,
g_range TYPE ole2_object.
DATA: mypath(50) TYPE c VALUE 'C:\temp\myfile.xlsx'. " твій шлях до файлу
*---------------------------------------------------------------------*
* Запуск Excel
*---------------------------------------------------------------------*
CREATE OBJECT g_excel 'Excel.Application'.
SET PROPERTY OF g_excel 'Visible' = 0. " приховано
" Отримали Workbooks
GET PROPERTY OF g_excel 'Workbooks' = g_workbooks.
" Відкрили існуючий файл
CALL METHOD OF g_workbooks 'Open' = g_workbook
EXPORTING
#1 = mypath.
" Отримали список Sheets з відкритої книги
GET PROPERTY OF g_workbook 'Sheets' = g_sheets.
" Взяли перший лист
CALL METHOD OF g_sheets 'Item' = g_sheet
EXPORTING #1 = 1.
" Доступ до клітинки (наприклад, G2 = рядок 2, колонка 7)
CALL METHOD OF g_sheet 'Cells' = g_range
EXPORTING
#1 = 2 " рядок
#2 = 7. " колонка
SET PROPERTY OF g_range 'Value' = 'Test'.
*---------------------------------------------------------------------*
* Закриття
*---------------------------------------------------------------------*
CALL METHOD OF g_workbook 'Close' EXPORTING #1 = 1. "1 = зберегти зміни
CALL METHOD OF g_excel 'Quit'.
FREE OBJECT g_range.
FREE OBJECT g_sheet.
FREE OBJECT g_sheets.
FREE OBJECT g_workbook.
FREE OBJECT g_workbooks.
FREE OBJECT g_excel.
📌 Тут важливі моменти:
mypath — твій шлях до існуючого Excel-файлу.
Використовується Workbooks->Open, а не Add.
Закриття: Close EXPORTING #1 = 1 → зберегти, або 0 → закрити без збереження.
Завжди йде повний ланцюжок Application → Workbooks → Workbook → Sheets → Sheet → Cells/Range.
SET PROPERTY OF cell_obj 'HorizontalAlignment' = alignment_value to set the alignment.
The alignment_value is a numeric code representing the alignment style:
2: Left alignment.
3: Center alignment.
4: Right alignment.
1: General (default).
1. Create and save file using Microsoft word;
2. Run list report; menu Spisok -> Save as file...-> RTF.
1. Dbf tab містить ВСІ 67-68 полів, Ztab - тільки ті 25-45 полів що використовуються в продовженні ресурсів, їх і копіюємо Dbf не редагува...