2010-02-25 72 views
0

我是vb6的新手。我正在创建发票生成应用程序。我正在使用数据报告来显示生成的发票。 一步一步工作的过程是:获取空白数据报告vb6

输入数据到发票和ItemsInvoice表。 然后从数据库中获取maxId(Adodc)以显示最后生成的发票。

然后将最大ID作为参数传递给根据发票ID显示发票的数据报表。

我第一次生成发票时工作正常。现在第二张发票没有关闭应用程序,我收到一个空白数据报告。对于数据报告,我正在使用数据环境。

我猜数据报告为空的原因是因为该记录没有该Id,但实际上该记录正在插入数据库中。

什么问题?

回答

0

我不确定你的数据集是如何配置的,但它听起来像你有一个单一的记录在数据中,并没有正确地重新加载它。如果您的报告是通过手动移动记录集并仅显示基于您传递它的ID参数的信息,然后使用第二份报告的相同记录集,则您可能只需在记录集上将MoveFirst放回到开头。

+0

感谢您的答复 ,但我觉得这不是我送你的源代码,可以帮助理解代码可以在一个以上的职位拆分问题 由于字符 的限制问题 rsInvoice.Recordset.AddNew rsInvoice.Recordset.Fields(1)。价值=缬氨酸(cmbcustomerId.List(cmbCustName.ListIndex)) rsInvoice.Recordset.Fields(2)。价值= txtName.Text rsInvoice.Recordset.Fields( 3).Value = txtAddress.Text rsInvoice.Recordset.Fields(4).Value = txtCity.Text rsInvoice.Recordset.Fields(5).Value = Val(txtPhone.Text) rsInvoice.Recordset.Fields(6) .Value =日期 – arvind 2010-03-03 11:18:18

+0

rsInvoice.Recordset.Update rsInvoice.Refresh rsMaxId.Recordset.Requery rsMaxId.Refresh 如果DataEnvironment1.rsInvoice_Grouping.State <> 0,则DataEnvironment1.rsInvoice_Grouping.Close “在这里我得到最后插入的发票编号这是正确的 DataEnvironment1.Invoice_Grouping(rsMaxId.Recordset.Fields(0).value的) “但在这里没有得到记录的inovice ID我传递的问题可能是DataEnvironment1.rsInvoice_Grouping的记录并不令人耳目一新 发票。刷新 invoice.Show – arvind 2010-03-03 11:24:57

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 

那就是它! 你完成了。我相信它会起作用。请告诉我,如果没有。

0

我不知道答案仍然会打扰你,但如果别人有同样的问题在这里的问题是如何工作的一个例子: 想象一下,有一个门,看是谁进入了一个后卫,当第一个人(第一张发票)到来时,警卫注册他,打开门(这是“Load DataEnvironmet”事件),然后让这个人通过。警卫认为没有其他人会来打开门(指令认为数据环境结束并且EOF的值变为真),但当第二个人来(第二个发票)时,警卫不能问他是谁(再次,价值,并让它通过没有注册他(这就是为什么第二个发票,并随后在发票的空白)的原因。解决办法是关闭门(“卸载数据环境”)后一个男人(显示数据报告后) 解决方案是从上面的Sangita给出的代码,但是在结束子程序之前,您需要卸载正在处理的数据环境 对于我来说,它的工作原理很抱歉,如果答案不是你在找什么(如果别人不明白我在写什么,我的英文不是很好)。以防万一我会用解决方案写代码

Load DataEnvironment1 
With DataEnvironment1 

    If .rsCommand1.State <> 0 Then 
    .rsCommand1.Close 
    End If 
    .Command1 Value(ID) 

End With 
DataReport1.Refresh 
DataReport1.Show 
Unload DataEnvironment1 
-1

尝试刷新方法,如data1.recordset.requeryData1.refresh。如果您使用数据控件,这应该工作。