VC++中ListBox已用ADO向表中加入数据,并显示于报表中。如何刷新报表中的数据

我向表中添加了数据或删除数据,怎样更新报表中的数据。用记录集无法实现,方法是先关闭记录集再打开。但报表中显示先有数据,这种方法行不通,会出现RUNTIME。笨方法是重新执... 我向表中添加了数据或删除数据,怎样更新报表中的数据。

用记录集无法实现,方法是先关闭记录集再打开。但报表中显示先有数据,这种方法行不通,会出现RUNTIME。

笨方法是重新执行.exe来更新。

请问有什么方法添加数据后马上更新报表。我设定的变量为CListCstrl m_list
展开
 我来答
帐号已注销
2009-12-29 · TA获得超过4630个赞
知道大有可为答主
回答量:1345
采纳率:50%
帮助的人:1613万
展开全部
你用记录集把数据保存到数据库,再对列表操作,把数据添加到报表,就可以显示了。但这是笨办法,我也只会这个办法。

删除的时候你还用记录集删除数据,然后再从列表中删除项,就是那个Delete()函数。

——————————————————

或者使用sleep函数,不过会感觉很烦,就像延迟似的。

——————————————————
还有一种办法,你把数据添加到数据库后,对列表执行deleteallitems()函数,就是把列表中所有项都删除,从新向里面添加数据。你可以为向列表添加数据事件专门写个函数,用到就调用就行了。

——————方法三的函数———————
这是我的一个程序里的函数:
void CTxlDlg::show()
{
m_ListCtrl.DeleteAllItems();
CTxlSet tSet;
tSet.Open();
int nItem=0;
CString str;
tSet.MoveFirst();
while(!tSet.IsEOF()){
for(UINT i=0;i<8;i++)
{
tSet.GetFieldValue(i,str);
if(i==0)
m_ListCtrl.InsertItem(nItem,str);
else
m_ListCtrl.SetItemText(nItem,i,str);
}
nItem++;
tSet.MoveNext();
}
tSet.Close();

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式