C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[10]: VB2008でWeb印刷


(過去ログ 79 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■46869 / inTopicNo.1)  VB2008でWeb印刷
  
□投稿者/ itoh (4回)-(2010/02/12(Fri) 18:47:29)

分類:[VB.NET/VB2005 以降] 

VB2008のWebアプリケーションでWebページを印刷することは可能でしょうか?
できればGridViewやPanelの内容だけ印刷させたいのですが。

よろしくお願いします。
引用返信 編集キー/
■46871 / inTopicNo.2)  Re[1]: VB2008でWeb印刷
□投稿者/ はつね (1190回)-(2010/02/12(Fri) 19:23:10)
No46869 (itoh さん) に返信
> VB2008のWebアプリケーション

WEBアプリの場合、基本的に印刷する機能はブラウザに依存します。

それともブラウズしている画面を表示したりブラウザから特定範囲を印刷する
Windowsアプリをつくってまで実現したいのでしょうか。

引用返信 編集キー/
■46875 / inTopicNo.3)  Re[2]: VB2008でWeb印刷
□投稿者/ やじゅ (1520回)-(2010/02/12(Fri) 21:27:28)
やじゅ さんの Web サイト
> ■No46869 (itoh さん) に返信

Ajaxライブラリの1つであるjQueryのjPrintAreaを使ってみるとか

[JS]指定した箇所だけを印刷できるスクリプト -jPrintArea
http://coliss.com/articles/build-websites/operation/javascript/497.html
http://www.skuare.net/2007/10/javascriptjprintarea.html

※印刷する際はブラウザの印刷からではなく、別に印刷ボタン(印刷のリンク)を設置する必要があります。

引用返信 編集キー/
■46881 / inTopicNo.4)  Re[3]: VB2008でWeb印刷
□投稿者/ itoh (5回)-(2010/02/13(Sat) 03:58:13)
>はつねさん
ASP.NETでインターネットエクスプローラで表示している内容を印刷させます。
Windowsアプリは作りません。

>やじゅさん
ありがとうございます、来週試してみます。
引用返信 編集キー/
■46925 / inTopicNo.5)  Re[4]: VB2008でWeb印刷
□投稿者/ itoh (6回)-(2010/02/14(Sun) 18:48:42)
やじゅさんのリンク(http://www.skuare.net/2007/10/javascriptjprintarea.html)を参考にしてVB2008で下記を作成してみました。


*ここから

・<%@ Page Language="VB" MasterPageFile="~/MstSub4Sub.master" AutoEventWireup="false" CodeFile="Web41Kosyo.aspx.vb" Inherits="Web41Kosyoshien" title="無題のページ" %>

・<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder3" Runat="Server">

・<script src="~/jquery-1.4.1.min.js" type="text/javascript"></script>
・<script src="~/jquery.jPrintArea.js" type="text/javascript"></script>
・<script type="text/javascript">
・$(document).ready(function(){
・$('.link').click(function(){ $.jPrintArea('#print_area') });
・});
・</script>

・くa href="#" class="link">印刷く/a>
・・・以下略

*ここまで


しかし下記の警告があり
・JScript IntelliSense の更新エラー: ・・・\jquery-1.4.1.min.js: オブジェクトでサポートされていないプロパティまたはメソッドです。 @ 32:399
・”くa href="#" class="link">印刷く/a>”で クラスまたは CssClass 値が定義されていません。

VB2008のデバッグ開始をすると下記メッセージが
・Microsoft JScript 実行時エラー: オブジェクトを指定してください。
下記の箇所で表示され、印刷をクリックしても機能しません。
・$(document).ready(function(){”
・$('.link').click(function(){ $.jPrintArea('#print_area') });”
・});”

VB2008のWebアプリケーション作成では使用できないでしょうか?
質問ばかりですいません。
引用返信 編集キー/
■46931 / inTopicNo.6)  Re[5]: VB2008でWeb印刷
□投稿者/ やじゅ (1527回)-(2010/02/14(Sun) 20:09:10)
やじゅ さんの Web サイト
No46925 (itoh さん) に返信
> VB2008のWebアプリケーション作成では使用できないでしょうか?

とりあえず、jQueryが使えるようにしてから取り組むといいかも知れませんね。

ASP.NETプログラマーのためのjQuery入門
http://www.atmarkit.co.jp/fdotnet/special/jquery/jquery_01.html
引用返信 編集キー/
■46971 / inTopicNo.7)  Re[6]: VB2008でWeb印刷
□投稿者/ itoh (7回)-(2010/02/15(Mon) 15:26:28)
>やじゅさん

リンクを参考にしてjquery.js、jquery-vsdoc.jsを配置しなおしjQuery用IntelliSenseが有効にできることまでは確認できました。

