ページ

2011年9月27日火曜日

◆スモールベースボールの勝利

9月27日、横浜戦。
先発は澤村と国吉。

澤村は今日もあまり調子が良い感じではなかったが結局危なげなく抑えた。
やはり真っ直ぐに力があるということなのだろう。
シーズン序盤は援護に恵まれなかったが、ここに来て順調に勝ち星を伸ばしている。
結局変にコースを狙って四球を出さなくなったのが好調の原因では無いかと思う。

打線も取り立てて誰も調子が良いわけではないが、相手の四球に乗じてそつなく点を重ねた。
ラミレスに変わって出場している橋本が良い存在感を出している。
守備は安心できそうだし、バッティングもそつなくこなしている。
藤村よりは強い打球が打てるので将来性も十分。
積極的に使ってほしい。

橋本、藤村、脇谷、松本あたりが揃って、クリーンアップに坂本、亀井、長野と並んだらどれだけ走ることか。
プラス、8番に阿部を置いて超俊足打線として売りだしてほしい。
実に楽しみだ。

ラミレスも9回に代打で、全盛期を思わせる渋い流し打ちの2塁打を見せた。
なんか全体的に好循環が生まれている気がする。

このまま横浜、広島、横浜と続く連戦を全部勝って欲しいものだ。

でも、先発が足りないんだよね・・・。
先発崩れたら中継ぎも居ないし・・・。

4-1で巨人の勝ち。

2011年9月26日月曜日

◆今年の内海は本当に安定している

9月25日、阪神戦。
先発は内海とメッセーンジャー。

内海はいつもどおりの安定したピッチング。
メッセンジャーも調子が良い。

3回、ラミレスの代わりに先発した橋本がラッキーな内野安打で出塁。
坂本もあまり良いあたりではなかったが続いて1,3塁。
藤村がうまいヒットで1点先制。
長野がラッキーヒットで続いて阿部の犠牲フライで2点目。
フィールズがうまい流し打ちで3点目。

なんとなくツキも味方しヒットが繋がって調子が良さそうなメッセンジャーからあっさり3点先制。

確かにツキはあったが、そのツキをもたらしたのはラミレスを外す決断をした原采配にあるのだと思う。
これまでは多少ツキがあってもそれを生かせない打線だったが、橋本や藤村といった足のある選手が塁上に出ることでちょっとしたヒットで点が転がり込んでくる。
これまでの重量打線ではヒット3本繋がっても点が入らないことがある。
ホームランが出れば走れないのは問題にはならないが今年のようにホームランが出ずに体重だけの重量打線では空回りするばかり。
今日のような打線に、脇谷や亀井が加わりどこからでも走れる打線が近未来の理想的打線ではなかろうか。

亀井、坂本、長野のように足もあり長打もある打線は魅力的だ。
残り試合は少ないが、軽量打線でどこまでヤクルトに迫れるか見てみたいものだ。

それでもやはり最終的にツキをツキとして生かしたのは阪神打線の追い上げを許さなかった内海の投球だろう。
好調の阪神打線を抑えた内海の投球は本当に素晴らしかった。
特に調子がそれほど良くない中で抑えたことに意味がある。
東野もこの投球を学んでほしい。

4-2で巨人の勝ち。

◆東野メロメロ

9月24日、阪神戦。
先発は東野と岩田。

2回、東野は一挙5点を献上しいきなり試合を壊してしまった。
今シーズンの東野はこのパターンが多い。
先頭打者新井の打球をラミレスが取れずに3塁打。
取れる打球なのか取れない打球なのかテレビでは判りづらかったが、少なくとも打球の追い方がいかにも素人そのもの。(どちらかというと普通の外野手なら取れてた気がする)
続くブラゼルにあっさり外野フライを打たれてまず1点。
次のマートンには内角ボール気味のストレートを完璧に捉えられてホームラン。
あの球は狙っていなければ打てない球だと思うが、何にしてもマートン恐るべし。
っと、ここまでは仕方が無い。
しかし、その後もピッチャー岩田のヒットも含めて満塁にされた後、阪神で一番弱い2番バッターの柴田に走者一掃の3塁だを浴びる。
ピンチに弱い東野も不甲斐ないし、このところ守備のまずさが一際目立つラミレスを使い続けるベンチもどうかと思う。

