【FileMaker】たぶん私の使い方は間違ってる【自動改ページ】

ここのところ思うように時間が取れません。

少しずつですが厄介なことも含めて依頼が増えています。

 

個人的にすごく困ったのは自動改ページです。

文章量に応じて改ページ位置を自動的に変えて欲しい。どれだけ入力されるかは、人によるので何ページになるかはわからない。FileMakerですからテキストを表示する枠の高さは変えられない、と個人的には思っているのですが、できるんでしょうか?

AccessだったらVBAで文字数取得して何行になるか計算して高さのプロパティ変えたらなんとかなりそうな気がします。Accessも最近触ってないので自信はありませんけど…。

 

最初に考えたのはいくつかのフィールドに分けて、1ページだけのレイアウト、複数ページのレイアウトを用意して、連結させて表示する方法です。

印刷前にプレビューでスクリプトを止めて、入力した内容が収まっているか確認して、してなければ改行位置を指定、改ページの数に合わせて表示するレイアウトを切り替えるようにしてみました。

作成途中で、依頼主に確認してもらいましたが「これではちょっと…」と反応がよろしくありません。使い物にならないとまでは言われませんでしたが、このままではお蔵入りは確実そうです。さすがにそれは作り手としてのプライドが許しません。とはいえ作りながらなんとなくそんな気がしていたのも事実です。そんなメンドくさいことをしてくれるだろうか?と。

 

ネットを検索しても単項目の自動改ページってヒットしない(単に見つけられないだけ?)し、なんとか自動改ページを実現する方法ってないかなぁ…と頭を抱えている時にふと妙案が浮かびました。文字数をカウントしつつ、1行ずつのレコードに分解して明細データとして出力するという力技です。

1行はだいたい45文字くらいで改行コードが来たらレコードに分ける、あとはヘッダとフッタに詰め込んだらどうにかできるんじゃないだろうか?と思いついたそばからスクリプトに落とし込みます。文字数によっては処理に時間がかかって使い物にならないかもなぁとは思いましたが他に実現可能な方法は知らないし、これでダメだったら降参しよう、と。

 

実際に動かしてみると1600文字くらいの入力でも数秒で出力できたので、これならばと自信も出てきました。確認してもらったところ特にマイナスの意見が出てこなかったので満足してもらった、ということにします。

こういう使い方ってあってるのかどうか、当たり前にやってる人はいるのかわかりませんけどとりあえず今回もピンチは乗り切れたのではないでしょうか?

もっとスマートな使い方、正しい使い方ができるようにこれからも精進しないと。