下記警告は消えました。
・JScript IntelliSense の更新エラー: ・・・\jquery-1.4.1.min.js: オブジェクトでサポートされていないプロパティまたはメソッドです。 @ 32:399

しかしまだ、VB2008のデバッグ開始をすると下記メッセージが
・Microsoft JScript 実行時エラー: オブジェクトを指定してください。

下記の箇所で表示され、印刷をクリックしても機能しません。
・$(document).ready(function(){”
・$('.link').click(function(){ $.jPrintArea('#print_area') });”
・});”



引用返信 編集キー/
■46972 / inTopicNo.8)  Re[7]: VB2008でWeb印刷
□投稿者/ itoh (8回)-(2010/02/15(Mon) 15:29:46)
ちなみに、jquery.jPrintArea.js はダウンロードできるところが見つけられなかったので
下記をコピペして作成しました。

http://plugins.jquery.com/files/jquery.jPrintArea.js.txt
引用返信 編集キー/
■46978 / inTopicNo.9)  Re[8]: VB2008でWeb印刷
□投稿者/ はつね (1193回)-(2010/02/15(Mon) 16:00:25)
No46972 (itoh さん) に返信
> ちなみに、jquery.jPrintArea.js はダウンロードできるところが見つけられなかったので
> 下記をコピペして作成しました。
>
> http://plugins.jquery.com/files/jquery.jPrintArea.js.txt

jQueryって同じようなことをしているやつをコピペでそのまま動くとかいうシロモノなんでしたっけ?
VB2008でASP.NETを使ってWEBアプリ使っているなら、
・印刷ボタンクリック→印刷したいところだけ表示→ブラウザの標準機能で印刷
・印刷ボタンクリック→ActiveReportsなどのWEBから印刷できる機能を使って印刷したい部分を定義しておいて印刷
というアプローチもあると思います。


引用返信 編集キー/
■46981 / inTopicNo.10)  Re[7]: VB2008でWeb印刷
□投稿者/ もりお (184回)-(2010/02/15(Mon) 16:34:12)
No46971 (itoh さん) に返信

> ・Microsoft JScript 実行時エラー: オブジェクトを指定してください。

オブジェクトを参照できないですよーということですよね。

オブジェクトとなりえるのは
$
document
'.link'
$.jPrintArea
'#print_area'

確認点としましては
jQuery と jPrintArea の読み込むファイル名は間違っていないでしょうか。
マスターページを使用されているようですが WebForm からスクリプトへのパスは間違っていないでしょうか。
たとえばスクリプトファイルが WebForm から見て1階層上にある場合は
  <script type="text/javascript" src="../jQuery.js"></script>
サイトルートからのパスを指定するという手もあります。
  <script type="text/javascript" src="/jQuery.js"></script>

document の綴りは間違っていないでしょうか。

'.link' はドキュメント内に存在しますでしょうか。
class 属性が link の要素がドキュメント内に存在する必要があります。
たとえば
<div class="link">
  印刷
</div>

'#print_area' はドキュメント内に存在しますでしょうか。
id 属性が print_area の要素がドキュメント内に存在する必要があります。
たとえば
<div id="print_area">
  ...
</div>

引用返信 編集キー/
■46986 / inTopicNo.11)  Re[8]: VB2008でWeb印刷
□投稿者/ itoh (9回)-(2010/02/15(Mon) 17:06:46)
>はつねさん

マスターページを使用しており本体のみを印刷させたいのですが、ブラウザの標準機能印刷ではマスタ部分も印刷されてしまいます。
本体の内容が下部マスターに隠れて印刷されることもあります(ブラウザ表示ではスクロールすれば見える)。

印刷用に本体のみのページを用意することを検討しています。


>もりおさん

スクリプトへのパスは同じ階層で間違ってないとおもいますが。
<script src="~/jquery.js" type="text/javascript"></script>
<script src="~/jquery.jPrintArea.js" type="text/javascript"></script>

htmlについても素人ですが下記がソースです。

*ここから

<%@ Page Language="VB" MasterPageFile="~/MstSub4Sub.master" AutoEventWireup="false" CodeFile="Web41Kosyo.aspx.vb" Inherits="Web41Kosyoshien" title="無題のページ" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder3" Runat="Server">

<script src="~/jquery.js" type="text/javascript"></script>
<script src="~/jquery.jPrintArea.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.link').click(function(){ $.jPrintArea('#print_area') });
});
</script>

くa href="#" class="link">印刷く/a>

