2009年02月16日

最近のイベント的なこと

角川の人に「少年メリケンサック」の試写会招待券を送ってもらいまして、行ってきました。
どや顔の宮崎あおいが「好きですパンク!嘘です!」とか言ってるポスターを見たときは、「だめな空気が横溢しとるな」と思ったんですが、見たら面白かったです。

波岡一喜と木村祐一、峯田和伸と田口トモロヲなんて全く顔が似てないはずなんですが、これがそれぞれ若いときと現在を演じている。すると似て見える。違和感がない。
自分の祖父母の若いときの写真見たら意外な美男美女だった、みたいな。

先週は、自衛隊の人にこれまた招待券を送ってもらいまして、中部方面隊の音楽まつりに言ってきました。

http://www.mod.go.jp/gsdf/mae/
090213_jieitai.jpg

陣容をくるくる変えながら演奏したりしますが、足腰を鍛えてる人たちなので、かなりいいです。
で、夜はステーキを食べました。これもひとり分は招待券です。
どうなってるんだ、俺の生活。

090214_outback.jpg

で、昨日。
午前中は神戸の商工会議所で某試験。久しぶりに英文を書きました。
午後はアップルストア心斎橋でやってた「FileMaker Day」を見てきました。

http://web.sevensdoor.com/resources_browse.xsl?report=158

最初に登場したのはファイルメーカー社の人でしたが、ちょっと中2っぽい、お調子者の感が見受けられました。
内容自体には問題なかったんですけど。

大阪なんで、シータの久岡さんは来てないかなと思ったんですが、たぶん来てなかったです。

あと仕事と勉強で3日くらい寝てなかったのと、ストア内のポカポカぶりがものすごく、すさまじい眠気に襲われてしまいました。
こっちはシャツの上にセーター着て、コート着てやってきたわけですが、店員は半袖のシャツ着てうろうろしてるわけですよ。なのでコート脱ぐくらいでは追いつかない。嫌な戦いでした。

全体として、スクリプトトリガとWebビューアがあれば何とかなる、というのが判ったのと、これまでファイルメーカーのいろんな本で名前を見ていた、蜷川晋氏、新居雅行氏、竹内康二氏、茂田カツノリ氏がこんな感じの人だったのか、というのが判って良かった(?)です。
話は面白かったんで、バージョン10を買うかなと思いました。

(アップグレードのキャンペーン期日が3月半ばなので、それまでに。と言っても、どうせまたキャンペーンやるんだろうけど)

イベント後は飲み会とのことで、超行きたかったんですが……。

夜は、母の誕生日だったので、実家へ帰省。
プレゼントを渡して、気絶するように就寝。


posted by tk219 at 12:50 | Comment(0) | TrackBack(0) | ファイルメーカー | このブログの読者になる | 更新情報をチェックする

2008年12月04日

他人を想定するのは勉強になる

テンプレートをバージョンアップした場合、古い版からデータを移すにはどうすればいいのか。

最初は「単にインポートすればいいじゃん」と思っていたのですが、私自身は使いながら機能アップさせてるわけで、インポートしたことがない。
で、試してみたら、各テーブルでそれぞれインポートしなきゃいけないと判りました。

しかも全テーブルでインポートしてみたら、データのない空レコードが量産されている。
これは悩みました。本来の仕事をしつつ、「あれが悪いのか」「これが悪いのか」と脳内シミュレーションをくり返す。
「あっ、あれかも」と思って試してみても、結果は変わらず。
頭の温度がカーッと上昇して、へなへなと覚めていく瞬間です。

まあ、結論を言うと、ファイルオプションで、ゲストアカウントでのログインを設定していたのがまずかった。
つまり古い版のファイルからインポートしようとすると、内部的にはその古いファイルを開いているわけで、その際にゲストアカウントで入るから全てのレコードにアクセスできていない。
そこでどのアカウントでも閲覧を許可しているレコードだけがインポートされ、残りはアクセス不可となって空白になっていると。
そういうわけでした。

update_tool_s.jpg

で、解決したのでアップデート用のインターフェースを作りました。
タグ:filemaker
posted by tk219 at 20:16 | Comment(0) | TrackBack(0) | ファイルメーカー | このブログの読者になる | 更新情報をチェックする

2008年11月30日

iPhone的なインターフェースをファイルメーカーで

Complete System ver.0.96以降でやります(まだ配布してません)。

book_new.jpg

こんな感じですが、左中央にご注目ください。

book_if1.jpg

こんな風になってまして、試しに「た」をクリックすると……

book_if2.jpg

こうなります。
で、もう一度「た」をクリックすると、「た」から始まる書名が一覧表示されます。

book_if3.jpg

これはタブで作ってます。

book_if4.jpg

下地の部分はこんな感じで、全てボタン。
割り当てるスクリプトは全て一緒ですが、Get ( スクリプト引数 ) を使い、
それぞれあ・か・さ・た・な……と各タブにオブジェクト移動するように分岐させます。

book_if5.jpg

分岐したタブで、実際に書名の頭文字を選択するようにします。
これもそれぞれ割り当てるスクリプトは同一で、再びGet ( スクリプト引数 ) を使い、
ここでは [あ] [い] [う] [え] [お] のどれかを頭文字として指定します。

ちなみに、各レコードに入力する「書名のふりがな」の頭文字を抽出する計算式は、カスタム関数で作っておいてます。

Let ( A = name ;
Case (
A = "あ" ; "あ" ;
A = "い" ; "い" ;
A = "う" ; "う" ;
A = "え" ; "え" ;
A = "お" ; "お" ;
A = "か" or "が" ; "か" ;
A = "き" or "ぎ" ; "き" ;
A = "く" or "ぐ" ; "く" ;
A = "け" or "げ" ; "け" ;
A = "こ" or "ご" ; "こ" ;
A = "さ" or "ざ" ; "さ" ;
A = "し" or "じ" ; "し" ;
A = "す" or "ず" ; "す" ;
A = "せ" or "ぜ" ; "せ" ;
A = "そ" or "ぞ" ; "そ" ;
A = "た" or "だ" ; "た" ;
A = "ち" or "ぢ" ; "ち" ;
A = "つ" or "づ" ; "つ" ;
A = "て" or "で" ; "て" ;
A = "と" or "ど" ; "と" ;
A = "な" ; "な" ;
A = "に" ; "に" ;
A = "ぬ" ; "ぬ" ;
A = "ね" ; "ね" ;
A = "の" ; "の" ;
A = "は" or "ば" or "ぱ" ; "は" ;
A = "ひ" or "び" or "ぴ" ; "ひ" ;
A = "ふ" or "ぶ" or "ぷ" ; "ふ" ;
A = "へ" or "べ" or "ぺ" ; "へ" ;
A = "ほ" or "ぼ" or "ぽ" ; "ほ" ;
A = "ま" ; "ま" ;
A = "み" ; "み" ;
A = "む" ; "む" ;
A = "め" ; "め" ;
A = "も" ; "も" ;
A = "や" ; "や" ;
A = "ゆ" ; "ゆ" ;
A = "よ" ; "よ" ;
A = "ら" ; "ら" ;
A = "り" ; "り" ;
A = "る" ; "る" ;
A = "れ" ; "れ" ;
A = "ろ" ; "ろ" ;
A = "わ" ; "わ" ;
 "" ))

住所録などでも応用できます。
タグ:filemaker
posted by tk219 at 10:21 | Comment(0) | TrackBack(0) | ファイルメーカー | このブログの読者になる | 更新情報をチェックする

2008年11月26日

カレンダー(週)

全体的に、完成の道が見えてきました。
完成したらロック解除しようかな……と。

b_week_s.jpg

アイコンは以下のものをいくつか使わせてもらってます。
"Fugue Icons"
Copylight 2008 Yusuke Kamiyamane.All rights reserved.
The icons are licensed under a Creative Commons Attribution 3.0 license.

http://www.pinvoke.com/
タグ:filemaker
posted by tk219 at 16:19 | Comment(0) | TrackBack(0) | ファイルメーカー | このブログの読者になる | 更新情報をチェックする

2008年11月09日

カレンダー計算のコア部分

■日付の算出方法

例えば2008年11月のカレンダーを計算するとします。
「日付選択」フィールド(グローバル、日付)に [ 2008/11/1 ] というデータを入れるとします。

カレンダーが日曜日スタートだとして、
「first_day」フィールド(計算、日付):

Case (
DayName ( Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) ) = "sunday" ;
Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) ;
DayName ( Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) ) = "monday" ;
Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) - 1 ;
DayName ( Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) ) = "tuesday" ;
Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) - 2 ;
DayName ( Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) ) = "wednesday" ;
Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) - 3 ;
DayName ( Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) ) = "thursday" ;
Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) - 4 ;
DayName ( Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) ) = "friday" ;
Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) - 5 ;
DayName ( Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) ) = "saturday" ;
Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) - 6 ;
Date ( Month ( 日付選択 ) ; 1 ; Year ( 日付選択 ) ) )

これでカレンダー上の最初の日が出てきます。
2008/11/01は土曜日ですから、その6日前、[ 2008/10/26 ] と算出されるというわけです。

次に6週間分の日曜日を算出します。

Case (
Get ( レコード番号 ) = 1 ; first_day ;
Get ( レコード番号 ) = 2 ; first_day + 7 ;
Get ( レコード番号 ) = 3 ; first_day + 14 ;
Get ( レコード番号 ) = 4 ; first_day + 21 ;
Get ( レコード番号 ) = 5 ; first_day + 28 ;
Get ( レコード番号 ) = 6 ; first_day + 35 ;
"")

これで、
[ 2008/10/26 ]
[ 2008/11/02 ]
[ 2008/11/09 ]
[ 2008/11/16 ]
[ 2008/11/23 ]
[ 2008/11/30 ]
が出てきました。

月曜日は簡単です。

日曜日 + 1

だけ。火曜日は「+2」、水曜日は「+3」……となります。


タグ:filemaker
posted by tk219 at 18:48 | Comment(0) | TrackBack(0) | ファイルメーカー | このブログの読者になる | 更新情報をチェックする

2008年09月27日

インスタントWebを試した

Complete Systemを、インスタントWebで公開してみました。
共有機能をさわるのは初めてです。

まず「アカウントとアクセス権の定義」を開く。
「拡張アクセス権」の、

[fmiwp]インスタントWeb公開によるアクセス

を編集して、管理者とユーザーのアカウントにだけアクセス許可を与える(チェックをオンにする)。
※今回はあくまで実験なので、ゲストユーザーのログインは認めず、管理者とユーザーのID・パスワードを知る者だけが閲覧できるようにしたためです。

次にメニューバーの [ 編集 ] → [ 共有設定 ] → [ インスタントWeb公開 ]

を選び、公開をオンにする。言語は「日本語」。
ここで表示されるURLをメモする。
「アクセス権セットによってユーザを指定」の「指定」を押して、先ほどのアクセス許可の指定を確認する。

後は別のマシンのブラウザで、メモしたURLを開く。
これで終わり。すばらしいですね。
買ってよかった、ファイルメーカー。


驚いたのは、意外とレイアウトを忠実に再現していること。
しかしオブジェクトやフィールドをもりだくさんに重ね合わせた上に、多段スクリプトを走らせたおす性格のため、細かい動作としては動いたり動かなかったり。

Web互換でないスクリプトステップがスキップされたり、透明にして配置しているボタン位置がずれてしまったりするのが、おかしくなる原因なのではないかと思います。

そこでインスタントWeb用のレイアウトを作りました。
とりあえずポータルで、住所録のレコード一覧を表示し、その横に入力フィールドをまとめた1つの計算フィールド表示するだけの、簡単なもの。
計算フィールドは、要は氏名、所属組織、自宅、携帯、メール……といった情報をひとつにまとめ、状況に応じて不要な語句や改行を取りのぞいたものです。
とりあえずは、そのデータを閲覧だけできるようにしてます。入力不可です。

instantweb_test.jpg

起動スクリプトもカレンダー関連のややこしい過程があるので、ブラウザで開いた場合はすっとばすように設定します。
具体的には、

