Witajcie!
Tworzę we OpenOffice Writer prezentację projektu znajomej i chciałbym zrobić tak, żeby zawarte pod każdym z głównych punktów informacje mogły być zawijane oraz rozwijane. Pisząc "informacje" mam na myśli tekst i grafiki.
Ten projekt będzie oceniany w krótkim czasie przez specjalistów, którzy mogą uznać poszczególne punkty za niewarte uwagi i wtedy nie będą musieli ich czytać.
Jeżeli któryś z punktów (nagłówek) wzbudzi ich zainteresowanie, wystarczy kliknąć coś w rodzaju plusika (trójkącika i t.p. - to akurat ma nikłe znaczenie) po lewej i dany punkt byłby rozwijany.
Żeby lepiej zobrazować to czego szukam, proszę rzucić okiem na tę stronę: http://pl.wikipedia.org/wiki/Polska
Lista języków w znajdującym się po lewej panelu jest rozwijana poprzez naciśnięcie na znajdujący się ciut niżej odsyłacz "W innych językach".
Tworzenie zwijanych punktów konspektu w OpenOffice Writer
Re: Tworzenie zwijanych punktów konspektu w OpenOffice Write
Łatwiej będzie napisać to w HTML
Re: Tworzenie zwijanych punktów konspektu w OpenOffice Write
W OO.org też się da. Czy opisywane poniżej rozwiązane jest proste, pozostawiam ocenie czytającym
.
Tekst w dokumencie można ukryć na wiele sposobów. Zmienne użytkownika + "checkbox" i makro (hide section) zapewni odpowiedni efekt.
Tytułem wstępu w przykładzie użyłem
Przykład w załączniku (Trzeba zaakceptować obsługę makr).

