原有贴子...http://expert.csdn.net/Expert/topic/1991/1991600.xml?temp=.3593561
问题如下:
基础信息有颜色和号码两个....
产品信息:
001 男鞋子 (有N种颜色和N种号码)
单据记录表结构和最终记录如下
产品编号,产品名称,颜色,号码,单价,数量
001 男鞋子 红 M 20 30
001 男鞋子 红 L 20 30
001 男鞋子 绿 L 18 40
001 男鞋子 黑 S 16 20左边DBGrid1: 右边DBgrid2:
产品编号 产品名称 数量 颜色 M L S 合计
001 男鞋子 110 红 30 20 50
绿 40 40
黑 20 20
如何在两个DbGrid中(右边的结构是根据左边录入的产品信息的颜色和号码自动展开成一个二维表,保存后能生成单据表中记录如上)实现如上效果并实现右边数据变动,则自动计算左边的数量.这边的颜色和号码只是三种,在实际中颜色和号码是不固定的,就是不同记录的颜色和号码的组合是不同的...就是记录移动要能导致其右边的DBGRID的组合形式也变化...
而且关键在于还要在两个DBGRID中实现编辑功能呢,我想这个就不是那么容易实现啦.....
问题如下:
基础信息有颜色和号码两个....
产品信息:
001 男鞋子 (有N种颜色和N种号码)
单据记录表结构和最终记录如下
产品编号,产品名称,颜色,号码,单价,数量
001 男鞋子 红 M 20 30
001 男鞋子 红 L 20 30
001 男鞋子 绿 L 18 40
001 男鞋子 黑 S 16 20左边DBGrid1: 右边DBgrid2:
产品编号 产品名称 数量 颜色 M L S 合计
001 男鞋子 110 红 30 20 50
绿 40 40
黑 20 20
如何在两个DbGrid中(右边的结构是根据左边录入的产品信息的颜色和号码自动展开成一个二维表,保存后能生成单据表中记录如上)实现如上效果并实现右边数据变动,则自动计算左边的数量.这边的颜色和号码只是三种,在实际中颜色和号码是不固定的,就是不同记录的颜色和号码的组合是不同的...就是记录移动要能导致其右边的DBGRID的组合形式也变化...
而且关键在于还要在两个DBGRID中实现编辑功能呢,我想这个就不是那么容易实现啦.....
解决方案 »
- Word 打开Rave存当的RTF文件是乱码?!!!
- 请问如何实现 自动版本更新 功能?????
- 紧急情况,在线等待:在窗体A中添加了一个线程单元,并在窗体A uses 上声明了线程单元,但在调试时出现错误如下:Circular unit reference
- 运行时的问题
- 请问Delphi的Update 2是不是可以直接装,需要先安装Update 1吗?
- 如何判断一个字符串是不是数字的函数?
- 1000分f1book资料大索求
- 特定字符串的问题
- 如何在CSDN共享软件上上传我的软件(无内容)
- 如何让Windows2000起死回生?
- 100分问一个小问题
- 根据文件的类型启动应用程序并打开文件,请问怎样实现?
例如: 产品编号,产品名称,颜色,尺码1,尺码2,尺码3...单价,合计数量
有多少个码就建多少个字段,一般十几个够了吧,我做过的服装系统的尺码就这样建的表,这样在你的DBgrid2中就容易select 出来需要的记录。
在DBGrid1的改变记录事件中,select 产品编号=主表的产品编号 的记录到dbgrid2中,
dbgrid1的记录是根据dbgrid2中的计算而得到,应该不需要修改的。这里用主/从表应该很好做到你的要求的。
左边DBGrid1: 右边DBgrid2:
产品编号 产品名称 数量 颜色 M L S 合计
001 男鞋子 110 红 30 20 50
绿 40 40
黑 20 20
利用主从关系表就可以实现了,可以到http://www.kaer.cn/default.aspx
的下载基地下个例程去,
至于单据记录表,你可以用一个query,用select语句直接生成。
你要dbgrid1有关系,还是要没有关系啊
你要dbgrid1和dbgrid2有关系,还是要没有关系啊,
要是有关系的话,你必须定义一个共同的id啊
有机会可以讨论([email protected])
如要解决也只能按: XRS(心如水) 的思路
用stringgrid一定要用dbgrid的话,就程序算出结果,插入临时表
还是改库表结构吧
CREATE TABLE [OrderItem] (
[RefId] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_OrderItem_RefId] DEFAULT (''),
[ProdId] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_OrderItem_ProdId] DEFAULT (''),
[ColorId] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_OrderItem_ColorId] DEFAULT (''),
[SizeId] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_OrderItem_Size] DEFAULT (''),
[Price] [money] NOT NULL CONSTRAINT [DF_OrderItem_Price] DEFAULT (0),
[Money] [money] NOT NULL CONSTRAINT [DF_OrderItem_Money] DEFAULT (0),
[TotPlan] [float] NOT NULL CONSTRAINT [DF_OrderItem_ColorQty1] DEFAULT (0),
[TotProd] [float] NOT NULL CONSTRAINT [DF_OrderItem_ColorTotQty1] DEFAULT (0),
[TotOut] [float] NOT NULL CONSTRAINT [DF_OrderItem_ColorTotQty2] DEFAULT (0),
[TotReturn] [float] NOT NULL CONSTRAINT [DF_OrderItem_ColorTotQty1_1] DEFAULT (0),
[Qty] [float] NOT NULL CONSTRAINT [DF_OrderItem_Qty1] DEFAULT (0),
[TotReturnNoSend] [float] NOT NULL CONSTRAINT [DF_OrderItem_TotRetuenNoSend] DEFAULT (0),
[PurPrice] [float] NOT NULL CONSTRAINT [DF_OrderItem_PurPrice] DEFAULT (0),
[MainPlanQty] [float] NOT NULL CONSTRAINT [DF_OrderItem_MainPlanQty] DEFAULT (0),
[WillProdQty] [float] NOT NULL CONSTRAINT [DF_OrderItem_WillProd] DEFAULT (0),
[WillPurQty] [float] NOT NULL CONSTRAINT [DF_OrderItem_WillPurQty] DEFAULT (0),
[USeStockQty] [float] NOT NULL CONSTRAINT [DF_OrderItem_USeStockQty] DEFAULT (0),
CONSTRAINT [PK_OrderItem] PRIMARY KEY NONCLUSTERED
(
[RefId],
[ProdId],
[ColorId],
[SizeId]
) ON [PRIMARY]
) ON [PRIMARY]
其实是这样,左边是显示该表记录的共性:如产品编号,产品名称,数量合计:
右边是非共性的:如产品颜色,尺码,数量,只是用类似交叉表的形式实现