【发布时间】:2018-03-09 22:42:28
【问题描述】:
我有一份水晶报表需要更改选择条件。目前标准将数据库字段与我在报告中创建的参数进行比较。
{MaterialCR.MaterialId} = {?MaterialId}
我现在有一个包含逗号分隔数据的字段,我需要确保该参数包含新字段中的任何其他 ID。
Materialused 中有这些数据。 "MA0161 ,MA0167"(无双引号)。这不起作用
{MaterialCR. MaterialUsed} = {?MaterialId}
我试图创建一个函数来比较两者,但它似乎不起作用。它不会将参数视为字符串数组。
我的材质匹配功能不起作用
Function MaterialMatch (MaterialUsed as string,v1 () As String)
dim MyArray() as string
MyArray = Split (MaterialUsed,"," )
dim Match as boolean
Match = false
dim x as number
For x = 1 To count(v1) Step 1
IF "ALL" in v1 then
Match = true
x = count(MyArray)
end if
if MyArray(x) in v1 then
Match = true
x = count(MyArray)
end if
Next x
MaterialMatch = Match
End Function
这就是我正在查看的数据的样子。我们有许多带有材质 ID 的材质。我们还需要选择相关的时间。它没有材料 ID,因为它是多对一的情况。我需要检索与材料相关的所有记录,包括时间。获取带有 ID 的材料不是问题。我还需要获取时间记录。我修改了此报告使用的视图,以包含与时间重叠的材料。这就是我卡住的地方。
这就是我选择的专家公式现在的样子。我知道用料部分不对。
(
{JobTimeMaterialCR.MaterialId} = {?MaterialId}
or
(
{JobTimeMaterialCR.Type} = "Time"
and
{JobTimeMaterialCR.MaterialUsed} = {?MaterialId}
))
【问题讨论】:
-
您真的需要逗号分隔的数据吗?为什么不将参数字段设置为允许多个值?然后就可以使用
IN-operator... -
我添加了更多关于为什么我使用逗号分隔数据的信息。
-
只是为了确保我的逻辑正确......你有一个字符串 X 和一个字符串 Y 中的潜在数组,其中包含未知数量的元素,用逗号分隔。您想根据是否在 X 中找到潜在数组 Y 的任何一个元素来选择记录?
-
这听起来对我来说是正确的。
标签: crystal-reports