確かに、ラミレスは巨人の中心選手でムードメーカー。
外すのはアンタッチャブルな世界ではあるが、あまりにも状態が悪すぎる。
もともと守備に難があるとはいえ、ココまではひどくなかったはずなのだが・・・。
体調が悪いのか、年齢的なものなのか、今年から変わったボールの動きについていけないのか。
何にしても、プロのプレーからは程遠い。

昨日も書いたが、ラミレスと心中するのか見切りを付けるのか原監督の考え一つだ。

4-9で巨人の負け。

◆Blog用ハードコピーソフト

これまではWindows7標準のSnippintToolとペイントブラシで行なってきたが、画像が多くなるとちょっと面倒。
SnippingToolがフリーハンド編集以外の編集機能を備えてくれればよいだけなのだが・・・・。

幾つか試してみて今ひとつこれはというものが見つからなくて諦めかけたが(意外と使いやすいのが無い)、Screenpresso - Best screen capture solutionというのを見つけた。

Blog作成用には必要十分な機能があり、フルスクリーン、カレントウインドウ、矩形選択、がマウスの指定だけで自由に選択できるのは秀逸だ。

デザインもイケてる。

2011年9月23日金曜日

◆まるで草野球

9月23日、阪神戦。
先発は西村と能見。

なんか能見はイメージが変わっちゃったね。
完全に変化球ピッチャーになってきた。

4回、満塁からフィールズの2点タイムリーで先制。
外角ぎりぎりのチャンジアップを目を疑うようなうまいバッティング。
前の打席に続けてぷるプリ振って三振した珠だ。
あれを初級から狙っていくなんて外国人らしからぬ頭の良さ。
ラミレスより賢い。
ん~、インコースのストレートが打てるようになったら日本で活躍できるんだけどなぁ。

しかし、今日の巨人はエラーとミスのオンパレード。
ラミレスの守備などはおおよそプロ野球では見たことが無い。
はっきり言って高校生より下手だ。
今年は特にひどい。
体力的な衰えが来ているのだろうか・・・・。
それでも西村はよく耐えていた。
ラミレスのエラーで作った大ピンチも0点に抑えたし。
見事なピッチングだ。

しかし、今日の巨人これでもかと西村の足を引っ張る。
6回、1アウト1塁でショートゴロ。
ダブルプレーでチェンジと思った瞬間トンネル。
これも酷い。
イレギュラーもしていないイージーゴロ。
さすがの西村もたまらず、マートンにタイムリーを打たれて3-1

たまらず原監督、山口に投手交代。
ん~、問題はココだ。
確かに代えるという選択肢も無いではない。
次の金村だけ考えれば山口のほうが抑える確率は高い。
しかし、まだ6回。
ここで交代すると6,7回は山口で行くとしても8回のピッチャーが居ない。
いまの巨人の一番の弱点だ。
まぁ、それまでに大差になってくれれば良いけど、今年の展開からしてその可能性は低い。
ならば間隔も開いていることだし久保で行くのかな?

ほぼ予想通りの展開で4-1で8回。
ここはやっぱり久保で行かなきゃしょうがないしょう、っと思っていたらやっぱりダメダメ原くん、金刀を出してきて鳥谷にヒット。
もう久保しか無いでしょう、と思っていたらやっぱりダメダメ原くん、アルバラデホを出してきて、あっさり2点取られる。
たまらず、ここでやっと久保。
ん~、どうせここで出すなら頭から出したら良いでしょうに。
久保にしたって1点差に迫られてピンチで投げる4人より。
3点差でランナー無しから抑える6人のほうがよっぽど体力的に楽でしょうに。