PatternCount ( Get ( アプリケーションバージョン ) ; "FileMaker Web Publishing" ) = 1

これで正なら、普段の処理をすっとばしてWeb公開用レイアウトへ、負であれば通常通りということになります。
タグ:filemaker web
posted by tk219 at 17:29 | Comment(0) | TrackBack(0) | ファイルメーカー | このブログの読者になる | 更新情報をチェックする

2008年09月25日

フォーム形式とリスト形式でずれるピクセル位置

※技術的なことは判りませんので、下記はあくまでも経験論です。

ファイルメーカーでレイアウト作成時、私は常に「オブジェクト情報」を表示させて作業します。
ひとつのテンプレートの中で、基本的なインターフェースが統一されないと気持ち悪いからです。
皆さんもレイアウトのフォーム形式とリスト形式、双方のヘッダーやフッターを統一することはよくあると思います。

そこで私はオブジェクト情報を見つつ、フィールドやオブジェクトの位置をピクセル単位で合わせるんですが、同じ数字にしているのに、レイアウトを切り替えるとずれている。

リスト形式の方が、ちょっとだけ右に……。その差、3ピクセル。


これには理由があります。
ステータスエリアを非表示にしている場合、リスト形式の時に座標がずれるみたいです。
たぶん、下図みたいなことなんじゃないかと思います。

fm_object_start.jpg



つまりリスト形式でオブジェクトを、
 横(←)0pix,縦(↑)0pix に置くなら、
フォーム形式のときは、
 横(←)3pix,縦(↑)0pix に置かなきゃいけないようです。

タグ:filemaker
posted by tk219 at 17:13 | Comment(0) | ファイルメーカー | このブログの読者になる | 更新情報をチェックする

2008年09月21日

メールアドレスをローカルとドメインに分離する

メールアドレスを入力するのに、「sample@example.com」とあったとすれば、
・sample
・@example.com
に分離すれば、次にまた「○○○@example.com」の人が出てきた場合、後ろのドメイン部分をオートコンプリートできるんじゃない?と考えたわけだ。
最近のファイルメーカーはフィールド設定で「入力済みの値を利用してオートコンプリート」というオプションを選べるんだけど、日本語の場合は確定しないとこれが動かない。
「日本太郎」と入力したいのに

「日」
「日本」
「日本太」

などと一文字変換しては確定して、オートコンプリートできるかどうか待つというのも馬鹿な話で、あんまり実用的じゃない。
でもメールアドレスなら、確実に半角英数字である。変換しなくていい。
それなら、オートコンプリートも実用的だ。

ということで住所録のメールアドレスは前と後ろで入力を分けて、後で「前&後ろ」みたいな計算フィールドを作ればいいじゃないと考えた。
しかしこれまで蓄積してきたレコードは、普通に「sample@example.com」の形で入力済である。
そこで、こいつらを分離するのはどうしたらいいか。

最初考えたのが、次の計算式。
元々のメールアドレスが蓄積されているフィールドが「メール」という名前だと思ってください。

ローカル部分を抽出する計算フィールド:
Middle ( メール ; 1 ; Position ( メール ; "@" ; 1 ; 1 ) - 1 )

ドメイン部分を抽出する計算フィールド:
Substitute ( メール ; アドレス前方抽出 ; "" )

これでいいじゃん、と思った。最初は。
前方部分は「@」までのテキストを抽出し、後方部分は元のアドレスデータの、前方部分を空白で置換する。
ところがこれ、「sample@sample.com」みたいなアドレスだとダメでした。ドメイン部分が「@.com」になっちゃう。
つまりローカルが「sample」だから、全部とっぱらっちゃうんだね。

そこで改良して、

ドメイン部分を抽出する計算フィールド:
Right ( メール ; Length ( メール ) - Length ( アドレス前方抽出 ) )

にしました。元のアドレスの文字数を出して、単純にローカル部分の文字数を差し引いた分、アドレスの右から抽出する。
何か問題あるかもしれないけど、とりあえず今日はそんな感じ。
タグ:filemaker
posted by tk219 at 23:07 | Comment(0) | ファイルメーカー | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。