Barcode makro jak dopasować

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO

Barcode makro jak dopasować

Postprzez szlejk » N paź 31, 2021 6:00 pm

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   Rozszerz widokZwiń widok
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
szlejk
 
Posty: 12
Dołączył(a): N mar 26, 2017 1:00 pm

Re: Barcode makro jak dopasować

Postprzez Jermor » Pn lis 01, 2021 12:26 am

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.10, LO 7.2.4 (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.
Avatar użytkownika
Jermor
 
Posty: 1668
Dołączył(a): So paź 12, 2013 11:09 am


Powrót do Makra i programowanie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości