Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Crystal reports 如何从参数列表生成Crystal报告_Crystal Reports_Crystal Reports 2008_Crystal Reports 2010_Crystal Reports 8.5_Crystal Reports Server - Fatal编程技术网

Crystal reports 如何从参数列表生成Crystal报告

Crystal reports 如何从参数列表生成Crystal报告,crystal-reports,crystal-reports-2008,crystal-reports-2010,crystal-reports-8.5,crystal-reports-server,Crystal Reports,Crystal Reports 2008,Crystal Reports 2010,Crystal Reports 8.5,Crystal Reports Server,我的要求是生成多个员工的员工详细信息报告。查询参数为员工编号和日期范围 这是我使用的记录选择公式 {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

我的要求是生成多个员工的员工详细信息报告。查询参数为员工编号和日期范围

这是我使用的记录选择公式

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

);
)
首先我要查一下日期。 然后我将员工列表作为一个字符串{?empNoList}例如:5162_5468_5896_5236 我用“u”作为分隔符将其拆分为单独的字符串,并将这些值再次分配到一个数字数组中,并使用该值筛选员工

但是这个公式不起作用,它给出了所有员工的详细信息。 这是转换字符串数组的方式的问题,还是代码的for循环中有什么错误

我使用了这个代码,并尝试将一个员工编号分配给{?empNoList},结果成功了

if (ToNumber({?empNoList}) = {EMP_LEAVE_REPORT_VIEW.EMP_NO}) then true else false
请帮我解决这个问题。提前谢谢

1)将EMP\u LEAVE\u REPORT\u VIEW.EMP\u NO转换为字符串。 2) 然后对{EMP_LEAVE_REPORT_VIEW.EMP_NO}和{empNoList}使用Like或In运算符

简单地说,在较大的字符串{?empNoList}中搜索字符串版本EMP_LEAVE_REPORT_VIEW.EMP_NO。您可以避免使用阵列。

我找到了解决方案

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

这是一个简单的开箱思考;)

你的想法很好。我试过这样做,但如果({empNoList}像“”&ToText({EMP_LEAVE_REPORT_VIEW.EMP_NO})和“”)那么true-else-false*是crystal中的通配符,那么:
{empNoList}像“*”&ToText{EMP_LEAVE_REPORT_VIEW.EMP_NO}&“*”
是的,我试过了*但我在评论中漏掉了。很抱歉,这也不起作用。请查看我对您上一个问题的回答,了解“正确的”你能实现的方式this@LeeTickett当前位置我想你前面的问题是指这个问题byhttp://stackoverflow.com/questions/13410798/how-to-split-a-string-and-make-an-array-of-integers-in-crystal-report 拆分函数的问题解决了。我只是不知道如何正确使用它。这是最初的问题。这就是我想对该数组执行的操作。你能告诉我这个公式有什么问题吗?