Question

My requirement is to generate a employee details report of multiple employees.Parameters for query will be employee number and a date range.

This is the record selection formula i'm using

{EMP_LEAVE_REPORT_VIEW.LEAVE_START_DATE} in {?sDate} to {?eDate}

and
(
Stringvar Array strings := Split({?empNoList}, "_");

Numbervar Array numbers;
Redim numbers[Ubound(strings)];

Numbervar i;
for i := 1 to Ubound(strings) do (
numbers[i] := ToNumber(strings[i]);

if {EMP_LEAVE_REPORT_VIEW.EMP_NO} = numbers[i] then 
(true;)
else 
(false;)

);
)

First i'm checking for the date. Then i'm taking the employee list as a one string {?empNoList} eg: 5162_5468_5896_5236 and i'm splitting it to separate strings using "_" as the delimiter and assign those values again into a number array and using that value to filter the employee.

But this formula doesn't work.It gives the details of all the employees. Is this a problem of the way i converted the string array or is there something wrong in the for loop of my code?

I used this code and tried assigning one employee number to the {?empNoList} and it worked.

if (ToNumber({?empNoList}) = {EMP_LEAVE_REPORT_VIEW.EMP_NO}) then true else false

Please help me out with this.Thanks in advance!

Was it helpful?

Solution

I found the solution!

Stringvar Array strings := Split({?empNoList}, "_"); //Spliting and saving the string in a string array
Numbervar Array numbers;        //Creating a number array
Redim numbers[Ubound(strings)]; //Declaring number array size
Numbervar i;                       

//For loop to traverse through string and convert each into numbers and saving them in the numbers array
for i := 1 to Ubound(strings) do (      
    numbers[i] := ToNumber(strings[i]);
);

if({EMP_LEAVE_REPORT_VIEW.EMP_NO} in numbers)  //If condition to check whether Employee number is in the numbers array
then
(true;)
else (false;)

It was a simple out of the box thinking ;)

OTHER TIPS

1) Convert your EMP_LEAVE_REPORT_VIEW.EMP_NO to a string. 2) Then use the Like or In operator with {EMP_LEAVE_REPORT_VIEW.EMP_NO} and {?empNoList}

Simply, search the string version EMP_LEAVE_REPORT_VIEW.EMP_NO inside the bigger string {?empNoList}. You can avoid using the arrays.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top