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