Barcode makro jak dopasować

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
szlejk
Posty: 12
Rejestracja: ndz mar 26, 2017 1:00 pm

Barcode makro jak dopasować

Post autor: szlejk »

Witam,
proszę o pomoc w dopasowaniu makra ze strony https://github.com/LibreOffice/barcode. Jak edytować makro by pobierało kod ze wskazanej lokalizacji, a wygenerowany do innej lokalizacji?

Kod: Zaznacz cały

Sub InsertBarcode
    Dim oJob as Object
    oJob = createUnoService("org.libreoffice.Barcode")

    Dim args(8) as new com.sun.star.beans.NamedValue
    args(0).Name = "Action"
    args(0).Value = "InsertBarcode"
    args(1).Name = "BarcodeType"
    args(1).Value = "CODE128"
    args(2).Name = "BarcodeValue"
    args(2).Value = "123456789"
    args(3).Name = "BarcodeAddChecksum"
    args(3).Value = True
    args(4).Name = "WidthScale"
    args(4).Value = "100"
    args(5).Name = "HeightScale"
    args(5).Value = "100"
    args(6).Name = "PositionX"
    args(6).Value = "1000"
    args(7).Name = "PositionY"
    args(7).Value = "1000"
    args(8).Name = "TargetComponent"
    args(8).Value = ThisComponent
    oJob.execute(args)
End Sub
Dziękuję i pozdrawiam
Załączniki
Zrzut ekranu 2021-10-31 16.56.11.png
Libreoffice 6.0.4.2 Windows 10/ Ubuntu 18.04 Libreoffice 6.0.4.2
Awatar użytkownika
Jermor
Posty: 2361
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Barcode makro jak dopasować

Post autor: Jermor »

To dałoby się wykonać. Jednak ze względu na sposób działania tego rozszerzenia z jednej strony i sposób prezentacji grafiki w arkuszu kalkulacyjnym, z drugiej, należałoby uściślić wymagania.
Najpierw sprawa grafiki. Kod kreskowy powstaje jako grafika złożona z kilku wielokątów zawierających układ kresek i podpis znakowy. To ile ich jest, zależy od wybranego kodowania. W arkuszu kalkulacyjnym grafika jest tworzona w oddzielnej warstwie obrazowania. Oznacza to tyle, że właściwie nie jest związana z arkuszem. Co prawda Calc pozwala obecnie zakotwiczyć grafikę do komórki albo do komórki z możliwością zmiany rozmiaru wraz z komórką, ale na razie należałoby lokować wytworzony kod w odniesieniu do strony (arkusza). To także oznacza, że zmiana kodu w komórce nie zmieni prezentacji graficznej, lecz nałoży na tę istniejąca nowy układ kresek.
Autor opracowania narzucił rozmiar generowanego kodu, pozwalając modyfikować go poprzez odniesienie do procentowej zmiany wysokości i długości. Dlatego sądzę, że po pierwsze powinieneś zdecydować jaki typ kodu będzie stosowany. W przypadku kodu o określonej liczbie znaków go tworzących można zdecydować, jakie współczynniki dotyczące wymiarów mają być zastosowane.
Tworzenie kodu. To można zrealizować poprzez napisanie funkcji użytkownika, która musi wykonać kilka dodatkowych zadań.
Funkcja musi dostać jako argumenty adres komórki zawierającej wymagany kod, i adres komórki, do której kod ma zostać wstawiony. Ten drugi jest potrzebny do tego, aby wyznaczyć położenie grafiki, ale dodatkowo do określenia obszaru, z którego należy usunąć poprzednią prezentację kodu.
Należy podjąć decyzję, czy szerokość i wysokość komórek będzie z góry przypisana, czy ma być ustalana podczas tworzenia poszczególnych kodów. Graficzne prezentacje kodu byłyby lokowane w arkuszu względem strony.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