「フォームからメール送信されたデータを効率よく処理したいのだけど…。」というご相談。取り組み方や予算でいろいろな方法を考えることができそうです。
データの処理を優先しなければなりませんでしたので、先方のコンピュータにインストール済みのアプリケーション、FileMaker Pro11を使って作業することにしました。
Webのお問い合わせフォームから送信されてくるデータはこんな感じでした。
先頭に括弧( [ ] )でくくられたラベルがついてます。 (内容は仮想データ)
このデータを利用してメルマガを送ったり、DB用のラベルを作成するといった業務を想定されているようです。
行のデータをGetValue関数で取り出す
FileMakerでどのように処理するか考えました。
- 上記のデータを保管するフィールド( フィールド名: インポート ) と、各行のデータを取り出す計算フィールド(フィールド名: お名前、ふりがな… )を作成。
- 計算フィールドは、改行で区切られた行データをGetValue関数を使って取り出して、先頭から始まるラベルを除いたデータをRight関数とLength関数を使って取り出す。
フィールド: インポートから、”山田 一郎” を取り出すなら、「計算フィールド: お名前」は
- GetValue ( インポート ; 1 ) として ” [お名前] 山田 一郎 ” を取得。
このままだと、”[お名前] “が余分なので、 - Length ( GetValue ( インポート ; 1 ) ) として行の文字数 “11“を取得。
“[お名前] “は最後にスペースがあって、6文字なのでその分をマイナス。
Length ( GetValue ( インポート ; 1 ) ) -6 として値 “5” を取得。 - Right関数で”[お名前] “を除いたテキストを取得
Right ( GetValue ( インポート ; 1 ) ; Length ( GetValue ( インポート ; 1 ) ) -6 )
これで、テキスト “山田 一郎” が取得できました。
もっといい方法があるのかも?と不安になりつつも作業してきました。
データが取り出せましたので、とりあえずは解決です。
関数の説明
GetValue 関数
値一覧にある値番号により与えられる要求された値を返します。
構文:GetValue ( 値一覧 ; 値番号 )
引数:値一覧 – 改行で区切られた値の一覧
値番号 – 一覧から返される値
戻り値のデータタイプ:テキスト
Length 関数
フィールド内の文字数を返します。スペース、数字、特殊文字もすべて含まれます。
構文: Length ( フィールド )
引数:フィールド – 任意のテキスト、数字、日付、時刻、タイムスタンプ、またはオブジェクトのフィールド、あるいは任意のテキスト式または数値式
戻り値のデータタイプ:数字
Right 関数
テキストの右から、指定された文字数分のテキストを返します。
構文:Right ( テキスト ; 文字数 )
引数:テキスト – 任意のテキスト式またはフィールド
文字数 – 任意の数値式、または数値を含むフィールド
戻り値のデータタイプ:テキスト
FileMaker Pro バージョンアップして新発売
4月10日にバージョンアップしたFileMaker Pro12が発売されました。
iOS デザイン&開発ツールなどが加わり、iPadやiPhoneで魅力的なデータベースを利用できると思います。
早い機会に導入したいです。