Krawędzi - zmiana grubości

Użytkowanie arkusza kalkulacyjnego
Ainat
Posty: 25
Rejestracja: pt lut 24, 2012 8:36 pm

Krawędzi - zmiana grubości

Post autor: Ainat »

wersja 4.12
w zakładce Format - Krawędzie - Linia - Styl są wyszczególnione grubości linni do wybrania obramowania komórtki.
W moim przypadku ; patrząc od samej góry mam następujące grubości linni : 0,05 pt , 0,50 pt , 1,00 pt , 2,5 pt itd.
Rozstrzał między 1,00 pt a 2,5 pt jest dla mnie za duży. Co mam zrobić żeby dodać 1,50 pt i 2,00 pt ?
Załączniki
krawedzie.jpg
krawedzie.jpg (100.4 KiB) Przejrzano 3212 razy
OpenOffice 4.1.2 na Windows 7
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Krawędzi - zmiana grubości

Post autor: Jan_J »

W LibreOffice (patrzę na 7.2) ustalenie grubosci linii nastepuje nie przez wybór z listy, tylko przez spin box:
[wartość do ackeptacji] [+][-]
przy czym wartość da się wpisać z dokładnością do 0,1 punktu. Jest ona pamiętana, mam nadzieję, że jest też adekwatnie ustawiana jako parametr linii.

OpenOffice'a nie mam, nie sprawdzę. Sądzę że się nie da, skoro wybór jest ograniczony do listy. Jest to ograniczenie formularza, nie dotyczy ono ani formatu danych, ani OpenOffice jako całości.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Krawędzi - zmiana grubości

Post autor: Jermor »

