电气行业存在以下特点(以客户为焦点,按图纸报价,生产):
产品报价时需要列出所用原材料清单,并且存在这样的情况:
1、多个电箱编号不同的电柜(如:1-1,1-2,1-3)其构成材料相同,于是报价员为了提高报价效率,在报价Bom 清单中使用一个bom来表示1-1,1-2,1-3各电箱。如下表表示:1-1,1-2,1-3各1台。
序号 产品编码 产品名称 电箱编号 规格 数量
1 P001 配电箱 1-1,1-2,1-3 200*30*100 32、工程组下单员也从报价Bom中复制过来,生成生产Bom. 接下去增补元件。
序号 产品编码 产品名称 电箱编号 规格 数量
1 P001 配电箱 1-1,1-2,1-3 200*30*100 3但做好生产Bom后,并开始生产时,由于客户原因或设计问题,1-2号电箱需要改动其构成材料时应该怎么办?1-2号箱的更改不到映响1-1、1-3的构成材料,同时需考虑后续的成本计算。尽管这种情况输小,但写系统须要考虑数据的完整性及准确性。请问大家有什么好的解决方案???
产品报价时需要列出所用原材料清单,并且存在这样的情况:
1、多个电箱编号不同的电柜(如:1-1,1-2,1-3)其构成材料相同,于是报价员为了提高报价效率,在报价Bom 清单中使用一个bom来表示1-1,1-2,1-3各电箱。如下表表示:1-1,1-2,1-3各1台。
序号 产品编码 产品名称 电箱编号 规格 数量
1 P001 配电箱 1-1,1-2,1-3 200*30*100 32、工程组下单员也从报价Bom中复制过来,生成生产Bom. 接下去增补元件。
序号 产品编码 产品名称 电箱编号 规格 数量
1 P001 配电箱 1-1,1-2,1-3 200*30*100 3但做好生产Bom后,并开始生产时,由于客户原因或设计问题,1-2号电箱需要改动其构成材料时应该怎么办?1-2号箱的更改不到映响1-1、1-3的构成材料,同时需考虑后续的成本计算。尽管这种情况输小,但写系统须要考虑数据的完整性及准确性。请问大家有什么好的解决方案???
应该像楼上所说的那么做,再建一个表来保存电箱列表,如:电箱号(ID) 所属产品编号 是否存在(就是是不是没有被用掉,这个你考虑做存仓表时要不要)
1-1 P001 False
1-2 P001 True
1-3 P001 False这样的设计你就可以随意改变了,改一下“所属产品编号”就可以达到你的要求了
解决的办法是:在单据备注栏填写备注信息,生产时按正常生成领料单,同时可采用退、补料单对进行平衡。并注意被替换的料的采购或生产计划要做相应的调整。如果不是自动物料需求分析,在人工分析物料时直接在用料表中改掉就可以了。
我所指的更改是不单是改变电箱的编号,更要更改其中某个电箱的构成材料复: fbysss(独孤求败)
因为行业特性,该行业都是根据客户要求配材料的,而且报价的成功率也不会很高,一般在10%左右。
如果完全按照数据库第一范式,工作量将成倍甚至多倍递增。 原来我的想法跟你一样,用stringGrid作为bom的输入,stringGrid中的某列内嵌了一个ListBox.1-1,1-2,1-3分另作为其item输入,在数据为中另开一个表用于存放该listbox的item项目,并与bom关联起来,这样似乎就解决了要更改其中部分箱体的bom问题了但如何把stringGrid与listBox整合起来,似乎不容易,特别是对于我初学delphi,对VCL核心不是很懂的人。。请问大家有没有合适的控件???
var
DBGrid1: TDBGrid;
begin
DBGrid1 := TDBGrid.Create(Self);
DBGrid1.Columns.Add;
DBGrid1.Columns[0].PickList.Text := '1-1#13#101-2#13#101-3'; // List
end;
procedure TForm1.Button1Click(Sender: TObject);
var
DBGrid1: TDBGrid;
begin
DBGrid1 := TDBGrid.Create(Self);
DBGrid1.Columns.Add;
DBGrid1.Columns[0].PickList.Add('1-1');
DBGrid1.Columns[0].PickList.Add('1-2');
DBGrid1.Columns[0].PickList.Add('1-3');
end;
另外如qiume所说,你的表结构是有问题的。
如果你的BOM是一层BOM方式,为了加快输入可以采用快捷输入的方法。还是要把个材料分开。
表格方面,TopGrid很强大,表格中也可以实现下拉/日期等功能,你可以用用。