Obramowania komórek w Calc. Post przeredagowany.

Gotowe szablony, skrypty, makropolecenia i rozszerzenia. Tutaj możesz pochwalić i podzielić się swoją twórczością z innymi użytkownikami
Awatar użytkownika
Jermor
Posty: 2055
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Obramowania komórek w Calc. Post przeredagowany.

Post autor: Jermor »

W poście viewtopic.php?p=24943#p24943 użytkownik zapytał o możliwość dokonania takiej zmiany w poleceniu formatowania komórek w aspekcie ustalania krawędzi obszaru, aby dostępne były własne szerokości linii. Wynikało to z tego, że Calc w Apache OpenOffice przewiduje tylko wybrane szerokości linii. Napisałem makro, które umożliwia podanie szerokości linii od wartości 0 do 12 pkt. z krokiem 0,01.
Tu kilka słów wyjaśnienia nt. tworzenia krawędzi. W Apache OpenOffce do utworzenia krawędzi wykorzystywane są dwie linie, pomiędzy którymi występuje odstęp. Pierwszą linią (w terminologii Calc-a nazwaną "OuterLine") dla krawędzi poziomej jest linia górna, a dla krawędzi pionowej linia lewa. Druga linia nazywa się "InnerLine". Calc w okienku formatowania umożliwia wybór krawędzi z rozwijanej listy przedstawiającej graficzną jej prezentację z przypisaną szerokością konkretnego wzoru.
Inaczej tworzona jest krawędź w LibreOffice. Tutaj należy określić szerokość obramowań oraz wzór, jaki ma zostać zastosowany. Okienko formatowania umożliwia wybór dowolnej szerokości z zakresu od 0,05 do 9.00 pkt oraz wybór stylu. W tym wypadku to algorytmy Calca decydują o przyjętych wartościach szerokości konkretnych linii i odstępu. Rozwijane okienko typów linii zawiera 7 pozycji do wyboru. Nie jest to jednak komplet wzorów przewidzianych w specyfikacji tego parametru.
Proszę zwrócić uwagę na niejednoznaczność określeń "OuterLine" i "InnerLine". Sugerują one, że pierwsza linia jest linią zewnętrzną a druga - wewnętrzną. W rzeczywistości "OuterLine" jest zawsze górną linią krawędzi poziomej a lewą krawędzi pionowej.
Napisane makro rozpoznaje, w jakiej wersji programu Calc zostało wywołane i żąda parametrów dla tej wersji. Makro pozwala określić kolor krawędzi oraz zadecydować czy w obszarze zaznaczone mają być wewnętrzne linie poziome i pionowe. Parametry obramowania zostaną zastosowane do wszystkich krawędzi w zaznaczonych obszarach w arkuszu a jeśli żaden obszar nie zostanie zaznaczony, to obramowania obejmą aktualną komórkę aktywną.
Makro otwiera okno dialogowe, w którym należy określić oczekiwane wartości.
Okno otwarte dla Apache OpenOffice. Opcje LibreOffice są niedostępne.
Okno otwarte dla Apache OpenOffice. Opcje LibreOffice są niedostępne.
obraz_2022-05-26_111215443.png (16.1 KiB) Przejrzano 1090 razy
Powyższe okno dialogowe było związane z pierwszą wersją makra, które zostało zamieszczone w tym poście.
Po zastanowieniu postanowiłem zmodyfikować okno dialogowe rozszerzenia tworzącego obramowania obszarów. Uznałem, że wpisywanie liczb odpowiadających kolorom nie jest najlepszym rozwiązaniem. Ponadto, dzięki uwagom kolegi @cwolan, zastosowałem możliwość przechodzenia bezpośrednio do ustawiania parametrów, korzystając ze skrótów klawiaturowych ALT+podkreślona litera.
Obecnie okno dialogowe wygląda tak:
Okno dialogowe  otwarte w LibreOffice.
Okno dialogowe otwarte w LibreOffice.
obraz_2022-05-30_171719165.png (18.46 KiB) Przejrzano 954 razy
Składowe kolorów ustawia się suwakami. Zmieniony jest układ parametrów. Tę wersję rozszerzenia załączam w pliku oxt.
Granice.oxt
Zmodyfikowana wersja Granice.oxt
(4.67 KiB) Pobrany 71 razy
Po pobraniu rozszerzenia należy je dodać do pakietu przy pomocy menadżera rozszerzeń.
Wykorzystując polecenie "Narzędzia -> Dostosuj..." można utworzyć własny, nowy pasek narzędzi lub dodać nową pozycję do wybranego paska narzędzi dodając ikonkę uruchamiającą makro. Jak to można zrobić, opisałem tutaj: https://yestok.pl/lbo/y35.php w części opisującej rozszerzenie GeoMap. Można też "podpiąć" makro pod swój skrót klawiaturowy.

Po zainstalowaniu rozszerzenia w kontenerze "Moje makra" pojawi się biblioteka "Granice" zawierająca moduł "Borders". Do wywołania należy wskazać procedurę "Main".

Dotyczy wersji Calc Apache OpenOffice. Testując to rozszerzenie w wersji 4.1.12, zaobserwowałem, że makra z tego kontenera nie dają się uruchomić przy wyższym stopniu bezpieczeństwa. Dotychczas nigdy tak nie było. Makra z tego kontenera uruchamiały się zawsze. Zatem przy poziomie "Niski" makro uruchomi się bez problemu. Przy poziomie "Średni" makro będzie wymagało zgody na uruchomienie. Sądzę, że jest to jakieś niedopatrzenie w wydaniu tej wersji.

Dziękuję koledze @cwolan za uwagi.
Ostatnio zmieniony pn cze 20, 2022 10:48 am przez Jermor, łącznie zmieniany 4 razy.
Powód: Post przeredagowałem dnosząc go do jednej wersji rozszerzeia.
AOO 4.1.14, LO 7.4.6 (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