FileMakerでアプリケーションを組むメリットのひとつに、レイアウトが組みやすい点があげられる。直感的に線や丸・長方形やフィールドを配置できるので、簡単に帳票もデザインすることが可能だ。この辺りの操作性はFileMaker Pro 5といった旧バージョンから変わっておらず、いまでも「FileMaker = 帳票が組みやすい」というイメージを持つユーザ/デベロッパは少なくないだろう。これまでに取りあげたデータベースデザインレポートのプロパティ値と、SimpleXMLを使っての取得の方法を紹介しよう。

データベースデザインレポートのレイアウトに関する属性・プロパティまとめ

これまでに紹介したレイアウトに関わる各種図形, テキスト, フィールドオブジェクトの属性・プロパティ値をまとめた。参考にしてほしい。

要素名 内容 格納される値の例 対応するCSS
<Layout><Object type=""> オブジェクトタイプを示す Line: 線, Rect: 長方形, Oval: 楕円, Text: テキスト, Field: フィールド, GroupButton: ボタン, Portal: ポータル、など -
<Layout><Object><Bounds top="" left="" bottom="" right=""> オブジェクトのそれぞれの座標位置を示す。bottom(下辺) - top(上辺)で高さを、right(右辺) - left(左辺)で幅を求めることが可能 px単位の座標位置 top, left, bottom, right, margin, padding, width. heightなど
<Layout><Object><DrawStyle lineColor="" lineWidth="" linePat=""> オブジェクトの辺(枠線)の状態を示す - border-style, border-color, border-width
<Layout><Object><DrawStyle fillColor="" fillPat=""> オブジェクトの塗りつぶし(背景)の状態を示す - background-color
<Layout><Object Rotation=""> オブジェクトの角度(回転)を数値で示す 0, 900, 1800, 2700のうちのいずれか transform: rotate (CSS3)
<Layout><Object><StyleID> オブジェクトのユニークなIDを示す。<Layout><ObjectStyle id="">と対応しており、フォント名や文字サイズ、各種書式の設定値を取得する際に必要となる。 - -
<Layout><Object><TextObj><CharacterStyleVector><Style><Data> テキストオブジェクト内の文字列を示す - -
<Layout><Object><TextObj><CharacterStyleVector><Style><CharacterStyle><Font-family>, <Layout><ObjectStyle><Style><CharacterStyle><Font-family> テキストオブジェクトに設定されているフォントを示す フォント名 font-family
<Layout><Object><TextObj><CharacterStyleVector><Style><CharacterStyle><Font-size>, <Layout><ObjectStyle><Style><CharacterStyle><Font-size> テキストオブジェクトのフォントサイズを示す pt単位のフォントサイズ font-size
<Layout><ObjectStyle><CharacterStyle><Face>, <Layout><ObjectStyle><Style><CharacterStyle><Face> テキストオブジェクトに設定したスタイルを数値で示す。複数のスタイルが設定されている場合は、それらの合計値が格納される 0: スタイル設定なし, 1: 字消し線, 2: スモールギャップ, 4: 上付き, 8: 下付き, 16: 大文字, 32: 小文字, 64: 単語下線, 128: 二重下線, 256: 太字, 512: 斜体, 1024: 下線, 8192: 字間狭く, 16384: 字間広く text-decoration, text-transform, font-weight, font-style, letter-spacing
<Layout><ObjectStyle><CharacterStyle><Color>, <Layout><ObjectStyle><Style><CharacterStyle><Color> テキストオブジェクトの文字色を示す 16進数のRGB値 color
<Layout><ObjectStyle><ParagraphStyle><Justification> テキストオブジェクトのテキスト配置を示す 2: 中央寄せ, 3: 右寄せ, 4: 両端揃え, それ以外: 左寄せ text-align
<Layout><ObjectStyle><ParagraphStyle><SpaceLeading> テキストオブジェクトの行間を数値で示す units=""に対応する単位の行間 line-height
<Layout><ObjectStyle><ParagraphStyle><SpaceLeading units=""> テキストオブジェクトの行間の単位を示す 0: 行, 1: Points(px), 2: Centimeters(cm), 3: Inches(in) -
<Layout><Object><FieldObj><Name>, <Layout><Object><FieldObj><DDRInfo><Field name=""> フィールドオブジェクトのフィールド名を示す (テーブルオカレンス名)::(フィールド名) -
<Layout><Object><FieldObj numOfReps=""> フィールドオブジェクトの繰り返し数を示す 横方向の繰り返しは正の数、縦方向の繰り返しは負の数 -
<Layout><Object><FieldObj displayType=""> フィールドオブジェクトのコントロールスタイルを示す 0: 編集ボックス(Edit Box), 1: ドロップダウンリスト(Drop-down List), 2: ポップアップメニュー(Pop-up Menu), 3: チェックボックスセット(Checkbox Set), 4: ラジオボタンセット(Radio Button Set), 6: ドロップダウンカレンダー(Calendar popup) -
<Layout><Object><FieldObj><ValueList>, <Layout><Object><FieldObj><DDRInfo><ValueList name="" id=""> フィールドオブジェクトに設定した値一覧のidと名前を示す。idは<ValueListCatalog><ValueList>のIDに対応 - -

SimpleXMLを使った値の取得方法

PHPのSimpleXMLを使って値を取得する方法について。たとえば<Layout><Object><StyleID>を取得したい場合は

$layoutObjXML = simplexml_load_file('(データベースデザインレポートのXMLファイル名)');
$layoutObjXML->Object->StyleId

とすればOKだ。<Layout><Object type="">のように属性値を取得したい場合は

$layoutObjXML->Object['type']

とする。Font-familyやFont-sizeといった、PHPの命名規約で許可されていない文字がふくまれる要素はこのままだと取得できないので、要素名をカッコとアポストロフィで囲む。

$layoutObjXML->Object->TextObj->CharacterStyleVector->Style->CharacterStyle->{'Font-family'};

StyleIDを利用して各種書式の設定を取得する場合は、xpathをもちいるのが便利だ。

$styleId = $layoutObjXML->Object->StyleId;
$layoutObjXML->xpath('//ObjectStyle[@id=\'' . $styleId . '\']/ParagraphStyle/Justification/text()');