2012

Feb

2

Av

Årtal i FileMaker måste skrivas på ett visst sätt för att tolkas som datum som FileMaker sedan kan göra beräkningar med. I Sverige används ISO-standard, dvs. datum skrivs i formen ÅÅÅÅ-MM-DD (t.ex. 2012-02-02). Men många tycker det är besvärligt att skriva bindestrecken. [

Det går förstås att lösa i FileMaker! Jag har tidigare skrivit om hur du kan ange "datumkommando" i datumfält och detta är en variant på samma tema. Jag använder manus-trigger på datumfältet som körs när innehållet valideras (VidObjektValidera).

I manuset som körs finns manussteget "Sätt in resultat" som istället för att, som tidigare, kontrollera om ett kommando skrivits in, t.ex. "idag", "imorgon" osv. så kontrollerar jag om längden på det inskrivna är 8 tecken (man kan göra kontroll att det bara är siffror också).

Om det är 8 tecken, t.ex. "20120202" omvandlar jag till ett datum med funktionen Date (som automatiskt får formen "2012-02-02").

Manuset består alltså av raden:

Sätt in resultat [Markera; ...]

och beräkningsformeln är:

Let([  
  fält = Get ( AktivtFältinnehåll ) 
];
if(Length(fält) = 8;
   Date(Middle(fält;5;2);Right(fält;2);Left(fält;4));
   fält)
)

Genom att använda manussteget "Sätt in resultat" och funktionen Get ( AktivtFältinnehåll ) kan samma manus användas på alla datumfält du har utan att du behöver ändra i det.

2 kommentarer till ”Skriv in datum utan bindestreck”

  1. PsoniHvi

    Ändra till:

    Let([
    fält = Get ( AktivtFältinnehåll )
    ];
    if(Length(fält) = 6;
    Date(Middle(fält;5;2);Right(fält;2);20 & Left(fält;4));
    fält)
    )

    så kan datumet skrias i den ännu enklare kortformen: 120209

    Reply
  2. Rolf

    Sant! Man kan utöka så att det fungerar med både och (alltså både 20120209 och 120209) så här:

    Let([
    fält = Get ( AktivtFältinnehåll )
    ];
    Case(
    Length(fält) = 8; Date(Middle(fält;5;2); Right(fält;2); Left(fält;4));
    Length(fält) = 6; Date(Middle(fält;3;2); Right(fält;2); 20 & Left(fält;2));
    fält)
    )

    Reply

Skriv en kommentar

  • (will not be published)
  • 5 + five =

Läs också: