问题描述
listview 是父窗体的列表,我选择添加商品按钮,进入子窗体,然后选择子窗体上的商品,自动添加到父窗体的listview
(说明,不能重复,如果重复在数量上+1)。
父窗体代码
spmx:=tspmx.create(application);
spmx.ShowModal;
子窗体代码Var
Item: TListItem;
i,j:integer;
begin
spid:=adodataset1.fieldbyname('cgyid').AsString;
cgyname:=adodataset1.fieldbyname('cgyname').AsString;
dw:=adodataset1.fieldbyname('dw').AsString;
mrjg:=dbgrideh1.Columns[5].DisplayText;
number:='1';
money:=floattostr(strtofloat(mrjg)*strtofloat(number));
//if insaley.listview1.Items.Count=0 then
//begin
//xh:='1';
//end else xh:=inttostr(insaley.listview1.Items.Count+1);
if insaley.listview1.Items.Count=0 then
begin
Item:=insaley.ListView1.Items.Add;
//item.Caption:=xh;
Item.SubItems.Add(spid);
Item.SubItems.Add(cgyname);
Item.SubItems.Add(dw);
Item.SubItems.Add(mrjg);
Item.SubItems.Add(number);
Item.SubItems.Add(money);
//list.Visible:=false;
self.Close;
end else
j:=insaley.listview1.Items.Count;
showmessage(inttostr(j));
for i := 0 to j - 1 do
begin
if insaley.ListView1.Items[i].SubItems.Strings[0] =spid then
begin
exit;
self.close;
end else
Item:=insaley.ListView1.Items.Add;
Item.SubItems.Add(spid);
Item.SubItems.Add(cgyname);
Item.SubItems.Add(dw);
Item.SubItems.Add(mrjg);
Item.SubItems.Add(number);
Item.SubItems.Add(money);
//list.Visible:=false;
self.Close;end;
但是,如果父窗体有1条数据,可以,有2条以上就还是重复
跟踪一下是insaley.listview1.Items.Count,在程序运行时是读不出数来,但是showmessage就可以,不知道为什么,请各位大侠帮助。
listview 是父窗体的列表,我选择添加商品按钮,进入子窗体,然后选择子窗体上的商品,自动添加到父窗体的listview
(说明,不能重复,如果重复在数量上+1)。
父窗体代码
spmx:=tspmx.create(application);
spmx.ShowModal;
子窗体代码Var
Item: TListItem;
i,j:integer;
begin
spid:=adodataset1.fieldbyname('cgyid').AsString;
cgyname:=adodataset1.fieldbyname('cgyname').AsString;
dw:=adodataset1.fieldbyname('dw').AsString;
mrjg:=dbgrideh1.Columns[5].DisplayText;
number:='1';
money:=floattostr(strtofloat(mrjg)*strtofloat(number));
//if insaley.listview1.Items.Count=0 then
//begin
//xh:='1';
//end else xh:=inttostr(insaley.listview1.Items.Count+1);
if insaley.listview1.Items.Count=0 then
begin
Item:=insaley.ListView1.Items.Add;
//item.Caption:=xh;
Item.SubItems.Add(spid);
Item.SubItems.Add(cgyname);
Item.SubItems.Add(dw);
Item.SubItems.Add(mrjg);
Item.SubItems.Add(number);
Item.SubItems.Add(money);
//list.Visible:=false;
self.Close;
end else
j:=insaley.listview1.Items.Count;
showmessage(inttostr(j));
for i := 0 to j - 1 do
begin
if insaley.ListView1.Items[i].SubItems.Strings[0] =spid then
begin
exit;
self.close;
end else
Item:=insaley.ListView1.Items.Add;
Item.SubItems.Add(spid);
Item.SubItems.Add(cgyname);
Item.SubItems.Add(dw);
Item.SubItems.Add(mrjg);
Item.SubItems.Add(number);
Item.SubItems.Add(money);
//list.Visible:=false;
self.Close;end;
但是,如果父窗体有1条数据,可以,有2条以上就还是重复
跟踪一下是insaley.listview1.Items.Count,在程序运行时是读不出数来,但是showmessage就可以,不知道为什么,请各位大侠帮助。
解决方案 »
- 除了用一个时间器来定时获得当前时间外。还有什么办法可以实时准确的获得当前时间?
- 如何得到数据库中图片文件的高度和宽度
- fastreport 的主丛报表中,按主表记录分页统计第n页/总页数,如何来处理。(急)
- 怎么能得到当前字段的数据类型呢?在线等待
- Delphi, VB 哪个学起来更实用.
- 请帮忙看看这样写有什么错误????
- Query.execute和 Query.open有什么区别?
- 关于Tsocketconnection连接问题
- 请问在DELPHI中取得这一句SQL语句的结果: select max(id) from table1 ? 详细请进!
- TO:(木头脑袋),请教汉字拼音问题,50分相送,欢迎同志们回答,可以加分!
- OverbyteIcs控件问题
- 问个DELPHI问题
begin
if insaley.ListView1.Items[i].SubItems.Strings[0] =spid then
begin
insaley.ListView1.Items[i].SubItems[4] := IntToStr(StrToInt(insaley.ListView1.Items[i].SubItems[4]) + 1); exit;
self.close;
end;// else
Item:=insaley.ListView1.Items.Add;
Item.SubItems.Add(spid);
Item.SubItems.Add(cgyname);
Item.SubItems.Add(dw);
Item.SubItems.Add(mrjg);
Item.SubItems.Add(number);
Item.SubItems.Add(money);
//list.Visible:=false;
self.Close;end;