DateField [opgelost]

willem
Berichten: 33
Lid geworden op: za jun 06, 2009 5:15 pm

DateField [opgelost]

Bericht door willem »

Hallo allen,

In OpenOffice.org Calc heb ik een macro gemaakt met daarin een dialoogblad. Op dat dialoogblad heb ik onder andere een DateField geplaatst. Met de tool Eigenschappen kan men in het DateField een datum plaatsen en diezelfde datum verschijnt dan elke keer in het DateField als het Dialoogblad wordt opgeroepen. Met de pijltjes omhoog en omlaag kan de datum worden verzet.

Mijn vraag hierover luidt:
Is het ook mogelijk om in het DateField de huidige datum te laten verschijnen?

Met vriendelijke groet,
Willem
Laatst gewijzigd door willem op za jan 16, 2010 12:03 pm, 1 keer totaal gewijzigd.
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: DateField

Bericht door RPG »

Hallo

Ik kan die vraag bevestigend beantwoorden voor een form. Ik denk dat het voor een dialoog ook wel gaat.

.defaultdate of
.date

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
willem
Berichten: 33
Lid geworden op: za jun 06, 2009 5:15 pm

Re: DateField

Bericht door willem »

Dag Romke,

Bedankt voor uw reactie. Om het DateField in te vullen moet gebruik gemaakt worden van de tool "Eigenschappen" DateField. Het kadertje waar de datum moet ingevuld worden accepteert geen letters. Enkel cijfers en enige tekens zoals de /. Het is dus helaas niet mogelijk .Date of iets dergelijks in te voeren.

Met vriendelijke groet,
Willem
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: DateField

Bericht door RPG »

Hallo

Ik beantwoord deze vraag op de manier zoals ik gedaan heb omdat het in een macro forum staat. Maar het lijkt mij dat je niet met een macro bezig bent. Misschien met een opgenomen macro maar dat is niet een macro in de zin hoe ik een antwoord heb gegeven.

Een macro begint met sub of function en eindigt met
end sub of end function

Wat jij wilt kan denk ik niet.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
willem
Berichten: 33
Lid geworden op: za jun 06, 2009 5:15 pm

Re: DateField

Bericht door willem »

Hallo Romke,

Zelf vrees ik inderdaad ook dat het niet kan, maar wie weet? Waar ik mee bezig ben is wel echt een macro en begint met Sub etc. Met de macro roep ik een dialoogblad op waarop het DataField staat. Om het wat inzichtelijker te maken zal ik een verkort voorbeeld maken en dat binnenkort met enige toelichting op het Forum plaatsen. Tot zover dank voor uw reactie. Tot dan.

Vriendelijke groet,
Willem
willem
Berichten: 33
Lid geworden op: za jun 06, 2009 5:15 pm

Re: DateField

Bericht door willem »

Hierbij een verkort voorbeeld. In werkelijkheid staan er op het dialoogblad meerdere tools maar die heb ik in dit voorbeeld weggelaten.

In bijlage de macro “DateField” waarmee het dialoogblad wordt opgeroepen en in bijlage een tekstblad met afbeelding van Dialog1 en blad EigenschappenDateField.

In eigenschappen DateField heb ik de Datum ingesteld op 02-01-10 en deze verschijnt daarom altijd in het DateField op het Dialoogblad. Met de pijltoetsen kan deze datum wel worden aangepast.
Graag zou ik de werkelijke (huidige) datum in het DateField zien verschijnen.
Zou dat kunnen?

Met vriendelijke groet,
Willem
Bijlagen
DateField.ods
(10.63 KiB) 384 keer gedownload
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: DateField

Bericht door RPG »

Hallo Willem

Het is een mooie manier van denken om het op deze manier te proberen maar ik heb het idee dat het tot niets leidt.

Het is ook niet zo dat ik een grote deskundige bent. Als je hier echt een antwoord op wil hebben moet je naar het Engelse forum.

