0

用 C# 编程了一点点 - 尝试使用文件制作器,我不敢相信,但我什至无法让一个简单的 for 循环工作。

我想做的很简单:遍历我的“amountOfRooms”字段中的条目数量,并在每个房间的表中创建一个条目。

听起来很简单,但我无法让它工作。现在我有这个:

Set Variable[$cnt[Customers::AmountOfRooms]; value:1] 
Go to Layout["rooms"(Rooms)] 
Loop 
    Exit Loop If[$cnt = Customers::AmountOfRooms] 
    New Record / Request 
    Set Variable[$cnt; Value: $cnt + 1] 
    End Loop 
Exit Script

不会创建新记录。我知道脚本正在运行,因为它确实进入了我的布局,但没有创建任何新记录。我的局部变量有一个“重复”字段 - 不知道如何使用它或它意味着什么?关于如何做这个简单的循环有什么想法吗?谢谢。

4

1 回答 1

2

环形

根据您的关系,该行Exit Loop If[$cnt = Customers::AmountOfRooms]可能在第一次迭代时相等,因为您将变量设置为它上面三行的值:Set Variable[$cnt[Customers::AmountOfRooms]; value:1]

还有其他方法可以做到这一点,但一种常见的技术是对$i变量进行比较,$cnt如下所示:

Set Variable [$cnt; Value:Customers::AmountOfRooms]
Go to Layout ["Rooms" (Rooms)]
#
Set Variable [$i; Value:1]
Loop
   Exit Loop If [$i >= $cnt]
   New Record/Request
   Set Variable [$i; Value:$i + 1]
End Loop
Exit Script []


重复次数

概括地说,您可以将 FileMaker 变量视为索引为 1 的数组。所以声明:

# Set Repetition 1 of $i to 1
Set Variable [$i; Value:1]
#
# Set Repetition 2 of $j to "Second Array Position"
Set Variable [$j[2]; Value:"Second Array Position"]

相当于:

# Set the first value of array $i to 1
$i[0] = 1;
#
# Set the second value of array $j to "Second Array Position"
$j[1] = "Second Array Position";

在其他一些语言中。

数组比较并非严格意义上的恰当,这毫无价值,但这是开始考虑它们的好方法。无论如何,在这种情况下,您无需担心重复次数。如果您想了解更多信息,可以从这里开始:http ://www.filemaker.com/11help/html/scripts_ref1.36.15.html

于 2013-10-20T15:24:00.713 回答