原有贴子...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中实现编辑功能呢,我想这个就不是那么容易实现啦.....
解决方案 »
- 一个非常非常奇怪的问题,谁能告诉我这是为什么???
- 关于让任意程序,在类似IE7或者Maxthon那样的多标签窗口中运行。
- delphi ——用ADOCOMMAND 动态创建触发器
- 国内第一个Delphi原创资源站点今天开张了!
- 关于记录回滚的问题!
- 有点头晕~!~
- 提示:“提供者不支持应用程序所做的操作”一般是什么问题?
- 请教:在程序中写SQL语句时引号用法的问题
- 我使用了csdn上的抓图并画鼠标的方法,但在timer中调用时,如果速度很快,则双击就不能用了,请问怎么解决呢
- 一个难题,先给100分,要多加分教我怎么加
- 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]
其实是这样,左边是显示该表记录的共性:如产品编号,产品名称,数量合计:
右边是非共性的:如产品颜色,尺码,数量,只是用类似交叉表的形式实现