Monday, October 27, 2025

Tuesday, October 7, 2025

Олдскул без CODE символів

 *---------------------------------------------------------------------*

* 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.

Thursday, October 2, 2025

Open 'nd close only xls file

Якщо в тебе вже є файл (шлях у змінній 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.


Tuesday, September 9, 2025

A lot of text vpn xn

 Ztest12

Antire records nomn where len > 320: 

0016664

0005821

>270: 52 шт.

Thursday, August 14, 2025

Ole2 Horizontal alignment for Cell

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). 

Tuesday, July 22, 2025

Save list report as RTF

 1. Create and save file using Microsoft word;

2. Run list report; menu Spisok -> Save as file...-> RTF.

Monday, June 16, 2025

Dbf не чіпаємо, маніпуляції тільки з itab

 1. Dbf tab містить ВСІ 67-68 полів,  Ztab - тільки ті 25-45 полів що використовуються в продовженні ресурсів, їх і копіюємо Dbf не редагува...