- PR -

【ActiveReports】ビューワを未表示にする方法

投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2003/06/26
投稿数: 76
投稿日時: 2006-11-17 15:22


[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 21:38 ]
ジャック
会議室デビュー日: 2006/11/16
投稿数: 6
投稿日時: 2006-11-17 15:51
じゃんぬねっと様、ぜうす様

アドバイスありがとうございました。

引用:

じゃんぬねっとさんの書き込み (2006-11-17 15:00) より:

Windows アプリケーションですから、自らコードに "そうなるように" 書いていると思います。



コードを検索してもCloseコマンドが発見できませんでしたし、印刷が終わっても残り続けています。
特に何かコードを消したという記憶はないのですが・・・。
(それとも、Closeコマンドを入れるのは基本中の基本であって、私が間抜けだっただけ?)

とりあえず、問題はCloseコマンドを追加することで解決しました。

本当にありがとうございましたm(_ _)m
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-17 16:11
引用:

ジャックさんの書き込み (2006-11-17 15:51) より:

コードを検索してもCloseコマンドが発見できませんでしたし、印刷が終わっても残り続けています。


なぜ、いきなりここで "Close" が出てくるのでしょうか?
ぜうすさんの投稿は誤りであることは、ぜうすさん自信のご投稿で理解できるかと思います。

引用:

特に何かコードを消したという記憶はないのですが・・・。
(それとも、Closeコマンドを入れるのは基本中の基本であって、私が間抜けだっただけ?)


なぜ、いきなりここで "消した" とかそういった話になるのでしょうか?
そこに至った経緯が書かれていないと、理解ができないです。

引用:

とりあえず、問題はCloseコマンドを追加することで解決しました。


その解決方法は、正しい解決にはなっていないと思います。

直接印刷した (PrinterToPrint メソッド) 時は、プレビューなど表示されないわけで、
どこかで、プレビューを表示するようなコードを実装しているだけだと私は言いたかったのです。
(たとえば、プレビューと直接印刷の分岐がうまくいっていないとか)

そのコードを正すのが、本来の解決方法でしょう。
それと、私が明確にアドバイスが出せないのは、コードが提示されないからです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ジャック
会議室デビュー日: 2006/11/16
投稿数: 6
投稿日時: 2006-11-17 18:26
引用:

なぜ、いきなりここで "消した" とかそういった話になるのでしょうか?
そこに至った経緯が書かれていないと、理解ができないです。


「Winアプリなら自らコードにそうなるように書いている」とおっしゃったので、自動生成されるはずだとおっしゃっているのかと思いました。
ですので、そのようなコードを消した覚えはないと言うことを書いております。

引用:

その解決方法は、正しい解決にはなっていないと思います。

直接印刷した (PrinterToPrint メソッド) 時は、プレビューなど表示されないわけで、
どこかで、プレビューを表示するようなコードを実装しているだけだと私は言いたかったのです。
(たとえば、プレビューと直接印刷の分岐がうまくいっていないとか)

そのコードを正すのが、本来の解決方法でしょう。
それと、私が明確にアドバイスが出せないのは、コードが提示されないからです。



下記にコードを掲示致します。
根本原因と思われるところ、足りないと思ったところをご指摘願います。
なにぶんC#は勉強し始めたばかりなので、お見苦しいかとは思いますが、ご容赦ください。

○フォームのコード
namespace WindowsApplication2
{
  public partial class Form1 : Form
  {
    private DataDynamics.ActiveReports.Viewer.Viewer reportViewer1;

    public Form1()
    {
      InitializeComponent();
    }

    private void InitializeComponent()
    {
      this.reportViewer1 = new DataDynamics.ActiveReports.Viewer.Viewer();
      //
      // reportViewer1
      //
      this.reportViewer1.BackColor = System.Drawing.SystemColors.Control;
      this.reportViewer1.Dock = System.Windows.Forms.DockStyle.Fill;
      this.reportViewer1.Location = new System.Drawing.Point(0, 0);
      this.reportViewer1.Name = "reportViewer1";
      this.reportViewer1.ReportViewer.CurrentPage = 0;
      this.reportViewer1.ReportViewer.MultiplePageCols = 3;
      this.reportViewer1.ReportViewer.MultiplePageRows = 2;
      this.reportViewer1.ReportViewer.ViewType = DataDynamics.ActiveReports.Viewer.ViewType.Normal;
      this.reportViewer1.Size = new System.Drawing.Size(115, 0);
      this.reportViewer1.TabIndex = 0;
      this.reportViewer1.TableOfContents.Text = "Table Of Contents";
      this.reportViewer1.TableOfContents.Width = 200;
      this.reportViewer1.Toolbar.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
      this.reportViewer1.Load += new System.EventHandler(this.reportViewer1_Load);
      //
      // Form1
      //
      this.ClientSize = new System.Drawing.Size(391, 245);
      this.Controls.Add(this.reportViewer1);
      this.Name = "Form1";
      this.Load += new System.EventHandler(this.reportViewer1_Load);
      this.ResumeLayout(false);
    }

