Wywołanie drugiego formatu tabeli po wybraniu rekordu

Użytkowanie programu bazodanowego
Awatar użytkownika
quest-88
Posty: 1105
Rejestracja: ndz maja 24, 2009 8:12 pm
Lokalizacja: Zabrze
Kontakt:

Wywołanie drugiego formatu tabeli po wybraniu rekordu

Post autor: quest-88 »

Hej

Tworzę bazę z osobami, które wykupiły polisę na życie. Stanąłem teraz przed problemem. Niektórzy płacą w systemach ratalnych i chciałbym, aby pole "Płatność ratalna" wraz z datami było wyszarzone do czasu kliknięcia na stosowne pole wyboru (checkbox "TAK"). Ale najważniejsza funkcja wiąże się z drugim formantem tabeli. Płacenie w ratach nie jest najczęstszym przypadkiem, dlatego chciałbym, aby druga tabela uaktywniała się dopiero po wybraniu rekordu z zaznaczonym polem "TAK".

Czy jest taka możliwość i jak to osiągnąć?

//edycja

Od razu wrzucę resztę pytań. :-)

1. Druga tabela, ta domyślnie wyszarzona. Mam w niej kolumnę "Dni do następnej wpłaty". W "Tabelach" liczby ujemne są na czerwono, ale w formularzu tracą kolor.
2. Czy da się zrobić tak, aby dopiero od "-30" (ostatniego miesiąca) liczba ta była na czerwono? (jeśli się nie da, to pierwszy punkt traci na znaczeniu)
3. Jest jakiś sposób, aby automatycznie wysyłać każdemu klientowi wiadomość, o tym, że zostało mu 30 dni do uregulowania płatności?
Załączniki
baza.odb
(16.96 KiB) Pobrany 181 razy
Standardowa diagnostyka rozwiązuje 90% problemów typu "wcześniej działało, ale już nie działa".
Przepis na LibreOffice
Uzyskałeś pomoc? Poinformuj innych o sprawdzonym rozwiązaniu i podziękuj. Dodaj [SOLVED] w tytule.
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

Post autor: belstar »

quest-88 pisze:"Płatność ratalna" wraz z datami było wyszarzone do czasu kliknięcia na stosowne pole wyboru (checkbox "TAK").

Kod: Zaznacz cały

Sub Tak_Nie(oEv)
	T_N = oEv.Source.Model.State
	DataWplaty = oEv.Source.Model.Parent.getByName("Liczba rat")
	If T_N = 0 Then
		DataWplaty.getByName("Data_wplaty").Enabled = False
	Else
		DataWplaty.getByName("Data_wplaty").Enabled = True
	End If
End Sub
Przypisz do zdarzenia Zmieniono stan elementu
Parę uwag:
Każdy z formantów nazywaj inaczej stosując przyjęte normy - np. w swoim formularzu etykieta pola daty , data wpłaty i data następnej wpłaty mają tą samą nazwę, nie używaj spacji w nazwach formantów (choć można) i polskie litery stosuj tylko w etykietach. Żeby kod nie zgłaszał błędów musiałem twoje nazwy pozmieniać (dostosuj w kodzie lub w nazwach formantów)

Wstawiony kod uczyni ci pole Data_wpłaty niedostępnym i na tej samej zasadzie wyłącz drugie pole z datą.
quest-88 pisze:Ale najważniejsza funkcja wiąże się z drugim formantem tabeli. Płacenie w ratach nie jest najczęstszym przypadkiem, dlatego chciałbym, aby druga tabela uaktywniała się dopiero po wybraniu rekordu z zaznaczonym polem "TAK".
Zwróć uwagę na poniższą linię

Kod: Zaznacz cały

oEv.Source.Model.Parent.getByName("jakaś_nazwa")
Pozwala ci odwołać się do jakiegoś elementu w formularzu głównym, czyli możesz sterować każdym (chyba) elementem formularza.

Zacznij używać MRI, bardzo ułatwia przegląd właściwości i metody obiektów a nawet pisze za ciebie kod.

Pozdrawiam

Ps. Ciekawe twój plik pobrałem a na stronie wyświetlone jest że Nie pobrano
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Awatar użytkownika
quest-88
Posty: 1105
Rejestracja: ndz maja 24, 2009 8:12 pm
Lokalizacja: Zabrze
Kontakt:

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

Post autor: quest-88 »

belstar, skorzystałem z Twojej wskazówki i pozmieniałem wszystkie pola nadając im TakieANieInneNazwy. Zmodyfikowałem Twoje makro i przypisałem je do checkboksa, ale jego wybór wywołuje błąd

Kod: Zaznacz cały

Type: com.sun.star.container.NoSuchElementException
Message: .
Zacznij używać MRI, bardzo ułatwia przegląd właściwości i metody obiektów a nawet pisze za ciebie kod.
Masz to na myśli?
http://forum.openoffice.org/en/forum/vi ... 74&t=49294
Ps. Ciekawe twój plik pobrałem a na stronie wyświetlone jest że Nie pobrano
To dlatego, że usunąłem starą wersję i wysłałem nowszą.
Załączniki
baza.odb
(17.96 KiB) Pobrany 175 razy
Standardowa diagnostyka rozwiązuje 90% problemów typu "wcześniej działało, ale już nie działa".
Przepis na LibreOffice
Uzyskałeś pomoc? Poinformuj innych o sprawdzonym rozwiązaniu i podziękuj. Dodaj [SOLVED] w tytule.
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

Post autor: belstar »

Nie zastosowałeś się do moich porad. W kodzie było LiczbaRat a w formularzu jak na zrzucie, i powtarzające się nazwy.
Załączniki
baza_a.odb
(18.92 KiB) Pobrany 164 razy
Wrong_names.png
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Awatar użytkownika
quest-88
Posty: 1105
Rejestracja: ndz maja 24, 2009 8:12 pm
Lokalizacja: Zabrze
Kontakt:

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

Post autor: quest-88 »

Jest już ciutkę lepiej. A czy to "zwalnianie/blokowanie" opcji można ustawić tylko dla wybranych wierszy? Na razie checkbox odblokowuje pole dla całego formularza, co jest strasznie bezsensowne.
Załączniki
baza.odb
(17.6 KiB) Pobrany 167 razy
Standardowa diagnostyka rozwiązuje 90% problemów typu "wcześniej działało, ale już nie działa".
Przepis na LibreOffice
Uzyskałeś pomoc? Poinformuj innych o sprawdzonym rozwiązaniu i podziękuj. Dodaj [SOLVED] w tytule.
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

Post autor: belstar »

Sorry że tak późno, ale miałem inne obowiązki. Dodałem nową procedurę i wydaje się że jest to to czego szukasz. Musisz ją uzupełnić o dodatkowe linie reprezentujące dodatkowe formanty do wyłączenia/włączenia, analogicznie jak poprzednio.
Załączniki
baza_ZmienionoRekord.odb
(19.12 KiB) Pobrany 219 razy
LibreOffice 5.1.2.2 Ubuntu 16 LTS
ODPOWIEDZ