如何用TListView控件来实现这样的效果!急!急!!急!!!(在线等待)

sunmedia 2002-11-19 09:51:39
各位高手:
小弟想请教如何用TListView控件实现这样的效果,要求如下:
1.ListView的ViewStyle的属性为vsReport

2.表格有3列,行数15(行数为任意一个较大的数),列名分别为单价、数量和金额
要求在输入完单价和数量后,金额那列的值自动给出!任意改变单价或者数量的值,金额那列跟着改变

3.表格的最后一行随着金额的变化,自动即时进行合计(或者说如何对金额该列的所有数值进行求和,显示在另一文本框也可)

以上是我的要求,希望能给出一段代码!

望得到高手的帮助,本人将不胜感激!!
...全文
31 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Spring414 2002-11-20
  • 打赏
  • 举报
回复
添加时:
ListView1->Items->Item[ListView1->Items->Count-1)->Delete();//删除合计行
TListItem *p;
p=ListView1->Add();
p->Caption=单价;
p->SubItems->Add(数量);
p->SubItems->Add(单价*数量);
Sum();

修改时:
TListItem *p;
p=ListView1->Selected;
if(p->Index == LIstView1->Items->Count-1)
return;//合计行不能修改
p->Caption=单价;
p->SubItems->SubItems->Strings[0] = 数量;
p->SubItems->SubItems->Strings[0] = 单价*数量;
ListView1->Items->Item[ListView1->Items->Count-1)->Delete();//删除合计行
Sum();

求合计:Sum();
double dResult=0;
for(int i=0;i<ListView1->Items->Count;i++)
dResult += ListView1->Items->Item[i]->String[1].ToDouble();
TListItem *p;
p=ListView1->Add();
p->Caption="合计:";
p->SubItems->Add("");
p->SubItems->Add(FormatFloat("#,0.00",dResult));
myy 2002-11-20
  • 打赏
  • 举报
回复
不是在TListView中直接输入吧?好象TListItem只有Caption是可以编辑的,
建议起对话框,输入完了,确认时自动算出金额和合计,添入即可。
^^^^^^
keenleung 2002-11-20
  • 打赏
  • 举报
回复
可能是我说得不是很清楚
就是确认提交数据的事件,比如一个按钮的点击什么的
误会,误会
zhuJIM 2002-11-19
  • 打赏
  • 举报
回复
你的这个要求很高啊,好像有些难,关注
devie 2002-11-19
  • 打赏
  • 举报
回复
用多线程解决吧
sunmedia 2002-11-19
  • 打赏
  • 举报
回复
keenleung(Sword Master) 老兄啊,我不知道你用的是C++Builer什么版本,我用的是5.0没有找到Form的Confirm事件,望能继续得到你的指点!谢谢!!
keenleung 2002-11-19
  • 打赏
  • 举报
回复
设一个全局变量int iIndex保存你更改的Item序号
ListViewOnClick:
if(ListView1->Selected == Null)
{
iIndex=-1;
出一个编辑数据的Form;
}
else
{
iIndex=ListView1->Selected->Index;
出一个编辑数据的Form,已经赋了选中项的单价和数量;
}
//////////////////////
编辑数据Form的Confirm事件:
if(iIndex==-1)
{
TListItem *p;
p=ListView1->Add();
p->Caption=单价;
p->SubItems->Add(数量);
p->SubItems->Add(单价*数量);
}
else
{
ListView1->Items->Item[iIndex]->Caption=单价;
ListView1->Items->Item[iIndex]->SubItems->Strings[0]=数量;
ListView1->Items->Item[iIndex]->SubItems->Strings[1]=单价*数量;
}
计算总金额的函数Sum();

/////////////////
Sum():
{
int iResult=0;
for(int i=0;i<ListView1->Items->Count;i++)
iResult=iResult+StrToInt(ListView1->Items->Item[i]->String[1]);
显示iResult;
}

sunmedia 2002-11-19
  • 打赏
  • 举报
回复
我急需知道解决的办法!!如果谁能知道,分不够可以再加!!!
sunmedia 2002-11-19
  • 打赏
  • 举报
回复
没人知道吗???????
maxying 2002-11-19
  • 打赏
  • 举报
回复
单价或数量的列增加OnChange事件,然后作相应的处理就可以了,最后的统计也是同理啊~~~
我在公司这没有BCB,不能给你具体的代码了~~~

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