Hello,
in a FlexiLayout Advanced post-search relation script I would like to implement that a SearchElement "stField1" is only found, when the distance from this element to another element "stField2" is less than 800 dot. Unfortunately I don't know how to work with the distance command. My idea was the following code, but I get an error in line:
if stField1.IsFound Then
{
int lDistance = 0;
lDistance = distance((stField1.Rect.XCenter, stField1.Rect.YCenter),(stField2.Rect.XCenter, stField2.Rect.YCenter));
if lDistance > 800 dot Then
{
DontFind();
}
}
But I get the Compilation error "Error in position 306: Wrong parameters for function distance. How can I use the distance-function? My idea was int d = distance((x1,y1),(x2,y2)); so that the function "distance" gives me the distance betwenn point 1 and point 2. How can I use this function correctly in order to get the distance between two points?
Can anybody help me on that please..
Comments
3 comments
Hello,
In the FLS language the distance can be calculated only for one coordinate (X or Y), so taking into consideration this limitation, your post-search relation for stFields1 should have looked like:
//------------------------(if the X-distance is more important)
if abs(stField2.XCenter.Start - XCenter.Start ) > 800dt then
{
Quality(0);
}
//------------------------
or
//------------------------(if the Y-distance is more important)
if abs(stField2.YCenter.Start - YCenter.Start ) > 800dt then
{
Quality(0);
}
//------------------------
you may combine both types of conditions, according to the typical stField1 and stField2 positions in your documents.
Dear Ekaterina,
Thank you very much for your help!
Is there a way to use mathematical functions in the Advanced post-search relation script like square root or square? Or can I include C# libraries like in the script of a rule (using ...)?
Kind regards
Reinhard
Hello,
Sorry, square root function is not supported in the Advanced post-search relation script. You cannot use C# libraries.
Please sign in to leave a comment.