0

少しの間C#でプログラミングしていました-ファイルメーカーを使用しようとしましたが、信じられませんが、単純なforループを機能させることさえできません。

私がやりたいことは簡単です。「mountOfRooms」フィールドのエントリの量をループし、各部屋のテーブルにエントリを作成します。

とても単純に聞こえますが、私はそれを機能させることができません。今私はこれを持っています:

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]、変数をその 3 行上の値に設定したため、最初の反復で線が等しい場合があります。Set Variable[$cnt[Customers::AmountOfRooms]; value:1]

他の方法もありますが、一般的な手法の 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 に答える