我是vb6的新手。我正在努力创建发票生成应用程序。我正在使用数据报告来显示生成的发票。 一步一步的工作流程是:
在Invoice和ItemsInvoice表中输入数据。 然后从数据库中使用(Adodc)获取maxId以显示上次生成的发票。
然后将max Id作为参数传递给根据发票ID显示发票的数据报告。
我第一次生成发票时工作正常。现在,对于没有关闭申请的第二张发票,我收到一份空白数据报告。对于数据报告,我使用的是数据环境。
我猜测数据报告是空白的原因是因为没有该Id的记录,但实际上记录正在数据库中插入。
出了什么问题?
答案 0 :(得分:0)
我不确定您的数据集是如何配置的,但听起来您在数据中只有一条记录并且没有正确地重新加载它。如果您的报告是手动移动记录集并且仅显示基于您传递的ID参数的信息,然后使用相同的记录集来显示第二个报告,您可能只需要在记录集上MoveFirst
将其恢复在开始。
答案 1 :(得分:0)
加载数据环境并刷新数据报告。 我也以类似的方式生成报告。我遇到了这个问题。这是解决方案
Load DataEnvironment1
With DataEnvironment1
'Command1 is the command added to data environment where you fire query or
'set it to point to a table
If .rsCommand1.State <> 0 Then .rsCommand1.Close
.Command1 maxid 'parameter you pass to the recordset
End With
DataReport1.Refresh
DataReport1.Show
多数民众赞成! 你完成了。我相信它会奏效。请告诉我它是否没有。
答案 2 :(得分:0)
我不知道答案是否仍然会打扰你,但如果其他人有同样的问题,这里是一个问题如何运作的例子: 想象一下,当第一个人(第一张发票)到来时,守卫登记他,打开门(这是事件“加载DataEnvironmet”)然后让那个家伙通过,有一个门和一个看守正在进入的门。警卫认为没有其他人会来打开门(指令认为DataEnvironment结束,价值EOF变为True),但当第二个人来时(第二张发票),警卫不能问他是谁(又有了价值并让它通过而没有注册他(这就是为什么第二张发票,以及随后的发票会变成空白的原因)。解决方案是在一个人之后关闭门(“卸载数据环境”)传递(显示数据报告后)。 解决方案是上面Sangita提供的代码,但在结束sub之前,您需要卸载正在处理的DataEnvironment。 对我来说,它有效。对不起,如果答案不是你想要的(如果其他人不能理解我在写什么,我的英语不是很好)。以防万一我会用解决方案编写代码
Load DataEnvironment1
With DataEnvironment1
If .rsCommand1.State <> 0 Then
.rsCommand1.Close
End If
.Command1 Value(ID)
End With
DataReport1.Refresh
DataReport1.Show
Unload DataEnvironment1
答案 3 :(得分:-1)
尝试使用data1.recordset.requery
或类似的刷新方法
Data1.refresh
。如果您使用数据控件,这应该有效。