Tekst w dokumencie można ukryć na wiele sposobów. Zmienne użytkownika + "checkbox" i makro (hide section) zapewni odpowiedni efekt.
Tytułem wstępu w przykładzie użyłem
- sekcji: Sekcja1, Sekcja2, Sekcja3.
- zmiennych użytkownika: zm1, zm2, zm3
- ogólnej procedury: ShowHideSection
- procedur dla każdej sekcji: ShowHideSection1, ShowHideSection2, ShowHideSection3
- checkboksów : cbSekcja1, cbSekcja2, cbSekcja3
- Procedura ShowHideSection
Narzędzia -> Makra -> Zarządzaj makrami -> Makro
Na liście z lewej odnajdujemy nasz dokument, następnie naciskamy 'Nowy' (można zostawić domyślną nazwę modułu) i wciskamy 'ok'
Następnie wklejamy poniższy kod:
Kod: Zaznacz cały
REM from http://www.oooforum.org/forum/viewtopic.phtml?t=83260 REM Sub ShowHideSection(parSection as String, parUsrVariable as String) Dim oDoc,TextFields,Controls,CheckBox,Enumeration,thisTextField oDoc = ThisComponent TextFields = oDoc.getTextFields Controls = oDoc.getDrawPage.getForms.getByName("Formularz") CheckBox = Controls.getByName(parSection) 'case sensitive Enumeration = TextFields.createEnumeration While Enumeration.hasMoreElements thisTextField = Enumeration.nextElement If thisTextField.SupportsService("com.sun.star.text.TextField.User") then If thisTextField.TextFieldMaster.Name = parUsrVariable then thisTextField.TextFieldMaster.Value = CheckBox.getCurrentValue EndIf EndIf Wend TextFields.refresh End Sub
- Procedury dla sekcji
Będąc na oknie OO.org Basic dopisujemy procedury odpowiedzialne za poszczególne sekcje.
Powodują one wywołanie ShowHideSection z odpowiednimi parametrami.
Sekcja 1:Sekcja 2:Kod: Zaznacz cały
Sub ShowHidenSection1 ShowHideSection "cbSekcja1", "zm1" End Sub
Sekcja 3:Kod: Zaznacz cały
Sub ShowHidenSection2 ShowHideSection "cbSekcja2", "zm2" End Sub
Kod: Zaznacz cały
Sub ShowHidenSection3 ShowHideSection "cbSekcja3", "zm3" End Sub
- Tworzenie kolejnych sekcji
Wracamy do naszego dokumentu. Wyświetlamy pasek ikon 'Formanty'. Dla każdej sekcji powtarzamy następujące kroki (na przykładzie sekcji 1)- Wybieramy z formantów ikonę 'Pole wyboru" (checkbox) i tworzymy nowy element, następnie ESC, by wyjść z tryby dodawania nowych elementów.
- Naciskamy 2xLPM na nowym "polu wyboru", otworzy się okno z właściwościami
- Zmieniamy nazwę na cbSekcja1 dla pierwszego elementu, cbSekcja2 dla drugiego i itd..
- Zmieniamy etykietę według uznania
- Zakotwiczenie ustalamy "Jako znak" (za pierwszym razem, potem program już pamięta)
- Przechodzimy na zakładkę "Wydarzenia", przy "Zmieniony stan elementu" wciskamy "...", następnie "Makro"
W bibliotece odnajdujemy nasz dokument->Standard->Module 1 (czyli tam gdzie zapisywaliśmy kod procedur) i z listy makr (Nazwa makra) wybieramy odpowiednie (ShowHideSection1 dla pierwszej sekcji i itd.), następnie zatwierdzamy wybór (2 x "OK") - Zamykamy okno "Właściwości"
- Z menu wybieramy Wstaw->Pola->Inne (Ctrl+F2), przechodzimy do zakładki "Zmienne". Jako typ wybieramy "Pole użytkownika".
Wpisujemy nazwę zmiennej: zm1
Wartość: 0
Następnie wciskamy "Wstaw" a potem "Zamknij".
Jeśli wyjdziemy z trybu projektu (Pasek ikon formanty, ikona 'Włacz/wyłącz tryb projektu), to zmienna będzie miała wartość 0 lub 1 w zależności czy pole wyboru będzie wybrane lub nie - Przechodzimy do nowej linii, potem z menu wybieramy Wstaw->Sekcja, zaznaczamy pole "Ukryj", w "Uwzględnij warunek" wpisujemy następujący kod (dla sekcji 1 - zm1, dla 2 - zm2 i itd. ...)
i naciskamy "Wstaw".
Kod: Zaznacz cały
zm1 eq 0
Przykład w załączniku (Trzeba zaakceptować obsługę makr).
- Załączniki
-
- przyklad.odt
- (19.21 KiB) Pobrany 398 razy
LibreOffice || Microsoft Office
-
- Posty: 1
- Rejestracja: pn gru 09, 2024 12:41 am
Re: Tworzenie zwijanych punktów konspektu w OpenOffice Writer
Dobry wieczór,
mam pytanie, ponieważ kod podany powyżej ukrywa tekst. Co w przypadku, gdy w ukrytej sekcji też są wstawione pola tekstowe z zakładki formanty? One pozostają widoczne, choć cała sekcja jest ukryta.
Czy mogę prosić o uzupełnienie kodu, by wszystko ukrywał.
Dziękuję.
mam pytanie, ponieważ kod podany powyżej ukrywa tekst. Co w przypadku, gdy w ukrytej sekcji też są wstawione pola tekstowe z zakładki formanty? One pozostają widoczne, choć cała sekcja jest ukryta.
Czy mogę prosić o uzupełnienie kodu, by wszystko ukrywał.
Dziękuję.
Ostatnio zmieniony pn gru 09, 2024 10:31 am przez Jan_J, łącznie zmieniany 1 raz.
Powód: Korekta interpunkcji poprawiająca czytelność postu
Powód: Korekta interpunkcji poprawiająca czytelność postu
LibreOffice 24.8.0.3.Windows 11 Pro
Re: Tworzenie zwijanych punktów konspektu w OpenOffice Writer
Autor @Arghil napisał swój ostatni post w roku 2013. Nie jest jasne, czy odpowie na prośbę. Ale być może zrobi to ktoś inny.
Wiele przykładów obsługi dokumentów z poziomu makr znajdziesz w opracowaniach Andrew Pitoyaka: bardziej roboczym AndrewMacro i w wydawanym w postaci książkowej „OpenOffice Macros Explained” (OOME). Oba można pobrać jako pdf-y z witryny autora https://www.pitonyak.org/book/.
// uzupełnienie po analizie przypadków
Rozbudowałem na szybko szkic @Arghil-a do postaci dokumentu z ramkami przestawnymi, tabelami i kontrolkami formularza. Wszystkie pola zakotwiczone „jako znak”. Ukrywanie i odkrywanie obejmuje także i te elementy.
Być może wstawiasz je zakotwiczone do strony zamiast do akapitu, do znaku albo jako znak? albo mocujesz je na zewnątrz ukrywanej sekcji? fakt, że kontrolka jest pozycjonowana w pewien sposób na stronie wcale nie oznacza, że jest w tym miejscu zakotwiczona.
Wiele przykładów obsługi dokumentów z poziomu makr znajdziesz w opracowaniach Andrew Pitoyaka: bardziej roboczym AndrewMacro i w wydawanym w postaci książkowej „OpenOffice Macros Explained” (OOME). Oba można pobrać jako pdf-y z witryny autora https://www.pitonyak.org/book/.
// uzupełnienie po analizie przypadków
Rozbudowałem na szybko szkic @Arghil-a do postaci dokumentu z ramkami przestawnymi, tabelami i kontrolkami formularza. Wszystkie pola zakotwiczone „jako znak”. Ukrywanie i odkrywanie obejmuje także i te elementy.
Być może wstawiasz je zakotwiczone do strony zamiast do akapitu, do znaku albo jako znak? albo mocujesz je na zewnątrz ukrywanej sekcji? fakt, że kontrolka jest pozycjonowana w pewien sposób na stronie wcale nie oznacza, że jest w tym miejscu zakotwiczona.
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)