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

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

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

Re[4]: Visual Studio2008について


(過去ログ 72 を表示中)

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

■41860 / inTopicNo.1)  Visual Studio2008について
  
□投稿者/ kita (1回)-(2009/10/01(Thu) 16:42:04)

分類:[.NET 全般] 

一つ目の質問
VisualStudio2008において 印刷プレビューを表示した状態でその印刷プレビューに表示されているDBをいじるとします、そうすると印刷されたものはプレビュー画面に出ているものではなく、DBをいじった後のものが印刷されてくるのですが、この動きは通常のうごきなのでしょうか?
私的にはプレビューに表示されている内容が印字されるのが普通だとおもうのですが…一台のパソコンでしか試していないので分かる方宜しくお願いします。


二つ目の質問
PrintPreviewControlを使いプレビューを表示し、PrintDialogを呼び出し印刷をする際にページ指定をしたいと思うのですがどうもうまくいきません。
FromPageとToPageで指定したページを取得出来る所までは分かったのですが、その取得した値をどこに、どの様に放り込んでやればいいのか分からず
非常に困っております。分かる方お力添え宜しくお願い致します。


引用返信 編集キー/
■41862 / inTopicNo.2)  Re[1]: Visual Studio2008について
□投稿者/ gtk2k (89回)-(2009/10/01(Thu) 17:36:40)
一つ目の質問
どのようなコードを組んでいるのかがわからないけど、印刷時のPrintPageイベント内でいじった後のDBを使って印刷しているの?

二つ目の質問
PrintDocumentのPrintPageイベント内で引数のe(PrintPageEventArgs型)に
e.PageSettings.PrinterSettings.PrintRangeでPrintDialogで設定された印刷範囲タイプが、
e.PageSettings.PrinterSettings.FromPageでPrintDialogで設定された開始ページが、
e.PageSettings.PrinterSettings.ToPageでPrintDialogで設定された終了ページが取得できるので
ページカウンタ変数を用意しておき上記の情報を元にGraphicsオブジェクトに描画を行う。
Dim pageCnt As Integer = 1

Private Sub PrintDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
If e.PageSettings.PrinterSettings.PrintRange = PrintRange.SomePages Then ' 範囲指定されている場合
If pageCnt < e.PageSettings.PrinterSettings.FromPage Then
pageCnt = e.PageSettings.PrinterSettings.FromPage
EndIf

' pageCntのページを描画
e.Graphics.Drawxxxx(xxxx)

If pageCnt < e.PageSettings.PrinterSettings.ToPage Then
e.HasMorePages = True
pageCnt += 1
Else
e.HasMorePages = False
pageCnt = 1 ' 次回印刷のために初期化しておく
End If
End If

引用返信 編集キー/
■41877 / inTopicNo.3)  Re[2]: Visual Studio2008について
□投稿者/ kita (2回)-(2009/10/02(Fri) 09:08:02)
gtk2k さん ご回答ありがとうございます。

印刷時のPrintPageイベント内でいじった後のDBを使って印刷しているの?とありましたが そういう訳ではないんですよ。
例えば何台かのパソコンでDBを共有していた時などにまずAという人がVisual Studio2008から印刷をする為にプレビュー画面を開けたとします。
Aがプレビューを開いたと同時にBがAが印刷しようとしているDBを修正したとするとAがそのプレビュー画面から印刷した結果はプレビュー画面と
異なるってしまうというわけなのですが…

引用返信 編集キー/
■41880 / inTopicNo.4)  Re[3]: Visual Studio2008について
□投稿者/ 魔界の仮面弁士 (1334回)-(2009/10/02(Fri) 09:35:51)
No41877 (kita さん) に返信
> 印刷時のPrintPageイベント内でいじった後のDBを使って印刷しているの?とありましたが そういう訳ではないんですよ。

その質問の骨子は、

 [ア] DB から読み込んだデータを(配列やDataTableなどに)取りこんでおき、
   PrintPage イベント内では、その取りこんだデータを出力している。

 [イ] PrintPage イベント内にて、DB からデータを読み込んでいる。

のどちらのパターンですか? という意味だと思いますよ。


> Aがプレビューを開いたと同時にBがAが印刷しようとしているDBを修正したとするとAがそのプレビュー画面から印刷した結果はプレビュー画面と
> 異なるってしまうというわけなのですが…
その状況だとすると、[ア]だとすれば、

  1. データ取得処理        → 修正前データが得られる。
  2. プレビューのPrintPage → 手順1時点のデータ(修正前)が出力される。
  3. 印刷のPrintPage       → 手順1時点のデータ(修正前)が出力される。

という形になり、プレビューと印刷時でデータの相違はありません。
一方[イ]で実装されているのであれば、、

  1. プレビューのPrintPage → プレビュー時点のデータ(修正前)が出力される。
  2. 印刷のPrintPage       → 印刷時点のデータ(修正後)が出力される。

という流れになり、その時点での最新のデータが取り込まれるため、
プレビュー時と印刷時で、結果が異なる事がありえるかと。

引用返信 編集キー/
■41988 / inTopicNo.5)  Re[4]: Visual Studio2008について
□投稿者/ kita (3回)-(2009/10/06(Tue) 09:21:34)
No41880 (魔界の仮面弁士 さん) に返信
> ■No41877 (kita さん) に返信
>>印刷時のPrintPageイベント内でいじった後のDBを使って印刷しているの?とありましたが そういう訳ではないんですよ。
>
> その質問の骨子は、
>
>  [ア] DB から読み込んだデータを(配列やDataTableなどに)取りこんでおき、
>    PrintPage イベント内では、その取りこんだデータを出力している。
>
>  [イ] PrintPage イベント内にて、DB からデータを読み込んでいる。
>
> のどちらのパターンですか? という意味だと思いますよ。
>
>
>>Aがプレビューを開いたと同時にBがAが印刷しようとしているDBを修正したとするとAがそのプレビュー画面から印刷した結果はプレビュー画面と
>>異なるってしまうというわけなのですが…
> その状況だとすると、[ア]だとすれば、
>
>   1. データ取得処理  → 修正前データが得られる。
>   2. プレビューのPrintPage → 手順1時点のデータ(修正前)が出力される。
>   3. 印刷のPrintPage  → 手順1時点のデータ(修正前)が出力される。
>
> という形になり、プレビューと印刷時でデータの相違はありません。
> 一方[イ]で実装されているのであれば、、
>
>   1. プレビューのPrintPage → プレビュー時点のデータ(修正前)が出力される。
>   2. 印刷のPrintPage  → 印刷時点のデータ(修正後)が出力される。
>
> という流れになり、その時点での最新のデータが取り込まれるため、
> プレビュー時と印刷時で、結果が異なる事がありえるかと。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -