0

我们正在开发一个使用 ActiveReports 2(用于 VB6 的 COM)生成报告的项目,数据来自我们手动创建的 ADO 记录集(我们使用的是不返回记录集的多值数据库)。

如果我将数据字段设置为日期,并且将 Recordset 类型设置为 adDate 并具有 null 或空白值,则它在 ActiveReports 中返回“12:00 am”。如果该字段有数据,它会正确显示。我什至将记录集导出到excel,它工作正常。

有没有人见过 ActiveReport 以前有这个问题?

4

2 回答 2

1

没有使用 AR2 的经验,但我对同一家公司的 sharpgrid 控件有丰富的经验。

我会尝试将值设置为 EMPTYoCtrl.value = Empty或空白字符串oCtrl.value = ""oCtrl.value = Null. 您可能需要在加载记录集中的数据后设置这些值。

于 2012-03-02T19:43:10.370 回答
0

我不确定 ADO 记录集如何处理 adDate 类型和“空或空白”或空或什么都没有(请记住,这些值中的每一个都是不同的,并且在 ADO 本身中也可能以不同的方式处理)。如果您使用 null(或 vbNull?),您需要告诉记录集该字段可以为空。我在这里找到了关于 ADO 中的空值和日期的部分帖子。

但是,无论如何,在 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 回答