本当に原くんてダメなのね・・・・。
8回の頭から久保でいく腹が決まっていないのなら6回は同点まで西村で我慢でしょう。
もし、あそこで西村を我慢できて金元を抑えれていたら楽勝のゲームだったのに。
まぁ、坂本さえエラーしなきゃ原くんの采配ミスも出ずになんでもない試合だったのにね・・・。

こんな展開にしちゃうものだから流れは完全に阪神で、最終回に同点にされる。
さすがに久保、逆転までは許さなかったが限りなく負けに近い試合。
この分じゃクライマックスシリーズ出場も危ういか?

救いは阿部が絶好調になってきたこと。(リードも冴えてきたね)

お荷物になってきたラミレスが残りの試合の鍵を握っている気がする。
このまま復調待ちでラミレスと心中するか、見切りをつけて交代させるか。
さて、原くんの決断やいかに。

4-4で引き分け。

◆ヤクルト最終戦でやっと快勝

9月20日、ヤクルト戦。
先発は澤村と村中。

澤村は今日はあまり調子が良くない。
村中もちょっとスピードが無い感じがする。

その村中からフィールズが先制2ラン。
やっと当たりが出てきたか?
やっぱり力はある。
あとはインコースのストレートをどう捌くかが課題だろう。(だいぶ厳しそう)

4回、阿部の追加点となるソロホームラン。
インコースの難しい球を見事に捉えた当たりで、阿部ならではだろう。
6回にもダメ押しとなる2ランホームラン。
毎年一度はある阿部の絶好調がやっと来たかもしれない。
こちらは真ん中の球だったが完璧な当たり。

村中は他のチームにはよく打たれているのになぜか巨人戦に強かったが、やっと最終戦でノックアウトできた。
もし、CSシリーズで当たるとしたら今日のノックアウトは気持ち的に大きい。

澤村はどこがよいという感じでもなかったが要所を抑えて8勝目。
今日くらいの調子でも勝てる当たりはちょっと点さえ取ってやらば楽に2桁行くのだろう。

ここに来て阿部が調子を出してきたのは大きい。
フィールヅも少しは戦力になってきたので、インコースがダメダメなのがバレる前に活躍してほしい。

6-1で巨人の勝ち。

2011年9月19日月曜日

◆LightSwitch、Webアプリで発行してみる

これまで、サンプルを通してだいたいの機能はつかめて来た。
サンプルではWebへの発行の話が出てこなかったのでここでちょっと試してみる。

日本語リソースとしては以下のあたりなのだろうがIISの設定とかには全く触れていないのでこれだけではちと厳しい。(普段IISをあまり使っていないので)

一応ベータ版の時から以下の人の解説が定番っぽいのでこれを斜め読みしながら設定してみる。(ベータ版の時は挫折したが)
Deployment Guide: How to Configure a Web Server to Host LightSwitch Applications - Beth Massi - Sharing the goodness that is VB - Site Home - MSDN Blogs

  • まず、「Web Platform Installer 3.0」で「Visual Studio 2011 Server Runtime and Local SQL」をインストールしろとあるが、今回は開発機でホストするのですでに入っているようだ。
  • ローカルにIISが入っていなければこれをインストール
  • Web Deployment Agent Serviceを開始。(開始になっていた)
  • ここで「http://localhost/」にアクセスして
    image
    が出るか確認しておく。
  • リモートからもアクセスするには
    image
    を起動して、WWWサービスを許可しておく。
    image
  • 次にSQLServer(Express)の構成マネージャーでBrowserServiceを開始にしておく。
    image
  • SQL EXPRESS のプロトコルで「名前付きパイプ」を有効
    image
  • クライアントプロトコルでも「名前付きパイプ」を有効
    image
  • 次にIISの設定だが、サイトの説明では専用のアプリケーションプールを作り、専用のアカウントで実行させてとあるが、今回は動作確認だけなので「DefaultAppPool」を自分のアカウントで実行させてそのまま使う。
    IISマネージャーを起動し、「アプリケーションプール」「DefaultAppPool」を右クリックして「詳細設定」を選択。
    image
  • 「プロセスモデル」「ID」にローカルアドミン権限を持ったユーザーを指定する。
    image
  • IISをリスタート

