O erro estava no exemplo - Segue a correção.
Demo VCL
UntMain.pas
procedure TFMain.btnOrderGetDetailsClick(Sender: TObject);
var
I: Integer;
ItemOption: TACBrOpenDeliverySchemaOrderItemOption;
// ...
for I := 0 to Pred(ACBrOpenDelivery1.Order.items[0].options.Count) do
begin
ItemOption := ACBrOpenDelivery1.Order.items[0].options[I];
DM.cdsOptions.Append;
DM.cdsOptionsID.AsString := ItemOption.id;
DM.cdsOptionsName.AsString := ItemOption.name;
DM.cdsOptionsexternalCode.AsString := ItemOption.externalCode;
DM.cdsOptionsUnit.AsString := ItemOption._unit;
DM.cdsOptionsQuantity.AsFloat := ItemOption.quantity;
DM.cdsOptionsunitPriceValue.AsCurrency := ItemOption.unitPrice.value;
DM.cdsOptionsunitPriceCurrency.AsString := ItemOption.unitPrice.currency;
DM.cdsOptionstotalPriceValue.AsCurrency := ItemOption.totalPrice.value;
DM.cdsOptionstotalPriceCurrency.AsString := ItemOption.totalPrice.currency;
DM.cdsOptionsspecialInstructions.AsString := ItemOption.specialInstructions;
DM.cdsOptions.Post;
end;
Explicação:
O exemplo estava tentanto acessar um item inválido (só tem um). O indice do laço só é válido para os options, e não para o item.
Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.