<asp:Panel ID="Panel3" runat="server" Height="667px" Width="1268px"
Wrap="False" ScrollBars="Auto">
<asp:Panel ID="Panel4" runat="server"
Height="663px" Width="1252px">
<table cellpadding="0" cellspacing="0"
style="width: 863px; height: 48px; font-family: 'MS ゴシック', 'Courier New', monospace;">
<tr>
<td style="width: 10px; height: 12px">
</td>
<td style="height: 12px; width: 791px">
</td>
<td class="style2" style="height: 12px">
</td>
</tr>
<tr style="background-color: #C0C0C0">
<td style="width: 10px; background-color: #FFFFFF;">
&nbsp;</td>
<td style="width: 791px; background-color: #C0C0C0;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 設備選択:<asp:RadioButton ID="RadioButton1" runat="server" Checked="True"
Font-Names="MS ゴシック" GroupName="gSetubi" Text="全て " /><asp:RadioButton ID="RadioButton2" runat="server" Font-Names="MS ゴシック"
GroupName="gSetubi" Text="主ゲート " /><asp:RadioButton ID="RadioButton3" runat="server" Font-Names="MS ゴシック"
GroupName="gSetubi" Text="上流ゲート " /><asp:RadioButton ID="RadioButton4" runat="server" Font-Names="MS ゴシック"
GroupName="gSetubi" Text="下流ゲート " /></td>
<td align="center">
<asp:Button ID="Button1" runat="server" Text="印刷"
OnClientClick="text/javascript('#print_area')" />
</td>
</tr>
</table>
<br />
<table cellpadding="0" cellspacing="0" style="width: 910px; height: 84px">
<tr>
<td style="width: 10px">
&nbsp;</td>
<td valign="top">
<div id="print_area">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Font-Bold="False" Font-Names="MS Pゴシック" Font-Size="11pt" Width="856px"
DataKeyNames="DfErrNo">
<RowStyle BorderStyle="Inset" Height="25px" HorizontalAlign="Center" />
<Columns>
<asp:BoundField DataField="DfNo" HeaderText="番号">
<HeaderStyle Width="45px" />
<ItemStyle Width="45px" />
</asp:BoundField>
<asp:ButtonField ButtonType="Image" CommandName="Shindan" HeaderText="設備"
ImageUrl="~/image/icon_sindan.gif">
<ItemStyle Width="45px" />
</asp:ButtonField>
<asp:ButtonField ButtonType="Image" CommandName="Kasyo" HeaderText="故障箇所"
ImageUrl="~/image/icon_damage.gif">
<ItemStyle Width="90px" />
</asp:ButtonField>
<asp:BoundField DataField="DfGate" HeaderText="ゲート名">
<ItemStyle Width="90px" />
</asp:BoundField>
<asp:BoundField DataField="DfSetubi" HeaderText="設備">
<ItemStyle Width="135px" />
</asp:BoundField>
<asp:BoundField DataField="DfNaiyoh" HeaderText="故障内容">
<ItemStyle Width="402px" />
</asp:BoundField>
<asp:BoundField DataField="DfLevel" HeaderText="故障レベル">
<ItemStyle Width="90px" />
</asp:BoundField>
<asp:BoundField DataField="DfErrNo" HeaderText="Err" Visible="False" />
</Columns>
<HeaderStyle BackColor="#FF66CC" BorderStyle="Inset"
Font-Bold="False" ForeColor="White" Height="25px" />
</asp:GridView>
</div>
</td>
</tr>
</table>
</asp:Panel>
</asp:Panel>
</asp:Content>

*ここまで。
引用返信 編集キー/
■46991 / inTopicNo.12)  Re[9]: VB2008でWeb印刷
□投稿者/ もりお (185回)-(2010/02/15(Mon) 19:04:18)
No46986 (itoh さん) に返信

> スクリプトへのパスは同じ階層で間違ってないとおもいますが。

こんな感じでもう一度確認してみてはいかがでしょうか。

<script type="text/javascript">
    window.onload = function() {
        if (typeof $ == "function") {
            alert("jQuery の参照に成功しました");
        } else {
            alert("jQuery の参照に失敗しました");
            return;
        }

        if (typeof $.jPrintArea == "function") {
            alert("jPrintArea の参照に成功しました");
        } else {
            alert("jPrintArea の参照に失敗しました");
            return;
        }
    }
</script>

> <script src="~/jquery.js" type="text/javascript"></script>
> <script src="~/jquery.jPrintArea.js" type="text/javascript"></script>

この記述だと Web41Kosyo.aspx と同じ階層に ~ という名前のフォルダがあり
そのフォルダ内に jquery.js jquery.jPrintArea.js が配置されている必要があります。

Web41Kosyo.aspx と同じ階層にスクリプトを配置されているのでしたら
このようにしてみてください。
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.jPrintArea.js" type="text/javascript"></script>

引用返信 編集キー/
■47016 / inTopicNo.13)  Re[10]: VB2008でWeb印刷
□投稿者/ itoh (11回)-(2010/02/16(Tue) 10:49:03)
もりおさんの言われる通りに ~/ を削除したらできました。
これで、やじゅさんに教えていただいたjQueryが使っていけそうです。
協力してくれた皆さん、ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -