スクリプトの「フィールド移動」や「計算結果の挿入」などではフィールド指定ダイアログに繰り返し数の入力があります。「フィールド移動」や「計算結果の挿入」をする直前に参照したい繰り返し数を計算で求め、グローバルフィールドに保存しているような場合はどのように参照したらいいのでしょう。
「計算結果の挿入」でフィールド指定はしないで、GetRepetition ( 繰り返しフィールド ; 保存されたグローバルフィールド ) = "○"を設定するなどしてみたのですが、うまく出来ません。
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
>会議室をポータルにする場合、会議室テーブルの定義はどんな感じでしょうか?
日付+会議室番号+Noでリレーキーをもちます。
リレーキー_1 という計算フィールドには
日付 & 会議室番号 & "1"
という計算式をいれ、これを50個(& "1"& "1"の部分を2.3.4.5....50としていく)作ります。
それをキーとして予約テーブルと50個リレーションをはります。
リレーションの先、予約テーブルはこのようになります。
例えば2005/3/5の9:00~10:00まで第一会議室の予約があるとすると、予約テーブルには
20053511¶ ┐
20053512¶ │
20053513¶ ├一個のフィールドです
20053514¶ │
20053515¶ │
20053516 ┘
というリレーキーのフィールド(内容はスクリプトで自動入力します)と予約社名(例:○×商事様)のフィールドを持たせます。
これで予約台帳テーブルで表レイアウトの横一行に50個のポータルを並べて(ポータル行は1です)ポータルの中に予約社名フィールドを入れれば、どの会議室のどの時間がだれで埋まってるかがわかるようになります。
ちょっとこれ以上は説明が難しいですね。。。
参考にしてください
週末にチャレンジしてみました。とても参考になりました。私が行ったテーブル定義ですと、タイムテーブルを時間をNo.で表現したテーブルに複数のレコードに分ける方法でインポートすると、範囲指定した全ての会議室の時間枠を自動作成出来ます。このマトリクスもかなり検索しやすいように思われました。スクリプトでとりあえず会議室10部屋、時間枠50区切りで500個のIF文を配置しましたが、スピードは遅くはなかったです。ネットワーク経由になると遅くなってしまうのかもしれませんが…。とにかくリレーションがACCESSとあまりににも違うことを実感しました。ありがとうございました。
No.2
- 回答日時:
お~!
それはまた、、、我々デベロッパークラスの使い方をされていますね(^^;
それを繰り返しでやるのは難しいです。
基本は予約テーブルと予約台帳テーブルをリレーションで結んでやるのがいいかと思います。
予約台帳テーブルは(おそらく)今は日付で1レコードもっていて、1レコードに各会議室の繰り返しがあると思うんですが、ちょっと発送を転換して予約台帳テーブルを日付+会議室を1レコードにして(すなわち1日5レコードづつ出来るってことです)必要な日付の会議室1~5のレコードを検索して表レイアウトで表示します。
でもって繰り返しではなくポータルで表示するときれいにいくんですが。。。
ちょっと文章では説明しきれないですね(--;;
すみません。
ただ、先ほどもかいたようにベンダーで開発するような内容ですから、一度FM関連のベンダーさんに開発依頼されるのも良いかともいますよ。
参考にしてください
参考URL:http://fsa.filemaker.co.jp/
この回答への補足
スクリプトは
If [予約::作業会議室 = “第一”]
If [予約::予定開始時刻NO <= 1 and予約::予定終了時刻NO <= 2]
If [GetRepetition (タイムテーブル::第一 ; 1 ) ≠ ””]
カスタムダイアログを表示[”★予約エラー★” ; “すでにこの時間帯には予約が入っています。”]
レイアウト切り替え[元のレイアウト]
全スクリプト終了
End If
フィールド設定[タイムテーブル::第一[1] ; 予約::予約者名]
End If
以下、繰り返し数を増やしながら50まで繰り返し
End If
…というようにして見ました。
量的にもかなりですが、おばかな無駄な作業でしょうか…。
会議室をポータルにする場合、会議室テーブルの定義はどんな感じでしょうか?
日付+会議室の表レイアウトですと、現在作成している視覚的にも予約状況が判断できるすべての予約フィールドが配置されたフォームになるのでしょうか?
ご指導下さい。
No.1
- 回答日時:
そうですね~繰り返しのフィールドの任意の行に飛ばすには、繰り返し行番号を入れるグローバルフィールドを一つ用意します(例:g_繰り返し行)。
フィールドタイプは数字にしてください。任意の繰り返しフィールドの行で、スクリプトを実行します。
フィールド設定「g_繰り返し行;Get ( アクティブ繰り返し位置番号 )」
このスクリプトステップで、g_繰り返し行 に現在選択されている繰り返し行の番号が入ります。
さてここからなのですが・・・
繰り返しフィールドの任意の行に飛ばすことは、一発ではできません。
ではどうするのか?
レイアウトモードでタブ順設定がありますよね、それで繰り返しフィールド内を縦に順に移動するように設定します。
次にスクリプトで 次のフィールドへ移動 というステップがありますから、それをLoopで回し(回した回数をカウントするグローバルフィールドも作ります)、カウント数と先ほどの g_繰り返し行 の内容が一致したらExit Loop If でLoopから抜けるようにして、任意のフィールド設定を行えばいいかと思います。
しかしFM7ではテーブル間でリレーションが可能ですから、繰り返しをポータルに置き換えたほうがスマートかもしれません。
参考にしてください。
この回答への補足
今回なぜ繰り返しフィールドの任意の繰り返し番号が欲しかったかというと、予約テーブルと予約台帳テーブルがあり、予約テーブルは(1)氏名(2)日付(3)開始時間(4)開始時間NO(5)終了時間(6)終了時間NO、予約台帳テーブルは会議室1~5の朝9:00~夜19:00までの途中少し休みを入れますが、10分単位で時間軸を設定し繰り返しフィールド50で定義しています。各会議室の繰り返し数1~50が予約テーブルの開始時間NOと終了時間NOと対応するようにしました。LOOPで開始時間NOまで進み終了時間NOまで予約者氏名を繰り返しフィールドに保存させようとしているのですが「フィールド設定」「計算結果を挿入」では繰り返し数が計算結果では指定できないので困っています。繰り返しフィールドではなく、会議室1の予約は50個のフィールドを持った方が自由に触りやすいでしょうか。宣しくお願いします。
補足日時:2005/03/04 13:19お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差し込み文書のルールで if the...
-
「#エラー」の回避
-
アクセスで入力したデータの順...
-
FileMakerで画像をまとめて書き...
-
Accessで値がnullの場合は計算...
-
accessのフィールドに10桁の数...
-
フィールドの中のテキストを分...
-
MSアクセス2000で英数の大文字...
-
ファイルメーカーでフィールド...
-
ファイルメーカー複数フィール...
-
WORDフィールドコード一括編集
-
ExcelからAccessデータを検索す...
-
ファイルメーカーで英字だけ取...
-
MS-WORDで、あるフィールドに入...
-
アクセス Access 時間の引き算
-
【Access】インポート時のメモ...
-
Accessで、他の二つのフィール...
-
ファイルメーカーでの西暦から...
-
WORDのIFにEqフィールドは使えない
-
FileMakerで読み込んだファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「#エラー」の回避
-
アクセスで入力したデータの順...
-
差し込み文書のルールで if the...
-
accessのフィールドに10桁の数...
-
ExcelからAccessデータを検索す...
-
Accessでボタンを押すと今日の...
-
Accessで値がnullの場合は計算...
-
フィールドの中のテキストを分...
-
WORD差し込み印刷:日付の処理 ...
-
FileMakerで、フィールドの値が...
-
MS-WORDで、あるフィールドに入...
-
WORDフィールドコード一括編集
-
FileMakerで画像をまとめて書き...
-
ACCESSでデータ変更箇所が分か...
-
accessのVBAで変数名でフィ...
-
Accessフォームで平均値の出し...
-
アクセス Access 時間の引き算
-
MS-ACCESSで中央値(ME...
-
ファイルメーカーのデータをc...
-
access フィールドのサイズ(文...
おすすめ情報