Index: VerpakkingsDefinitie/UI/VerpakkingDetailScherm.pas =================================================================== diff -u -r602 -r603 --- VerpakkingsDefinitie/UI/VerpakkingDetailScherm.pas (.../VerpakkingDetailScherm.pas) (revision 602) +++ VerpakkingsDefinitie/UI/VerpakkingDetailScherm.pas (.../VerpakkingDetailScherm.pas) (revision 603) @@ -258,8 +258,8 @@ EditAantal.Text := ProductVerpakking.Aantal; // Plaatsing - LaadEnSelecteerWaardenComboBox(ApplicationContext.UiInstellingenContext.Plaatsing, ComboBoxPlaatsing, - ProductVerpakking.Plaatsing, ProductVerpakking.DefaultPlaatsing, ApplicationContext.UiInstellingenContext.Plaatsing); + LaadEnSelecteerWaardenComboBox(ApplicationContext.UiInstellingenContext.Plaatsingen, ComboBoxPlaatsing, + ProductVerpakking.Plaatsing, ProductVerpakking.DefaultPlaatsing, ApplicationContext.UiInstellingenContext.Plaatsingen); // Positie LaadEnSelecteerWaardenCheckComboBox(ApplicationContext.UiInstellingenContext.Posities, CheckComboBoxPositie, @@ -290,6 +290,8 @@ end; procedure TFormVerpakkingDetail.RegistreerWijzigingenVerpakking(ProductVerpakking: TProductVerpakking); +var + I: Integer; begin // Linkerhelft @@ -312,7 +314,32 @@ // Aantal ProductVerpakking.Aantal := EditAantal.Text; - { TODO : Andere properties opslaan } + // Plaatsing, geslecteerde tekst vertalen naar code en instellen. + ProductVerpakking.Plaatsing := ApplicationContext.UiInstellingenContext.PlaatsingByValue + [ComboBoxPlaatsing.Items[ComboBoxPlaatsing.ItemIndex]]; + + // Positie + ProductVerpakking.Posities.Clear(); + for I := 0 to CheckComboBoxPositie.Items.Count - 1 do + begin + if CheckComboBoxPositie.Checked[I] then + // Checked, registreren + ProductVerpakking.Posities.Add(ApplicationContext.UiInstellingenContext.PositiesByValue[CheckComboBoxPositie.Items[I]]); + end; + + // Richting + ProductVerpakking.Richtingen.Clear(); + for I := 0 to CheckComboBoxRichting.Items.Count - 1 do + begin + if CheckComboBoxRichting.Checked[I] then + // Checked, registreren + ProductVerpakking.Richtingen.Add(ApplicationContext.UiInstellingenContext.RichtingenByValue + [CheckComboBoxRichting.Items[I]]); + end; + + // OptiType, geslecteerde tekst vertalen naar code en instellen. + ProductVerpakking.OptiType := ApplicationContext.UiInstellingenContext.OptiTypesByValue + [ComboBoxOptiType.Items[ComboBoxOptiType.ItemIndex]]; end; procedure TFormVerpakkingDetail.UpdateControlsEnableStatus(); Index: VerpakkingsDefinitie/WS/ProductsAgent.pas =================================================================== diff -u -r602 -r603 --- VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 602) +++ VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 603) @@ -136,7 +136,7 @@ begin // Andere velden leegmaken UiInstellingenContext.Posities.Clear(); - UiInstellingenContext.Plaatsing.Clear(); + UiInstellingenContext.Plaatsingen.Clear(); UiInstellingenContext.Richtingen.Clear(); UiInstellingenContext.IsOK := pxStatusObj.IsOK; @@ -186,15 +186,15 @@ end; end; - UiInstellingenContext.Plaatsing.Clear(); + UiInstellingenContext.Plaatsingen.Clear(); UiInstellingenContext.PlaatsingByValue.Clear(); if Instellingen.Plaatsing <> nil then begin for i := 0 to Instellingen.Plaatsing.Count - 1 do begin Node := Instellingen.Plaatsing[i]; KeyStr := Node.GetAttributeNS('Key', ''); - UiInstellingenContext.Plaatsing.Add(KeyStr, Node.Text); + UiInstellingenContext.Plaatsingen.Add(KeyStr, Node.Text); UiInstellingenContext.PlaatsingByValue.Add(Node.Text, KeyStr); end; end; @@ -747,6 +747,7 @@ ProductVerpakking: TProductVerpakking); var i: Integer; + CharItem: Char; TempNieuweVerpakkingParameters: TList; NieuweVerpakkingParameter: TProductVerpakkingParameter; begin @@ -780,9 +781,18 @@ Aantal := pxBoxDataObj.Aantal; MaxCombinAantal := pxBoxDataObj.MaxCombinAantal; - Posities.AddRange(SplitString(pxBoxDataObj.Positie, '')); - Richtingen.AddRange(SplitString(pxBoxDataObj.Rotatie, '')); + // Positie + for CharItem in pxBoxDataObj.Positie do + begin + Posities.Add(string(CharItem)); + end; + // Richting + for CharItem in pxBoxDataObj.Rotatie do + begin + Richtingen.Add(string(CharItem)); + end; + // Default data instellen als deze aanwezig is. if pxBoxDataObj.DefaultData <> nil then begin @@ -861,9 +871,11 @@ DefaultData := DefaultDataObj; // Normale properties - Positie := JoinStrings(ProductVerpakking.Posities.ToArray(), #0); // Positie + // Positie, letters aan elkaar plakken in 1 string + Positie := ReplaceStr(JoinStrings(ProductVerpakking.Posities.ToArray(), '-'), '-', ''); OptiType := ProductVerpakking.OptiType; - Rotatie := JoinStrings(ProductVerpakking.Richtingen.ToArray(), #0); // Richting + // Richting, letters aan elkaar plakken in 1 string + Rotatie := ReplaceStr(JoinStrings(ProductVerpakking.Richtingen.ToArray(), '-'), '-', ''); Plaatsing := ProductVerpakking.Plaatsing; Hoogte := ProductVerpakking.Hoogte; Breedte := ProductVerpakking.Breedte; Index: VerpakkingsDefinitie/ApplicationContext.pas =================================================================== diff -u -r602 -r603 --- VerpakkingsDefinitie/ApplicationContext.pas (.../ApplicationContext.pas) (revision 602) +++ VerpakkingsDefinitie/ApplicationContext.pas (.../ApplicationContext.pas) (revision 603) @@ -51,7 +51,7 @@ procedure NotifyChanged(); property Posities: TDictionary read FPositieByKey; property PositiesByValue: TDictionary read FPositieByValue; - property Plaatsing: TDictionary read FPlaatsingByKey; + property Plaatsingen: TDictionary read FPlaatsingByKey; property PlaatsingByValue: TDictionary read FPlaatsingByValue; property Richtingen: TDictionary read FRichtingByKey; property RichtingenByValue: TDictionary read FRichtingByValue;