2009年11月09日
VB-Report7のWeb帳票
アドバンスソフトウェア社のVB-Report7には、ブラウザで帳票のプレビューを行う機能があり、サンプルソースも付属しています。
それを利用して、余り深く考えずに、サンプルソースとヘルプを参考に開発中のWebアプリケーションに実装すると、文字化けする不具合が発生しました。
サンプルソースのうち、絶対に変更してはいけない箇所を実装時に自分が勝手に変更していたため動かなかったというのが原因なのですが、
でも、「その部分は絶対に変更するな」なんてヘルプに書いてなかったし・・・
(デバッグせずに、「このソースをコピペすれば動くんだな」と思い込んで実装したわたくしも悪いのですが・・・)
(付属のサンプルソースを前提にすると)変えてはいけない部分というのは、
元の画面(Main.aspx)から帳票のプレビューをする画面(ReportView.aspx)へ画面遷移する際にクエリー文字列で「ViewMode=0」を渡しているところと、
帳票のプレビューをする画面(ReportView.aspx)のVBScript実装箇所で「VBReport7View1.Report = "ReportView.aspx?ViewMode=1"」としているところ、及び
ReportView.aspx.csのPage_Load内でクエリー文字列が「ViewMode=1」の時にだけ帳票出力の処理を行うこと
の3点。
どうやらプレニュー画面を表示するのに2回、Page_Loadが走るらしく、2回目のときに出力処理が行われるようにすれば正常に動作することが判明。
サンプルソースは
元の画面(Main.aspx)から帳票のプレビューをする画面(ReportView.aspx)へ遷移するときに一度Page_Loadが実行されるがクエリー文字列は「ViewMode=0」であるため出力処理は行われない。
次にVBScriptのロード処理が行われた後、再度Page_Loadが実行され、このときは「ViewMode=1」なので帳票出力処理が行われる。
という作りになっていました。
1回目のPage_Loadで出力処理をすると、正常に動作せずに、ブラウザは文字化けした画面になってしまいます。
簡単でよいのでヘルプに書いて欲しかったな。「こういう理屈だからこのタイミングで出力処理を実行させてください」みたいな。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ
それを利用して、余り深く考えずに、サンプルソースとヘルプを参考に開発中のWebアプリケーションに実装すると、文字化けする不具合が発生しました。
サンプルソースのうち、絶対に変更してはいけない箇所を実装時に自分が勝手に変更していたため動かなかったというのが原因なのですが、
でも、「その部分は絶対に変更するな」なんてヘルプに書いてなかったし・・・
(デバッグせずに、「このソースをコピペすれば動くんだな」と思い込んで実装したわたくしも悪いのですが・・・)
(付属のサンプルソースを前提にすると)変えてはいけない部分というのは、
元の画面(Main.aspx)から帳票のプレビューをする画面(ReportView.aspx)へ画面遷移する際にクエリー文字列で「ViewMode=0」を渡しているところと、
帳票のプレビューをする画面(ReportView.aspx)のVBScript実装箇所で「VBReport7View1.Report = "ReportView.aspx?ViewMode=1"」としているところ、及び
ReportView.aspx.csのPage_Load内でクエリー文字列が「ViewMode=1」の時にだけ帳票出力の処理を行うこと
の3点。
どうやらプレニュー画面を表示するのに2回、Page_Loadが走るらしく、2回目のときに出力処理が行われるようにすれば正常に動作することが判明。
サンプルソースは
元の画面(Main.aspx)から帳票のプレビューをする画面(ReportView.aspx)へ遷移するときに一度Page_Loadが実行されるがクエリー文字列は「ViewMode=0」であるため出力処理は行われない。
次にVBScriptのロード処理が行われた後、再度Page_Loadが実行され、このときは「ViewMode=1」なので帳票出力処理が行われる。
という作りになっていました。
1回目のPage_Loadで出力処理をすると、正常に動作せずに、ブラウザは文字化けした画面になってしまいます。
簡単でよいのでヘルプに書いて欲しかったな。「こういう理屈だからこのタイミングで出力処理を実行させてください」みたいな。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ

