How to generate a Crystal Report from a list of parameters

人盡茶涼 提交于 2019-12-13 04:48:16

问题


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!


回答1:


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 ;)




回答2:


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.



来源:https://stackoverflow.com/questions/13448889/how-to-generate-a-crystal-report-from-a-list-of-parameters

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!