Strona 1 z 1
[SOLVED] Jak pobrać datę z Pola daty
: wt kwie 08, 2014 11:02 pm
autor: Emart22
Witam ponownie i proszę o pomoc. Nakombinowałem się i nie mam pojęcia jak pobrać wybraną datę z pola daty. Wzorowałem się na poście
https://forum.openoffice.org/pl/forum/v ... =27&t=1484, ale niestety nic mi nie wychodzi. Proszę o dobitne wskazówki, żeby laik skumał.
Re: Jak pobrać datę z Pola daty
: śr kwie 09, 2014 12:36 am
autor: Jan_J
Kod: Zaznacz cały
Sub WstawDate
Dim Data As Variant
oDocument = ThisComponent
oSheet = oDocument.getSheets.getByName("Zakupy i Zwroty")
oCell = oSheet.getCellByPosition(0,nr_wiersza)
Data = ZakupOknoDial.getControl("DataZak")
....
End Sub
Data jest kontrolką typu stardiv.Toolkit.UnoDataFieldControl. Nie jest liczbą, więc nie możesz jej wstawiać do komórki jako wartość.
Trzeba z kontrolki pobrać datę (jako obiekt typu com.sun.star.util.Date) i przekształcić ją na liczbę za pomocą funkcji
Kod: Zaznacz cały
Sub WstawDate
Dim Data As Variant
oDocument = ThisComponent
oSheet = oDocument.getSheets.getByName("Zakupy i Zwroty")
oCell = oSheet.getCellByPosition(0,nr_wiersza)
Data = ZakupOknoDial.getControl("DataZak")
D = Data.Date
dd = DateSerial(D.year, D.month, D.day)
oCell.setValue(dd)
End Sub
Albo pobrać tekst daty z pola Text w kontrolce. O zgrozo! teki tekst też da się użyć w obliczeniach, sortowaniu itp., choć nie powinien.
Kod: Zaznacz cały
Sub WstawDate
Dim Data As Variant
oDocument = ThisComponent
oSheet = oDocument.getSheets.getByName("Zakupy i Zwroty")
oCell = oSheet.getCellByPosition(0,nr_wiersza)
Data = ZakupOknoDial.getControl("DataZak")
oCell.setString(Data.Text)
End Sub
Re: Jak pobrać datę z Pola daty
: śr kwie 09, 2014 11:11 pm
autor: Emart22
Pierwszym sposobem działa, ale rozumiem z odpowiedzi,że tak nie powinno się pisać więc próbuję pierwszym, ale mi nie działa tylko daję błąd : Nie ustawiono zmiennej obiektu i podświetla tą linijkę:
dd = DateSerial(D.year, D.month, D.day)
Re: Jak pobrać datę z Pola daty
: czw kwie 10, 2014 9:02 am
autor: Jan_J
Wychodzą na jaw skutki rozłamu AOO/LO.
W AOO Data.Date jest liczbą Long z wewnętrzną reprezentacją daty yyyymmdd w zapisie dziesiętnym (ISO).
Kod: Zaznacz cały
D = Data.Date
dd = cDateFromISO(d)
oCell.setValue(Dd)
W LO Data.Date jest strukturą z polami Year, Month i Day. Mój kod dotyczył struktury.
Kod: Zaznacz cały
D = Data.Date
dd = DateSerial(D.year, D.month, D.d)
oCell.setValue(Dd)
Re: Jak pobrać datę z Pola daty
: czw kwie 10, 2014 8:49 pm
autor: Emart22
Jak zwykle można liczyć na pomoc i szybką odpowiedź. Wielkie dzięki
Re: Jak pobrać datę z Pola daty - dodatek
: sob wrz 06, 2014 2:40 pm
autor: Bri
Jako że moje pytanie jest identyczne podepnę się pod ten temat - tylko że ja chcę pobrać datę z kontrolki "DataIn" wstawionej w obszar Calc (nie wykorzystuję dialogów) - jak mam zaadresować kontrolkę? Wszędzie widzę adresowania do formularzy w dialogach.
Kod (strzelałem) w którym datę z kontrolki chcę automatycznie po wybraniu umieścić w komórce C6 oczywiście nie działa
Kod: Zaznacz cały
Sub Wstawdate1
Dim Data As Variant
oDocument = ThisComponent
oSheet = oDocument.getSheets.getByName("Wprowadzanie")
Data = oSheet.getControl("DataIn")
oCell = oSheet.getCellByPosition(2,5)
oCell.setValue(Data.Text)
End Sub