2009年10月31日
【VS2008】ASP.NET グリッドレイアウトはどこ?
ネットでちょ~簡単なサンプルソースを見ながら
ラベルとテキストボックスとボタンを貼り付けたのだが、
どうやったら、コントロールの位置を変えられるのかがもう
分からない。
仕事はVS2003だとはいえ、それとは別に勉強してこなかったツケですね
VS2003ではグリッドレイアウトでグリッドを表示させて絶対位置で
コントロールを配置してたんだけど。。。
とりあえずラベルの下にテキストボックス、その下にボタンを配置したかったので、
ソースに「<br />」タグを入れた。
(その後「shift+Enter」でデザイン画面からも改行できることが判明。結果的にはソースに「<br />」タグが入る)
こちらのサイトに参考になることが書いてありました。
VS2008でASP.NETのGridLayout的なことをやるには
vs2008、asp.netで自由配置

VS2003ではデフォルトでGridLayout
VS2005でデフォルトがFlowLayoutに変わり(設定によってGridLayoutになる)
VS2008でなくなったと。
本来のWebアプリ開発に必要な知識を身に着けておかないとやっていけなくなります。
HTML、XHTML、CSSなど。
Windowsアプリ開発者がいきなりVS2008でWebアプリ開発をやり始めると
かなり苦労しそう。
わたくしが約5年前、そうでした。いきなりWebやらされて泣きそうでした。
今でも苦手意識が残っとります。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ
ラベルとテキストボックスとボタンを貼り付けたのだが、
どうやったら、コントロールの位置を変えられるのかがもう
分からない。
仕事はVS2003だとはいえ、それとは別に勉強してこなかったツケですね

VS2003ではグリッドレイアウトでグリッドを表示させて絶対位置で
コントロールを配置してたんだけど。。。
とりあえずラベルの下にテキストボックス、その下にボタンを配置したかったので、
ソースに「<br />」タグを入れた。
(その後「shift+Enter」でデザイン画面からも改行できることが判明。結果的にはソースに「<br />」タグが入る)
こちらのサイトに参考になることが書いてありました。
VS2008でASP.NETのGridLayout的なことをやるには
vs2008、asp.netで自由配置

VS2003ではデフォルトでGridLayout
VS2005でデフォルトがFlowLayoutに変わり(設定によってGridLayoutになる)
VS2008でなくなったと。
本来のWebアプリ開発に必要な知識を身に着けておかないとやっていけなくなります。
HTML、XHTML、CSSなど。
Windowsアプリ開発者がいきなりVS2008でWebアプリ開発をやり始めると
かなり苦労しそう。
わたくしが約5年前、そうでした。いきなりWebやらされて泣きそうでした。
今でも苦手意識が残っとります。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ

2009年10月26日
ASP.NETでキャッシュを無効にするには
ASP.NETでキャッシュを無効にするにはいくつか方法があり、
1.
aspxファイルに
<%@ OutputCache Location="None" %>
と記述する
(<%@ OutputCache Location="None"VaryByParam=”none” %>でも可)
また、サーバ、プロキシ、ブラウザごとにキャッシュを可能・不可にする方法もあるそうです。
Bluestick.JP 開発メモ
2.
aspxファイルに
<meta http-equiv="Pragma" content="no-cache">
と記述する
3.
csファイルのPage_Loadイベント内に
Response.Cache.SetCacheability(HttpCacheability.NaCache);
と記述する
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ
1.
aspxファイルに
<%@ OutputCache Location="None" %>
と記述する
(<%@ OutputCache Location="None"VaryByParam=”none” %>でも可)
また、サーバ、プロキシ、ブラウザごとにキャッシュを可能・不可にする方法もあるそうです。
Bluestick.JP 開発メモ
2.
aspxファイルに
<meta http-equiv="Pragma" content="no-cache">
と記述する
3.
csファイルのPage_Loadイベント内に
Response.Cache.SetCacheability(HttpCacheability.NaCache);
と記述する
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ
