作成日: 2024/12/12 最終更新日: 2025/05/20
文書種別
制限事項
詳細
ReportStartイベントでFieldsコレクションからFieldを取得し、Valueプロパティを確認すると、nullを返します。
本動作は仕様上の制限となります。
ReportStartは最初に発生するイベントです。
DataInitializeより前に発生するため、ReportStartの時点ではデータを取得できません。
各イベントの仕様は製品ヘルプの「イベントの概要」をご確認ください。
旧バージョンとの違いについて
バージョン16.0J以前は、ReportStartにデータを取得する処理が実装されている場合、DataInitializeが先読みで発生する動作になっていました。しかしながら、この動作はデータ接続を失敗させる可能性があるため、バージョン18.0Jで廃止されました。
現行の仕様では、イベントに実装されている処理に依らず、ReportStartが必ず最初に発生します。
データを取得する処理をReportStartに実装していた場合は、DataInitializeの後に発生するイベントに移動してください。
1行目のデータを取得する場合、FetchDataイベントで代替可能です。
◆サンプルコード (C#)
private bool isFirst = true;
private string firstValue;
private void SectionReport1_FetchData(object sender, FetchEventArgs eArgs)
{
// 初回発生時にFieldsから値を取得
if (isFirst)
{
firstValue = this.Fields["フィールド名"].Value.ToString();
isFirst = false;
}
}◆サンプルコード (VB.NET)
Private isFirst As Boolean = True
Private firstValue As String
Private Sub SectionReport1_FetchData(sender As Object, eArgs As FetchEventArgs) Handles MyBase.FetchData
' 初回発生時にFieldsから値を取得
If isFirst Then
firstValue = Me.Fields("フィールド名").Value.ToString()
isFirst = False
End If
End SubFetchDataより早いタイミングでデータを取得する必要がある場合は、レポートの外部でデータ接続を実行し、1行目の値をパラメータなどでレポートに渡す方法をご検討ください。