top of page
  • 350

デフォルトフィールド編集ツール

デフォルトフィールドの設定が書かれてあるXMLファイルを編集すると、自分好みのデフォルトフィールドを定義することが出来ます。

それぞれ、下記場所にデフォルトフィールドの設定が書かれています。

Windowsの場合

<drive>:\Program Files\FileMaker\FileMaker Pro 17 Advanced\Extensions\Japanese¥DefaultFields.xml

macOSの場合

/Applications/FileMaker Pro 17 Advanced/FileMaker Pro Advanced.app/Contents/Resources/ja.lproj/DefaultFields.xml

まず、中身を見てみましょう。

 

DefaultFields.xml

<?xml version="1.0" encoding="utf-8"?>

<FMDefaultItems version="1" source="17.0.1" membercount="1">

<DefaultFields membercount="5">

<Field id="1" name="主キー" fieldtype="Normal" datatype="Text" comment="このテーブル内の各レコードの固有の識別子">

<AutoEnter type="Calculated" prohibitModification="True" overwriteExisting="True" alwaysEvaluate="False">

<Calculated>

<Calculation>

<Text><![CDATA[Get( UUID )]]></Text>

</Calculation>

</Calculated>

</AutoEnter>

<Validation type="OnlyDuringDataEntry" allowOverride="False" notEmpty="True" unique="True" existing="False"></Validation>

<Storage autoIndex="True" index="None" global="False" maxRepetitions="1">

<LanguageReference name="Unicode" id="2"></LanguageReference>

</Storage>

<TagList primary="True">#_FMI_0 </TagList>

</Field>

<Field id="2" name="作成情報タイムスタンプ" fieldtype="Normal" datatype="Timestamp" comment="各レコードが作成された日付と時刻">

<AutoEnter type="CreationTimestamp" prohibitModification="True"></AutoEnter>

<Validation type="OnlyDuringDataEntry" allowOverride="False" notEmpty="True" unique="False" existing="False">

<Strict>FourDigitYear</Strict>

</Validation>

<Storage autoIndex="True" index="None" global="False" maxRepetitions="1"></Storage>

<TagList>#_FMI_0 </TagList>

</Field>

〜〜【略】〜〜

</DefaultFields>

</FMDefaultItems>

 

XMLファイルを眺めていると、

<Field id="1" name="主キー"【略】>〜</Field>

が1フィールドの単位だと気付きます。

その中にフィールドの設定が入っているはずなので分解していくと

入力値の自動化:<AutoEnter 【略】>〜</AutoEnter>

入力値の制限 :<Validation 【略】>〜</Validation>

データの格納 :<Storage 【略】>〜</Storage>

フィールドオプション

となります。

後は、それぞれの中身を掘り下げていくだけですね。

Field

フィールドの基本的な要素を設定する。

id:内部的に持ってるID、上から順番に採番されている

name:フィールド名

fieldtype:フィールドのタイプ、計算、集計

datatype:数字やテキスト、日付等を指定

comment:フィールドのコメント欄

fieldtype="Calculated"の場合は

<Calculation>

<Text><![CDATA[Get( UUID )]]></Text>

</Calculation>

と、計算式を書くタグが増えます。計算式は[]内に記述します。

AutoEnter(入力値の自動化)

type:作成日や修正時刻等を指定

下記パターンがある

CreationDate

CreationTime

CreationTimestamp

CreationName

CreationAccountName

-

ModificationDate

ModificationTime

ModificationTimestamp

ModificationName

ModificationAccountName

-

Calculated

type="Calculated"の場合は

<Calculated>

<Calculation>

<Text><![CDATA[Get( UUID )]]></Text>

</Calculation>

</Calculated>

と、計算式を書くタグが増えます。

prohibitModification:データ入力時の値変更の禁止

overwriteExisting:フィールドに既存の値が存在する場合は置き換えない

alwaysEvaluate:全ての参照フィールドが空の場合評価しない

Validation(入力値の制限)

type:このフィールドの入力値を制限するオプション

allowOverride:データの入力時にユーザによる上書きを許可する

notEmpty:空欄不可

unique:ユニークな値

existing:既存値

message:制限値以外の入力時にカスタムメッセージを表示

メッセージ内容は<Message></Message>内に記述

数字、西暦4桁の日付、時刻は下記タグ内に記述

<Strict>Numeric</Strict>

<Strict>Time</Strict>

<Strict>FourDigitYear</Strict>

Storage

autoIndex:必要時に索引を自動設定

index:索引設定

global:グローバル格納

maxRepetitions:最大繰り返し数

デフォルト言語の設定は下記タグで記述。id要素は不明。ただ、ここを指定しなくてもデフォルトの言語になるので問題はない。

<LanguageReference name="Japanese" id=""></LanguageReference>

DefaultFields.xml内ではプライマリキーがUnicodeで設定されてある。「Thai」と指定するとタイ語になる。言語設定のパラメータをもっと知りたい場合は、DDR(データベースデザインレポート)から判断すると解る場合が多い。XMLの記述は異なるが、要素の記述は同じ場合が多い。

最終的なXMLファイルの記述

<?xml version="1.0" encoding="utf-8"?>

<FMDefaultItems version="1" source="17.0.1" membercount="1">

<DefaultFields membercount="5">

【ここにフィールドの設定XML】

</DefaultFields>

</FMDefaultItems>

とすれば良い。<DefaultFields membercount="5">の5はフィールド数なので、合わしておく。ただ、検証ではここの数字が異なっていてもフィールドは作成される。

作成したファイルを下記フォルダにアップ配置すればOK。

◆Windows

<drive>:\ProgramData\FileMaker\Shared

◆macOS

/Users/Shared/FileMaker/Shared

元々の設定が書かれたファイルを修正しても同じ動作ですが、元々の設定は保存しておいた方が良いと思いますので、上記フォルダ内に配置しましょう。

まとめ

一度作成すれば、そうそう変更する必要はないと思われるファイル。

検証時に判明したが、「DefaultFields.xml」ファイルは修正した後、FileMaker Proを再起動する必要はない。なので、この動作を利用して設定箇所が多いフィールドを効率的に作成することも出来るかもしれない。

ここまで検証に使用したファイル「デフォルトフィールド作成ツール.fmp12」を下記からダウンロード出来ます。FileMaker Proの画面で設定すると「DefaultFields.xml」の内容が生成されます。不明なパラメータもありますし、厳密なエラー判定もしていないので自己責任でご使用下さい。

デフォルトフィールド作成ツール

解説動画はこちら

 

※この記事はシリーズです まとめページはこちら

閲覧数:1,416回0件のコメント

最新記事

すべて表示
bottom of page