あとはVisualStudioに戻り「ビルド」「発行」でウィザードを起動し必要項目を指定していく。

  • 「クライアント構成」は「Web」
    image
  • 「アプリケーションサーバーの構成」は「IIS」
    image
  • 「発行の出力」で「サービスURL」に「http://localhost
    「サイト/アプリケーション」に「Default Web Site/GuideTour」(デフォルトのまま)
    image
  • 「データベース接続」「新規または既存のデータベースに対する管理者接続を指定します。」はデフォルトのまま。
    「ユーザー接続」のほうはWindows認証を指定するとエラーになるのでとりあえず「sa」を指定した。
    image
  • 以降の設定はデスクトップアプリケーションに同じ


これでブラウザから「http://localhost/GuideTour」にアクセスすると無事ログイン画面が表示されて、デスクトップと同様のアプリケーションが動作した。

◆内海、チェンで乱打戦?

9月19日、中日戦。
先発は内海とチェン。

内海はいつも通りのピッチング。
っと思うのだが、立ち上がり寺内のエラーとラミレスのエラーで2点を失う。
ラミレスの守備は酷すぎるなぁー。(高校野球じゃないんだから)
下手なうえに必死さが無いものだから特に印象が悪い。
あの打撃でこの守備では使えない。

打線は坂本が久しぶりに会心のホームランで1点を返す。

しかし、内海が森野に2ランを打たれて追加点を許す。
なぜ、インコースの得意な森野にあれだけインコース攻めをするのかなぁ・・・・。
ホームランバッターじゃなければそれもありかもしれないが・・・。

寺内のタイムリーで1点を返したが、すぐさま1点追加されて2-5
だいぶ厳しくなってきた。

どうしても阿部のリードが気に入らない。
2アウト3塁でヒット狙いで当てに来ている大島に今度は外角ストレート勝負。
こういう時こそインコースでしょ。
もしくは下位打線なのだからボールになる変化球で四球でもOK
どうも慎重さが足りないリードが目につく。

原監督、5回早くも先発ピッチャー交代に出る。
攻撃でよっぽどチャンスとかであれば判るが、ここで交代は無い。
内海は点を取られてこそいるがそれほど悪い内容じゃないし、どうせ交代してもろくなピッチャーが居ない。
ならばこの試合は基本的に内海に預けるのが一番。

といっても原監督はとにかく動くのが作戦だと思っているからねぇ。
案の定、追加点を重ねられ、どっちらけの試合にしてしまった。

東京ドームのファンのみなさん御免なさい。

もう今年はラミレスはあきらめた方が良いなぁ。
矢野とか生きの良い選手を使った方が見ていて気持ちが良い。

そして、アウトになっても良いからどんどん走ろう。

最近、せっかく藤村がノーアウトで出てもバントで送る消極采配が多すぎる。
よっぽどクイックの得意なピッチャーならまだしも・・・・。
盗塁してから寺内に流し打ちさせるような形をチームとして作っていかないと得点力が上がらない。

今後の目標は何とか3位を確保。
クライマックスシリーズに使える選手を見極める。

こうやって見るとベテランは力が落ちてきているし、若手も育ってこないね。
来年、外国人の宝くじに当たるのを期待するしかない。

3-8で巨人の負け。
最近の敗因はいつも阿部、ラミレス、原だね。

◆東野、久々に好投で快勝

9月18日、中日戦。
先発は東野とソト。

ソトには前回完璧に抑えられていてあまり点を取れる雰囲気ではないので東野の出来次第だろう。

立ち上がりの東野は相変わらずコントロールがアバウトで変化球が真ん中に集まる。
しかし、中日打線も元気がなく打ち損じが多い。

巨人打線も予想通り完璧に抑え込まれて0-0のまま7回。

東野は尻上がりにコントロールが良くなってきた。
いつの間にかフォークボールもちゃんと落ちるようになって、森野を三振に取った球などは圧巻だった。
カーブも良いところに決まってストライクが取れている。
危なげない投球になってきた。(相手が中日なので幾分割り引く必要はありそうだが)
最近の阿部はインコースの要求が多くなり、ピッチャーがコントロールミスしなければ良いのだが、今日のような展開の時はちょっと心配。
ブランコにインコースが低めにいかないこと、森野はインコースが得意なので裏を突くとき以外はアウトコースへ、といったあたりを気を付けたい。

7回、阿部が外角高めに来たボールを左中間に見事にホームラン。
久しぶりの流してのホームランだ。
このバッティングができるようであれば今後に期待ができる。
続いて、やっと出ましたフィールズの2ランホームラン。
まぁ、あのバッテイングだと打てるのはここだけか、というような真ん中低めの変化球だったが、間違ってバレンティンのように突如として打ち始めたりしないものだろうか・・・・。
それは無理だろうが、たまにで良いからホームランを打ってくれれば戦力になるのだが。(三振かホームランで十分)

東野は8回まで危なげなく抑えて、9回は久保。

久々の快勝だ。

東野はスライダー、カーブ、チェンジアップ、フォークと変化球が多彩になってきたのでコントロールさえまともなら一段上のピッチャーになれると思う。
次回のピッチングに期待しよう。

4-0で巨人の勝ち。

◆LightSwitch、拡張機能を使用した LightSwitch の強化

LightSwitchでは各種拡張機能をオンラインからダウンロードして追加できるようになっている。
現時点ではみなあちらものばかりなので若干敷居が高いが、とりあえず簡単に適用できそうな「テーマ」をダウンロードして使ってみる。

拡張機能のインストールは、

  • 「ツール」メニューの「拡張機能マネージャー」をクリック
  • 表示された「拡張機能マネージャー」で「オンラインギャラリー」「コントロール」「LightSwitch」をクリック
    image
  • 適当なテーマを選んで「ダウンロード」をクリック
    image
  • 「インストール」ボタンをクリック
    image
  • VisualStudioを再起動
  • 「ソリューションエクスプローラ」で「プロパティ」をダブルクリック
  • 「拡張機能」タブで追加したテーマをチェック
    image
  • 「全般プロパティ」タブで使用したいテーマを選択
    image
  • これで実行してみると以下のように新しいテーマが適用される。
    image
    (あまり良いテーマじゃないな・・・)

◆LightSwitch、アプリケーションの配布

アプリケーションの発行
アプリケーションを発行するには、「ビルド」メニューから「XXXの発行」を選び表示されたウィザードに従って項目を指定していけばよい。

image
ここではデスクトップを選択。

image
ローカルを選択。

image
「アプリケーションファイルを配置する場所」はデフォルトではプロジェクト配下の「Publish」フォルダーになっているのでそのままとする。
「既定のデータベースを発行する方法」、そもそも既定のデータベースとは何かというところだが、多分システムで使用する構成用のデータベース(ユーザーアカウントやロールなどを管理)ではないかと思う。
ここでは「データベースに直接発行する」を選択。

image
「データベースに直接発行する」時の接続文字列と思われる。基本的にはデフォルトのままで良いと思うが、サーバー名は汎用性を持たせるために「.\sqlexpress」とした。

image
アプリケーションの管理ユーザーを作成する。
初回ログイン時はこれを使ってログインしたのちに、一般ユーザーとかを作るのではないかと思う。
パスワードには複雑さ制限が掛かっていて、記号を含む必要があるようだ。

image
必須コンポーネントのインストールを指定する。
配布先がインターネット接続環境であればデフォルトのままで良いと思われる。

image
アプリケーションで使用するデータベース(NorthWind)への接続文字列を指定する。
これもデフォルトで良いと思うがやはりデータベースを「.\sqlexpress」にした。

image
証明書は使用しない。

image
「発行」ボタンを押して完了。

プロジェクト配下のPublishフォルダーにセットアップモジュールが作成されるのでSetup.exeを実行すればローカルにアプリケーションがインストールされる。
また、この時点でガイドツアーサンプルデータベースが作成される。
image

