Czyszczenie pola Date
Czyszczenie pola Date
Witam
Tworzę od niedawna makra w basic i z niemałym trudem staram się przegryzać przez wszelkie napotykane problemy, niestety od czasu do czasu muszę zasięgnąć porady bardziej doświadczonych.
Napotkałem na wydawało by się bardzo prosty do rozwiązania problem otóż W formularz mam kilka pól typu Date które po wykonaniu określonych czynności chcę wyczyścić, niestety czyszczenie atrybutu Date.Text nie daje żadnego efektu w polu nadal widać poprzednio ustawioną datę.
Proszę o informację jakiego atrybutu użyć aby pole Date zostało wyczyszczone.
Tworzę od niedawna makra w basic i z niemałym trudem staram się przegryzać przez wszelkie napotykane problemy, niestety od czasu do czasu muszę zasięgnąć porady bardziej doświadczonych.
Napotkałem na wydawało by się bardzo prosty do rozwiązania problem otóż W formularz mam kilka pól typu Date które po wykonaniu określonych czynności chcę wyczyścić, niestety czyszczenie atrybutu Date.Text nie daje żadnego efektu w polu nadal widać poprzednio ustawioną datę.
Proszę o informację jakiego atrybutu użyć aby pole Date zostało wyczyszczone.
OpenOffice 3.6 na Windows Vista
Re: Czyszczenie pola Date
Może wiecie do jakiego parametru przypisać wartość w polu Date tak aby atrybut nazwaPola.Date również się zmienił.
OpenOffice 3.6 na Windows Vista
Re: Czyszczenie pola Date
1. Pola w formularzu masz połączone z określonym polem tabeli, więc formanty powinny pokazywać to co jest w tabeli i jeśli przejdziesz do nowego rekordu staną się puste. Jeśli masz to inaczej to wstaw przykład, to rzucimy na to okiem.
Ponadto jeśli jest możliwość korzystania z wbudowanych narzędzi to stosowanie makr mija się z celem.
2. Nie bardzo rozumiem sens tego pytania, po co zmieniać nazwę formantu kiedy możesz chcieć odwoływać się do niego w innej części formularza itp. a wtedy jak się do niego odwołasz.
Jeśli jednak potrzebne ci to, podejrzyj taki sobie kod ( pisane z pamięci, więc może być błąd )
Ponadto jeśli jest możliwość korzystania z wbudowanych narzędzi to stosowanie makr mija się z celem.
2. Nie bardzo rozumiem sens tego pytania, po co zmieniać nazwę formantu kiedy możesz chcieć odwoływać się do niego w innej części formularza itp. a wtedy jak się do niego odwołasz.
Jeśli jednak potrzebne ci to, podejrzyj taki sobie kod ( pisane z pamięci, więc może być błąd )
Kod: Zaznacz cały
Sub nazwa(oEv)
oEv.source.model.setName("Stara nazwa")
Print oEv.Source.model.Name
oEv.source.model.setName("Nowa nazwa")
Print oEv.Source.model.Name
'Pierwsza część pytania - zadziała jeśli formant jest niezwiązany z żadnym polem tabeli
oEv.source.model.reset
End Sub
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Czyszczenie pola Date
Nie chodziło mi o zmianę nazwy pola tylko zminę jego wartości, pole w formularzu nie służy mi do prezentacji danych z tabeli tylko do wprowadzania danych do arkusza.
Jest to pole data urodzenia napisałem makro które ma wypełniać automatycznie to pole po wprowadzeniu danych do pola pesel.
Wykonuje to przez przypisanie przez ustawienie parametru
Niestety jest to przypisanie które jest nietrwałe ponieważ po zmianie arkusza i powrocie do niego w polu wstawia się wartość z parametru DataUr.Date
Jest to pole data urodzenia napisałem makro które ma wypełniać automatycznie to pole po wprowadzeniu danych do pola pesel.
Wykonuje to przez przypisanie przez ustawienie parametru
Kod: Zaznacz cały
private function WstawDoPol(Dataur)
doc = thisComponent
ark = doc.Sheets.getByIndex(0)
page = ark.getDrawPage()
form = page.Forms.getByName("Formularz")
P1 = form.getByName(DatUr)
P1.text=Dataur
end function
OpenOffice 3.6 na Windows Vista
Re: Czyszczenie pola Date
Wstaw załącznik, będzie łatwiej pojąć twój piont.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Czyszczenie pola Date
Załączam przykładowy plik.
Po wprowadzeniu numeru pesel pole data urodzenia uzupełniane jest automatycznie i wszystko wygląda ok dopóki nie przejdźmy na inny arkusz po powrocie pole data wypełnione jest wartością z parametru DataUr1.Date .
Po wprowadzeniu numeru pesel pole data urodzenia uzupełniane jest automatycznie i wszystko wygląda ok dopóki nie przejdźmy na inny arkusz po powrocie pole data wypełnione jest wartością z parametru DataUr1.Date .
- Załączniki
-
- Przykladowy.ods
- (17.26 KiB) Pobrany 196 razy
OpenOffice 3.6 na Windows Vista
Re: Czyszczenie pola Date
Sprawdź załącznik, z treści wywnioskowałem że pole daty gubi ci wstawioną datę, niestety twoją metodą nie wstawiasz daty w pole tylko tekst i stąd to gubienie wynikało poza tym data musi być wstawiona w formacie ISO z uwzględnieniem ustawień lokalizacyjnych.
Musisz popracować nad funkcją SkasujPol(), bo występuje wyjątek gdy pole daty jest wyczyszczone (nie zawiera nic).
I na koniec mała uwaga: W StarBasicu nie występuje seryjna deklaracja zmiennych więc zapis:
deklaruje dwie zmienne Variant (rok i mies) i jedną zmienną Integer (dzien)
Testowałem na LO, także co się dzieje na AOO nie wiem, w każdym bądź razie LO i AOO pod względem reprezentacji i przechoywania dat różną się np:
Musisz popracować nad funkcją SkasujPol(), bo występuje wyjątek gdy pole daty jest wyczyszczone (nie zawiera nic).
I na koniec mała uwaga: W StarBasicu nie występuje seryjna deklaracja zmiennych więc zapis:
Kod: Zaznacz cały
Dim rok, mies, dzien as Integer
Testowałem na LO, także co się dzieje na AOO nie wiem, w każdym bądź razie LO i AOO pod względem reprezentacji i przechoywania dat różną się np:
Kod: Zaznacz cały
'LO
P1.Date.Day = 14
P1.Date.Month = 12
P1.Date.Year = 2014
'AOO
P1.Date = CLng(cDateToIso(Now()))
- Załączniki
-
- Przykladowy_a.ods
- (18.69 KiB) Pobrany 185 razy
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Re: Czyszczenie pola Date
Ok ale teraz jak zainicjować to pole po jego wyczyszczeniu.
OpenOffice 3.6 na Windows Vista
Re: Czyszczenie pola Date
A prościej ci nie będzie zrobić je nieaktywnym, i zmienić kolor czcionki na biały lub coś w tym stylu.
LibreOffice 5.1.2.2 Ubuntu 16 LTS