    private void reportViewer1_Load(object sender, EventArgs e)
    {
      prtBound rpt = new prtBound();

      this.reportViewer1.Document = rpt.Document;
      rpt.Run();

      rpt.Document.Print(false, false, false);
    }
  }
}


○ActiveReportsファイルを読み込んだときに作られたコード
namespace WindowsApplication2
{
  public class prtBound : ActiveReport
  {
    public prtBound()
    {
      InitializeReport();
    }

    #region ActiveReports Designer generated code
    public DataDynamics.ActiveReports.DataSources.OleDBDataSource ds;
    private DataDynamics.ActiveReports.PageHeader PageHeader;
    private DataDynamics.ActiveReports.Detail Detail;
    private DataDynamics.ActiveReports.TextBox txtProductName;
    private DataDynamics.ActiveReports.TextBox txtQuantityPerUnit;
    private DataDynamics.ActiveReports.TextBox txtUnitsInStock;
    private DataDynamics.ActiveReports.PageFooter PageFooter;
    public void InitializeReport()
    {
      this.LoadLayout(this.GetType(), "WindowsApplication2.prtBound.rpx");
      this.ds = ((DataDynamics.ActiveReports.DataSources.OleDBDataSource)(this.DataSource));
      this.PageHeader = ((DataDynamics.ActiveReports.PageHeader)(this.Sections["PageHeader"]));
      this.Detail = ((DataDynamics.ActiveReports.Detail)(this.Sections["Detail"]));
      this.PageFooter = ((DataDynamics.ActiveReports.PageFooter)(this.Sections["PageFooter"]));
      this.txtProductName = ((DataDynamics.ActiveReports.TextBox)(this.Detail.Controls[0]));
      this.txtQuantityPerUnit = ((DataDynamics.ActiveReports.TextBox)(this.Detail.Controls[1]));
      this.txtUnitsInStock = ((DataDynamics.ActiveReports.TextBox)(this.Detail.Controls[2]));
    }
    #endregion
  }
}

○プロジェクト作成時に作られたコード
namespace WindowsApplication2
{
  static class Program
  {
    /// <summary>
    /// アプリケーションのメイン エントリ ポイントです。
    /// </summary>
    [STAThread]
    static void Main()
    {
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new Form1());
    }
  }
}
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-17 19:01
引用:

ジャックさんの書き込み (2006-11-17 18:26) より:

「Winアプリなら自らコードにそうなるように書いている」とおっしゃったので、自動生成されるはずだとおっしゃっているのかと思いました。
ですので、そのようなコードを消した覚えはないと言うことを書いております。


なるほど、了解しました。

しかし、私が書いた "自ら" というのは実装者を示します。
コード ジェネレータを "自ら ~ 書いている" とは言わないです。

引用:

下記にコードを掲示致します。

prtBound rpt = new prtBound();

this.reportViewer1.Document = rpt.Document;
rpt.Run();
rpt.Document.Print(false, false, false);


直接印刷したいのであれば、Viewer は必要ないですよね?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ジャック
会議室デビュー日: 2006/11/16
投稿数: 6
投稿日時: 2006-11-17 19:30
じゃんぬねっと様

引用:

じゃんぬねっとさんの書き込み (2006-11-17 19:01) より:

直接印刷したいのであれば、Viewer は必要ないですよね?



確かに、おっしゃる通りです。

こちらの勘違いや不手際などでご迷惑をおかけしたにもかかわらず、アドバイスありがとうございました。m(_ _)m
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-17 20:02
引用:

ジャックさんの書き込み (2006-11-17 19:30) より:

確かに、おっしゃる通りです。


解決できたみたいですね。

引用:

こちらの勘違いや不手際などでご迷惑をおかけしたにもかかわらず、アドバイスありがとうございました。m(_ _)m


いえ、こちらもうまく伝えることができずにすみませんでした。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)