Jump to content
  • 0

Aanpassen datumformaat dmv script


Sumar

Question

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.

Link to comment

9 answers to this question

Recommended Posts

  • 0

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
)
)

Link to comment
  • 0

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

Link to comment
  • 0

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" )
)

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...