アプリケーションの実行
スタートメニューからアプリケーションを起動すると以下のようなログイン画面が表示されるのでウィザードで指定したユーザーIDとパスワードでログインする。
image

アプリケーションが起動すれば成功だ。
image

ちなみに、ウィザードで
image

「スクリプトファイルを作成してデータベースをインストールおよび構成する」を選択した場合はウィザードに「データベースの構成」画面がひとつ追加されて、ここで作成するデータベース名を指定する。
ちなみに、デフォルトではソリューション名(プロジェクト名?)が設定されているが、直接発行の時はアプリケーション名が指定されていたので合わせて「ガイドツアーサンプル」とした方が良いようにも思う。
image

これによって、Publishフォルダーにデータベース作成用のSQLが作成されるので展開先に持って行って実行すれば構成用のデータベースができるのだろう。
実際やってみたが、DBの器はできたのだが何やら色々とエラーが出て中身は作られなかった。
とりあえず、開発したPCから「NorthWind」と「ガイドツアーサンプル」データベースを持って行ってアタッチすればアプリケーションは動作した。

ただし、アプリケーション固有で作ったContactListの中身は空だった。

アプリケーションと発行の再変更
現状では「ContactList」にデータが存在しない時、「Find」ボタンを押すとNull参照のエラーになってしまうので、これを修正する。

ソリューションエクスプローラで「ContactList」を右クリックし「画面コードの表示」を選択する。

Find_Executeメソッドを以下のように書き換える。

        partial void Find_Execute()
{
if (ContactSet.SelectedItem == null)
{
this.ShowMessageBox("連絡先が選択されていません");
}
else
{
Application.ShowSearchCustomer(ContactSet.SelectedItem.ContactName);
}
}


ちなみに、メッセージボックス表示にはShowMessageBoxメソッドを使う。
LightSwitchはデスクトップアプリケーションとWebアプリケーションの切り替えが可能なようなので(まだよく判っていないが)、環境に依存しない抽象的なメソッドを使うようになっているのだろう。


「ビルド」メニューから再度発行して動作を確認。


LightSwitchアプリケーションではClickOnceの仕掛けを使用しているっぽい。
発行を行い、Publishフォルダーが更新されればインストール済みのアプリケーションは起動時にそれを自動的に取り込むようだ。


アプリケーション管理者としての業務
「商品一覧」画面にはMTG Blog: ◆LightSwitch、承認の有効化とアクセス許可の作成にてアクセス制限を付与しているので現時点ではメニューに表示されない。
そこで現在のユーザーにアクセス権を付与してみる。


実行画面の左ペイン(メニュー)から「役割」をクリック。


「アクセス許可」の追加ボタンをクリック。
image


追加された行のドロップダウンを展開し「View Products」を選択。
image


これで「管理者」ロールに「View Products」権限が追加されたので、ログオンしなおせば「商品一覧」メニューが表示される。
image

2011年9月18日日曜日

◆LightSwitch、承認の有効化とアクセス許可の作成

認証の有効化
ソリューションエクスプローラで「プロパティ」をダブルクリックし「アプリケーションデザイナ」を表示させる。

「アクセス制御」タブで「フォーム認証」を選択するとフォーム認証が有効になる。
ただし、開発環境では自動的に「テストユーザー」でログインされるようだ。

実際にどのようにユーザー管理されるのかは以降の説明で出てくるのだろう・・・。

さしあたって実行してみると画面右下にログオンしているユーザーが表示される。

image

アクセス許可の作成
「アプリケーションデザイナ」の「アクセス制御」タブから[デバッグに使用するアクセス許可を定義または選択してください] グリッドで以下のように追加する。
名前:Can_View_Products
表示名:View Products
説明:Allows access to the Products screen

image

画面へのアクセスの制限
アプリケーション デザイナーで、[画面ナビゲーション] タブをクリック。
「商品一覧」を右クリックし、[CurrentProductList_CanRun コードの編集] を選択。

表示されたメソッドを以下のように編集する。

        partial void CurrentProductList_CanRun(ref bool result)
{
if (this.User.HasPermission(Permissions.Can_View_Products))
{
result = true;
}
else
{
result = false;
}
}


