本人用dxdbgrid做进货单录入,有字段 “编号”“名称”“数量”“单价”
其中“编号”字段是唯一的,输入单据时遇到有“编号”重复的商品怎样把它的“数量”相加后合成一条记录,有点像超市中扫相同的商品自动在数量上相加。
其中“编号”字段是唯一的,输入单据时遇到有“编号”重复的商品怎样把它的“数量”相加后合成一条记录,有点像超市中扫相同的商品自动在数量上相加。
解决方案 »
- delphi IE 右键菜单
- 将dbgrideh1(ehlib控件 )导出excel报错: could not convert variant of type(null) into type(string)
- 谁有MSHTML_TLB的帮助??
- DELPHI6 API函数
- 升星散分
- 急急!求教各位大侠:关于跨操作系统windows 不同版本运行问题。
- 迟到啦,第二课,打印,嘻嘻嘻,高的,别来啦,俺怕涮,嘻嘻嘻
- 我今天也通过毕业答辩,也感谢毕业设计过程中Delphi版同志们的帮助,也送分(可惜最多只能100)~~~~~
- 大家有没有对自己的程序失去过信心的时候啊,我失去信心了,问的问题有没有人可以解决!呜呜!
- 声明函数时出错?
- 大家开发ERP系统都用什么数据库做后台呀?(附搜索)
- 调试的问题,总出现那个CPU窗口
用sql很容易实现的
消除重复项用DISTINCT
合并项用SUM(字段);两者结合就可以了
insert into 表(编号,名称,数量,单价)values(值,值,值,值)
else
update 表 set 数量=数量+值 where 编号='输入编号'
-----------------------------------------------------------------------
你是指输入的时候自动处理吗?
还是用传统的sql语句吧
比如说你现在要输入的编号为10,数量为50,.......
定义一个新变量:
var
newcount: integer;--------------------------
newcount := 0;with ADOQuery1 do
begin
sql.clear;
sql.add('select * from table where no=10');
open;
if recordcount <> 0 then//已经存在
begin
newcount = 50+Fildbyname('count').asinteger;
//update 把原来的已经存在的数量改成现在的新数量
end
else//不存在
begin
//insert,作为新的一项插入到数据库
end;
end;