Brian Dunning's FileMaker Custom Functions

ClosestDate ( TestDate ; ValueList )

Find the closest date between a one to many relationship.

  Average rating: 4.3 (33 votes) Log in to vote

Ken Newell   Ken Newell
Hamilton Glaucoma Center

Share on Facebook Share on Twitter

  Sample input:
ClosestDate( 3/13/2003 , TestA-TestB )
  Sample output:
3/1/2005

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

This function is really 2 custom functions. The first sets up the variables and calls the sub function whcih is recursive and input of the value list is intended to be a related value list.

To help show what the function does imagine the following setup:

Table A has a date, a relationship is created to Table B which also has a date. Going from Table A to Table B is a one to many relationship.

The first parameter is the date in table A in which you are trying to find the closest date in table B related records. A vlaue list of the related dates from Table B is created and the name of this list is the second paramenter passed in the function.

Lest say the Date in Table A is 3/13/2005. The related dates are 1/1/2005, 1/15/2005, 3/1/2005, 3/14/2005. The function returns the date of 3/14/2005 as it the closest test date to 3/13/2005. In this case we have defined the closest date to be able to be either before or after the date being tested.

By modifying the subfunction compare statement the logic could be changed to force the closest test to have to be before . Using the same example above the function would return 3/1/2005. This function could be call PriorTest.

In addition it could be altered so the closest test would have to occur after the test date.

If someone wanted they could add an additional parameter that could control the behavior; but since that was not what I needed I ended here.

Any way if you do modify it by adding to I would love to here about it and get a copy. Thanks and enjoy.

 

Comments

Log in to post comments.

 

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

Under construction. Email me your wish list for improvements.