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.