Index: VerpakkingsDefinitie/WS/ProductsAgent.pas =================================================================== diff -u -r587 -r590 --- VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 587) +++ VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 590) @@ -124,6 +124,7 @@ UiInstellingenContext.InternalErrorMessage := ''; UiInstellingenContext.Posities.Clear(); + UiInstellingenContext.PositiesByValue.Clear(); if Instellingen.Positie <> nil then begin for I := 0 to Instellingen.Positie.Count - 1 do @@ -136,6 +137,7 @@ end; UiInstellingenContext.Plaatsing.Clear(); + UiInstellingenContext.PlaatsingByValue.Clear(); if Instellingen.Plaatsing <> nil then begin for I := 0 to Instellingen.Plaatsing.Count - 1 do @@ -148,6 +150,7 @@ end; UiInstellingenContext.Richtingen.Clear(); + UiInstellingenContext.RichtingenByValue.Clear(); if Instellingen.Richting <> nil then begin for I := 0 to Instellingen.Richting.Count - 1 do @@ -159,6 +162,19 @@ end; end; + UiInstellingenContext.OptiTypes.Clear(); + UiInstellingenContext.OptiTypesByValue.Clear(); + if Instellingen.Richting <> nil then + begin + for I := 0 to Instellingen.OptiType.Count - 1 do + begin + Node := Instellingen.OptiType[I]; + KeyStr := Node.GetAttributeNS('Key', ''); + UiInstellingenContext.OptiTypes.Add(KeyStr, Node.Text); + UiInstellingenContext.OptiTypesByValue.Add(Node.Text, KeyStr); + end; + end; + UiInstellingenContext.NotifyChanged(); end; @@ -468,36 +484,45 @@ with Verpakking do begin RawData := pxBoxDataObj; + VolumeVanCaption := pxBoxDataObj.VolumeVanCaption; ID := pxBoxDataObj.ID; CutOrder := pxBoxDataObj.CutOrder; Breedte := pxBoxDataObj.Breedte; - DefaultBreedte := pxBoxDataObj.DefaultData.Breedte; Diepte := pxBoxDataObj.Diepte; - DefaultDiepte := pxBoxDataObj.DefaultData.Diepte; Hoogte := pxBoxDataObj.Hoogte; - DefaultHoogte := pxBoxDataObj.DefaultData.Hoogte; Aantal := pxBoxDataObj.Aantal; MaxCombinAantal := pxBoxDataObj.MaxCombinAantal; Plaatsing := pxBoxDataObj.Plaatsing; + OptiType := pxBoxDataObj.OptiType; Posities.AddRange(SplitString(pxBoxDataObj.Positie, '')); - DefaultPosities.AddRange(SplitString(pxBoxDataObj.DefaultData.Positie, ';')); Richtingen.AddRange(SplitString(pxBoxDataObj.Rotatie, '')); - DefaultRichtingen.AddRange(SplitString(pxBoxDataObj.DefaultData.Rotatie, ';')); + if pxBoxDataObj.DefaultData <> nil then + begin + DefaultBreedte := pxBoxDataObj.DefaultData.Breedte; + DefaultDiepte := pxBoxDataObj.DefaultData.Diepte; + DefaultHoogte := pxBoxDataObj.DefaultData.Hoogte; + DefaultPlaatsing := pxBoxDataObj.DefaultData.Plaatsing; + DefaultOptiType := pxBoxDataObj.DefaultData.OptiType; + + DefaultPosities.AddRange(SplitString(pxBoxDataObj.DefaultData.Positie, ';')); + DefaultRichtingen.AddRange(SplitString(pxBoxDataObj.DefaultData.Rotatie, ';')); + end; + // Verpakking parameters. haal waarden uit gewone data en default data. Parameters.Clear(); - if (High(pxBoxDataObj.Params) = High(pxBoxDataObj.DefaultData.Params)) then - for I := 0 to High(pxBoxDataObj.Params) do - begin - NieuweVerpakkingParameter := TProductVerpakkingParameter.Create(); - NieuweVerpakkingParameter.ID := pxBoxDataObj.Params[I].ID; - NieuweVerpakkingParameter.ProgLabel := pxBoxDataObj.Params[I].ProgLabel; - NieuweVerpakkingParameter.ToolTip := pxBoxDataObj.Params[I].ToolTip; - NieuweVerpakkingParameter.Waarde := pxBoxDataObj.Params[I].Waarde; + for I := 0 to High(pxBoxDataObj.Params) do + begin + NieuweVerpakkingParameter := TProductVerpakkingParameter.Create(); + NieuweVerpakkingParameter.ID := pxBoxDataObj.Params[I].ID; + NieuweVerpakkingParameter.ProgLabel := pxBoxDataObj.Params[I].ProgLabel; + NieuweVerpakkingParameter.ToolTip := pxBoxDataObj.Params[I].ToolTip; + NieuweVerpakkingParameter.Waarde := pxBoxDataObj.Params[I].Waarde; + if (pxBoxDataObj.DefaultData <> nil) and (High(pxBoxDataObj.Params) = High(pxBoxDataObj.DefaultData.Params)) then NieuweVerpakkingParameter.DefaultWaarde := pxBoxDataObj.DefaultData.Params[I].Waarde; - Parameters.Add(NieuweVerpakkingParameter); - end; + Parameters.Add(NieuweVerpakkingParameter); + end; DeelVanID := pxBoxDataObj.DeelVanID; DeelVanCaption := pxBoxDataObj.DeelVanCaption;