Ga naar inhoud
  • 0

Aanpassen datumformaat dmv script


Sumar

Vraag

Geplaatst:

Ik hoop dat er een oplossing bestaat voor mijn 'probleem'.

 

De bedoeling is om aan de hand van een ander veld het formaat van een datumveld aan te passen, bv

als veld X=0 dan datumveld in het formaat dd-mm-yyyy

als veld X=1 dan datumveld in het formaat mm-yyyy

als veld X=2 dan datumveld in het formaat yyyy

Als veld X anders wordt dan moet het formaat van het datum veld ook aangepast worden.

 

Dat de onderliggende datum anders is (omdat het een datum veld is zal altijd dd/mm/yyyy zijn) snap ik, het gaat puur om het laten zien.

 

Bij voorbaat dank !

 

PS: als het niet in FM12 kan maar wel in FM14 dan is dat OK, die versie komt er binnenkort aan.

9 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

je kan volgende code gebruiken in een berekeningsveld:

 

Let ( [
_date = tabel::DatumVeld;
_format = tabel::FormatVeld;
_d = Day ( _date );
_dlong = Right ( 0 & _d ; 2 ); //zorgt ervoor dat de dag altijd uit twee cijfers bestaat: 01, 12, 23, 31
_m = Month ( _date );
_mlong = Right ( 0 & _m ; 2 ); //zorgt ervoor dat de maand altijd uit twee cijfers bestaat: 02, 04, 10, 12
_y = Year ( _date )
];
Case ( 
   _format = 0 ; _dlong & "-" & _mlong & _year;
   _format = 1 ; _mlong & "-" & _year;
   _format = 2 ; _year
)
)

  • 0
Geplaatst:

Sinterklaas heeft mij helaas overgeslagen dus nog geen FM14 oplossing. Wel een andere gevonden en die doet (na een paar kleine aanpassingen) precies wat ik wil Enige wat nog uitgezocht moet worden is hoe dit ding zich gedraagt met Nederlandse datumformaten…

 

Zoals beloofd hier mijn 'oplossing', incl bronvermelding. Suggesties, opmerkingen zijn van harte welkom, kan er alleen maar van leren -))

 

Eise

 

EasyDate.fmp12.zip

  • 0
Geplaatst:

Ik heb een tijd terug eens een CF gemaakt waar een datum kan worden geformatteerd volgens een patroon dat je opgeeft. In het voorbeeld dat ik geef is de taal bijvoorbeeld alleen maar Nederlands, maar dat zou je ook gemakkelijk meertalig kunnen maken.

 

In een formule zou je dan FormatDate ( datum ; formaat ) opnemen. Formaat zou dan kunnen bevatten bijvoorbeeld "YYYYMMDD" met de datum van vandaag wordt dat 20151208 of "t d B YYYY" wordt dan dinsdag 8 December 2015 etc.

 

De functie gemakkelijk aan te passen of uit te breiden. (let op de volgorde van vervangen, bijvoorbeeld b is geen willekeurige keuze voor de maandnaam, er is geen dagnaam waar een b in staat)

Let ( [
dd = GetAsDate ( thedate ) ; 
dag = Choose ( DayOfWeek ( dd ) ; "" ; "zondag" ; "maandag" ; "dinsdag" ; "woensdag" ; "donderdag" ; "vrijdag" ; "zaterdag" ) ; 
d = Day ( dd ) ; 
m = Month ( dd ) ; 
maand = Choose ( m ; "" ; "januari" ; "februari" ; "maart" ; "april" ; "mei" ; "juni" ; "juli" ; "augustus" ; "september" ; "oktober" ; "november" ; "december" ) ; 
y = Year ( dd ) 
] ; 
If ( dateformat ≠ "?" ; 
Substitute ( dateformat ; 
		[ "dd" ; Right ( "0" & d ; 2 ) ] ; 
		[ "mm" ; Right ( "0" & m ; 2 ) ] ; 
		[ "yyyy" ; Right ( y ; 4 ) ] ; 
		[ "DD" ; Right ( "0" & d ; 2 ) ] ; 
		[ "MM" ; Right ( "0" & m ; 2 ) ] ; 
		[ "YYYY" ; Right ( y ; 4 ) ] ; 
		[ "d" ; d ] ; 
		[ "m" ; m ] ; 
		[ "yy" ; Right ( y ; 2 ) ] ; 
		[ "D" ; d ] ; 
		[ "M" ; m ] ; 
		[ "YY" ; Right ( y ; 2 ) ] ; 
		[ "Y" ; Right ( y ; 4 ) ] ; 
		[ "y" ; Right ( y ; 4 ) ] ; 
		[ "t" ; dag ] ; 
		[ "T" ; Proper ( dag ) ] ; 
		[ "b" ; maand ] ; 
		[ "B" ; Proper ( maand ) ] ) ; 
"d = dagnr¶m = maandnummer¶yy = jaar 2 cijfers¶y/yyyy = jaar 4 cijfers¶t = dagnaam¶b = maandnaam" )
)

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...