Friday, November 28, 2025

Ширини кириличних літер, times new roman, 11 pt

 Малі кириличні літери (а–я, і, ї, є)


Літера Ширина, pt Літера Ширина, pt Літера Ширина, pt


а 4.9 к 4.8 т 3.4

б 5.0 л 5.0 у 4.6

в 5.0 м 7.4 ф 6.8

г 4.0 н 5.0 х 4.4

д 5.2 о 5.0 ц 5.2

е 4.8 п 5.0 ч 4.8

є 4.8 р 5.0 ш 7.0

ж 7.0 с 4.6 щ 7.6

з 4.4 і 2.6 ь 4.6

и 5.0 ї 3.4 ю 6.6

й 5.0 я 4.8  



📏 Середня ширина: ≈ 4.9 pt

🧩 Найвужчі: і (2.6), ї (3.4)

🧱 Найширші: ж, ш, щ (7.0–7.6)



---


🔠 Великі кириличні літери (А–Я, І, Ї, Є)


Літера Ширина, pt Літера Ширина, pt Літера Ширина, pt


А 6.6 Л 6.6 Ф 8.2

Б 6.6 М 8.2 Х 6.6

В 6.2 Н 7.0 Ц 7.0

Г 5.4 О 7.2 Ч 6.0

Д 7.0 П 7.0 Ш 8.0

Е 6.0 Р 6.2 Щ 8.4

Є 6.2 С 6.6 Ъ 7.2

Ж 8.6 Т 5.8 Ы 7.4

З 6.0 У 6.6 Ь 6.0

И 7.0 І 3.2 Э 6.6

Й 7.0 Ї 4.0 Ю 8.2

К 6.4 Ц 7.0 Я 6.4



📏 Середня ширина: ≈ 6.8 pt

🧩 Найвужчі: І (3.2), Ї (4.0), Т (5.8)

🧱 

Найширші: Ж (8.6), Щ (8.4), Ш/Ф/Ю (≈8.0–8.2)

Tuesday, November 18, 2025

SY-ucomm хрестика на popup screeni

 Якщо pf-статус порожній, не має кнопок в рядку меню, тоді хрестик = "E"

А інакше, якщо є якісь кнопки , то хрестик = CANCEL.

Найнадійніше перевіряти :

Case SY-ucomm.

When back or exit or cancel or E...

Monday, November 17, 2025

Current codepage №1500

 * Company = SAP

* Sap-intern , wie ISO 8859-5


DATA: lv_spras like sy-langu,

lv_codepage like tcp00-cpcodepage. lv_spras = sy-langu. CALL FUNCTION 'SCP_CODEPAGE_FOR_LANGUAGE' EXPORTING language = lv_spras IMPORTING codepage = lv_codepage EXCEPTIONS no_codepage = 1 OTHERS = 2. IF sy-subrc IS INITIAL. WRITE lv_codepage. ENDIF.

Wednesday, November 12, 2025

Many obozn

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

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.


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

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