1

CrystalReport の datagridview からレコードを印刷しようとしています。

datagridview を設定する次のコードがあります。

    OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=C:\\dbaza2.mdb");
    DataTable dataT; 

 private void button1_Click(object sender, EventArgs e)
    {

        dataT = new DataTable();
        OleDbDataAdapter da = new OleDbDataAdapter();
        OleDbCommand com = new OleDbCommand("SELECT * FROM Table1, Table2 WHERE Table1.SifraP = Table2.SifraM AND Table2.Mesec = @Mesec AND Table1.Fakultet = @Fakultet ORDER BY Table.Zvawe", con);
        da = new OleDbDataAdapter(com);
        com.Parameters.AddWithValue("@Mesec", comboBox1.Text);
        com.Parameters.AddWithValue("@Fakultet", comboBox2.Text);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(da);

        da.Fill(dataT);
        this.dataGridView1.DataSource = dataT;

    }

クリスタルレポートを印刷するには、次のコードがあります

protected PoFakultetForm izvestaj = new PoFakultetForm();

private void printToolStripMenuItem_Click(object sender, EventArgs e)
    {
        PoFakultetReport raporti = new PoFakultetReport();
        raporti.SetDataSource(dataT);
        izvestaj.reportSource(raporti);
        izvestaj.Show();
    }

問題は、Datagridview が正しく取り込まれているが、CrystalReport ではデータが 4 回複製されていることです。

datagridview から CrystalReport に同じデータを設定するにはどうすればよいですか?

4

1 に答える 1

0

Crystal レポートには、レポート ヘッダー、ページ ヘッダー、詳細などのパーツがあり、フッター セクションに続きます。詳細セクション パーツに配置すると、条件付きデータに基づいて繰り返されます。ページ ヘッダーに配置すると、データは 1 回だけ表示されますが、すべてのページで繰り返されます。レポート ヘッダーに配置すると、1 回だけ表示されます。データフィールドを配置した場所を確認してください

于 2013-08-16T10:35:30.007 に答える