アクティブレポートの出力に関して教えて頂ければと思います。
印刷ボタン側(画面)の処理でデータセットへ格納し、それをアクティブレポートで出力しようと
考えていますが、どうしても上手く表示されません。
条件指定等でSQLを変化させたいと考えている為、どうしても印刷ボタン側(画面)でデータセット
に格納しています。
下記のような記述だけでは動かないのでしょうか。。。
《印刷ボタン側での処理》
private void btn_test_Click(object sender, EventArgs e)
{
// コネクション作成
//MySQL接続設定
string sqlcmd = "userid=XXXXXX;"
+ "password=999999;"
+ "database=db_syain;"
+ "Host=172.16.99.99";
MySqlConnection cn = new MySqlConnection(sqlcmd);
MySqlDataAdapter da = new MySqlDataAdapter("select * from t_syain", cn);
DataSet myds = new DataSet();
da.Fill(myds,"myTable"); //データセットに全て格納できている事は確認
Form6 frmForm6 = new Form6();
frmForm6.ShowDialog();
}
《受け取り側フォーム》
public partial class Form6 : Form
{
NewActiveReport3 rpt = new NewActiveReport3(); //アクティブレポート3へ出力を考えています。
public Form6()
{
InitializeComponent();
rpt.DataSource = "myds";
rpt.DataMember = "myTable";
this.viewer1.Document = rpt.Document;
rpt.Run();
}
}
No.1ベストアンサー
- 回答日時:
さてさて、これはデータセットのインスタンスがどこにあるか、という事になる。
まず状況の再確認から。データセットとしてデータを準備する印刷ボタン押下イベントがあり、ActiveReportsViewerが貼り付けられている受け取り側フォームがある。ActiveReportsのレポートは受け取り側フォームのインスタンス変数となっている。
恐らくDBからデータを取得してデータセットにFillするところまではうまくいっているのだろう。
では、受け取り側フォームの中に用意したrptのDataSourceメンバーに設定したmydsだが、さてこれは「何を指している」のだろうか。
rptのDataSourceメンバーとDataMemberメンバーに値を設定しているという事は、レポートはデータセットとバインドして出力していると推測できる(かどうかは正確には不明)。ところで、rptのDataSourceメンバーは自分自身のプロパティーに文字列(名前)でアクセスするために設定する。なので、データセットとのバインド(バウンド)の場合、わざわざプログラム上ではバインドされるデータセット名を指定するのではなく、型付のデータセットを用意してバインドし、そのデータセットインスタンスに対してデータを流し込んでやる方が良いだろう。
改めてソースに対してレビューを行うと、問題点は印刷ボタンイベントでnewしたDataSetのインスタンスをどうやってNewActiveReport3クラスのインスタンスであるrptに受け渡しているか、だ。そこに関する記述が一切ないため、本当に無い(本当に受け渡していない)のか、受け渡しのプログラムは用意しているけど省略したのかが分からない。
とりあえずrpt(NewActiveReport3クラス)を、アンバウンドでやるのかデータセットとのバウンドでやるのかをはっきりさせてはどうだろう。その方がどう直すかというヒントを得やすいのではないでしょーか。
大まかな方向性は以下のようになるのではないかと思われる。
●アンバウンド→NewActiveReport3クラスにpublicなDataSetの変数mydsを用意し、データセットをnewしてDBからの内容をFillした後、rpt.mydsに代入する。NewActiveReport3クラスの各描画イベントでmydsのmyTableから1行ずつデータを取得して、レポートの各項目に値を埋めていく。
●バウンド→NewActiveReport3クラスにpublicなDataSetの変数mydsを用意し、データセットをnewしてDBからの内容をFillした後、rpt.mydsに代入する。その後はレポートの機能を使って適当にやる。
この回答への補足
返答が遅くなりまして申し訳ありません。
頂いた内容をもとに作成したところ、ようやく動くようになりました!!
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Java Java 配列<選挙> 4 2023/07/31 15:07
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mallocについて
-
へんな現象
-
C#,vb.netで業務用アプリ開発と...
-
インクリメント演算子のみを用...
-
C言語をコンパイルするとコンピ...
-
gccを行ってもexeファイルが生...
-
プログラミングについての質問...
-
double型が正常に認識されてい...
-
C言語の関数と配列に関する質問
-
Linux Cプログラミングを学ぶた...
-
C言語 配列と関数の練習問題
-
Bitcoin、BTCはブロックチェー...
-
Linuxでの開発環境構築や設定の...
-
これなにがちがうんですか??
-
C言語 バッファについて。
-
双方向リスト
-
応用情報技術者試験の令和元年...
-
システムエンジニアの適正について
-
どちのほうがすきですか?
-
Notepad++の関数リスト表示の変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのDataTableをJoin
-
TSOのデータセット格納場所の検索
-
アクセス2003 レポートの総ペ...
-
JCLでのプロシージャの変数設定...
-
DataSetの内容がDataGridViewに...
-
VB.NETでODBC接続のデータベー...
-
帳票出力に関して
-
JCLのエラーについて
-
二つのデータの波形が似てるか...
-
決定係数がマイナスになる例っ...
-
切片あり回帰と切片なし回帰
-
相関係数Rの2乗について
-
ある1点で傾きが急激に変化する...
-
数学A整数の性質について質問で...
-
回帰式と近似式について
-
相関の表現について(高い、強い?)
-
修正済み決定係数(R2乗)がマ...
-
サンプル数の違うものの比較
-
SQLの副問い合わせと相関副問い...
-
大学のレポート
おすすめ情報