As I am in the process of moving, I am in the middle of the ‘clean and junk’ routine.

I found a very old fax, dated 27 March 1991, listing ‘a small sampling of correlatives’ which may be of some assistance.

As the fax is almost faded away, it seems appropriate to list them here, in case they come in handy some day…

Warning: As these F-correlatives were written for PICK R83, some are rather spooky!

Accessing the last multi-value


Fattr#;P;S;_

or


Fattr#;C1;S;_

Accessing the first multi-value


Fattr#R

Accessing the Nth multi-value


A0(Tfile;Xn;;attr#)

where n is the desired multi-value

Total number of multi-values


Fattr#;C1;S;P;_

or


AS(attr# = '') + S(attr# # '')

or


AS((attr# = '') + (attr# # ''))

Sum of multi-values


Fattr#;S

or


AS(attr#)

Sum of multi-values of different attributes


AS(attr# + attr# + attr#)

Week of the Year (1 – 52)


Fattr#;(DJ);'1';?;'7';/;P;'52';>;+

where attr# is an internal date

I could not read clearly this f-correlative, so I have placed a ‘?’ where I think there should be either a ‘.’ or ‘*’. Try it and get back to me.

IF… THEN… ELSE…

i.e. A;IF 30 = “” THEN N(VAR) ELSE 30


A(N(VAR)["1","999"*(30="")]):(30["1","999"*(30#"")])

Obtain the last 2 digits of a string when the string length is unknown


An(MR%7)["6","7"]

or


F;n;(MR%7);"6";"7";[]

where n is the attribute #; would result in attribute n being masked to the right with leading zeros and then take the last 2 and display them.