0

ActiveReports 2(COM for VB6)を使用してレポートを生成するプロジェクトに取り組んでいます。データは、手動で作成したADOレコードセットから取得されます(レコードセットを返さないMultiValueデータベースを使用しています)。

データフィールドを日付に設定し、RecordsetタイプをadDateに設定し、nullまたは空白の値を設定すると、ActiveReportsで「12:00am」が返されます。フィールドにデータがある場合は、正しく表示されます。レコードセットをExcelにエクスポートしたところ、正しく機能しました。

ActiveReportでこの問題が発生したことはありますか?

4

2 に答える 2

1

AR2 の経験はありませんが、同じ会社のシャープグリッド コントロールの豊富な経験があります。

値を EMPTYoCtrl.value = Emptyまたは空白文字列oCtrl.value = ""またはoCtrl.value = Null. レコードセットからのデータが読み込まれた後に、これらの値を設定する必要がある場合があります。

于 2012-03-02T19:43:10.370 に答える
0

ADO レコードセットが adDate 型と「null または空白」または空または何も処理する方法がわかりません (これらの値はそれぞれ異なり、ADO 自体でも異なる方法で処理される可能性があることに注意してください)。null (または vbNull?) を使用している場合は、フィールドが null 可能であることをレコードセットに伝える必要があります。ここで、ADO の null と日付に関する部分的な投稿を見つけました。

ただし、それにもかかわらず、ActiveReports 側では、レコードセットで検出できる限り、これらの値の表示方法を制御できます。日付を含むコントロールを含むセクションの Format イベントを使用して、テキスト ボックスの出力を変更します。

具体的には、Textbox/Field コントロールの DataValue プロパティを確認し、それが "null または空白" の値 (レコードセットに入力する値に関係なく) である場合は、Field コントロールの Text プロパティを空の文字列に設定します。以下は、フォーマットイベントのコードが次のようになると私が期待するものです。

Private Sub Detail_Format()
   ' If date value is null or blank value Then make sure the date textbox displays as empty in the report output:
   If txtDate.DataValue is Nothing Then
      txtDate.Text = ""
   End If
End Sub
于 2012-03-03T06:23:15.433 に答える