Strona 1 z 1

Barcode makro jak dopasować

: ndz paź 31, 2021 6:00 pm
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

Re: Barcode makro jak dopasować

: pn lis 01, 2021 12:26 am
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.