Przejdź na LibreOffice. W okienku opcji krawędzi ustalasz oddzielnie styl linii i oddzielnie jej grubość. W Libre nie ma jednak niektórych stylów dostępnych w Apache OpenOffice, np. podwójnej linii o różnych grubościach. Jest za to styl linii kropkowanej, kreskowanej.
obraz_2022-05-19_141038511.png
obraz_2022-05-19_141038511.png (25.71 KiB) Przejrzano 3197 razy
Jeśli jednak chcesz, to zawsze możesz napisać sobie makro, które ustali odpowiednie szerokości obramowania. Musisz w nim samodzielnie określić właściwości: Bottom...,Left..., Right..., TopBorder oraz LineStyle.
Takie makra znajdziesz np. tutaj: https://wiki.documentfoundation.org/Macros/Writer/003 albo tutaj: https://ask.libreoffice.org/t/calc-sett ... acro/54433, po dopasowaniu do własnych potrzeb możesz z nich korzystać.
Dla formalności dodaję info nt. stylu linii:(to co możesz podać w wierszu zapisanym tak: .LineStyle = com.sun.star.table.BorderLineStyle.DOUBLE, albo tak .LineStyle=3)
NONE = 0x7FFF;
SOLID = 0;
DOTTED = 1;
DASHED = 2;
DOUBLE = 3;
THINTHICK_SMALLGAP = 4;
THINTHICK_MEDIUMGAP = 5;
THINTHICK_LARGEGAP = 6;
THICKTHIN_SMALLGAP = 7;
THICKTHIN_MEDIUMGAP = 8;
THICKTHIN_LARGEGAP = 9;
EMBOSSED = 10;
ENGRAVED = 11;
OUTSET = 12;
INSET = 13;
FINE_DASHED = 14;
DOUBLE_THIN = 15;
DASH_DOT = 16;
DASH_DOT_DOT = 17;
BORDER_LINE_STYLE_MAX = 17
AOO 4.1.15, LO 7.5.9 (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.
Ainat
Posty: 25
Rejestracja: pt lut 24, 2012 8:36 pm

Re: Krawędzi - zmiana grubości

Post autor: Ainat »

Libre mi nie przypasował i dawno wróciłem do Office i to do starszej wersji bo wtedy najnowsza też mi nie przypasowała.
Te krawędzie tylko mnie wkurzają i od kilku lat nie mogę dać sobie rady; brakuje 1,00 pt i 1,5 pt.

Czy podane makra spowodują, że te linie pokarzą się w załączonej zakładce Krawędzie ?

A może da radę to zrobić edytując konkretny plik ?
OpenOffice 4.1.2 na Windows 7
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Krawędzi - zmiana grubości

Post autor: Jermor »

Nie. To makro nie sprawi, że na liście opcji pojawią się nowe krawędzie.
Musisz wiedzieć, że makro generując linie określa ich grubość nie w punktach, lecz w setnych częściach milimetra. Zatem grubość 100 oznacza 1 mm.
Musisz zatem samodzielnie przeliczyć punkty drukarskie na miarę metryczną. Można przyjąć, że 1 punkt typograficzny odpowiada 1/72 cala, czyli 0,3528 mm. Zatem wartości 1,5 i 2 pkt odpowiadają grubości linii, po zaokrągleniu: 53 i 71.
Napisałem tak na szybko dwa makra. To podstawowe robi obramowanie wskazanego obszaru. Drugie, to funkcja użytkownika, która pozwala wskazać w jakim arkuszu, jaki obszar i jaką grubością linii ma zostać objęty.
Funkcja jest wywoływana następująco: KRW(arkusz;obszar;grubość;kolor), czyli przykładowo tak: =KRW("Arkusz2";"C2:D8";53;&hff0000). Spowoduje to, że w Arkusz2 obszar C2:D8 zostanie objęty krawędziami o grubości 1,5 pkt. w kolorze czerwonym. Kolor można podawać jako zwykłą liczbę. Pominięcie czwartego argumentu zastosuje kolor czarny. Równoczesne pominięcie trzeciego argumentu spowoduje zastosowanie grubości 35. Uwaga: opuszczenie trzeciego argumentu (gdy wystąpi czwarty) oznacza zastosowanie grubości 0 (czyli zlikwidowanie linii).
Trzeba jednak o czymś wiedzieć. Jeśli we wprowadzonej funkcji zmienimy obszar, to liniowanie w dotychczasowym obszarze nie zniknie. Także gdy funkcja zostanie usunięta, liniowanie nie zniknie. Samo liniowanie można usunąć skrótem CTRL+M po zaznaczenie obszaru, albo funkcją, podając wymagany obszar i grubość 0.
W załączeniu plik z tym rozwiązaniem.
Załączniki
bordery.ods
(12.14 KiB) Pobrany 107 razy
AOO 4.1.15, LO 7.5.9 (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.
Ainat
Posty: 25
Rejestracja: pt lut 24, 2012 8:36 pm

Re: Krawędzi - zmiana grubości

Post autor: Ainat »

Czyli proponowane makra zadziałają tylko do jednostkowej/jednorazowej sytuacji (arkusza, komórki), i nie pojawią się w wyborze w zakładce "krawędzie - linie - styl" na stałe ? Ja szukam takiej funkcjonalności żeby to było dodane do tej karty i zostało już na stałe.
Po prosu chciałbym dodać do listy wyboru potrzebne mi style linii krawędzi na stałe do programu.

Czy można to zrobić ?
OpenOffice 4.1.2 na Windows 7
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Krawędzi - zmiana grubości

Post autor: Jan_J »

Makro wysłane przez @Jermor'a da się uruchomić przez Narzędzia→Makra, da się je podpiąć do skrótu klawiszowego, do wpisu w menu, do przcyisku, do nowej listwy narzędziowej, a prawdopodobnie także do nowej pozycji w liście wyboru.
Nie jest to „aż tak” proste, jak pokazał @Jermor. Zamiast makra realizującego właściwą robotę trzeba będzie napisać makro rozszerzające interfejs, a najwygodniej byłoby zamknąć całość w formie dodatku (.oxt). Nie jest to wielka praca ani wymagająca specjalnych kwalifikacji, ale zamiast dajmy na to 50 wierszy kodu będzie ich trzeba powiedzmy około 300. Wobec faktu, że cała ta funkcjonalność w Libre po prostu jest gotowa, zaś Apache OO ledwie zipie jeśli chodzi o przyszłość, mała jest szansa, by ktoś się podjął to zrobić.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Ainat
Posty: 25
Rejestracja: pt lut 24, 2012 8:36 pm

Re: Krawędzi - zmiana grubości

Post autor: Ainat »

Rozumiem
To może jest możliwość zmienić grubość istniejącego stylu ?
OpenOffice 4.1.2 na Windows 7
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Krawędzi - zmiana grubości

Post autor: Jan_J »

Niewykluczone, że da się to zrobić modyfikując wpis w którymś tekstowych plików wchodzących w skład pakietu i opisujących jego konfigurację. Szukałem, nie znalazłem, ale to jeszcze nie dowód, że tak się nie da.
Z tym że jest to sposób typu „jazda po bandzie”. A już na pewno taką modyfikację szlag trafi przy każdej aktualizacji.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Krawędzi - zmiana grubości

Post autor: Jermor »

Napisałem makro, które realizuje twoje potrzeby. Pozwala ono na uzyskanie krawędzi o maksymalnej grubości 12 pkt. Wszystkie te wartości można podawać z dwoma cyframi po przecinku.
Makro rozpoznaje, z jaką wersją Calca będzie współpracować. Apache OpenOffice wykorzystuje inny sposób tworzenia obramowań niż LibreOffice.
Apache zakłada, że każde obramowanie składa się z dwóch linii: zewnętrznej (outer) i wewnętrznej (inner), między którymi znajduje się odstęp (distance). Dobierając odpowiednie szerokości uzyskamy wymaganą postać. LibreOffice określa tylko jedną szerokość, która jest szerokością całego stylu linii. Dla pojedynczej linii ciągłej jest to szerokość linii. Style (wybierane z listy) same określają konkretne wymiarowania w obrębie podanej szerokości. W parametrach można określić kolor linii podając wartości składowych: Red, Green, Blue. Kolor jest wspólny dla wszystkich krawędzi. Okno dialogowe udostępnia tylko te parametry, które dotyczę użytej wersji Calc. Można także określić czy mają wystąpić wewnętrzne linie poziome i pionowe.
Makro rozpoznaje wszystkie zaznaczone obszary w arkuszu i wykona krawędzie dla nich wszystkich. Jeśli żaden obszar nie będzie zaznaczony, krawędzie zostaną zastosowane do aktualnie aktywnej komórki.
Okno dialogowe dla Apache OpenOffice
Okno dialogowe dla Apache OpenOffice
obraz_2022-05-23_220141753.png (16.4 KiB) Przejrzano 3088 razy
Plik jest przygotowany w postaci rozszerzenia oxt. Po pobraniu należy je dodać do pakietu przy pomocy menadżera rozszerzeń.
W swoim wybranym pasku narzędzi można dodać 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.
Oto plik do pobrania:
krawędzie.oxt
Jest to druga, zmodyfikowana wersja rozszerzenia.
(4.01 KiB) Pobrany 99 razy
Jest to druga wersja rozszerzenia. Funkcjonalnie działa dokładnie tak samo jak poprzednia. W tej zmodyfikowałem kod, upraszczając przetwarzanie.
Plik utworzy bibliotekę Edges w kontenerze "Moje makra". Uruchomić należy makro "Edge" znajdujące się w module "Edges". Korzystając z możliwości zawartych w poleceniu "Narzędzia -> Dostosuj..." można utworzyć własną pozycję w pasku narzędzi i/lub w Menu.
Nie pracuję już (praktycznie) z Apache OpenOffice, po przygotowaniu tego oprogramowania okazało się, że wersja 4.1.12 nie akceptuje makr uruchamianych z kontenera "Moje makra" przy poziomie bezpieczeństwa innym niż "niskie" (może tylko niepodpisanych certyfikatem, ale tego nie miałem jak sprawdzić). Piszesz, że korzystasz ciągle ze starszej wersji, więc myślę, że nie będzie problemu.
Ostatnio zmieniony śr maja 25, 2022 4:43 pm przez Jermor, łącznie zmieniany 1 raz.
Powód: Zmodyfikowałem kod makra nie zmieniając funkcjonalności.
AOO 4.1.15, LO 7.5.9 (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.
cwolan
Posty: 54
Rejestracja: pn sty 25, 2021 11:17 pm

Re: Krawędzi - zmiana grubości

Post autor: cwolan »

@Jermor
Podziękowanie za makro.

Dwie oczywiste uwagi:
  • w formantach "R", "G", "B" można szybko wywołać błąd i wyświetlenie komunikatu
    "Niedopuszczalna wartość lub typ danych. Przepełnienie.".
    Wystarczy wpisać np. w polu "R" ciąg "111111".
  • wartość ujemna składowej koloru jest uzwględniana w kolorze poziomego paska w dialogu, ale nie w kolorze krawędzi w arkuszu.
    Przykład: wpisanie w polu "G" ciągu "-1".
OpenOffice 1.1.5 – 4.1.15
LibreOffice 6.4.7 – 7.6.4
Windows 7,10,11 64-bit
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Krawędzi - zmiana grubości

Post autor: Jermor »

Dziękuję za słuszne uwagi. Moje niedopatrzenie i chyba pośpiech.
Przygotowałem kolejną poprawioną wersję. Zamieszczę ją w dziale "Projekty użytkowników".
Teraz wartości R, G i B są kontrolowane.
AOO 4.1.15, LO 7.5.9 (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.
cwolan
Posty: 54
Rejestracja: pn sty 25, 2021 11:17 pm

Re: Krawędzi - zmiana grubości

Post autor: cwolan »

Jermor pisze:Dziękuję za słuszne uwagi.
Cała przyjemność po mojej stronie.

Drobne uzupełnienie:
  • na liście stylów dla LibreOffice jedna pozycja jest po angielsku ("Fine dashed") a jedna zawiera literówkę ("Zewnetrznie")
  • etykieta "Określ własne parametry krawędzi." jest przycięta od dołu
  • wydaje mi się, że coś jest nie tak z akceleratorami dla formantów R,G,B (podkreślenie). "R" i "G" są podkreślone, a "B" nie.
    Naciśnięcie litery "R" przesuwa fokus do kontrolki oznaczonej "G", z kolei naciśnięcie litery "G" przesuwa fokus
    do kontrolki oznaczonej "B". Co daje naciśnięcie litery "B"?
OpenOffice 1.1.5 – 4.1.15
LibreOffice 6.4.7 – 7.6.4
Windows 7,10,11 64-bit
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Krawędzi - zmiana grubości

Post autor: Jermor »

Co do nazwy "Fine dashed". Powszechnie kojarzymy "Fine" z "w porządku". Dopiero po twoim wpisie zajrzałem do słownika i tam "fine" ma także znaczenie "cienki". Zmieniłem więc ten opis na "Cienko kreskowane".
Podkreślenie liter, to niezamierzony efekt. Wiem, do czego ta możliwość służy, ale nie wiem, jak jej użyć świadomie.
Pozostałe — do zmodyfikowania.
AOO 4.1.15, LO 7.5.9 (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.
cwolan
Posty: 54
Rejestracja: pn sty 25, 2021 11:17 pm

Re: Krawędzi - zmiana grubości

Post autor: cwolan »

Jermor pisze:Co do nazwy "Fine dashed". Powszechnie kojarzymy "Fine" z "w porządku". Dopiero po twoim wpisie zajrzałem do słownika i tam "fine" ma także znaczenie "cienki". Zmieniłem więc ten opis na "Cienko kreskowane".
I słusznie. W LibreOffice (dialog "Linia") styl linii "Fine Dashed" jest tłumaczony jako "Cienko kreskowany".
Jermor pisze:Podkreślenie liter, to niezamierzony efekt. Wiem, do czego ta możliwość służy, ale nie wiem, jak jej użyć świadomie.
Temat został poruszony w artykule w OpenOffice wiki: Label Field

"Przeniesienie" fokusu z etykiety na kontrolkę zadziała, gdy "kolejność aktywacji" kontrolki będzie o jeden większa od "kolejności aktywacji" etykiety. Tymczasem w dialogu mamy kolejność aktywacji następującą:
etykieta "R" - 18 vs formant - 17
etykieta "G" - 20 vs formant - 19
etykieta "B" - 22 vs formant - 21
co tłumaczy, dlaczego naciśnięcie litery "R" przesuwa fokus do formantu "G", a litery "G" — do formantu "B".

Załączam zmodyfikowany plik Dialog1. Zmieniłem kolejność aktywacji na prawidłową i chyba działa poprawnie.
Załączniki
Dialog1_NEW.zip
(1.66 KiB) Pobrany 99 razy
OpenOffice 1.1.5 – 4.1.15
LibreOffice 6.4.7 – 7.6.4
Windows 7,10,11 64-bit
cwolan
Posty: 54
Rejestracja: pn sty 25, 2021 11:17 pm

Re: Krawędzi - zmiana grubości

Post autor: cwolan »

Załączyłem niewłaściwą wersję dialogu (nieodpowiednie nazwy kontrolek RGB powodują błąd makra). :oops:
Najmocniej przepraszam. Poniżej wersja poprawna.
Załączniki
Dialog1_NEW.zip
(1.66 KiB) Pobrany 111 razy
OpenOffice 1.1.5 – 4.1.15
LibreOffice 6.4.7 – 7.6.4
Windows 7,10,11 64-bit
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Krawędzi - zmiana grubości

Post autor: Jermor »

Po pierwsze dziękuję za wyjaśnienie LabelField. Źródło wyjaśniło też sposób sygnalizowania tej wyróżnionej litery.
Na razie po prostu wyłączyłem tę opcję w etykietach.
Rzeczywiście nie wiedziałem o tej możliwości i na pewno będę to wykorzystywał w przyszłości.
Dziękuję za zaangażowanie. Ostateczna wersja rozszerzenia jest teraz w dziale "Projekty użytkowników".
AOO 4.1.15, LO 7.5.9 (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