この時点で実行すると「商品一覧」はメニューに表示されなくなる。


テスト コードへのデバッグ用アクセス許可の使用
上記で追加したアクセス権をデバッグ用に許可するためには「アクセス制御」タブで「デバッグ用に許可」をチェックするだけで良い。
image

◆LightSwitch、アプリケーション設定の変更

アプリケーション プロパティの設定
ソリューションエクスぷローラの「プロパティ」をダブルクリックして「アプリケーションデザイナ」画面を表示させる。

「全般」タブは以下のようになっており、
image

アプリケーション名、アプリケーションアイコン、アプリケーションバージョン等が指定できる。

ロゴイメージも指定したみたが、現時点ではどこに反映されるのか判らなかった。

2011年9月17日土曜日

◆ダメだこりゃ

9月17日、中日戦。
先発は西村とネルソン。

両者1本ずつホームランを打たれて1-1の同点。
ネルソンはそれほど良くなかったが、チャンスで長野の当たりがことごとく正面を突いて得点できない。
ツキは中日といった感じ。

7回、ノーアウトでブランコが2塁打。
続く打者を抑えて2アウト3塁で堂上。
誰がみてもここが勝負所。
後続は8番9番なのできわどいところを突いて歩かせてでも慎重に攻めたいところ。
なのに阿部君、また2ストライクからインコースを要求し甘くなった球を完璧に打たれる。
西村はもともとシュートピッチャーでインコースのストレートはシュート回転して甘くなるケースが多々ある。なんてこたぁ、誰でも判るのに・・・。
駄目だこりゃ。まったく学習能力が無い。
外のシュートかフォークで誘って見逃されたら仕方がないってリードが定石でしょうに。
バッティングも冴えないしリードも冴えない。

1点をリードされた8回。
また、越智なんて投げさせてる原君はまだ見切りをつけないんだね。
この間初登板でちょっと打たれた藤井なんかは1日で2軍に落とす癖に。
なんか個人的な好き嫌いがあるんだろうかね・・・。

今シーズンも思いっきり秋風が吹いてきた。

阿部、ラミレス、原のあんぽんたんトリオで今日も負け。

◆LightSwitch、メニューとコマンドの作成

画面へのコマンドの追加
ソリューションエクスプローラでCurrentProductListをダブルクリックしてデザイナー画面を開く。

中央ペインの「スクリーンデザイナー」で「データグリッド Products By Category」の下の「コマンドバー」をクリックし表示された「追加」ボタンから「新しいボタン」をクリックする。
image

表示されたダイアログで「新しいメソッド」、「名前」欄にProductCountと指定する。
image

左ペインに追加されたProductCountメソッドを右クリックし「Excuteコードの編集」を選択。
image

表示された「ProductCount_Execute」メソッドを以下のように編集。

        partial void ProductCount_Execute()
{
String count = this.ProductsByCategory.Count.ToString();
this.ShowMessageBox("There are " + count +
" products in this category.", "Category Count", MessageBoxOption.Ok);
}

また、スクリーンデザイナに追加されたボタンのプロパティで表示名を判り易い名前に変更しておく。(ここでは「カウント」とした)


これを実行すると「Products By Category」グリッドに「カウント」ボタンが表示され、クリックすると件数を表示するメッセージボックスが表示される。
image


image


アプリケーション ツールバーへのシェル コマンドの追加
CustomerテーブルをContactNameで検索し該当するデータを一覧表示。一覧をクリックすると詳細画面を表示するサンプルを作る。