Waarom ben ik hier niet positief over? Als je iets van dialog weet moet het niet moeilijk zijn. De dialoog wordt aan geroepen. Voordat je de dialog toont zet je de datum in iets van wat voor jouw van toepssing is en dan toon je de dialog. Meer is het niet.
Ik heb het idee dat het voor een dialog niet moeilijker is dan voor een formulier.

Voor het bereken van de juiste waarde gebruik je basic.
Voor een formulier kun je hier kijken.
Zoek daar defaultdate op

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
willem
Berichten: 33
Lid geworden op: za jun 06, 2009 5:15 pm

Re: DateField

Bericht door willem »

Hallo Romke,

Voor mijn probleempje heb ik de volgende oplossing bedacht. (Bijlage DateField3)
Wanneer op Dialog1 NIET op de pijltjes van het DateField wordt geklikt dan is de ingestelde datum 00:00:00. Door nu in de macrocode de regel te plaatsen:

if datum=”00:00:00” then
datum=date
endif

wordt door niets in te stellen de huidige datum genomen.

Hiermee beschouw ik de vraag als opgelost. De huidige datum automatisch in het DateField laten verschijnen zal waarschijnlijk niet mogelijk zijn.
Met vriendelijke groet,
Willem
Bijlagen
DateField3.ods
(10.75 KiB) 384 keer gedownload
Gebruikersavatar
floris v
Berichten: 2107
Lid geworden op: za apr 11, 2009 3:30 pm
Locatie: Apeldoorn, Nederland

Re: DateField [opgelost]

Bericht door floris v »

De huidige datum automatisch in het DateField laten verschijnen zal waarschijnlijk niet mogelijk zijn.
Misschien kan dat niet in de code, maar ik denk wel in de properties in het ontwerpvenster.
* AOO 4.1.11 en LibreOffice 7.6.1.2 op Ubuntu 20.x
* Heb je de survival guide voor het forum al gelezen?
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: DateField [opgelost]

Bericht door RPG »

Hallo Willem

Ik heb er een lijn code in gevoegd. Ik heb daar al twee keer op gewezen. Dat zet de waarde van de dialoog altijd op de huidige dag. Het is mij niet duidelijk of je dit zoekt?


Sub main
DialogLibraries.LoadLibrary( "Standard" )
oDialog1 = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
oDateField = oDialog1.GetControl("DateField1")
oDateField.date=clng(CDateToIso(date)) ' Dit doet alles
oDialog1.Execute()
'oDateField = oDialog1.GetControl("DateField1")
'datum=oDateField.text
'print "ingestelde datum op het DateField is "+datum+" huidige datum = "+date
'if datum="00:00:00" then
' datum=date
'endif
'print "huidige datum= "+date+" gekozen datum= "+datum
End Sub
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
willem
Berichten: 33
Lid geworden op: za jun 06, 2009 5:15 pm

Re: DateField [opgelost]

Bericht door willem »

Hallo Floris,

Dank voor uw reactie. In de properties van het ontwerpvenster staat een kadertje om de datum in te vullen. Daarin worden geen letters geaccepteerd. Het lukt mij daarom niet om op die manier de werkelijke datum in het DateField te krijgen.

Vriendelijke groet,
Willem
willem
Berichten: 33
Lid geworden op: za jun 06, 2009 5:15 pm

Re: DateField [opgelost]

Bericht door willem »

Hallo RPG,

oDateField.date=clng(CDateToIso(date))

Ja, dit is precies waar ik naar zocht. Ik heb het ingevuld en het werkt perfect. Die enkele codelijn had ik nooit zelf kunnen vinden want ik heb geen idee waar die te vinden zou zijn.
Hartelijk dank voor de hulp. Dit soort verbeteringen maken mijn programma steeds beter en daardoor leuker om te gebruiken.

Met vriendelijke groet,
Willem
Plaats reactie