2012年10月11日木曜日

【FileMaker】検索設定をフィールドで管理し、様々な検索を実行する。


検索対象のファイルに
フィールド名
[Subject]
[from]
がある。

例1:
フィールドに保存した検索設定
{

from|*
omit
Subject|バックアップ完了
omit
Subject|タスク_が正常に完了しました。
omit
Subject|[fmjml:*
}


上記値を引数にして以下のスクリプトを実行。

スクリプト名:検索(フィールド名,値)

以下の検索を実行します。


from|* ・・・・・・ フィールド:from を「*」で検索
omit
Subject|バックアップ完了 ・・・・・・ フィールド:Subject が 「バックアップ完了」を除外
omit
Subject|タスク_が正常に完了しました。 ・・・・・・ フィールド:Subject が 「タスク_が正常に完了しました。」を除外
omit
Subject|[fmjml:* ・・・・・・ フィールド:Subject が 「[fmjml:*」を除外



例2:
フィールドに保存した検索設定
{

from|"@gmail.com"
and
Subject|バックアップ完了
}
フィールド:from を「"@gmail.com"」で検索し2行目が「and」なので
フィールド:Subject を「バックアップ完了」で絞込み検索します。

「and」 「or」 「omit」(除外) が使用可能!

以下、スクリプトの中身!

スクリプト名:検索(フィールド名,値)

{
#引数無しは、全てのレコード表示
レイアウト切り替え [「List」 (mailer)]
変数を設定 [$argu; 値:Get(スクリプト引数)]
If [IsEmpty ( $argu )]
#引数がなければすべて表示
全レコードを表示
レコードのソート [記憶する; ダイアログなし]
現在のスクリプト終了 []
End If
変数を設定 [$max; 値:ValueCount ( $argu )]
変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>$max]
変数を設定 [$RawRow; 値:GetValue ( $argu ; $n )]
#「フィールド名|検索値」 を 「フィールド名¶検索値」 にする
変数を設定 [$row; 値:Let([ P=Position ( $RawRow ; "|" ; 1 ; 1 ) ]; If ( P>0 ; Replace ( $RawRow ; P ; 1 ; "¶" ) ; $RawRow  )   )  
#検索条件 を確認 and or omit(除外)
変数を設定 [$SearchCondition; 値:Case (  $RawRow = "and" ; "and" ;  $RawRow = "or" ; "or" ;  $RawRow = "omit" ; "omit" ;  $RawRow = "-" ; "omit" ; "" )]
If [ not IsEmpty ( $SearchCondition )]
#検索条件があれば、次の行の 「フィールド名|検索値」 を設定
変数を設定 [$n; 値:$n+1]
変数を設定 [$row; 値:Let( val=GetValue ( $argu ; $n );
End If
#テーブル名 と フィールド名を 連結
変数を設定 [$TargetFieldName; 値:Get ( レイアウトテーブル名 ) & "::" & GetValue( $row ;1)]
#検索値を取得
変数を設定 [$SearchValue; 値:GetValue( $row ;2)]
#
検索モードに切り替え []
#検索値を設定
フィールドを名前で設定 [$TargetFieldName; $SearchValue]
エラー処理 [オン]
If [$n = 1]
検索実行 []
Else If [$SearchCondition = "and" or IsEmpty ( $SearchCondition )]
対象レコードの絞り込み []
Else If [$SearchCondition = "or"]
対象レコードの拡大 []
Else If [$SearchCondition = "omit"]
#除外
ブラウズモードに切り替え []
対象外のみを表示
検索モードに切り替え []
フィールドを名前で設定 [$TargetFieldName; $SearchValue]
対象レコードの拡大 []
対象外のみを表示
End If
エラー処理 [オフ]
変数を設定 [$n; 値:$n+1]
End Loop
}




2012年9月15日土曜日

Google IMEにFileMakerの関数ぜ~んぶ登録!

Mac でも Win でも 使えます!
関数の入力がカンタンになります!

FileMaker_Function.txt


Google IME(Google 日本語入力)を利用するのであらかじめインストールしておいて下さい!
http://www.google.co.jp/ime/


どんなにFileMakerの関数入力がカンタンになるのか!?
例えば、
「GetLayoutObjectAttribute」なんて探しにくいし打つとしても覚えてない!?


SHIFT + "GETL" と入力すると?

でました!



よく使う

GetLayoutObjectAttribute ( "WEB1" ; "content" )
も登録しているので一緒にでてきます!


Google IME(Google 日本語入力)に辞書登録していきます。

上部にある
「FileMaker_Function.txt」の内容をコピーしてテキストファイルにして保存して下さい。




Google IME(Google 日本語入力)の辞書ツールを起動します。


[管理]->[新規辞書にインポート]をクリック。


先ほど保存しておいた「FileMaker_Function.txt」を選択。
ここでは「辞書名を「FileMaker_Function」としています。
エンコードは、保存した時のエンコードにあわせてください。自動で問題ない場合は、そのままでOK.



登録されました!



ためしてみましょう!
入力モードは、「ひらがな」にして



[SHIFT]キー + "SUBS" と打ってみましょう!


Substitute ( テキスト ; 検索テキスト ; 置換テキスト ) が表示されました!



[SHIFT]キー + "IF"


[SHIFT]キー + "GETL"



[SHIFT]キー + "GET("


GET(.....)関数は、多いのでよく使う「Get ( スクリプト引数 )」「Get ( スクリプトの結果 )」などは、

[SHIFT]キー + "GETS" で登録しています。


ちょっと残念なのは、Google IMEが勝手に全角の表示をしていて選択しづらくなっています。
FileMakerへ入力の際は、右に出ている[半]の方を選択する必要があります。
全角!出なくていいのに...設定ないのかなぁ?



私の場合は、[SHIFT]キー + " " で入力できるように「よみ」に大文字2~4文字で登録しました。

「FileMaker_Function.txt」は、TAB区切りになっているのでFileMakerに取り込んで自由に加工ができます。あまり使わない関数を削除したり、「GetLayoutObjectAttribute ( "WEB1" ; "content" )」のように自分のオリジナルを追加して自分専用の辞書を作ってみてはいかがでしょう!

















2012年8月17日金曜日

FileMaker + Internet Explorer Google翻訳、郵便番号から住所、amzonで検索



FileMaker で Internet Explorer を操作し、
Google Translateで翻訳結果を取得。
http://qbxxdp.blogspot.jp/2012/08/google-translate-filemaker.html
郵便番号から住所を取得。
http://qbxxdp.blogspot.jp/2012/08/filemakerinternet-explorer.html
amazonで検索し、商品情報を取得。
http://qbxxdp.blogspot.jp/2012/08/amazon-filemaker.html

要プラグイン
ScriptMakerMS
https://sites.google.com/site/scriptmakerms/scriptmakerms

要カスタム関数
WFM.fp7(ファイル内)
https://sites.google.com/site/scriptmakerms/scriptmakerms/web-scraping

動作環境
OS:Xp , 7
FileMaker 11