LoginSignup
2
3

More than 5 years have passed since last update.

【FileMaker】某○xcelみたいに行の間に行を追加したいんです

Posted at

というお題で仕事をしたので、Tipsとして残しておきます。

要は、こういう感じです。
addLine1.png

LineNo2行目と3行目の間に、行をどんどん追加していっています。
ついでにLineNo2.5行目の間にもどんどん行を追加して行きます。

普通に新規レコードを追加すると、最終行に追加されて行きます。
その部分は同じですが、今回はソート機能を使うことで、LineNo順に行が増えていくような「錯覚」を起こしています。

テーブル設計

テーブルでは、
・シリアル番号を保持するフィールド
・新規作成行の際に自動で入るシリアル番号のフィールド
があれば十分です。
addLine2.png

スクリプト

単純に1行最終行に追加(青ボタン)

行の下に1行追加するスクリプトと共通で実装しています。
単純に1行追加するときは、スクリプトの引数にLineNoを指定せずに実行をします。
addLine3.png

行の下に1行追加(緑ボタン)

現在行をスクリプトの引数として渡し、次の行のLineNo(図中(1))との等分(図中(2))を求め、新規作成行のLineNoにします。
常に等分しますので、選択している(ボタンを押した)行のLineNoと次の行の中間の値になります。
最後に、LineNoを昇順でソート(図中(3))します。
addLine4.png

行の削除(赤ボタン)

行を削除しています。
エラーを出したり削除フラグを設けない場合は、スクリプト化しなくても動きます。
addLine5.png

データのリセット(Data Resetボタン)

行追加にはなくても問題ないですが、テストを進める時に必要だったので作りました。
テーブルデータを削除(図中(1))してシリアル番号を1に戻しています。(図中(3))
ただ、FileMakerのバージョン12〜14ではテーブルデータを1行の削除できないので、エラー処理と12〜14で実行した時でもテーブルデータが削除できるように実装しています。(図中(2))
addLine6.png

レイアウト設計

このレイアウトは、LineNoの昇順になっていることが条件なので、レイアウトが表示された段階でソートが動くようにスクリプトを作成してスクリプトトリガのonLayoutEnterで指定しています。
addLine7.png

まとめ

今回のTipsのような行間に行を追加というのは、某○xcelでは標準実装ですね。
FileMakerでも同じように行間に行を追加したい、という場合、どうぞ参考にしてください。

サンプルで作成したファイルは、Githubで公開していますので、ダウンロードして動きを確認してみてください。
addLine.fmp12というファイル名です。
Github Repository : FileMakerSample

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3