フォーム送信のデータをメルマガ・DMラベルに利用 – 改行で区切られた値の処理

f:id:atsquare:20120420165124j:image:right:h180
「フォームからメール送信されたデータを効率よく処理したいのだけど…。」というご相談。取り組み方や予算でいろいろな方法を考えることができそうです。

データの処理を優先しなければなりませんでしたので、先方のコンピュータにインストール済みのアプリケーション、FileMaker Pro11を使って作業することにしました。

Webのお問い合わせフォームから送信されてくるデータはこんな感じでした。
先頭に括弧( [ ] )でくくられたラベルがついてます。 (内容は仮想データ)

f:id:atsquare:20120420084603j:image

このデータを利用してメルマガを送ったり、DB用のラベルを作成するといった業務を想定されているようです。

 

行のデータをGetValue関数で取り出す

FileMakerでどのように処理するか考えました。

  • 上記のデータを保管するフィールド( フィールド名: インポート ) と、各行のデータを取り出す計算フィールド(フィールド名: お名前、ふりがな… )を作成。
  • 計算フィールドは、改行で区切られた行データをGetValue関数を使って取り出して、先頭から始まるラベルを除いたデータをRight関数とLength関数を使って取り出す。

関数の説明

 

フィールド: インポートから、”山田 一郎” を取り出すなら、「計算フィールド: お名前」は

  1. GetValue ( インポート ; 1 ) として ” [お名前] 山田 一郎 ” を取得。
    このままだと、”[お名前] “が余分なので、
  2. Length ( GetValue ( インポート ; 1 ) ) として行の文字数 “11“を取得。
    “[お名前] “は最後にスペースがあって、6文字なのでその分をマイナス。
    Length ( GetValue ( インポート ; 1 ) ) -6 として値 “5” を取得。
  3. Right関数で”[お名前] “を除いたテキストを取得
    Right ( GetValue ( インポート ; 1 ) ; Length ( GetValue ( インポート ; 1 ) ) -6 )

これで、テキスト “山田 一郎” が取得できました。

f:id:atsquare:20120420084604j:image

 

もっといい方法があるのかも?と不安になりつつも作業してきました。

データが取り出せましたので、とりあえずは解決です。

 

関数の説明

GetValue 関数

値一覧にある値番号により与えられる要求された値を返します。

構文:GetValue ( 値一覧 ; 値番号 )

引数:値一覧 – 改行で区切られた値の一覧

   値番号 – 一覧から返される値

戻り値のデータタイプ:テキスト

Length 関数

フィールド内の文字数を返します。スペース、数字、特殊文字もすべて含まれます。

構文: Length ( フィールド )

引数:フィールド – 任意のテキスト、数字、日付、時刻、タイムスタンプ、またはオブジェクトのフィールド、あるいは任意のテキスト式または数値式

戻り値のデータタイプ:数字

Right 関数

テキストの右から、指定された文字数分のテキストを返します。

構文:Right ( テキスト ; 文字数 )

引数:テキスト – 任意のテキスト式またはフィールド

   文字数 – 任意の数値式、または数値を含むフィールド

戻り値のデータタイプ:テキスト

FileMaker Pro バージョンアップして新発売

4月10日にバージョンアップしたFileMaker Pro12が発売されました。

iOS デザイン&開発ツールなどが加わり、iPadやiPhoneで魅力的なデータベースを利用できると思います。

早い機会に導入したいです。

投稿者: Jun

ブログをお読みいただきありがとうございます。自己紹介等は、Aboutでご確認いただけます。ボタン等から記事への反応をいただけると嬉しいです。