Amazonでお買い物
2006/10/28 Saturday - 20:34:08 by chameleonいろいろと過密スケジュールで、買いたいものも買えずAmazonにて購入を決意・・・。
つい余分なものまで買ってしまう・・・orz
ホントは書籍を買うはずだったんだけど・・・まあいいや。
いろいろと過密スケジュールで、買いたいものも買えずAmazonにて購入を決意・・・。
つい余分なものまで買ってしまう・・・orz
ホントは書籍を買うはずだったんだけど・・・まあいいや。
過密な仕事もとりあえず、今日一段落。
とはいえ、休日出勤は当たり前状態は現在もまだ継続中ではありますが。
各種書類の発送も終えたし、今日のプレゼンも終わりました。結構、成功だったようなのでそれなりに満足。
久しぶりにテレビ見てます・・・DEATH NOTE。でも、ジャンプで連載読んでるときのほうがワクワクしたなぁ。
もうひとつ、CrystalReportsネタで・・・。
先のエントリーで「メイン レポート」というタブの表示を任意の文字列にすることができるようになったのですが、ないほうがすっきりしてかっこいいんじゃないかと思うこともあるわけで、非表示にする方法も考えてみました。だいたい、さっきコードを書いたときに見当がついていたのでこれはすぐにできそうです。
調査結果
CrystalReportsViewer内には5つのコントロールがあるようです。
CrystalDecisions.Windows.Forms.PageView. (メインウィンドウ)
System.Windows.Forms.Splitter. (グループツリーとメインウィンドウの間の仕切り線)
CrystalDecisions.Windows.Forms.ReportGroupTree. (左側に表示されるグループツリー)
System.Windows.Forms.ToolStrip. (エクスポートや印刷コマンドボタンのあるツールバー)
System.Windows.Forms.StatusBar. (結構邪魔なこともあるステータスバー)
調査に用いたコード
private void checkReportViewer()
{
foreach (object obj in crystalReportViewer.Controls)
{
string sControl = obj.GetType().Name.ToString();
MessageBox.Show(sControl);
}
}
IDEに表示されるプロパティーで消せるもの
グループツリー(ReportGroupTree)とステータスバー(StatusBar)とツールバー(ToolStrip)はプロパティーの設定で非表示にできます。メインウィンドウ(PageView)は非表示にしたら意味ないですから、設定できるプロパティーはありません。スプリッター(Splitter)はグループツリーを非表示にすれば当然消えます。
よって、プロパティーで非表示を選択できなくて、なおかつ消したくなるようなオブジェクトはPageView内にある「メイン レポート」というタブとなります。
StatusBarやTab自体を消すためのコード
private void hideStatusBar()
{
CrystalDecisions.Windows.Forms.PageView objPageView = new CrystalDecisions.Windows.Forms.PageView();
System.Windows.Forms.TabControl objControl = new TabControl();
foreach(object tab in crystalReportViewer.Controls)
{
string strControl = tab.GetType().Name.ToString();
if(strControl == "StatusBar")
{
crystalReportViewer.Controls[4].Visible = false;
}
if(strControl == "PageView")
{
objPageView = (CrystalDecisions.Windows.Forms.PageView)(tab);
objControl = [...]
Crystal Reports
CrystalReports XI Release2はVisualStudio2005と併用すると、VisualStudioのIDEに統合されて、非常に使い勝手のよい帳票ツールとなります。エディションによってはおまけバージョンのCrystalReportsがついてくるものもあるのですが、自分のエディションにはついていないので別途購入しました。
なお、Windowsアプリケーションなどに組み込む場合は、CrystalReports Developer版以上を購入しなければなりません。また、VisualStudioのIDE内で使うためにはRelease2にアップグレードするためのパッチ(無料)を当てなければ利用できないなどちょっとわかりにくい製品構成になっています。
Crystal Reports Viewerのタブの文字がダサい
Windowsアプリケーションに埋め込みで作成した帳票は、CrystalReportViewerから見ると、レンダリングされたときViewer内に「メイン レポート」というタブが表示されます。レポート名とかが表示されたり、任意の文字列を指定できれば使い道も広がるのですが、「メイン レポート」しか出てこないのではちょっと使い道がありません。そこで、
任意の文字列に変更ができないか?
非表示にできないか?
を検討してみることにしました。
まず、ご本家のFAQによると
Q.【開発】 .NETのビューアでプレビューを実行した時のビューア左上の [メイン レポート] のタブは非表示にできますか。
A.残念ですが、このタブを非表示にはできません。固定で表示する内部仕様となります。(2004/11/06)
ダメじゃん。サポート元でキッパリと言い切られています。
もちろん、CrystalReportViewerのプロパティー設定でも消すことはおろか、タブの文字列を設定することすらできません。
が、もう少しGoogle先生に働いてもらったところ、「クリスタルレポート技自慢」という掲示板で「No.2287」の質問
クリスタルレポートビューワーのタブの「メインレポート」という文字列は
変更できないのでしょうか?
ご存知でしたら、ご教授ください。
というのがあり、その回答のひとつに
ちょっと無理やりですが、変更出来ますよ。
※Crystal Reports for Visual Studio .NET 2003で確認
Dim objRepView As Object
Dim objControl As Object
For Each objRepView In CrystalReportViewer1.Controls
If objRepView.GetType.Name = "PageView" Then
For Each objControl In objRepView.Controls
If objControl.GetType.Name = "TabControl" Then
CType(objControl, TabControl).TabPages(0).Text = "変更したいタイトル"
End If
Next
End If
Next
というのがありました。コードで変更できるとわかれば問題ありません。
上記のコードをとりあえず、C#に書き換えてみます。が、VBとちがって、C#はクラス名とか厳密に記述しないといけなかったりするので・・・えーっと、VBの「CType」ってキャストのことか・・・とかいろいろVBを思い出しながら書き換え、「論よりRun」します。
動きません・・・orz。
まあ、安易に人に頼ってはいけないと思い直し、ちゃんと細かく調査をしながらやり直します。
private void setTabText(CrystalDecisions.Windows.Forms.CrystalReportViewer crystalReportViewer, string newText)
{
foreach (Control control in crystalReportViewer.Controls)
if [...]
Visual Studio 2005からビルドしたアプリケーションの配布に「Click Once」が利用できるようになりました。
ノータッチディプロイメントの発展型のような、この技術・・・結構便利です。
特にリリース初期の、こまめにリビジョンアップするようなときには、セットアップファイルの配布に関して頭を悩ますことが減ります。
ここでは、利用しているレンタルサーバーサービス「XREA.COM」で「Click Once」を利用するときの覚書を・・・。
XREA.COMで「Click Once」を利用するためには、.htaccessの編集が必要です。
WEBサイトに配置されたSetupを実行するとブラウザにXMLファイルが表示されてしまうためです。
これはサーバーに、application 拡張子が MIME 型 “application/x-ms-application” に関連付けられていないためです。
.htaccessファイルで設定をオーバーライドしてやれば問題ありません。
.htaccessに追加する設定
AddType application/x-ms-application .application
先日実験環境ではうまく動作していたコードが、他のクライアントへインストールしたら動かなかった件でかなり落ち込んでいました。
まあ、職場用のツールなので、動かないからと言ってさしたるダメージはないのですが気分がすぐれないことは間違いありません。
自分の職場のSQLServerは管理者権限のないアカウントではWindows統合認証でデータベースにアクセスさせてくれないようでした。
で、SQLServer認証でデータベースにログオンするように書き換え・・・数行の書き換えですのであっさりとクリア。
でもその後が・・・。
しばらくVisualStudioさわらないうちにあれこれと知らないことが増えてたなぁ・・・。
そんなわけでしばらくは、CrystalReportsとVSネタが個人的にブームですので、エントリーにはその二つが続く気配です。
Crystal Reportsのマージモジュール「CrystalReports11_5_NET_2005.msm」をセットアッププロジェクトに追加してビルドすると183個も「警告」を受けた。気が遠くなる。
しかしビルドに時間がかかるなぁ。
わずかなリビジョンアップですが・・・まもなくアップできるかな。
サーバーも引っ越したし、やっと安定してきたので気を取り直してぼちぼちといきます。
右手が痺れてます。
端的に働きすぎだと思います。
だって、せっかくコード書いたのに・・・実験環境ではうまくいっていたのに、本番環境で実行したら動かない・・・orz
なんでWindows統合認証できないのか、明日SQL認証で書き直そう・・・。些細な変更で済むことをひたすら願って、寝ます。
P.S.
明日書き直すって、もう明日の日付になってるじゃん・・・orz
自宅サーバーに見切りをつけて、レンタルサーバーの「XREA.COM」へ乗り換えた当初、WordPressの管理画面で「管理」の画面がまったく開けませんでした。リンクの飛び先がおかしくなるんですね・・・。
理由が判然とせず、何度かデータベースを作り直したりインストールをし直したりしたが、どうも「XREA.COM」の「自動広告挿入」機能による問題と判明。
どうせ有償サービスに切り替えるつもりだったので、即刻レジストしました。
現在はキッチリと「管理」のページも開けます。広告ももちろんなくなったので、すっきり。