Strona 1 z 1

Wywołanie drugiego formatu tabeli po wybraniu rekordu

: pn lip 08, 2013 4:26 pm
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?

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

: wt lip 09, 2013 1:21 am
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

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

: wt lip 09, 2013 10:29 am
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ą.

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

: wt lip 09, 2013 1:39 pm
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.

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

: śr lip 10, 2013 3:16 pm
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.

Re: Wywołanie drugiego formatu tabeli po wybraniu rekordu

: ndz lip 14, 2013 2:49 pm
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.