[SOLVED] Włączenie / wyłączenie formantu
[SOLVED] Włączenie / wyłączenie formantu
Proszę o podpowiedz jak włączyć i wyłączyć formant (np. pole wyboru) w zależności od wartości określonej komórki?
Pytanie czy jest taka funkcja gdyż nie chciałbym tego wykonywać makrem?
Pisząc włączyć i wyłączyć formant mam na myśli stany które osiąga się poprzez np.: właściwości: przycisk opcji -> ogólne -> włączony -> tak/nie
PZDR
MG
Pytanie czy jest taka funkcja gdyż nie chciałbym tego wykonywać makrem?
Pisząc włączyć i wyłączyć formant mam na myśli stany które osiąga się poprzez np.: właściwości: przycisk opcji -> ogólne -> włączony -> tak/nie
PZDR
MG
Ostatnio zmieniony śr kwie 17, 2019 9:27 am przez Maxbert, łącznie zmieniany 1 raz.
AOO 4.1.14, LO 7.5.5.2 (X86_64), Windows 10
Re: Włączenie / wyłączenie formantu
Na moje głowe to nie da rady bez tyciego makierka, które można potem sobie wstawiać w odpowiednie miejsca.
Re: Włączenie / wyłączenie formantu
OK skoro tak to poproszę o podpowiedź jak dobrać się do tego parametru za pomocą makra?
AOO 4.1.14, LO 7.5.5.2 (X86_64), Windows 10
Re: Włączenie / wyłączenie formantu
Z podręcznika https://wiki.openoffice.org/wiki/Docume ... ts#Buttons
The following example shows some of the properties for the checkboxes:
Właściwość aktywacji/dezaktywacji nazywa się Enabled czyli
The following example shows some of the properties for the checkboxes:
Kod: Zaznacz cały
Sub Checkbox1()
Dim oDialog As Object
Dim oControl As Object
DialogLibraries.LoadLibrary( "Standard" )
oDialog = CreateUnoDialog( DialogLibraries.Standard.getByName("MyDialog") ) 'Image control
oControl = oDialog.getControl("icFoto") 'we hide it
oControl.Visible = False 'Checkbox
oControl = oDialogo.getControl("chkImprimir")
With oControl.getModel
.TriState = True 'Triple state
End With
oDialog.execute()
oDialog.dispose()
End Sub
Właściwość aktywacji/dezaktywacji nazywa się Enabled czyli
Kod: Zaznacz cały
oControl.Enabled=True/False
AOO 4.1.15, LO 24.8.2 (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.
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.
Re: Włączenie / wyłączenie formantu
Przykładowe makro jest dla mnie nie zrozumiałe ale dziękuję bardzo bo naprowadziło mnie chyba na dobry trop. Uprościłem maksymalnie to co chciałem napisać (w załączeniu) i działa.
Jedyny problem jaki się pojawił to w sytuacji gdy zapisałem makro jako funkcja po uruchomieniu pliku wyskakuje mi "Błąd pracy BASIC,a. Nie ustawiono zmiennej obiektu". Taki błąd nie wyskakuje gdy jest to zwykła procedura.
Co ja tam źle zadeklarowałem?
PS. dot. załączonego arkusza: pole E2 zmienia ilość dostępnych opcji pola wyboru max. ....
Jedyny problem jaki się pojawił to w sytuacji gdy zapisałem makro jako funkcja po uruchomieniu pliku wyskakuje mi "Błąd pracy BASIC,a. Nie ustawiono zmiennej obiektu". Taki błąd nie wyskakuje gdy jest to zwykła procedura.
Co ja tam źle zadeklarowałem?
PS. dot. załączonego arkusza: pole E2 zmienia ilość dostępnych opcji pola wyboru max. ....
- Załączniki
-
- on_off_formant.ods
- (11.87 KiB) Pobrany 172 razy
AOO 4.1.14, LO 7.5.5.2 (X86_64), Windows 10
Re: Włączenie / wyłączenie formantu
Nie czuję się władny odpowiedzieć ci dlaczego tak się dzieje. Na to jestem za słaby. Zauważyłem, jednak że ta sytuacja występuje tylko przy ładowaniu arkusza do pamięci. Potem funkcja działa już prawidłowo. Więc aby doraźnie uniknąć tych komunikatów poprawiłem twój kod na taki:
Kod: Zaznacz cały
function onoff_formant (id as Integer, stan as boolean)
On local Error GoTo End_Of_Function
Dim przycisk
Dim formularz
Dim formant
formant = ThisComponent.CurrentController.ActiveSheet.DrawPage.Forms
formularz = formant.getByName("Formularz")
przycisk = formularz.getByIndex(id)
przycisk.Enabled = stan
End_Of_Function:
End function
AOO 4.1.15, LO 24.8.2 (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.
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.
Re: Włączenie / wyłączenie formantu
w podręczniku https://wiki.openoffice.org/wiki/Docume ... With_Forms opisują inny dostęp do elementów formularza.
W twoim przypadku zastosuj kod:
W twoim przypadku zastosuj kod:
Kod: Zaznacz cały
function onoff_formant (id as integer, stan as boolean)as string
Dim przycisk as variant
Dim formularz as variant
Dim formantas as variant
formant=ThisComponent.getSheets().getByIndex(0)
formularz=formant.getDrawPage().getForms().getByName("Formularz")
przycisk = formularz.getByIndex(id)
przycisk.Enabled = stan
if stan = 0 then onoff_formant = "off" else onoff_formant = "on"
End function
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Włączenie / wyłączenie formantu
Wszystko działa tak jak chciałem. Rozwiązanie Jermor-a mało "eleganckie" ale skuteczne. Do swoich celów zastosuje wersję od Rafkus-a która jest i "elegancka" i skuteczna i do tego bardzo czytelna. Obu Panom dziękuję za pomoc.
AOO 4.1.14, LO 7.5.5.2 (X86_64), Windows 10