DateField [opgelost]

DateField [opgelost]

Berichtdoor willem » do jan 14, 2010 6:33 pm

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 bijgewerkt door willem op za jan 16, 2010 12:03 pm, in totaal 1 keer bewerkt.
willem
 
Berichten: 33
Geregistreerd: za jun 06, 2009 5:15 pm

Re: DateField

Berichtdoor RPG » do jan 14, 2010 7:57 pm

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 6.2.5.2 op openSUSE Leap 15.1
RPG
 
Berichten: 3957
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: DateField

Berichtdoor willem » do jan 14, 2010 9:41 pm

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
willem
 
Berichten: 33
Geregistreerd: za jun 06, 2009 5:15 pm

Re: DateField

Berichtdoor RPG » do jan 14, 2010 10:36 pm

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 6.2.5.2 op openSUSE Leap 15.1
RPG
 
Berichten: 3957
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: DateField

Berichtdoor willem » vr jan 15, 2010 1:27 pm

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
Geregistreerd: za jun 06, 2009 5:15 pm

Re: DateField

Berichtdoor willem » vr jan 15, 2010 8:42 pm

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) 186 keer gedownload
willem
 
Berichten: 33
Geregistreerd: za jun 06, 2009 5:15 pm

Re: DateField

Berichtdoor RPG » vr jan 15, 2010 9:19 pm

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 6.2.5.2 op openSUSE Leap 15.1
RPG
 
Berichten: 3957
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: DateField

Berichtdoor willem » za jan 16, 2010 12:02 pm

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) 193 keer gedownload
willem
 
Berichten: 33
Geregistreerd: za jun 06, 2009 5:15 pm

Re: DateField [opgelost]

Berichtdoor floris v » za jan 16, 2010 12:08 pm

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.6 op Linux Mint
* Heb je de survival guide voor het forum al gelezen?
Avatar gebruiker
floris v
 
Berichten: 1939
Geregistreerd: za apr 11, 2009 3:30 pm
Woonplaats: Apeldoorn, Nederland

Re: DateField [opgelost]

Berichtdoor RPG » za jan 16, 2010 12:35 pm

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 6.2.5.2 op openSUSE Leap 15.1
RPG
 
Berichten: 3957
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: DateField [opgelost]

Berichtdoor willem » za jan 16, 2010 1:17 pm

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
Geregistreerd: za jun 06, 2009 5:15 pm

Re: DateField [opgelost]

Berichtdoor willem » za jan 16, 2010 1:18 pm

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
willem
 
Berichten: 33
Geregistreerd: za jun 06, 2009 5:15 pm


Keer terug naar Macro's

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast