Index: VerpakkingsDefinitie/WS/ProductsAgent.pas =================================================================== diff -u -r603 -r604 --- VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 603) +++ VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 604) @@ -838,6 +838,7 @@ var i: Integer; DefaultDataObj: OptiServerService.pxBoxData; + TempParams: ArrayOfpxemDataParampxemDataParam; begin // Default data object casten. Dit uit klasse halen bespaart extra call. if ProductVerpakking.RawDefaultData = nil then @@ -889,22 +890,25 @@ PPSSubgroep := DefaultDataObj.PPSSubgroep; PPSOutput := DefaultDataObj.PPSOutput; - // Verpakking parameters kopi�ren uit default data en enkel de waarde aanpassen indien nodig - // We gaan er van uit dat de volgorde dezelfde is. - if ProductVerpakking.Parameters.Count - 1 = High(Params) then - // Aantal parameters komt overeen - for i := 0 to High(Params) do - begin - // Andere velden overnemen - Params[i].ID := ProductVerpakking.Parameters[i].ID; - Params[i].ProgLabel := ProductVerpakking.Parameters[i].ProgLabel; - Params[i].ToolTip := ProductVerpakking.Parameters[i].ToolTip; + // Parameters jusit zetten en terugvallen op default waarde indien nodig. + SetLength(TempParams, ProductVerpakking.Parameters.Count); + for i := 0 to high(TempParams) - 1 do + begin + // Andere velden overnemen + TempParams[i] := pxemDataParam.Create(); + TempParams[i].ID := ProductVerpakking.Parameters[i].ID; + TempParams[i].ProgLabel := ProductVerpakking.Parameters[i].ProgLabel; + TempParams[i].ToolTip := ProductVerpakking.Parameters[i].ToolTip; - // Enkel waarde invullen als deze aanwezig is en verschilt van default waarde. - if (ProductVerpakking.Parameters[i].Waarde <> '') and - (ProductVerpakking.Parameters[i].Waarde <> ProductVerpakking.Parameters[i].DefaultWaarde) then - Params[i].Waarde := ProductVerpakking.Parameters[i].Waarde; - end; + // Enkel waarde invullen als deze aanwezig is en verschilt van default waarde. + if (ProductVerpakking.Parameters[i].Waarde <> '') and + (ProductVerpakking.Parameters[i].Waarde <> ProductVerpakking.Parameters[i].DefaultWaarde) then + TempParams[i].Waarde := ProductVerpakking.Parameters[i].Waarde + else + // Waarde is dezelfde als default, leegmaken. + TempParams[i].Waarde := ''; + end; + Params := TempParams; end; end;