GrapeCity.ActiveReports.v12 アセンブリ > GrapeCity.ActiveReports 名前空間 > SectionReport クラス : FetchData イベント |
'宣言 Public Event FetchData As SectionReport.FetchEventHandler
public event SectionReport.FetchEventHandler FetchData
イベント ハンドラが、このイベントに関連するデータを含む、SectionReport.FetchEventArgs 型の引数を受け取りました。次の SectionReport.FetchEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 解説 |
---|---|
EOF | このパラメータは参照によって渡されます。デフォルト値は true です。レポートにデータコントロールがまったくないときに、さらにレコードの処理を続行する場合は、明示的に false に設定する必要があります。レポートがデータコントロールに連結されている場合、このパラメータの値は無視され、すべてのレコードが処理されるまで、レポートの実行が継続されます。 |
このイベントは、DataInitializeイベントで追加されたカスタムアンバウンドフィールドの値を設定するために使用します。ActiveReportsは、このイベントが発生する前にアンバウンドフィールドの値をNullにすることはありません。アンバウンドフィールドの値はそのまま持ち越されるので、常にこのイベントですべてのアンバウンドフィールドの値を設定する必要があります。
レポート内で処理すべきレコードがまだ残っている場合にはeArgs.EOFを falseにします。eArgs.EOFを true にするとレポートの生成処理が終了します。このeArgs.EOFを制御することで、レポートに空白行を挿入することができます。
注意:DataInitialize、およびFetchDataイベント以外でFieldCollectionを参照しないでください。
"private void rptUnbound_DataInitialize(object sender, System.EventArgs eArgs) { // アンバウンドフィールドを作成します。 Fields.Add("CategoryName"); Fields.Add("ProductName"); Fields.Add("UnitsInStock"); Fields.Add("Description"); //作成したアンバウンドフィールドをTextBoxコントロールと連結します。 txtCategoryName.DataField = "CategoryName"; txtProductName.DataField = "ProductName"; txtUnitsInStock.DataField = "UnitsInStock"; txtDescription.DataField = "Description"; } private void rptUnbound_FetchData(object sender, GrapeCity.ActiveReports.SectionReport.FetchEventArgs eArgs) { try { // データーベースの値をアンバウンドフィールドに設定します。 m_reader.Read(); Fields["CategoryName"].Value = m_reader["CategoryName"].ToString(); Fields["ProductName"].Value = m_reader["ProductName"].ToString(); Fields["UnitsInStock"].Value = m_reader["UnitsInStock"].ToString(); Fields["Description"].Value = m_reader["Description"].ToString(); // まだ処理すべきデータが残っているのでEOF引数にFalseを設定し、継続します。 eArgs.EOF = false; } catch { eArgs.EOF = true; } } private static OleDbConnection m_cnn; private static OleDbDataReader m_reader; private void rptUnbound_ReportStart(object sender, System.EventArgs eArgs) { string m_cnnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"..\..\..\..\Data\NWIND.MDB;Persist Security Info=False"; string sqlString = "SELECT * FROM categories INNER JOIN products" + " ON categories.categoryid = products.categoryid" + " ORDER BY products.categoryid
"Dim m_cnnString As String Dim sqlString As String Dim m_reader As OleDbDataReader Dim m_cnn As OleDbConnection Private Sub rptUnbound_DataInitialize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.DataInitialize ' アンバウンドフィールドを作成します。 Fields.Add("CategoryName") Fields.Add("ProductName") Fields.Add("UnitsInStock") Fields.Add("Description") ' 作成したアンバウンドフィールドをTextBoxコントロールと連結します。 txtCategoryName.DataField = "CategoryName" txtProductName.DataField = "ProductName" txtUnitsInStock.DataField = "UnitsInStock" txtDescription.DataField = "Description" End Sub Private Sub rptUnbound_FetchData(ByVal sender As Object, ByVal eArgs As GrapeCity.ActiveReports.SectionReport.FetchEventArgs) Handles MyBase.FetchData Try ' データーベースの値をアンバウンドフィールドに設定します。 m_reader.Read() Me.Fields("CategoryName").Value = m_reader("CategoryName") Me.Fields("ProductName").Value = m_reader("ProductName") Me.Fields("UnitsInStock").Value = m_reader("UnitsInStock") Me.Fields("Description").Value = m_reader("Description") ' まだ処理すべきデータが残っているのでEOF引数にFalseを設定し、継続します。 eArgs.EOF = False Catch ex As Exception eArgs.EOF = True End Try End Sub Private Sub rptUnbound_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart m_cnnString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ + "Data Source=..\..\..\..\Data\NWIND.MDB;Persist Security Info=False" sqlString = "SELECT * FROM categories INNER JOIN products ON categories.categoryid " _ + "= products.categoryid ORDER BY products.categoryid