まず検索のもとになるクエリーを作成する。



  • ソリューションエクスプローラでCustomerを右クリックし「クエリーの追加」を選択。
  • 表示されたクエリーデザイナ画面で以下のようなクエリーを作成する。
    (プロパティの名前欄でMatchCustomerを指定する。)
    image
  • ツールバーから「画面の追加」をクリックし、表示された以下の画面にて、テンプレートに「データ検索画面」、画面名に「SearchCustomer」、画面データに「MatchCustomer」を指定する。image
  • この状態で実行し、「タスク」一覧から「Search Customer」を選択すると検索画面が表示されるので「Customers Item Contact Name」欄に検索するContactNameを入力してEnterキーを押すと該当の顧客データが表示される。
    image
  • 会社名がリンクになっているのでクリックすると詳細画面が表示される。
    image
    ここで編集し更新することも可能だ。
    ただし、この詳細画面はソリューションエクスプローラには表示されないので現時点ではどのようにカスタマイズするのかは不明。(とりあえずここでは追求しない)

次に、このContactNameを検索画面から入力するのではなく、他の画面からパラメータとして与えて表示させてみる。



  • SerchCustomerデザイナー画面で左ペインから「CustomersItemContactName」を選択し、プロパティ画面の「パラメータである」をチェックする。
    これにより、外部からSerchCustomer画面を開くときに引数としてContactNameを渡せるようになる。
    ちなみに、この「CustomersItemContactName」は検索条件としてContactNameを入力する画面コントロールにバインドされた変数であり、この変数の値が「MatchCustomer」クエリーのContactNameパラメータに設定される。
    image
  • ソリューションエクスプローラでContactList画面をダブルクリックしデザイナー画面を表示させる。
    (ContactList画面は初めての LightSwitch アプリケーションの作成にて作成している)
  • 「画面コマンドバー」の「追加」ボタンをクリックして「新しいボタン」を選択。
    image
  • 「ボタンの追加」ダイアログが表示されるので「新しいメソッド」としてFindを指定しOKをクリック。
  • 左ペインに「Find」メソッドが追加されるので、それを右クリックして「Executeコードの編集」を選択。
    (このFindボタンは実行時に画面最上部のリボンに表示されるのでプロパティにて適当な画像を指定しておくとよい)
    image
  • 表示された「Find_Execute」メソッドを以下のように編集する。

            partial void Find_Execute()
    {
    Application.ShowSearchCustomer(ContactSet.SelectedItem.ContactName);
    }

    Applicationクラスの「ShowSearchCustomer」メソッドはSearchCustomer画面を作った時に自動的に生成されているようである。
    ContactSetはContactListを一覧表示しているDataGridのソース。
    この値を引数にセットしてSearchCustomer画面を開くことにより「MatchCustomer」クエリーにContactNameが引き渡される。
  • 実行して「タスク」一覧に表示された「Contact List」をクリックするとグリッドにContactの一覧が表示されるので適当な行を選択して「Find」ボタンをクリックする。
    image
  • 「検索」画面に選択した「ContactName」の顧客情報が表示されればOK
    image

メニュー項目のカスタマイズ
実行時に左ペインのタスク一覧に表示されるメニューをカスタマイズする。


ソリューションエクスプローラの「画面」ノードを右クリックし「画面ナビゲーションの編集」をクリックする。
image


「画面ナビゲーション」タブが表示され、ここでメニューの順番や名前、初期表示画面などを変更できる。
初期表示画面の変更は、表示したい画面を選択し、下にある「設定」ボタンをクリックすると良い。
image



メニュー グループの追加
実行時に左ペインに表示される「タスク」メニューをグループ化し階層表示する。


上記メニュー項目のカスタマイズと同様に「画面ナビゲーション」タブを表示させる。


「グループの追加」をクリックしグループを追加。
image


グループ名を「製品情報」とし、「画面を含める」をクリックして「商品一覧」画面を追加。


もとからある「タスク」の方はコンテキストメニュー(もしくはF2)で「顧客管理」という名前に変更し、「商品一覧」画面を削除。


これで実行すると以下のようにグループ化されたメニューが表示される。


image



スタートアップ画面の設定
スタートアップ画面の設定は上記で書いたように「画面ナビゲーション」タブの「設定」ボタンで指定することができる。


また、ここで「クリア」ボタンをクリックしてスタートアップ画面をクリアしておくと初期表示のタブが表示されずにメニューだけを表示することができる。

私が最近チェックした記事