今週のカスタムスレまとめ
カスタムのファッションカタログ
さて。
今回はアクティビティファイルを使います。
ダウンロードし、解凍すると、FileMaker Proの3つのファイルが入っています。
- Master.fmp12
- OOTP Data Viewer 1-1-0.fmp12
- OOTP Data Viewer 1-1-1.fmp12
1-1-0からアクティビティを始めて、完成版が1-1-1となります。
OOTP Data Viewer 1-1-0.fmp12を開き、
ファイル>名前を付けて保存…
「保存後:」「ファイルを自動的に開く」にチェックを入れて「現在のファイルのコピー」をファイル名「OOTP Data Viewer 1-1-1.fmp12」で作成します。
ファイル名が完成版と同じになりますので、フォルダを変えて保存してください。
アメリカでは、日本とは比べものにならないくらい、選手の成績がデータ化されています。
それはおそらく、日本とは違ってFantasy Baseballが盛んだからでしょう。
※Fantasy Baseball……一定のルールにしたがって、現実の選手で自軍を編成し、現実の選手成績に連動して、自軍の成績が決まりペナントを争うゲーム。OOTPよりはPERFECT TEAMに近いだろう。
メジャーリーグ公式サイトMLB.comをはじめ、マスコミ、各種団体などで選手成績のデータ化が進んでいます。
データベース化といった方がいいか。
当然、選手データを扱うために、各団体で独自の選手IDが使われています。
MLB.comや、Fantasy Baseballの盛んなYahoo.comやCBSSportsなど、みんな独自の選手IDを持っています。
OOTPには直接関係ありませんが、データ閲覧にはどのサイトも便利です。
今回は、MLB.comのデータをOOTP Data Viewerから閲覧できるようにアップデートします。
同じことがYahoo.comでもCBSSportsでもできますが、ここはMLB.comにしておきましょう。
まず、MLB.comの選手データを見たいわけですから、MLB.comが使っているIDが必要になります。
MLB.comのIDを格納するフィールドが必要ということです。
shift+command+Dで、PlayerテーブルにPlayer_Add_MLB_IDを数字フィールドで追加します。
ダウンロードしたファイルの中にMaster.fmp12というファイルがあり、ここにはMLB.comのIDとOOTPのデータにもあるBASEBALL REFERENCEのBRef IDが入っています。
Master.fmp12のbref_IDとOOTP Data Viewerの_kf_BBRef_IDを互いに照合し、Master.fmpからMLB.comのIDをOOTP Data Viewerにインポートします。
ファイル>レコードのインポート>ファイル…
Master.fmp12を選択し、インポートを設定します。
bref_idとkf_BBRef_IDの間の記号を照合フィールドの⇔に変更し、
mlb_idをPlayer_Add_MLB_IDへインポートするように→に変更します。
他のフィールドは、インポートしません。
2015件のデータがインポートされるはずです。
OOTPには多くのマイナー選手が含まれているので、データ件数は一致しません。
次に、command+Lでレイアウトモードに入り、MLB.com閲覧用のレイアウトを作成します。
command+Nで新規レイアウト、PLAYERテーブルオカレンスを元に名称「Web Viewer」で、デスクトップ用のフォームレイアウトを作成します。
作成されたレイアウトからヘッダとフッタをそれぞれ選択し、Delete。
ボディのみのレイアウトとします。
サイズは自分の画面に合わせて、位置タブで設定します。
ここでは、1440 x 1050としておきました。
空のレイアウトにツールバーのWeb ビューワ ツールを使って、Web ビューワ ツールでWeb ビューワを追加し、位置タブで次のように設定します。
Webビューワを追加した時に設定画面が出てきますが、内容はなしで構いません。
これで準備はOKなので、command+Sで保存。レイアウトモードのままPlayersレイアウトを表示します。
Player_Add_NameFirstLastフィールドの右横に、この機能をトリガするボタンを付けます。
「処理:」はとりあえず「何もしない」。
MLB IDは一部の選手しか持っていませんので、MLB IDのない選手の場合、このボタンは必要ありません。
そこで、データタブの動作で、「次の場合にオブジェクトを隠す」を設定します。
鉛筆アイコンをクリックし、次のように入力します。
IsEmpty()関数は、フィールド内容が空かどうかを調べる時に使います。
内容が空なら論理値「真」を返します。
IF文など、条件によって処理を分岐させる場合、論理計算というものを使います。
この場合も、論理計算で、
MLB IDのフィールドが空ならば→「真」
MLB IDのフィールドが空でなければ→「偽」
という、真偽の計算=論理計算をしていて、その表記が、
IsEmpty ( Player_Add_MLB_ID )
となっているわけです。
Player_Add_MLB_ID IsEmpty(が空)ならば……という意味です。
検索モードで必要はないですが、一応、「検索モードで適用」にチェックを入れておきましょう。
次に、ボタン処理に戻って、「処理:」を「スクリプト実行…」に変更します。
すると、「スクリプト指定」ウインドウが出てくるので、「+」ボタンで、新規スクリプト「Open_MLB_com」を作成します。
「変数を設定」ステップを追加し、オプションを追加します。
「get ( scriptparameter )」は、設定すると、日本語環境では、「Get ( スクリプト引数 )」と変換されます。
はじめから「Get ( スクリプト引数 )」と入力しても構いませんが、scriptparameterの方が変換する必要がないので速く打てます。お好みで。
次に、「新規ウインドウ」ステップを追加します。オプションは以下の通りに設定します。
最後に「Web ビューワの設定」ステップを追加します。オプションを以下のように設定すると、
「URL へ移動」オプションの設定画面になります。
スクリプトステップは、以下のようになるので、保存してボタンに戻ります。
次に、ボタン処理のスクリプト指定ウインドウで、「オプションのスクリプト引数:」を次のように設定します。
閉じると、
このようになっているはずで
す。
command+Sで保存しましょう。
さて、流れを説明しましょう。
新たにつけたボタンをクリックすると、
スクリプトの引数(ひきすう)である、
Lower ( PLAYER::Player_NameFirst ) & “-” &
Lower ( PLAYER::Player_NameLast ) & “-” &
PLAYER::Player_Add_MLB_ID
を持参して、処理がスクリプト「Open_MLB_com」に移ります。
持参したものは何か。
Shohei Ohtaniで説明します。
Lower()関数は、英文字を小文字に変換する関数です。
Lower ( PLAYER::Player_NameFirst )は、「shohei」となります。
「&(アンパサンド)」は文字列を結合する演算子ですので、
Lower ( PLAYER::Player_NameFirst ) & “-” & は「shohei-」で、さらに次の項目も結合しますね。
次は、Lower ( PLAYER::Player_NameLast ) & “-” & ですので、「ohtani-」になりますから、この時点で「shohei-ohtani-」で、さらに次の項目も結合します。
次は、PLAYER::Player_Add_MLB_IDで、大谷のMLB IDは、660271ですので、「shohei-ohtani-660271」となります。
この「shohei-ohtani-660271」を持って、処理が、「Open_MLB_com」スクリプトに移ります。
「Open_MLB_com」スクリプトの第1ステップは、
変数を設定 [ $fullnameWithMLBID ; 値: Get ( スクリプト引数 ) ]
変数名 $fullnameWithMLBIDの中身をGet ( スクリプト引数 )にするという意味で、
Get()関数は、何らかの値を取得する関数です。ここでは、「スクリプト引数」が指定されているので、
先ほどスクリプトに持参させた引数、この場合、「shohei-ohtani-660271」が、$fullnameWithMLBIDへ代入されます。
$fullnameWithMLBID = shohei-ohtani-660271
ということです。
第2ステップは、
新規ウインドウ
設定内容にしたがって新規ウインドウが表示されます。
この場合、最初に作ったWeb Viewerレイアウトを使った新規ウインドウになります。
第3ステップは、
Web ビューワの設定
ここでは、「URLへ移動…」が選ばれており、内容は、「カスタム Web アドレス」の、
“https://www.mlb.com/player/” & $fullnameWithMLBID
ということになります。
$fullnameWithMLBIDには、「shohei-ohtani-660271」が代入されていますので、
“https://www.mlb.com/player/” & “shohei-ohtani-660271” ということになり、&で結合しますから、
「https://www.mlb.com/player/shohei-ohtani-660271」を指定していることになります。
command+Bでブラウズモードに戻りましょう。
名前の右横のボタンをクリックすると、新規ウインドウが表示され、大谷のデータが表示されます。
今回はやっていませんが、新規ウインドウはウインドウ名も設定できるので、「Shohei Ohtani #17」等に設定してもいいでしょう。
- 原則、ルールなし。
- 例外は、開発者用のテーブル閲覧のためのレイアウトには『dev_』という接頭辞をつける
- 英単語・単数形。単語はアンダースコアでつなげない。
- 単数形にするのはレイアウトと区別するため。ユーザの目に触れるレイアウトで複数形を使った方が自然。
- プライマルキーには『__kp_』の接頭辞
- 外部キーには『_kf』の接頭辞
- その他は、『テーブル名』+『_』+『名称』
- 説明文は『__』+『説明』の接尾辞
- グローバルフィールドは『zg_』の接頭辞
- ハウスキーピングフィールドは『z_』の接頭辞
- 『_』を『to』と読み替えて、リレーションシップの流れをすべて記載する
- 当該テーブルのテーブルオカレンスはすべて大文字
- 説明文は『__』+『説明』の接尾辞
- 『_』でつなげる形式
- 『レイアウト名』+『_』+『フィールド名』
- 『CF_』の接頭辞をつける
- 以上に準じて、一貫性のある命名をする。
カスタムの歩き方
こんにちは 中平です。
15日(火)くらいから微熱が続いて体調イマイチで、19日(土)からさらに悪化して熱を測ると38.5℃。
日曜の朝、病院で診てもらったらインフルエンザA型と診断され2日寝込んでました。
幸いにも熱は下がって体調も良くなったので、23日(水)に2019年初の志和釣行。
今回は久しぶりに中学校からの同級生、I川君と釣行です。
クロハエの先端に二人で上がる予定が「マゴ」が空いちょったので二手に分かれて釣り開始。
志和の重鎮S宮さんも同礁して船着きからスタート。
自分はマゴの割れ目でヒラスズキを狙いますが、釣れたのはガシラだけ。
マゴに渡ってグレ狙いにチェンジ。潮は良い感じの上りですが全くエサを取りません。
二ヒロから竿二本まで上げ下げしますが反応無し。
もう一度ヒラスズキを狙うも釣れんのでI川君と移動を決断。
向かったのは二人とも良い釣りをしたことが無い「クジバエ」です。
弁当を食べながらI川君の釣りを見よったら1投目からグレ。
さらにポンポンとグレが釣れていきなり差を付けられてしまいました。
弁当を食べ終わって竿を出すとすぐに自分にもグレが釣れ、それから二人とも連発。
これは簡単やねーと余裕で釣りをしよったらボラが回って来て次第に釣れんなりました。
いっとき釣れん時間が過ぎて残り1時間くらいになってまたポツポツ釣れだし
ボラは一時50尾くらいに増えましたが、ボラの群れの下でも当たってきました。
自分は14時過ぎに納竿。全部で8枚でサイズは30~34センチくらいまで。
ちなみに今回、道糸にPEを使ってみました。
号数は0.6号でリーダーには磯用道糸の2号を約10M使用。
近距離のポイントを攻める場合はメリットを感じませんでした。
ガイド鳴りもかなり音がするので自分はナイロンのほうが使いやすいと思いました。
遠投するなどポイントが遠い場所には良いかも知れません。
I川君は10枚くらい釣りました
二人とも苦手な磯で良い釣果が出て、初釣りをワイワイ楽しめました。
I川君、お疲れ様でした。また行きましょう!
竿:ISO LIMITED マイティブロウ 1.5-530
リール:BB-XテクニウムC3000DXG
道糸:磯センサーSS-Si0.6号
リーダー:ナイロン2号10M
ハリス:グレイトZカスタムEX1.75号
針:掛かりすぎ口太5~6号
カスタム 関連ツイート
通話あり、カスタム変更自由でお願いします。
主催はどちらでも構いません
#mkmg